/* index.html only - header, scenes, ecosystem, gallery, footer.
 * Extracted verbatim from the original index.html <style> block.
 */

/* HEADER */
header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:rgba(5,15,31,0.55); backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(234,242,252,0.08);
}
.header-inner{ display:flex; align-items:center; justify-content:space-between; gap:16px; max-width:1180px; margin:0 auto; padding:12px clamp(20px,5vw,48px); }
.logo-mark{ height:clamp(26px,2.4vw,32px); display:block; filter:drop-shadow(0 0 10px rgba(92,225,230,0.25)); }
.logo-link{ display:flex; align-items:center; }
.nav-links{ display:flex; gap:clamp(12px,1.6vw,22px); }
.nav-links a{ text-decoration:none; color:var(--on-dark-soft); font-size:0.86rem; font-weight:500; }
.nav-links a:hover{ color:var(--on-dark); }
@media (max-width:940px){ .nav-links{ display:none; } }
.header-right{ display:flex; align-items:center; gap:12px; }
.lang-switch{ display:flex; gap:4px; padding:3px; background:rgba(234,242,252,0.06); border-radius:999px; border:1px solid rgba(234,242,252,0.12); }
.lang-btn{ border:none; background:transparent; cursor:pointer; width:26px; height:26px; border-radius:999px; display:flex; align-items:center; justify-content:center; opacity:0.55; transition:opacity .15s ease, box-shadow .15s ease; }
.lang-btn svg{ width:17px; height:17px; border-radius:50%; display:block; }
.lang-btn:hover{ opacity:0.85; }
.lang-btn.active{ opacity:1; box-shadow:0 0 0 2px rgba(5,15,31,0.7), 0 0 0 3px var(--cyan); }
.header-ctas{ display:flex; gap:8px; }
@media (max-width:600px){ .header-ctas .btn-ghost-dark{ display:none; } }

:focus-visible{ outline:2px solid var(--cyan); outline-offset:2px; }

