/* =========================================================
   Dra. Mitzy Torres — Oftalmóloga | Retinóloga
   Hoja de estilos principal
   Tipografías de marca: Athelas Bold Italic (display) + Roboto (texto)
   Nota: Athelas no está disponible como web font de uso libre;
   se utiliza "Lora" (itálica, calidez similar) como reemplazo fiel
   al espíritu del manual de marca. El logo original conserva Athelas.
   ========================================================= */

:root{
  /* ---- Paleta (extraída del manual de marca) ---- */
  --navy: #2E2E42;
  --navy-deep: #1E1E2C;
  --green: #5A8E82;
  --green-dark: #457169;
  --green-soft: #EEF4F1;
  --blue-tint: #E9EFF7;
  --paper: #FCFDFE;
  --white: #FFFFFF;
  --text-muted: #62626F;
  --line: rgba(46,46,66,0.10);

  /* ---- Tipografía ---- */
  --font-display: 'Lora', 'Athelas', Georgia, serif;
  --font-body: 'Roboto', Arial, sans-serif;

  /* ---- Ritmo / radios ---- */
  --radius: 6px;
  --radius-lg: 18px;
  --shadow-soft: 0 10px 40px -18px rgba(30,30,44,0.35);
  --shadow-card: 0 14px 34px -20px rgba(30,30,44,0.45);
  --container: 1180px;
  --section-pad: clamp(4.5rem, 9vw, 8rem);
}

/* ---------------- Reset base ---------------- */
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family: var(--font-body);
  color: var(--navy);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  line-height: 1.7;
}
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3,h4{ font-family: var(--font-display); margin:0; color: var(--navy); font-weight:700; }
p{ margin:0; }
button{ font-family: inherit; cursor:pointer; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
}

.container{
  width:100%;
  max-width: var(--container);
  margin:0 auto;
  padding:0 clamp(1.25rem, 4vw, 2.5rem);
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  font-family: var(--font-body);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color: var(--green-dark);
}
.eyebrow .eye-icon{ width:18px; height:18px; }

.section-head{
  max-width: 640px;
  margin-bottom: clamp(2.5rem, 5vw, 3.75rem);
}
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head h2{
  font-size: clamp(2rem, 3.4vw, 2.7rem);
  line-height:1.15;
  margin-top:.65rem;
}
.section-head p{
  margin-top:1rem;
  color: var(--text-muted);
  font-size:1.05rem;
  max-width: 52ch;
}
.section-head.center p{ margin-left:auto; margin-right:auto; }

/* ---------------- Botones ---------------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  padding: .95rem 1.9rem;
  border-radius: var(--radius);
  font-weight:700;
  font-size:.95rem;
  letter-spacing:.01em;
  border: 1.5px solid transparent;
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
  white-space: nowrap;
}
.btn svg{ width:18px; height:18px; flex-shrink:0; }
.btn-primary{
  background: var(--green);
  color: var(--white);
  box-shadow: 0 14px 30px -14px rgba(90,142,130,0.65);
}
.btn-primary:hover{
  background: var(--green-dark);
  transform: translateY(-2px);
  box-shadow: 0 18px 34px -14px rgba(90,142,130,0.75);
}
.btn-outline{
  background: transparent;
  border-color: rgba(255,255,255,0.55);
  color: var(--white);
}
.btn-outline:hover{
  background: rgba(255,255,255,0.12);
  border-color: var(--white);
  transform: translateY(-2px);
}
.btn-outline-dark{
  background: transparent;
  border-color: var(--navy);
  color: var(--navy);
}
.btn-outline-dark:hover{
  background: var(--navy);
  color: var(--white);
  transform: translateY(-2px);
}

/* ---------------- Header / Nav ---------------- */
.site-header{
  position: fixed;
  top:0; left:0; right:0;
  z-index: 500;
  padding: 1.35rem 0;
  transition: background .35s ease, padding .35s ease, box-shadow .35s ease;
}
.site-header .container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
}
.site-header.is-scrolled{
  background: rgba(252,253,254,0.92);
  backdrop-filter: blur(10px);
  padding: .8rem 0;
  box-shadow: 0 8px 30px -20px rgba(30,30,44,0.4);
}
.brand-logo{
  height: 40px;
  width:auto;
  transition: filter .3s ease;
}
.site-header:not(.is-scrolled) .brand-logo{
  filter: brightness(0) invert(1);
}

