/* =================================================================
   Rick Personal - Custom CSS
   Baseado no template Landrick Personal
   ================================================================= */

/* ---- Logo Text ---- */
.logo-text {
  font-size: 36px;
  font-weight: 800;
  letter-spacing: -0.5px;
  text-decoration: none !important;
  font-family: 'Nunito', sans-serif;
  line-height: 1;
  padding: 0;
  display: inline-flex;
  align-items: center;
  height: 70px;
}
.logo-text .logo-semi {
  color: #2f55d4;
}

/* nav-light: logo branco no hero, escurece ao scrollar */
.nav-light .logo-text {
  color: #ffffff;
}
.nav-light.nav-sticky .logo-text {
  color: #3c4858;
}
.nav-light.nav-sticky .logo-text .logo-semi {
  color: #2f55d4;
}

/* ---- Hero Background Photo ---- */
.hero-photo-mobile img {
  max-height: 350px;
  filter: drop-shadow(0 10px 30px rgba(0, 0, 0, 0.15));
}
@media (max-width: 767px) {
  .rtl-personal-hero {
    background-image: none !important;
  }
}

/* ---- Typed.js Cursor ---- */
/* ngx-typed-js sets inline styles via updateCursorStyle(), so !important is needed */
.typed-cursor {
  font-size: inherit !important;
  color: #2f55d4 !important;
}

/* ---- Testimonial Images Fix ---- */
.customer-testi .avatar {
  width: 65px;
  height: 65px;
  object-fit: cover;
}

/* ---- About Me — Text offset (desktop only) ---- */
.about-text-offset {
  padding: 0 86px !important;
}
@media (max-width: 767px) {
  .about-text-offset {
    padding: 0 24px !important;
  }
}

/* ---- About Me — Photo Card ---- */
.about-photo-card {
  display: inline-flex;
  border-radius: 12px !important;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.18), 0 8px 24px rgba(0, 0, 0, 0.12) !important;
}
.about-fullbody {
  max-height: 520px;
  width: auto;
  max-width: 100%;
  object-fit: contain;
  object-position: center top;
}
@media (max-width: 767px) {
  .about-fullbody {
    max-height: 380px;
  }
}

/* ---- Numbers Bar ---- */
.section-sm {
  padding: 30px 0;
}
.numbers-value {
  font-size: 2.2rem;
  line-height: 1.1;
}
.numbers-label {
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-top: 4px;
}
@media (max-width: 576px) {
  .numbers-value { font-size: 1.6rem; }
}

/* ---- Experience Timeline ---- */
.experience-icon-col {
  min-width: 56px;
}
.experience-circle {
  width: 48px;
  height: 48px;
  flex-shrink: 0;
}
.experience-connector {
  width: 2px;
  background: #e2e8f0;
  flex: 1;
  min-height: 40px;
  margin-top: 4px;
}
.experience-badge {
  font-size: 0.8rem;
  font-weight: 600;
  white-space: nowrap;
}
.bg-soft-primary {
  background-color: rgba(47, 85, 212, 0.1);
}

/* ---- Portfolio Cards ---- */
.portfolio-card-clickable {
  cursor: pointer;
}

/* ---- Portfolio Modal ---- */
.portfolio-modal-img-wrap {
  overflow: hidden;
  background: #f8f9fa;
}
.portfolio-modal-img {
  display: block;
  width: 100%;
  height: auto;
}
.portfolio-modal-close {
  width: 30px;
  height: 30px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  line-height: 1;
}
.portfolio-tech-badge {
  font-size: 0.78rem;
  padding: 5px 12px;
  font-weight: 600;
}

/* ---- Portfolio Cards ---- */
.work-container {
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.10);
  border: 1px solid rgba(0, 0, 0, 0.06) !important;
  transition: transform 0.25s, box-shadow 0.25s;
}
.work-container:hover {
  transform: translateY(-5px);
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.15) !important;
}

/* ---- Portfolio Tech Tag ---- */
.portfolio-tech {
  font-size: 0.7rem;
  opacity: 0;
  transition: opacity 0.3s ease;
}
.work-container:hover .portfolio-tech {
  opacity: 1;
}

/* ---- Experiences Section ---- */
.stack-section-label {
  letter-spacing: 1.5px;
  border-left: 3px solid #2f55d4;
  padding-left: 10px;
}
.stack-section-label-muted {
  border-left-color: #8492a6;
}
.stack-tech-card {
  transition: transform 0.2s, box-shadow 0.2s;
  cursor: default;
}
.stack-tech-card:hover:not(.stack-legacy-card) {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.12) !important;
}
.stack-tech-bigicon {
  font-size: 2.4rem;
  display: block;
  margin-bottom: 6px;
  line-height: 1;
}
.stack-tech-name {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  margin-bottom: 6px;
}
.stack-legacy-card {
  opacity: 0.72;
}
.stack-legacy-period {
  font-size: 0.68rem;
  color: #8492a6;
  margin-top: 4px;
}
.stack-quick-badge {
  font-size: 0.8rem;
  padding: 6px 14px;
}

/* ---- Anchor scroll offset (fixed topnav ~70px + extra padding) ---- */
#home, #stack-experience, #about, #about-me, #portfolio, #experience, #testimonials, #contact, #techstack {
  scroll-margin-top: 80px;
}

/* ---- Tech Stack Section ---- */
.tech-item {
  padding: 8px;
  transition: transform 0.2s ease;
}
.tech-item:hover {
  transform: translateY(-4px);
}
.tech-icon {
  font-size: 2.8rem;
  display: block;
  margin-bottom: 6px;
}
.tech-name {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* ---- Footer social icons: center all icons inside their circle buttons ---- */
.foot-social-icon .list-inline-item a,
.foot-social-icon li a {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
}
.foot-social-icon .fea-social,
.foot-social-icon i {
  line-height: 1;
  display: block;
}
.footer-whatsapp-icon {
  font-size: 1.05rem;
}

/* ---- Footer version bumper ---- */
.footer-version {
  opacity: 0.35;
  font-size: 0.72rem;
  margin-left: 6px;
  letter-spacing: 0.5px;
}

/* ---- Dark Mode — card overrides ---- */
body.dark-mode .stack-tech-card,
body.dark-mode .contact-card,
body.dark-mode .contact-location-card {
  background-color: #202942 !important;
}
body.dark-mode .stack-tech-card .stack-tech-name,
body.dark-mode .contact-card-name {
  color: #e4e6ef !important;
}
body.dark-mode .contact-card-value {
  color: #8492a6 !important;
}
body.dark-mode .contact-location-card .text-dark {
  color: #e4e6ef !important;
}
body.dark-mode .stack-legacy-card {
  background-color: #1a2236 !important;
}

/* ---- Contact Section ---- */
.contact-check-icon {
  font-size: 1.25rem;
  line-height: 1.5;
  flex-shrink: 0;
}
.contact-location-card {
  transition: transform 0.2s, box-shadow 0.2s;
}
.contact-location-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.10) !important;
}
.contact-location-icon {
  font-size: 2rem;
  flex-shrink: 0;
}
.contact-location-label {
  font-size: 0.68rem;
  letter-spacing: 1px;
  display: block;
}
.contact-card {
  transition: transform 0.2s, box-shadow 0.2s;
  cursor: pointer;
}
.contact-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 24px rgba(0,0,0,0.13) !important;
}
.contact-card-icon {
  font-size: 2.8rem;
  display: block;
  margin-bottom: 8px;
  line-height: 1;
}
.contact-card-name {
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #3c4858;
  margin-bottom: 4px;
}
.contact-card-value {
  font-size: 0.8rem;
  color: #8492a6;
}