/* ===== NAVEGAÇÃO MOBILE ===== */
/* Abaixo de 940px os links do topo somem; este painel os devolve. */
.nav-toggle{
  display:none; order:3; width:38px; height:38px; padding:0; cursor:pointer;
  align-items:center; justify-content:center;
  background:rgba(234,242,252,0.06); border:1px solid rgba(234,242,252,0.12);
  border-radius:9px; color:var(--on-dark);
}
.nav-toggle:hover{ background:rgba(234,242,252,0.12); }
.nav-toggle:focus-visible{ outline:2px solid var(--cyan); outline-offset:2px; }
.nav-toggle-bars{ display:flex; flex-direction:column; gap:4px; width:17px; }
.nav-toggle-bars i{ display:block; height:1.5px; background:currentColor; border-radius:1px;
  transition:transform .22s ease, opacity .22s ease; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bars i:nth-child(1){ transform:translateY(5.5px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle-bars i:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bars i:nth-child(3){ transform:translateY(-5.5px) rotate(-45deg); }

.nav-scrim{
  position:fixed; inset:0; z-index:40; background:rgba(5,15,31,0.6);
  backdrop-filter:blur(2px); opacity:0; transition:opacity .25s ease;
}
.nav-scrim.is-open{ opacity:1; }

.mobile-nav{
  position:fixed; top:0; right:0; z-index:50;
  width:min(300px,82vw); height:100dvh;
  display:flex; flex-direction:column; gap:4px;
  padding:84px clamp(20px,5vw,28px) 32px;
  background:var(--navy-900); border-left:1px solid var(--line-dark);
  box-shadow:-20px 0 50px -20px rgba(0,0,0,0.6);
  transform:translateX(100%); transition:transform .28s cubic-bezier(.4,0,.2,1);
  overflow-y:auto; overscroll-behavior:contain;
}
.mobile-nav.is-open{ transform:none; }
.mobile-nav a:not(.btn){
  padding:14px 2px; text-decoration:none; color:var(--on-dark);
  font-size:1.02rem; font-weight:500;
  border-bottom:1px solid var(--line-dark);
}
.mobile-nav a:not(.btn):hover{ color:var(--cyan); }
.mobile-nav .btn{ justify-content:center; margin-top:12px; }
.mobile-nav .btn:first-of-type{ margin-top:24px; }
.mobile-nav a:focus-visible{ outline:2px solid var(--cyan); outline-offset:2px; }

/* O seletor de idioma vive no painel quando há painel: a 390px o topo não
   comporta logo + botão + 3 bandeiras + CTA sem ficar apertado. */
.lang-switch-mobile{ align-self:flex-start; margin-bottom:22px; }
.lang-switch-mobile .lang-btn{ width:34px; height:34px; }
.lang-switch-mobile .lang-btn svg{ width:22px; height:22px; }

@media (max-width:940px){
  .nav-toggle{ display:inline-flex; }
  .header-right > .lang-switch{ display:none; }
}
@media (min-width:941px){
  .lang-switch-mobile{ display:none; }
}
@media (prefers-reduced-motion:reduce){
  .nav-scrim, .mobile-nav, .nav-toggle-bars i{ transition:none; }
}
body.nav-open{ overflow:hidden; }
/* O painel já traz Entrar/Cadastrar; oculta o duplicado do topo.
   visibility (e não display) preserva a altura do header, evitando que o
   botão de fechar suba 2px ao abrir. Como o botão é o último item do flex
   (order:3), o espaço reservado fica à esquerda dele e não o desloca. */
body.nav-open .header-ctas{ visibility:hidden; }

/* ===== SCENE 1+2: SCAN STAGE ===== */
.scan-stage{ position:relative; height:230vh; background:var(--navy-950); }
.scan-sticky{ position:sticky; top:0; height:100vh; overflow:hidden; display:flex; align-items:center; justify-content:center; }
.scan-sticky::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(60% 50% at 50% 38%, rgba(61,141,242,0.16), transparent 70%),
    radial-gradient(120% 90% at 50% 100%, rgba(5,103,216,0.14), transparent 60%);
  pointer-events:none;
}
#gl-canvas{ position:absolute; inset:0; width:100%; height:100%; touch-action:pan-y; cursor:grab; }
#gl-canvas:active{ cursor:grabbing; }
.slice-panel{ position:absolute; left:calc(50% + clamp(140px,15vw,210px)); top:50%; transform:translateY(-58%); width:min(190px,18vw); opacity:0; transition:opacity .35s ease; pointer-events:none; }
.slice-svg{ width:100%; height:auto; overflow:visible; display:block; }
.slice-axis{ stroke:rgba(234,242,252,0.22); stroke-width:0.0035; stroke-dasharray:0.01 0.012; }
.slice-diag{ stroke:rgba(234,242,252,0.14); stroke-width:0.003; stroke-dasharray:0.008 0.012; }
.slice-label{ font-family:"IBM Plex Mono",monospace; font-size:0.052px; fill:var(--on-dark-soft); }
.slice-q{ font-family:"IBM Plex Mono",monospace; font-size:0.04px; fill:rgba(234,242,252,0.28); }
#slice-contour path{ fill:none; stroke:#FF4433; stroke-width:0.009; stroke-linecap:round; stroke-linejoin:round; filter:drop-shadow(0 0 3px rgba(255,68,51,0.9)); }
.slice-caption{ margin-top:14px; font-family:"IBM Plex Mono",monospace; font-size:0.6rem; letter-spacing:0.05em; color:var(--on-dark-faint); text-align:center; }
@media (max-width:900px) and (min-width:761px){ .slice-panel{ left:calc(50% + 120px); width:150px; } }
@media (max-width:760px){
  .slice-panel{ left:calc(50% + 70px); width:min(100px,26vw); top:44%; transform:translateY(-50%); }
  .slice-caption{ font-size:0.5rem; margin-top:6px; letter-spacing:0.01em; }
}
@media (max-width:400px){
  .slice-panel{ left:calc(50% + 62px); width:min(88px,24vw); }
}
.stage-overlay{ position:absolute; inset:0; text-align:center; padding:24px; pointer-events:none; transition:opacity .5s ease; }
.stage-overlay .btn, .stage-overlay a{ pointer-events:auto; }
.stage-kicker{ position:absolute; top:9%; left:50%; transform:translateX(-50%); font-family:"IBM Plex Mono",monospace; font-size:clamp(0.84rem,1.8vw,1.05rem); letter-spacing:0.2em; color:var(--cyan); white-space:nowrap; }
.stage-bottom-group{ position:absolute; left:50%; bottom:12%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; width:100%; }
.stage-logo{ height:clamp(64px,11vw,110px); margin-bottom:22px; filter:drop-shadow(0 0 30px rgba(92,225,230,0.4)); }
.stage-message{ display:grid; justify-items:center; }
.stage-tagline{ grid-area:1/1; font-family:"Newsreader",ui-serif,Georgia,"Times New Roman",serif; font-size:clamp(1.3rem,3.4vw,2.2rem); max-width:min(44ch,85vw); white-space:pre-line; color:#CFEFF5; font-weight:500; text-shadow:0 4px 26px rgba(5,15,31,0.85); transition:opacity 1s ease; }
@media (max-width:640px){ .stage-kicker{ top:7%; font-size:0.74rem; white-space:normal; max-width:26ch; } .stage-bottom-group{ bottom:16%; } .stage-logo{ height:clamp(48px,15vw,72px); } }
.stage-scroll{ position:absolute; bottom:34px; left:50%; transform:translateX(-50%); font-family:"IBM Plex Mono",monospace; font-size:0.7rem; letter-spacing:0.16em; color:var(--on-dark-faint); display:flex; flex-direction:column; align-items:center; gap:8px; }
.stage-scroll .chevron{ width:9px; height:9px; border-right:1.5px solid var(--on-dark-faint); border-bottom:1.5px solid var(--on-dark-faint); transform:rotate(45deg); animation:bounce 1.8s ease-in-out infinite; }
@keyframes bounce{ 0%,100%{ transform:rotate(45deg) translateY(0); } 50%{ transform:rotate(45deg) translateY(5px); } }
@media (prefers-reduced-motion:reduce){ .stage-scroll .chevron{ animation:none; } }


/* ===== BABY SYMMETRY SPLIT ===== */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,60px); align-items:center; }
@media (max-width:900px){ .split{ grid-template-columns:1fr; } }
.split-visual{ position:relative; aspect-ratio:1/1; max-width:420px; margin:0 auto; }
.split-visual canvas{ width:100%; height:100%; }
.about-photo{ aspect-ratio:4/3; max-width:480px; border-radius:18px; overflow:hidden; box-shadow:0 18px 44px rgba(0,0,0,0.4), 0 0 0 1px var(--line-dark); }
.about-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.about-split .scene-lede{ margin-top:14px; }
.about-split .scene-lede:first-of-type{ margin-top:18px; }
.baby-analysis-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:clamp(36px,5vw,56px); }
.baby-analysis-item{ margin:0; background:var(--navy-850); border:1px solid var(--line-dark); border-radius:14px; overflow:hidden; padding:18px 18px 0; }
.baby-analysis-item img{ width:78%; max-width:320px; margin:0 auto; aspect-ratio:0.92; object-fit:contain; display:block; background:#fff; border-radius:8px; }
.baby-analysis-item figcaption{ padding:12px 14px; font-size:0.82rem; color:var(--on-dark-soft); line-height:1.4; }
@media (max-width:640px){ .baby-analysis-grid{ grid-template-columns:1fr; } }
.metric-list{ display:flex; flex-direction:column; gap:14px; margin-top:24px; }
.metric-row{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; border-bottom:1px solid var(--line-dark); padding-bottom:12px; }
.metric-name{ font-family:"IBM Plex Mono",monospace; font-size:0.82rem; letter-spacing:0.05em; color:var(--on-dark-soft); }
.metric-val{ font-family:"IBM Plex Mono",monospace; font-weight:600; font-size:1.15rem; color:var(--cyan); font-variant-numeric:tabular-nums; }
.metric-caption{ margin-top:14px; font-size:0.78rem; color:var(--on-dark-faint); }
.scene h2{ font-size:clamp(1.85rem,3.7vw,2.75rem); margin-top:16px; }
.scene-lede{ margin-top:18px; color:var(--on-dark-soft); font-size:1.02rem; line-height:1.65; max-width:56ch; }
.scene-light .scene-lede{ color:var(--paper-ink-soft); }

/* ===== PROGRESS CHART ===== */
.progress-grid{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(30px,5vw,60px); align-items:center; }
@media (max-width:900px){ .progress-grid{ grid-template-columns:1fr; } }
.chart-box{ background:rgba(234,242,252,0.04); border:1px solid var(--line-dark); border-radius:16px; padding:24px; }
.chart-box svg{ width:100%; height:auto; display:block; }
.chart-box img{ width:100%; height:auto; display:block; border-radius:8px; background:#fff; }

/* ===== GONIOBABY ===== */
.gonio-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,60px); align-items:center; }
@media (max-width:900px){ .gonio-grid{ grid-template-columns:1fr; } }
.gonio-stage{ position:relative; background:radial-gradient(60% 60% at 50% 45%, rgba(61,141,242,0.16), transparent 70%), rgba(234,242,252,0.04); border:1px solid var(--line-dark); border-radius:16px; padding:20px; aspect-ratio:1/0.85; display:flex; align-items:center; justify-content:center; touch-action:none; overflow:hidden; }
.gonio-canvas{ width:100%; height:100%; cursor:grab; }
.gonio-canvas:active{ cursor:grabbing; }
.gonio-hint{ position:absolute; left:16px; bottom:14px; font-family:"IBM Plex Mono",monospace; font-size:0.66rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--on-dark-faint); opacity:0.85; pointer-events:none; }
.gonio-video-frame{ position:absolute; right:16px; bottom:16px; width:30%; max-width:108px; aspect-ratio:9/19.5; border-radius:14px; overflow:hidden; border:2px solid rgba(234,242,252,0.35); box-shadow:0 12px 30px rgba(0,0,0,0.55); background:#000; }
.gonio-video-frame video{ width:100%; height:100%; object-fit:cover; display:block; }
.gonio-video-label{ position:absolute; right:16px; bottom:calc(30% + 26px); max-width:108px; font-family:"IBM Plex Mono",monospace; font-size:0.6rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--on-dark-faint); text-align:right; opacity:0.85; pointer-events:none; }
.gonio-readouts{ display:flex; gap:22px; margin-top:18px; flex-wrap:wrap; }
.gonio-readout .mono{ font-size:0.7rem; letter-spacing:0.1em; color:var(--on-dark-faint); }
.gonio-readout .val{ font-family:"IBM Plex Mono",monospace; font-weight:700; font-size:1.7rem; color:var(--cyan); font-variant-numeric:tabular-nums; }