.nav-list{
  display:flex;
  align-items:center;
  gap: clamp(1.1rem, 2vw, 2.1rem);
}
.nav-list a{
  font-size:.82rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color: var(--white);
  position:relative;
  padding: .3rem 0;
  transition: color .3s ease;
}
.nav-list a::after{
  content:"";
  position:absolute;
  left:0; bottom:-2px;
  width:0%;
  height:2px;
  background: var(--green);
  transition: width .3s ease;
}
.nav-list a:hover::after,
.nav-list a.is-active::after{ width:100%; }
.site-header.is-scrolled .nav-list a{ color: var(--navy); }

.nav-cta{ display:flex; align-items:center; gap:1.6rem; }
.nav-cta .btn{ padding: .68rem 1.35rem; font-size:.82rem; }
.site-header:not(.is-scrolled) .nav-cta .btn-outline-dark{
  border-color: rgba(255,255,255,0.6);
  color: var(--white);
}
.site-header:not(.is-scrolled) .nav-cta .btn-outline-dark:hover{
  background: rgba(255,255,255,0.14);
  color:#fff;
}

.menu-toggle{
  display:none;
  width:44px; height:44px;
  border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,0.5);
  background: transparent;
  position: relative;
  flex-shrink:0;
}
.site-header.is-scrolled .menu-toggle{ border-color: var(--line); }
.menu-toggle span{
  position:absolute; left:50%; top:50%;
  width:18px; height:2px;
  background: var(--white);
  transform: translate(-50%, -4px);
  transition: all .3s ease;
}
.menu-toggle span + span{ transform: translate(-50%, 3px); }
.site-header.is-scrolled .menu-toggle span{ background: var(--navy); }
.menu-toggle.is-open span:first-child{ transform: translate(-50%,-50%) rotate(45deg); }
.menu-toggle.is-open span:last-child{ transform: translate(-50%,-50%) rotate(-45deg); }

/* ---------------- Hero ---------------- */
.hero{
  position:relative;
  min-height: 100svh;
  display:flex;
  align-items:flex-end;
  color: var(--white);
  overflow:hidden;
  background: var(--navy-deep);
}
.hero-media{
  position:absolute; inset:0;
  z-index:0;
}
.hero-media img{
  width:100%; height:100%; object-fit:cover; object-position: 50% 22%;
}
.hero-media::before{
  content:"";
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(30,30,44,0.55) 0%, rgba(30,30,44,0.35) 35%, rgba(20,20,30,0.88) 100%);
}
.hero-media::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(100deg, rgba(30,30,44,0.75) 0%, rgba(30,30,44,0.15) 55%, transparent 80%);
}
.hero-waves{
  position:absolute;
  right:-10%;
  top:-10%;
  width:70%;
  height:120%;
  opacity:.18;
  z-index:1;
  pointer-events:none;
}
.hero-inner{
  position:relative;
  z-index:2;
  width:100%;
  padding-bottom: clamp(3.5rem, 7vw, 6rem);
  padding-top: 9rem;
}
.hero-eyebrow{
  color: var(--green);
  filter: none;
}
.hero-eyebrow .eye-icon path,
.hero-eyebrow .eye-icon circle{ stroke: var(--green); }

.hero h1{
  color: var(--white);
  font-size: clamp(2.5rem, 6vw, 4.4rem);
  line-height:1.08;
  max-width: 16ch;
  margin-top: 1.1rem;
  letter-spacing: -0.01em;
}
.hero h1 em{
  color: var(--green);
  font-style: italic;
}
.hero-desc{
  margin-top: 1.6rem;
  max-width: 44ch;
  font-size: 1.12rem;
  color: rgba(255,255,255,0.86);
}
.hero-actions{
  margin-top: 2.4rem;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap: 1.4rem;
}
.hero-actions .btn-primary{ padding: 1.05rem 2.2rem; font-size:1rem; }
.hero-note{
  display:flex;
  align-items:center;
  gap:.6rem;
  font-size:.85rem;
  color: rgba(255,255,255,0.7);
}
.hero-note svg{ width:16px; height:16px; color: var(--green); }

.hero-scroll{
  position:absolute;
  right: clamp(1.25rem, 4vw, 2.5rem);
  bottom: 2.2rem;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.6rem;
  color: rgba(255,255,255,0.75);
  font-size:.7rem;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.hero-scroll .line{
  width:1px; height:42px;
  background: linear-gradient(180deg, rgba(255,255,255,0.8), transparent);
  animation: scrollLine 2.2s ease-in-out infinite;
}
@keyframes scrollLine{
  0%{ transform: scaleY(0.4); transform-origin: top; opacity:.4; }
  50%{ transform: scaleY(1); transform-origin: top; opacity:1; }
  100%{ transform: scaleY(0.4); transform-origin: bottom; opacity:.4; }
}

.hero-float-card{
  position:absolute;
  z-index:2;
  right: clamp(1.5rem, 5vw, 5rem);
  top: 8.5rem;
  width: 230px;
  background: rgba(252,253,254,0.96);
  border-radius: var(--radius-lg);
  padding: .6rem .6rem .9rem;
  box-shadow: var(--shadow-soft);
}
.hero-float-card img{
  width:100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: calc(var(--radius-lg) - 6px);
}
.hero-float-caption{
  display:flex;
  align-items:center;
  gap:.55rem;
  margin-top:.7rem;
  padding: 0 .3rem;
  color: var(--navy);
}
.hero-float-caption .eye-icon{ width:18px; height:18px; color: var(--green-dark); flex-shrink:0; }
.hero-float-caption span{ font-size:.78rem; font-weight:500; line-height:1.35; }
@media (max-width: 1024px){
  .hero-float-card{ display:none; }
}

/* ---------------- Franja de cita (quote band) ---------------- */
.quote-band{
  position:relative;
  padding: clamp(4.5rem, 8vw, 6.5rem) 0;
  color: var(--white);
  overflow:hidden;
}
.quote-band-media{ position:absolute; inset:0; }
.quote-band-media img{ width:100%; height:100%; object-fit:cover; object-position: center 30%; }
.quote-band-media::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(30,30,44,0.88), rgba(30,30,44,0.82));
}
.quote-band .container{
  position:relative;
  z-index:2;
  max-width: 780px;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.quote-band .eye-icon{ width:34px; height:34px; color: var(--green); margin-bottom:1.3rem; }
.quote-band-text{
  font-family: var(--font-display);
  font-style: italic;
  font-weight:500;
  font-size: clamp(1.35rem, 2.6vw, 1.9rem);
  line-height:1.5;
}
.quote-band-author{
  display:block;
  margin-top:1.4rem;
  font-size:.85rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color: rgba(255,255,255,0.65);
}

/* ---------------- Reveal on scroll ---------------- */
.reveal{
  opacity:0;
  transform: translateY(28px);
  transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1);
}
.reveal.is-visible{ opacity:1; transform:none; }
.reveal-delay-1{ transition-delay:.1s; }
.reveal-delay-2{ transition-delay:.2s; }
.reveal-delay-3{ transition-delay:.3s; }
.reveal-delay-4{ transition-delay:.4s; }