/* ===== ECOSYSTEM ===== */
/* A trama pontilhada cobre a seção inteira, não só a caixa do diagrama.
   Fica atrás do conteúdo e esmaece nas bordas para não virar um retângulo. */
#ecosystem::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image:radial-gradient(rgba(146,197,255,0.14) 1px, transparent 1.6px);
  background-size:24px 24px; background-position:center;
  -webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 50%, #000 45%, transparent 100%);
  mask-image:radial-gradient(ellipse 70% 60% at 50% 50%, #000 45%, transparent 100%);
}
.eco-wrap{ position:relative; z-index:1; max-width:640px; aspect-ratio:400/320; margin:clamp(40px,6vw,64px) auto 0; border-radius:18px; }
.eco-svg-lines{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; z-index:1; }
.eco-line{ stroke:var(--blue-bright); stroke-width:1.6; stroke-linecap:square; fill:none; opacity:0.4; stroke-dasharray:260; stroke-dashoffset:260; transition:stroke-dashoffset 1.4s ease, opacity .3s ease, stroke .3s ease; }
.eco-wrap.is-visible .eco-line{ stroke-dashoffset:0; }
.eco-line.active{ opacity:1; stroke:var(--eco-flow); }
.eco-pin{ fill:#0c1420; stroke:var(--blue-bright); stroke-width:1; opacity:0.55; transition:opacity .3s ease, stroke .3s ease; }
.eco-via{ fill:var(--blue-bright); opacity:0.45; transition:opacity .3s ease, fill .3s ease; }
.eco-wrap.is-flowing .eco-via{ opacity:1; fill:var(--eco-flow); }
.eco-wrap.is-flowing .eco-pin{ opacity:1; stroke:var(--eco-flow); }
.eco-pulse{ fill:var(--eco-flow); opacity:0; transition:opacity .2s ease; }
.eco-pulse.active{ opacity:1; }
.eco-hub{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:150px; height:150px; border-radius:50%; background:#fff6ee; border:2px solid var(--eco-flow); display:flex; align-items:center; justify-content:center; padding:16px; z-index:4; box-shadow:0 0 30px rgba(255,122,41,0.4), 0 6px 20px rgba(0,0,0,0.3); cursor:pointer; transition:transform .25s ease, box-shadow .25s ease; }
.eco-hub img{ width:100%; height:100%; object-fit:contain; pointer-events:none; }
.eco-hub:hover, .eco-hub:focus-visible, .eco-hub.is-active{ transform:translate(-50%,-50%) scale(1.08); box-shadow:0 0 44px rgba(255,122,41,0.7), 0 8px 24px rgba(0,0,0,0.4); }
.eco-node{ position:absolute; transform:translate(-50%,-50%); display:flex; flex-direction:column; align-items:center; gap:8px; background:none; border:none; padding:6px; margin:0; cursor:pointer; z-index:2; font:inherit; -webkit-tap-highlight-color:transparent; }
.eco-node-photo{ width:72px; height:72px; border-radius:50%; overflow:hidden; border:1.5px solid var(--line-dark); background:var(--navy-900); transition:width .3s cubic-bezier(.3,.9,.4,1), height .3s cubic-bezier(.3,.9,.4,1), border-radius .3s ease, border-color .25s ease, box-shadow .25s ease; }
.eco-node-photo img{ width:100%; height:100%; object-fit:cover; display:block; transition:object-fit .3s ease; }
.eco-node-photo--placeholder{ display:flex; align-items:center; justify-content:center; color:var(--on-dark-faint); }
.eco-node-photo--placeholder svg{ width:56%; height:56%; }
.eco-node-label{ font-family:"IBM Plex Mono",monospace; font-size:9px; letter-spacing:.03em; color:var(--on-dark-soft); white-space:nowrap; transition:color .25s ease; }
.eco-node:hover .eco-node-photo, .eco-node:focus-visible .eco-node-photo{ width:148px; height:148px; border-radius:20px; border-color:var(--cyan); box-shadow:0 10px 30px rgba(0,0,0,0.5), 0 0 22px rgba(92,225,230,0.55); z-index:6; }
.eco-node:hover .eco-node-photo img, .eco-node:focus-visible .eco-node-photo img{ object-fit:contain; background:var(--navy-950); }
.eco-node:hover .eco-node-label, .eco-node:focus-visible .eco-node-label{ color:var(--cyan); }
@media (max-width:640px){ .eco-node-photo{ width:52px; height:52px; } .eco-node-label{ font-size:7.5px; } .eco-hub{ width:104px; height:104px; padding:12px; } .eco-node:hover .eco-node-photo, .eco-node:focus-visible .eco-node-photo{ width:102px; height:102px; border-radius:16px; } }

/* ===== REAL PHOTOS GALLERY ===== */
.real-grid{ display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:150px; grid-auto-flow:dense; gap:12px; margin-top:clamp(32px,5vw,52px); }
.real-item{ position:relative; border-radius:12px; overflow:hidden; border:1px solid var(--line-dark); background:var(--navy-900); }
.real-item img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.real-item:hover img{ transform:scale(1.06); }
.real-item.tall{ grid-row:span 2; }
.real-item.wide{ grid-column:span 2; }
.real-caption{ position:absolute; left:0; right:0; bottom:0; padding:10px 12px; font-family:"IBM Plex Mono",monospace; font-size:0.66rem; letter-spacing:0.02em; color:var(--on-dark); background:linear-gradient(0deg, rgba(5,15,31,0.85), transparent); opacity:0; transition:opacity .25s ease; }
.real-item:hover .real-caption{ opacity:1; }
@media (max-width:720px){ .real-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:130px; } .real-item.wide{ grid-column:span 2; } }

/* ===== SCIENCE: FUTURE VISUAL ===== */
.science-future{ margin-top:clamp(32px,5vw,48px); border-radius:14px; overflow:hidden; border:1px solid var(--line-paper); background:#0c1420; }
.science-future img{ width:100%; height:auto; display:block; }
.science-future-cap{ padding:12px 16px; font-family:"IBM Plex Mono",monospace; font-size:0.72rem; letter-spacing:0.04em; color:var(--paper-ink-soft); text-align:center; }

/* ===== GLOBAL ===== */
.global-box{ position:relative; max-width:520px; margin:clamp(28px,5vw,48px) auto 0; aspect-ratio:1/1; }
.global-box canvas{ width:100%; height:100%; }
.globe-tooltip{ position:absolute; transform:translate(-50%,-100%); background:var(--navy-950); border:1px solid var(--line-dark); color:var(--on-dark); font-family:"IBM Plex Mono",monospace; font-size:0.7rem; letter-spacing:0.04em; padding:4px 10px; border-radius:6px; white-space:nowrap; pointer-events:none; opacity:0; transition:opacity .15s ease; box-shadow:0 8px 20px rgba(0,0,0,0.4); }
.global-countries{
  max-width:640px; margin:24px auto 0; text-align:center; font-family:"IBM Plex Mono",monospace;
  font-size:0.78rem; letter-spacing:0.03em; line-height:1.9; color:var(--on-dark-soft);
  opacity:0; transition:opacity 1s ease;
}
.global-countries.on{ opacity:1; }
.global-stats{ display:flex; justify-content:center; gap:clamp(36px,7vw,80px); margin-top:clamp(36px,6vw,56px); flex-wrap:wrap; }
.global-stats .num{ font-family:"Newsreader",ui-serif,Georgia,"Times New Roman",serif; font-weight:700; font-size:clamp(2rem,4.4vw,2.8rem); color:var(--on-dark); }
.global-stats .label{ margin-top:4px; font-size:0.85rem; color:var(--on-dark-soft); }

/* ===== SCIENCE ===== */
.science-cols{ display:grid; grid-template-columns:1.4fr 1fr 0.85fr; gap:clamp(28px,4vw,44px); align-items:start; margin-top:clamp(36px,5vw,52px); }
@media (max-width:1000px){ .science-cols{ grid-template-columns:1fr 1fr; } }
@media (max-width:700px){ .science-cols{ grid-template-columns:1fr; } }
.science-col{ border-top:2px solid var(--blue); padding-top:16px; }
.science-col h4{ font-family:"IBM Plex Mono",monospace; font-size:0.76rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--blue); }
.science-col p{ margin-top:10px; font-size:0.88rem; line-height:1.58; color:var(--paper-ink-soft); }
.science-col p + p{ margin-top:8px; }
.science-ref{ font-size:0.76rem !important; line-height:1.5; color:var(--paper-ink-faint,var(--paper-ink-soft)); }
.science-protocol-links{ display:flex; flex-direction:column; gap:8px; margin-top:14px; }
.science-protocol-link{ display:inline-block; font-size:0.84rem; font-weight:600; color:var(--blue); text-decoration:none; }
.science-protocol-link:hover{ text-decoration:underline; }
.science-list{ list-style:none; margin:10px 0 0; padding:0; display:flex; flex-direction:column; gap:9px; }
.science-list li{ position:relative; padding-left:16px; font-size:0.92rem; line-height:1.45; color:var(--paper-ink-soft); }
.science-list li::before{ content:"•"; position:absolute; left:0; top:0; color:var(--blue); font-weight:700; }
.science-center{ text-align:center; max-width:36ch; margin:clamp(40px,6vw,60px) auto 0; font-size:clamp(1.3rem,2.6vw,1.8rem); }

/* ===== FINAL ===== */
.final-scene{ min-height:88vh; display:flex; align-items:center; justify-content:center; text-align:center; }
.final-split{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:clamp(32px,6vw,80px); align-items:center; text-align:left; width:100%; }
.final-logo{ height:clamp(42px,8vw,68px); margin:0 0 22px; filter:drop-shadow(0 0 30px rgba(92,225,230,0.35)); }
.final-tagline{ font-family:"Newsreader",ui-serif,Georgia,"Times New Roman",serif; font-size:clamp(1.3rem,3vw,2rem); max-width:18ch; margin:0; }
.final-ctas{ display:flex; justify-content:flex-start; gap:14px; flex-wrap:wrap; margin-top:32px; }
.final-visual{ position:relative; border-radius:20px; overflow:hidden; aspect-ratio:4/3; box-shadow:0 18px 44px rgba(0,0,0,0.4), 0 0 0 1px var(--line-dark); }
.final-visual img{ width:100%; height:100%; object-fit:cover; display:block; }
.final-visual::after{ content:""; position:absolute; inset:0; background:linear-gradient(115deg, rgba(5,15,31,0.4), transparent 55%); pointer-events:none; }
@media (max-width:820px){
  .final-split{ grid-template-columns:1fr; text-align:center; }
  .final-copy{ order:2; }
  .final-visual{ order:1; max-width:420px; margin:0 auto; }
  .final-logo{ margin:0 auto 22px; }
  .final-tagline{ margin:0 auto; }
  .final-ctas{ justify-content:center; }
}

/* ===== FOOTER ===== */
footer{ background:var(--navy-950); border-top:1px solid var(--line-dark); padding:36px 0; }
.footer-inner{ display:flex; flex-wrap:wrap; gap:10px 24px; justify-content:space-between; align-items:center; font-size:0.8rem; color:var(--on-dark-faint); }
.footer-links{ display:flex; gap:18px; flex-wrap:wrap; }
.footer-links a{ text-decoration:none; color:var(--on-dark-faint); }
.footer-links a:hover{ color:var(--on-dark); }
.footer-contact{ border-top:1px solid var(--line-dark); margin-top:22px; padding-top:22px; display:flex; flex-wrap:wrap; gap:10px 28px; justify-content:space-between; align-items:flex-start; font-size:0.8rem; color:var(--on-dark-faint); }
.footer-contact-addr{ max-width:340px; line-height:1.5; }
.footer-contact-links{ display:flex; flex-wrap:wrap; gap:8px 22px; }
.footer-contact-links a{ display:flex; align-items:center; gap:7px; text-decoration:none; color:var(--on-dark-faint); white-space:nowrap; }
.footer-contact-links a:hover{ color:var(--cyan); }
.footer-contact-links svg{ width:14px; height:14px; flex:none; opacity:0.85; }
.footer-phone-group{ display:flex; align-items:center; gap:9px; }
.footer-whatsapp{ color:#25D366 !important; opacity:0.9; }
.footer-whatsapp svg{ width:16px; height:16px; opacity:1 !important; }
.footer-whatsapp:hover{ opacity:1; color:#25D366 !important; }