/* ---------------- Quién soy ---------------- */
.about{
  padding: var(--section-pad) 0;
  background: var(--white);
  position:relative;
}
.about .container{
  display:grid;
  grid-template-columns: .85fr 1.15fr;
  gap: clamp(2.5rem, 6vw, 5.5rem);
  align-items:center;
}
.about-media{
  position:relative;
}
.about-media .frame{
  position:relative;
  border-radius: var(--radius-lg);
  overflow:hidden;
  box-shadow: var(--shadow-soft);
  aspect-ratio: 4/5;
}
.about-media .frame img{ width:100%; height:100%; object-fit:cover; }
.about-media .frame-outline{
  position:absolute;
  top:22px; left:22px;
  width:100%; height:100%;
  border: 2px solid var(--green);
  border-radius: var(--radius-lg);
  z-index:-1;
}
.about-badge{
  position:absolute;
  bottom: -1.6rem;
  left: -1.6rem;
  background: var(--navy);
  color: var(--white);
  padding: 1.15rem 1.4rem;
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  min-width: 190px;
}
.about-badge strong{
  display:block;
  font-family: var(--font-display);
  font-size:1.9rem;
  color: var(--green);
  line-height:1;
}
.about-badge span{
  display:block;
  margin-top:.35rem;
  font-size:.78rem;
  color: rgba(255,255,255,0.75);
  letter-spacing:.03em;
}
.about-copy .section-head{ margin-bottom:1.6rem; }
.about-copy p{
  color: var(--text-muted);
  font-size:1.05rem;
  margin-bottom:1.1rem;
}
.about-copy p:last-of-type{ margin-bottom:0; }
.about-copy .lead{
  font-family: var(--font-display);
  font-style: italic;
  font-size:1.35rem;
  color: var(--navy);
  line-height:1.5;
}
.about-values{
  margin-top:2.2rem;
  display:grid;
  grid-template-columns: repeat(2,1fr);
  gap:1.1rem 1.6rem;
}
.about-values li{
  display:flex;
  gap:.75rem;
  align-items:flex-start;
  font-size:.95rem;
  color: var(--navy);
}
.about-values .eye-icon{
  width:20px; height:20px;
  flex-shrink:0;
  margin-top:.15rem;
  color: var(--green);
}
.about-values b{ display:block; font-weight:700; }
.about-values small{ color: var(--text-muted); font-weight:400; }

/* ---------------- Especialidades ---------------- */
.specialties{
  padding: var(--section-pad) 0;
  background: var(--green-soft);
  position:relative;
  overflow:hidden;
}
.specialties-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.4rem;
}
.spec-card{
  background: var(--white);
  border-radius: var(--radius-lg);
  padding: 2.1rem 1.9rem;
  box-shadow: var(--shadow-card);
  border: 1px solid rgba(46,46,66,0.05);
  transition: transform .35s ease, box-shadow .35s ease;
  display:flex;
  flex-direction:column;
  gap: 1.1rem;
}
.spec-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 22px 44px -18px rgba(30,30,44,0.4);
}
.spec-icon{
  width:52px; height:52px;
  border-radius:50%;
  background: var(--green-soft);
  display:flex; align-items:center; justify-content:center;
  color: var(--green-dark);
}
.spec-icon svg{ width:26px; height:26px; }
.spec-card.is-featured .spec-icon{ background: var(--navy); color: var(--green); }
.spec-card h3{ font-size:1.22rem; line-height:1.3; }
.spec-card p{ color: var(--text-muted); font-size:.96rem; }
.spec-card .spec-tag{
  margin-top:auto;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color: var(--green-dark);
}

/* ---------------- Trayectoria ---------------- */
.trajectory{
  padding: var(--section-pad) 0;
  background: var(--white);
}
.trajectory .container{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2.5rem, 6vw, 5rem);
  align-items:start;
}
.timeline{
  position:relative;
  padding-left: 2rem;
  border-left: 2px solid var(--line);
}
.timeline-item{
  position:relative;
  padding-bottom: 2.1rem;
}
.timeline-item:last-child{ padding-bottom:0; }
.timeline-item::before{
  content:"";
  position:absolute;
  left: -2.44rem;
  top: .2rem;
  width:12px; height:12px;
  border-radius:50%;
  background: var(--green);
  box-shadow: 0 0 0 4px var(--green-soft);
}
.timeline-item .t-year{
  font-family: var(--font-display);
  font-style: italic;
  color: var(--green-dark);
  font-weight:700;
  font-size:1.05rem;
}
.timeline-item h4{
  font-size:1.05rem;
  margin-top:.2rem;
  font-family: var(--font-body);
  font-weight:700;
}
.timeline-item p{
  margin-top:.3rem;
  color: var(--text-muted);
  font-size:.94rem;
}

.trajectory-side{
  background: var(--navy);
  color: var(--white);
  border-radius: var(--radius-lg);
  padding: clamp(2rem, 4vw, 2.8rem);
  position: sticky;
  top: 7rem;
}
.trajectory-side h3{
  color: var(--white);
  font-size:1.5rem;
}
.trajectory-side p{
  color: rgba(255,255,255,0.75);
  margin-top: .9rem;
  font-size:.98rem;
}
.stat-grid{
  display:grid;
  grid-template-columns: repeat(2,1fr);
  gap: 1.4rem;
  margin: 2rem 0 2.2rem;
  padding: 1.8rem 0;
  border-top: 1px solid rgba(255,255,255,0.14);
  border-bottom: 1px solid rgba(255,255,255,0.14);
}
.stat-grid .stat strong{
  display:block;
  font-family: var(--font-display);
  font-size:2.1rem;
  color: var(--green);
  line-height:1;
}
.stat-grid .stat span{
  display:block;
  margin-top:.4rem;
  font-size:.8rem;
  color: rgba(255,255,255,0.7);
}
.stat-grid .stat-wide{
  grid-column: 1 / -1;
}
.affiliation-title{
  margin-top:1.6rem;
  font-family: var(--font-display);
  font-size:1.05rem;
  font-weight:600;
  font-style:italic;
  color: var(--green);
}
.trajectory-side .btn{ margin-top: 2rem; width:100%; justify-content:center; }

/* ---------------- CTA con foto ---------------- */
.cta-photo{
  position:relative;
  padding: clamp(5rem, 10vw, 8rem) 0;
  color: var(--white);
  overflow:hidden;
  background: var(--navy-deep);
}
.cta-photo-bg{
  position:absolute; inset:0;
}
.cta-photo-bg img{
  width:100%; height:100%; object-fit:cover; object-position: center 30%;
  opacity:.55;
}
.cta-photo-bg::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(120deg, rgba(30,30,44,0.94) 20%, rgba(30,30,44,0.55) 60%, rgba(90,142,130,0.35) 100%);
}
.cta-photo .container{ position:relative; z-index:2; }
.cta-photo-content{ max-width: 620px; }
.cta-photo h2{
  color: var(--white);
  font-size: clamp(2.1rem, 4vw, 3.1rem);
  line-height:1.15;
  margin-top: .9rem;
}
.cta-photo h2 em{ color: var(--green); font-style:italic; }
.cta-photo p{
  margin-top:1.3rem;
  font-size:1.08rem;
  color: rgba(255,255,255,0.82);
  max-width:48ch;
}
.cta-photo .hero-actions{ margin-top:2.2rem; }

/* ---------------- Contacto ---------------- */
.contact{
  padding: var(--section-pad) 0;
  background: var(--blue-tint);
}
.contact .container{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap: clamp(2.5rem, 6vw, 5rem);
}
.contact-cards{
  display:grid;
  gap: 1.1rem;
}
.contact-card{
  display:flex;
  gap:1.1rem;
  align-items:flex-start;
  background: var(--white);
  border-radius: var(--radius-lg);
  padding: 1.5rem 1.6rem;
  box-shadow: var(--shadow-card);
}
.contact-card .c-icon{
  width:46px; height:46px;
  border-radius:50%;
  background: var(--green-soft);
  color: var(--green-dark);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.contact-card .c-icon svg{ width:22px; height:22px; }
.contact-card h4{ font-size:1.02rem; font-family: var(--font-body); font-weight:700; }
.contact-card p, .contact-card a{ color: var(--text-muted); font-size:.94rem; margin-top:.2rem; display:block; }
.contact-card a:hover{ color: var(--green-dark); }

.contact-panel{
  background: var(--navy);
  color: var(--white);
  border-radius: var(--radius-lg);
  padding: clamp(2.2rem, 5vw, 3rem);
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
  overflow:hidden;
}
.contact-panel::before{
  content:"";
  position:absolute;
  right:-40px; bottom:-40px;
  width:220px; height:220px;
  opacity:.12;
}
.contact-panel .eyebrow{ color: var(--green); }
.contact-panel h3{
  color:var(--white);
  font-size: clamp(1.6rem, 3vw, 2.1rem);
  margin-top:.7rem;
  line-height:1.25;
}
.contact-panel p{
  color: rgba(255,255,255,0.78);
  margin-top:1rem;
  font-size:1rem;
}
.contact-panel .btn{ margin-top:1.9rem; align-self:flex-start; }
.contact-panel .btn-primary{
  padding: 1.05rem 2.1rem;
  font-size:1rem;
}

/* ---------------- Footer ---------------- */
.site-footer{
  background: var(--navy-deep);
  color: rgba(255,255,255,0.7);
  padding: 3.4rem 0 2rem;
}
.footer-top{
  display:flex;
  flex-wrap:wrap;
  gap:2.5rem;
  justify-content:space-between;
  align-items:flex-start;
  padding-bottom: 2.4rem;
  border-bottom: 1px solid rgba(255,255,255,0.12);
}
.footer-brand .brand-logo{ height:38px; filter: brightness(0) invert(1); }
.footer-brand p{
  margin-top:1.1rem;
  max-width: 34ch;
  font-size:.92rem;
  color: rgba(255,255,255,0.55);
}
.footer-nav{
  display:flex;
  flex-wrap:wrap;
  gap: 2.5rem 3rem;
}
.footer-col h5{
  font-size:.76rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color: var(--green);
  margin-bottom:.9rem;
}
.footer-col ul{ display:grid; gap:.55rem; }
.footer-col a{ font-size:.92rem; color: rgba(255,255,255,0.72); transition: color .25s ease; }
.footer-col a:hover{ color: var(--white); }
.footer-bottom{
  padding-top: 1.6rem;
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  justify-content:space-between;
  font-size:.8rem;
  color: rgba(255,255,255,0.45);
}

/* ---------------- WhatsApp flotante ---------------- */
.wa-float{
  position:fixed;
  right: 1.4rem;
  bottom: 1.4rem;
  z-index: 600;
  width:58px; height:58px;
  border-radius:50%;
  background: var(--green);
  color:var(--white);
  display:flex; align-items:center; justify-content:center;
  box-shadow: 0 14px 34px -10px rgba(90,142,130,0.75);
  transition: transform .3s ease;
}
.wa-float:hover{ transform: scale(1.08); }
.wa-float svg{ width:28px; height:28px; }

/* ---------------- Responsive ---------------- */
@media (max-width: 1024px){
  .about .container{ grid-template-columns: 1fr; }
  .about-media{ max-width: 420px; margin: 0 auto; }
  .specialties-grid{ grid-template-columns: repeat(2,1fr); }
  .trajectory .container{ grid-template-columns: 1fr; }
  .trajectory-side{ position:static; }
  .contact .container{ grid-template-columns: 1fr; }
}

@media (max-width: 780px){
  .nav-list, .nav-cta .btn-outline-dark span.full{ display:none; }
  .menu-toggle{ display:block; }
  .nav-cta{ gap: .8rem; }

  .nav-list{
    position: fixed;
    inset: 0;
    background: var(--navy-deep);
    flex-direction: column;
    justify-content:center;
    gap: 2.1rem;
    transform: translateY(-100%);
    opacity:0;
    visibility:hidden;
    transition: transform .45s ease, opacity .4s ease, visibility .45s;
  }
  .nav-list.is-open{
    transform: translateY(0);
    opacity:1;
    visibility:visible;
  }
  .nav-list a{ font-size:1.3rem; color:var(--white); }

  .specialties-grid{ grid-template-columns: 1fr; }
  .about-values{ grid-template-columns: 1fr; }
  .about-badge{ position:static; margin-top:1.2rem; display:inline-block; }
  .about-media .frame-outline{ display:none; }
  .stat-grid{ grid-template-columns: 1fr 1fr; }
}

@media (max-width: 480px){
  .hero-inner{ padding-top: 7.5rem; }
  .hero-actions{ flex-direction:column; align-items:flex-start; }
  .section-head.center{ text-align:left; }
  .section-head.center p{ margin-left:0; }
}
