/* === nav-footer === */
/* ============================================================
   V2 · nav-footer — shell compartilhado (header + footer)
   Registro dark. Escopo: .s-nav-footer. Só tokens semânticos.
   ============================================================ */

/* --- header: a barra precisa caber sem quebra de linha --- */
.s-nav-footer .brand .wm { white-space: nowrap; }
.s-nav-footer .primary-nav { gap: 20px; }
.s-nav-footer .primary-nav a { white-space: nowrap; font-size: 0.85rem; }
.s-nav-footer .primary-nav .btn { font-size: 0.82rem; padding: 0.7em 1.1em; }
/* o color de .primary-nav a (global) vence o .btn-primary — restaura o ink do CTA */
.s-nav-footer .primary-nav a.btn-primary { color: var(--cta-ink); }

/* --- header: marcador de página corrente (tick de instrumento) --- */
.s-nav-footer .primary-nav a[aria-current="page"] {
  box-shadow: inset 0 -1px 0 var(--violet);
}

/* --- colapsa para hambúrguer antes de a barra estourar (desktop estreito) --- */
@media (max-width: 1240px) {
  .s-nav-footer .primary-nav { display: none; }
  .s-nav-footer .primary-nav.open {
    display: flex; position: absolute; top: 68px; left: 0; right: 0;
    flex-direction: column; align-items: stretch; gap: 0;
    padding: 12px var(--pad-x) 20px;
    background: var(--bg); border-bottom: 1px solid var(--line);
  }
  .s-nav-footer .primary-nav.open a { padding: 12px 4px; border-top: 1px solid var(--line); font-size: 0.9rem; }
  .s-nav-footer .primary-nav.open .btn { margin-top: 12px; justify-content: center; font-size: 0.85rem; }
  .s-nav-footer .nav-toggle { display: grid; place-items: center; }
}

/* --- nav toggle: 3 hairlines -> X (só transform/opacity, <=200ms) --- */
.s-nav-footer .nav-toggle svg { overflow: visible; }
.s-nav-footer .nav-toggle svg line {
  transition: transform var(--dur) var(--ease-out), opacity var(--dur) var(--ease-out);
  transform-box: fill-box;
  transform-origin: center;
}
.s-nav-footer .nav-toggle[aria-expanded="true"] svg .l1 { transform: translateY(4.5px) rotate(45deg); }
.s-nav-footer .nav-toggle[aria-expanded="true"] svg .l2 { opacity: 0; }
.s-nav-footer .nav-toggle[aria-expanded="true"] svg .l3 { transform: translateY(-4.5px) rotate(-45deg); }

/* --- footer: bloco de brand --- */
.s-nav-footer .foot-brand .brand { margin-bottom: 20px; }
.s-nav-footer .foot-brand .foot-title { font-size: 1.5rem; font-weight: 600; }
.s-nav-footer .foot-brand p { color: var(--ink2); font-size: var(--fs-small); max-width: 46ch; }

/* --- footer: headings de coluna --- */
.s-nav-footer .foot-explore h3,
.s-nav-footer .foot-contact h3 {
  font-size: 1.125rem;
  margin-bottom: 18px;
}

/* --- footer: Explore como índice regido por hairlines --- */
.s-nav-footer .foot-links { list-style: none; }
.s-nav-footer .foot-links li { border-top: 1px solid var(--line); }
.s-nav-footer .foot-links a {
  display: block; padding: 9px 0;
  color: var(--ink2); text-decoration: none; font-size: var(--fs-small);
  transition: color var(--dur) var(--ease-out), transform var(--dur) var(--ease-out);
}
.s-nav-footer .foot-links a:hover { color: var(--ink1); transform: translateX(4px); }
.s-nav-footer .foot-links a[aria-current="page"] {
  color: var(--ink1);
  box-shadow: inset 2px 0 0 var(--violet);
  padding-left: 10px;
}

/* --- footer: bloco de contato --- */
.s-nav-footer .foot-contact p { font-size: var(--fs-small); max-width: none; }
.s-nav-footer .foot-mail a { color: var(--ink1); font-weight: 500; }
.s-nav-footer .foot-wa { margin-top: 6px; }
.s-nav-footer .foot-wa a {
  font-family: var(--font-mono); font-size: var(--fs-data);
  color: var(--ink2); text-decoration: none;
  transition: color var(--dur) var(--ease-out);
}
.s-nav-footer .foot-wa a:hover { color: var(--ink1); }
.s-nav-footer .foot-hours {
  font-family: var(--font-mono); font-size: var(--fs-cap);
  color: var(--ink3); margin-top: 16px;
}
.s-nav-footer .foot-contact address {
  font-style: normal; color: var(--ink2);
  font-size: var(--fs-small); margin-top: 16px;
}
.s-nav-footer .foot-langs { color: var(--ink3); margin-top: 6px; }

/* === hero === */
/* ============================================================
   hero — escopo: .s-hero (registro dark)
   Grade 2 col: H1 verbatim + sub + CTAs | plate monitor (Fig. 01)
   Momento autoral: .hero-on no plate + traçado ECG (.trace-on)
   Stats como data-rows em faixa inferior (leitura de instrumento)
   ============================================================ */

.s-hero { padding-top: clamp(2.25rem, 4.5vw, 4rem); }

.s-hero .hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: clamp(2.5rem, 5vw, 5rem);
  align-items: center;
}
/* text-wrap: balance infla o min-content do H1 — minmax(0,...) impede a pista de estourar no mobile */

/* H1 longo: teto menor que o display global para caber na coluna */
/* H1 longo: teto ajustado à medida real de "Cardioneuroablation" em STIX (9.72px/px) — cabe na coluna sem break-word */
.s-hero h1 { font-size: clamp(2.5rem, 4vw, 3.6rem); }
/* ênfase V2: cor violeta, nunca itálico serifado */
.s-hero h1 em { font-style: normal; color: var(--violet); }

/* traçado ECG sob o bloco do H1 — ritmo sinusal em loop contínuo.
   Morfologia em escala 0,25px/ms: P 88ms, PR 160ms, QRS 84ms, QT 400ms, RR 200px.
   Velocidade do loop: 1100ms por RR (~55bpm) — pedido do dono (03/2026-08-09: "mais lento").
   O path repete o batimento a cada 200px; transladar -200px = 1 RR e o loop é invisível.
   prefers-reduced-motion: a regra global no v2.css congela a animação (1 iteração). */
.s-hero .ecg-trace {
  display: block;
  width: min(460px, 88%);
  height: auto;
  margin-top: 22px;
  opacity: 0.55;
}
.s-hero .ecg-loop { animation: ecg-run 1100ms linear infinite; }
@keyframes ecg-run { to { transform: translateX(-200px); } }

.s-hero .hero-sub { margin-top: 22px; }

.s-hero .hero-actions {
  margin-top: 26px;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

/* coluna visual: leader acima do plate, figcap abaixo */
.s-hero .hero-visual { align-self: start; }
.s-hero .hero-visual .leader { margin-bottom: 16px; }
.s-hero .hero-visual .figcap { margin-top: 14px; }

/* faixa de stats: uma hairline contínua, 4 data-rows mono */
.s-hero .hero-stats { margin-top: clamp(1.75rem, 3vw, 2.75rem); }
.s-hero .stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(1.5rem, 3vw, 3rem);
  border-top: 1px solid var(--line);
}
.s-hero .stats-grid .data-row { border-top: 0; padding-top: 14px; }

@media (max-width: 960px) {
  .s-hero .hero-grid { grid-template-columns: minmax(0, 1fr); gap: clamp(2.5rem, 7vw, 4rem); }
  .s-hero .stats-grid { grid-template-columns: repeat(2, 1fr); }
}
/* audit pós-troca de fonte (A1-P1): "Cardioneuroablation" (19 letras) tocava a margem a 390px */
@media (max-width: 560px) {
  .s-hero h1 { font-size: clamp(1.9rem, 8.6vw, 2.4rem); }
}

/* === condition === */
/* ============================================================
   V2 · section: condition (#condition) — registro light
   Composição: intro sticky à esquerda (~38%), chave de
   candidatura (01–05) com hairlines à direita, fechamento
   teleconsulta com rule-dbl. Seção de respiro: muito ar.
   Escopo: tudo sob .s-condition. Tokens semânticos apenas.
   ============================================================ */

.s-condition .c-grid {
  display: grid;
  grid-template-columns: minmax(0, 38fr) minmax(0, 62fr);
  gap: clamp(3rem, 7vw, 6.5rem);
  align-items: start;
}

/* --- coluna esquerda: heading + lead + parágrafo (sticky) --- */
.s-condition .c-intro {
  position: sticky;
  top: 104px; /* header sticky (68px) + ar */
}

.s-condition .c-intro h2 {
  max-width: 22ch;
}

.s-condition .c-intro .lead {
  margin-top: 1.5rem;
  max-width: 46ch;
}

.s-condition .c-body {
  margin-top: 1.75rem;
  color: var(--ink2);
  max-width: 46ch;
}

/* --- coluna direita: chave de candidatura --- */
.s-condition .c-criteria h3 {
  max-width: 30ch;
}

.s-condition .c-list {
  list-style: none;
  margin-top: 2.25rem;
}

.s-condition .c-list li {
  display: grid;
  grid-template-columns: 4ch minmax(0, 1fr);
  gap: clamp(1.25rem, 2.5vw, 2rem);
  align-items: baseline;
  padding: 1.5rem 0;
  border-top: 1px solid var(--line);
}

.s-condition .c-list li:first-child {
  border-top: 0;
  padding-top: 0;
}

.s-condition .c-list .n {
  font-family: var(--font-mono);
  font-size: var(--fs-data);
  font-weight: 700;
  color: var(--violet);
}

.s-condition .c-list .txt {
  color: var(--ink1);
  max-width: 58ch;
}

/* --- fechamento: callout teleconsulta (rule-dbl, sem borda lateral) --- */
.s-condition .c-close {
  margin-top: clamp(3rem, 5vw, 4.5rem);
}

.s-condition .c-close .rule-dbl {
  margin-bottom: 1.5rem;
}

.s-condition .c-close p {
  font-size: var(--fs-small);
  font-style: italic;
  color: var(--ink2);
  max-width: 56ch;
}

/* --- responsivo --- */
@media (max-width: 960px) {
  .s-condition .c-grid {
    grid-template-columns: 1fr;
    gap: 4rem;
  }
  .s-condition .c-intro {
    position: static;
  }
  .s-condition .c-intro h2,
  .s-condition .c-intro .lead,
  .s-condition .c-body {
    max-width: var(--measure);
  }
}

@media (max-width: 560px) {
  .s-condition .c-list li {
    grid-template-columns: 3.5ch minmax(0, 1fr);
    gap: 1rem;
    padding: 1.25rem 0;
  }
}

/* director fix: verbatim section label as atlas leader (replaces banned eyebrow) */
.s-condition .c-intro .leader { margin: 1.25rem 0 1.5rem; }

/* === procedure === */
/* ============================================================
   Section: procedure (slug: procedure · registro dark · Fig. 02)
   Escopo: tudo sob .s-procedure — nunca regras globais/tokens.
   ============================================================ */

.s-procedure .proc-grid {
  display: grid;
  grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
  gap: clamp(2.5rem, 5vw, 5rem);
  align-items: start;
}

/* --- Fig. 02 — registro clínico intra-procedural (imagem fornecida pelo cliente, 2026-08-08) --- */
.s-procedure .proc-plate { margin: 0; }
.s-procedure .proc-plate img { width: 100%; height: auto; }
@media (min-width: 961px) { .s-procedure .proc-plate { position: sticky; top: 96px; } }

/* --- coluna lateral: blocos verbatim regidos por hairlines --- */
.s-procedure .proc-points { border-bottom: 1px solid var(--line); }
.s-procedure .point { border-top: 1px solid var(--line); padding: 22px 0 24px; }
.s-procedure .point h3 { margin-bottom: 10px; }
.s-procedure .point p { color: var(--ink2); }

/* citação de pioneirismo: registro de uma coluna (sem ano) */
.s-procedure .point .citation {
  grid-template-columns: 1fr;
  gap: 0;
  border-top: 0;
  padding: 14px 0 0;
}
.s-procedure .citation p { color: var(--ink1); }

/* --- responsivo --- */
@media (max-width: 960px) {
  .s-procedure .proc-grid { grid-template-columns: 1fr; }
  .s-procedure .proc-plate { max-width: 620px; margin: 0 auto; width: 100%; }
}

/* director fix: verbatim section label as atlas leader (replaces banned eyebrow) */
.s-procedure .section-head { margin-bottom: 1.25rem; }
.s-procedure .leader.s-label { margin-bottom: clamp(2.5rem, 5vw, 4rem); }

/* === team === */
/* ============================================================
   V2 — section: team (authority) · registro light
   Escopo: .s-team — nunca redefinir tokens nem regras globais.
   Composição: coluna estreita de índices mono + coluna larga
   com 3 blocos de credenciais separados por hr.rule-dbl.
   ============================================================ */

.s-team .t-grid {
  display: grid;
  grid-template-columns: clamp(4ch, 7vw, 7ch) 1fr;
  column-gap: clamp(1.5rem, 5vw, 4.5rem);
}

/* label do ledger — eyebrow "Our Team" movida para cá (nunca acima do heading) */
.s-team .t-leader {
  grid-column: 2;
  margin-bottom: clamp(2.25rem, 4vw, 3.25rem);
}

.s-team .t-num {
  font-family: var(--font-mono);
  font-size: var(--fs-data);
  font-weight: 700;
  color: var(--violet);
  position: relative;
  top: 0.45em; /* alinha o numeral à linha de base do h3 */
}

.s-team .t-block p {
  margin-top: 0.85em;
  color: var(--ink2);
  max-width: 58ch;
}

.s-team .t-block strong {
  font-weight: 600;
  color: var(--ink1);
}

/* filete duplo separando credenciais, apenas na coluna larga */
.s-team .t-sep {
  grid-column: 2;
  margin: clamp(2.5rem, 5vw, 4rem) 0;
}

@media (max-width: 560px) {
  .s-team .t-grid {
    grid-template-columns: 4ch 1fr;
    column-gap: 1.25rem;
  }
  .s-team .t-sep {
    margin: 2.25rem 0;
  }
}

/* === evidence === */
/* ============================================================
   V2 · evidence — dark instrument register
   Scoped under .s-evidence. Tokens only; no fixed hex.
   ============================================================ */

/* leader label below the section head (never an eyebrow above the h2) */
.s-evidence .ev-leader { margin: 0 0 clamp(1.75rem, 3.5vw, 2.75rem); }

/* two measurement panels */
.s-evidence .ev-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(20px, 3vw, 32px);
  align-items: start;
}
.s-evidence .ev-panel {
  display: flex;
  flex-direction: column;
  padding: clamp(20px, 3vw, 36px);
}
.s-evidence .ev-panel > h3 { max-width: 24ch; }
.s-evidence .ev-body { margin-top: 0.9rem; font-size: var(--fs-small); color: var(--ink2); }
.s-evidence .ev-body strong { color: var(--ink1); }

/* measurement readout: two mono numerals split by a vertical hairline */
.s-evidence .ev-measure {
  margin-top: clamp(1.75rem, 3vw, 2.5rem);
  padding: clamp(1.25rem, 2.5vw, 1.75rem) 0;
  border-top: 1px solid var(--line);
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.s-evidence .ev-cell { padding-right: clamp(14px, 2vw, 24px); }
.s-evidence .ev-cell-alt {
  border-left: 1px solid var(--line2);
  padding-left: clamp(14px, 2vw, 24px);
  padding-right: 0;
}
.s-evidence .ev-num {
  display: block;
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: clamp(3rem, 5.5vw, 5rem);
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--ink1);
  white-space: nowrap;
}
.s-evidence .ev-cell-alt .ev-num { color: var(--ink2); }
.s-evidence .ev-cap {
  display: block;
  margin-top: 12px;
  font-size: var(--fs-small);
  line-height: 1.5;
  color: var(--ink2);
  max-width: 24ch;
}

/* data rows */
.s-evidence .ev-data { margin-top: clamp(1.5rem, 3vw, 2.25rem); border-top: 1px solid var(--line); }
.s-evidence .ev-data .data-row:first-child { border-top: 0; }

/* free-text panel citation: .citation grammar without the year column */
.s-evidence .citation.panel-cite {
  display: block;
  margin-top: clamp(1.5rem, 3vw, 2.25rem);
  padding: 18px 0 0;
  font-size: var(--fs-small);
  line-height: 1.6;
  color: var(--ink2);
  max-width: none;
}

/* publications */
.s-evidence .ev-pubs { margin-top: clamp(4rem, 8vw, 6.5rem); }
.s-evidence .ev-pubs > h3 { margin-bottom: clamp(1.25rem, 2.5vw, 2rem); }
.s-evidence .ev-pub-list { border-top: 1px solid var(--line); }
.s-evidence .ev-pub-list .citation:first-child { border-top: 0; }
.s-evidence .ev-pub-list .citation p { max-width: 62ch; }

@media (max-width: 960px) {
  .s-evidence .ev-grid { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .s-evidence .ev-measure { grid-template-columns: 1fr; }
  .s-evidence .ev-cell { padding-right: 0; padding-bottom: 1.5rem; }
  .s-evidence .ev-cell-alt {
    border-left: 0;
    border-top: 1px solid var(--line2);
    padding-left: 0;
    padding-top: 1.5rem;
    padding-bottom: 0;
  }
  .s-evidence .ev-num { font-size: clamp(3rem, 14vw, 4rem); }
}

/* === journey === */
/* ============================================================
   V2 · section journey — "Your Journey" (#journey)
   Light register. 5-step itinerary: vertical hairline spine,
   mono numerals in hairline circles, authored hairline glyphs.
   Scoped under .s-journey only. Tokens from v2.css — no hex.
   ============================================================ */

.s-journey .section-head > h2 { max-width: 23ch; }

/* leader label naming the itinerary (atlas grammar), below the head */
.s-journey .j-itin-label { margin: 0 0 2.25rem; }

.s-journey .j-steps {
  list-style: none;
  max-width: 760px;
}

.s-journey .j-step {
  position: relative;
  padding-left: 64px;
  padding-bottom: clamp(2.25rem, 4vw, 3.25rem);
}
.s-journey .j-step:last-child { padding-bottom: 0; }

/* the spine: one hairline segment per step so the line stays
   continuous through the gaps between steps */
.s-journey .j-step::before {
  content: "";
  position: absolute;
  left: 19.5px; /* center of the 40px marker */
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--line);
}
/* terminate the spine inside the last marker */
.s-journey .j-step:last-child::before { bottom: auto; height: 20px; }

/* sequence numeral in a hairline circle (radius 50% allowed here) */
.s-journey .j-mark {
  position: absolute;
  left: 0;
  top: -5px;
  width: 40px;
  height: 40px;
  border: 1px solid var(--line2);
  border-radius: 50%;
  background: var(--bg); /* masks the spine behind the circle */
  display: grid;
  place-items: center;
  font-family: var(--font-mono);
  font-size: var(--fs-cap);
  color: var(--violet);
}

.s-journey .j-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  max-width: 56ch;
}

/* authored hairline glyph — one stroke weight, quiet ink */
.s-journey .j-icon {
  width: 24px;
  height: 24px;
  flex: none;
  color: var(--ink2);
}

.s-journey .j-body {
  max-width: 52ch;
  margin-top: 0.55rem;
  color: var(--ink2);
}

/* durations as measured data */
.s-journey .dur {
  font-family: var(--font-mono);
  font-size: 0.9em;
  color: var(--ink1);
  white-space: nowrap;
}

@media (max-width: 560px) {
  .s-journey .j-step { padding-left: 54px; }
  .s-journey .j-step::before { left: 16.5px; }
  .s-journey .j-step:last-child::before { height: 17px; }
  .s-journey .j-mark { width: 34px; height: 34px; top: -4px; }
  .s-journey .j-icon { width: 22px; height: 22px; }
}

/* === case-study === */
/* case-study — the LA case as a documentary record (light register)
   Scoped under .s-case-study. Tokens only, never hex. */

/* the record plate: raised instrument surface, document padding (seção migrou para reg-dark — audit C1) */
.s-case-study .case-record {
  background: var(--bg1);
  padding: clamp(22px, 4vw, 52px);
}

/* chrome header: mono label + factual location, hairline below */
.s-case-study .case-chrome {
  font-family: var(--font-mono);
  font-size: var(--fs-cap);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink2);
  display: flex;
  justify-content: space-between;
  gap: 1.5em;
  flex-wrap: wrap;
  max-width: none;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--line);
}
.s-case-study .case-chrome .case-loc { color: var(--ink2); }

/* day log: data-row discipline — mono day, title, body */
.s-case-study .case-days {
  list-style: none;
  margin: 0;
  padding: 0;
}
.s-case-study .case-day {
  display: grid;
  grid-template-columns: 17ch 1fr;
  gap: 8px 2.5em;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
  align-items: baseline;
}
.s-case-study .case-day .day {
  font-family: var(--font-mono);
  font-size: var(--fs-data);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink2);
}
.s-case-study .case-day h3 {
  font-size: clamp(1.35rem, 2.2vw, 1.75rem);
  font-weight: 600;
  margin-bottom: 6px;
}
.s-case-study .case-day-body p {
  color: var(--ink2);
  font-size: var(--fs-small);
  max-width: 60ch;
}

/* narrative: the case summary, set with documental weight */
.s-case-study .case-narrative {
  margin-top: clamp(1.75rem, 3.5vw, 2.75rem);
  font-size: var(--fs-lead);
  line-height: 1.55;
  color: var(--ink1);
  max-width: 58ch;
}

/* permission note: small mono record line */
.s-case-study .case-note {
  margin-top: clamp(1.75rem, 3vw, 2.5rem);
  padding-top: 18px;
  border-top: 1px solid var(--line);
  font-family: var(--font-mono);
  font-size: var(--fs-cap);
  line-height: 1.7;
  color: var(--ink2);
  max-width: none;
}

@media (max-width: 560px) {
  .s-case-study .case-day {
    grid-template-columns: 1fr;
    gap: 6px;
    padding: 18px 0;
  }
}

/* === cost === */
/* ============================================================
   V2 — Cost section (.s-cost) · light register
   The U.S. self-pay range rendered as a measured instrument
   scale; the São Paulo card answers with a heading, not a number.
   Scope: .s-cost only. Semantic tokens from v2.css — no hex.
   ============================================================ */

/* section head: long heading gets more line-length than the 20ch default */
.s-cost .cost-head > h2 { max-width: 28ch; }

/* compare grid */
.s-cost .cost-compare {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(20px, 2.5vw, 32px);
}

/* cost card */
.s-cost .cost-box { display: flex; flex-direction: column; }

/* mono label joined to the card by a hairline (leader grammar, case preserved) */
.s-cost .cost-label {
  font-family: var(--font-mono);
  font-size: var(--fs-cap);
  letter-spacing: 0.06em;
  color: var(--ink2);
  display: flex;
  align-items: center;
  gap: 10px;
}
.s-cost .cost-label::after {
  content: "";
  height: 1px;
  background: var(--line2);
  flex: 1 1 24px;
}

.s-cost .cost-h { margin-top: 16px; }

/* São Paulo: the quote is the heading — strong display treatment */
.s-cost .cost-h-strong {
  font-weight: 600;
  font-size: clamp(1.6rem, 2.6vw, 2.25rem);
  letter-spacing: -0.015em;
  line-height: 1.05;
}

.s-cost .cost-stand {
  margin-top: 12px;
  font-size: var(--fs-small);
  font-weight: 600;
  color: var(--ink2);
}

/* U.S.: the measured range as an instrument reading (mono = data) */
.s-cost .cost-fig {
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: clamp(1.3rem, 2.1vw, 1.8rem);
  letter-spacing: -0.01em;
  color: var(--ink1);
  margin-top: 18px;
  white-space: nowrap;
}

/* measured scale: hairline + end ticks + mono extremes only.
   Decorative — the range is stated verbatim in .cost-fig above.
   No intermediate marks, no São Paulo marker. */
.s-cost .cost-scale {
  position: relative;
  margin-top: 12px;
  padding-top: 9px;
  border-top: 1px solid var(--ink3);
  display: flex;
  justify-content: space-between;
  gap: 1em;
  font-family: var(--font-mono);
  font-size: var(--fs-cap);
  color: var(--ink2);
}
.s-cost .cost-scale::before,
.s-cost .cost-scale::after {
  content: "";
  position: absolute;
  top: -1px;
  width: 1px;
  height: 10px;
  background: var(--ink3);
}
.s-cost .cost-scale::before { left: 0; }
.s-cost .cost-scale::after { right: 0; }

.s-cost .cost-body { margin-top: 24px; margin-bottom: 26px; color: var(--ink2); }

/* source / process note — small mono, ruled off like a data row */
.s-cost .cost-note {
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  font-family: var(--font-mono);
  font-size: var(--fs-cap);
  line-height: 1.55;
  color: var(--ink2);
}

/* savings plate: single statement in display 700 + verbatim support */
.s-cost .cost-savings {
  margin-top: clamp(20px, 2.5vw, 32px);
  padding: clamp(24px, 3.5vw, 44px);
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: clamp(24px, 4vw, 56px);
  align-items: center;
}
.s-cost .cost-savings .big {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(2rem, 4vw, 3.25rem);
  line-height: 1.02;
  letter-spacing: -0.015em;
  color: var(--ink1);
  text-wrap: balance;
}
.s-cost .cost-savings .pct { color: var(--violet); }
.s-cost .cost-savings .sav-body { color: var(--ink2); max-width: 54ch; }

/* responsive */
@media (max-width: 960px) {
  .s-cost .cost-compare { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .s-cost .cost-savings { grid-template-columns: 1fr; align-items: start; }
}

/* director fix: verbatim section label as atlas leader (replaces banned eyebrow) */
.s-cost .cost-head { margin-bottom: 1.25rem; }
.s-cost .leader.s-label { margin-bottom: clamp(2.5rem, 5vw, 4rem); }

/* === faq === */
/* ============================================================
   V2 · seção FAQ — accordion em registro claro (atlas ledger)
   Escopo: .s-faq apenas. Tokens semânticos do v2.css.
   ============================================================ */

.s-faq .section-head { margin-bottom: clamp(2rem, 4vw, 3.25rem); }

/* coluna de leitura medida; hairlines em ledger */
.s-faq .faq-list {
  max-width: 55rem;
  border-top: 1px solid var(--line);
}
.s-faq .faq-item { border-bottom: 1px solid var(--line); }

/* pergunta = h3 (STIX Two Text via global) com botão full-width */
.s-faq .faq-q button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  width: 100%;
  padding: 1.35rem 0;
  background: none;
  border: 0;
  cursor: pointer;
  font: inherit;
  letter-spacing: inherit;
  color: var(--ink1);
  text-align: left;
}

/* chevron autoral hairline — um só peso de traço (1.5) */
.s-faq .faq-chev {
  flex: 0 0 auto;
  width: 15px;
  height: 15px;
  color: var(--ink2);   /* audit A11Y-04: ink3 falhava 3:1 non-text */
  transition: transform var(--dur) var(--ease-out), color var(--dur) var(--ease-out);
}
.s-faq .faq-q button:hover .faq-chev { color: var(--ink1); }
.s-faq .faq-item.open .faq-chev { transform: rotate(180deg); color: var(--violet); }

/* resposta — altura animada via grid-template-rows (≤300ms) */
.s-faq .faq-a {
  display: grid;
  grid-template-columns: minmax(0, 1fr); /* trava a coluna na largura do container */
  grid-template-rows: 1fr;
  transition: grid-template-rows 280ms var(--ease-out);
}
.s-faq .faq-list.enhanced .faq-item:not(.open) .faq-a { grid-template-rows: 0fr; }
/* audit A11Y-01: display:grid vencia o [hidden] da UA e expunha painéis fechados à árvore de a11y */
.s-faq .faq-a[hidden] { display: none; }
.s-faq .faq-a-inner { min-width: 0; min-height: 0; overflow: hidden; }
.s-faq .faq-a-inner p {
  padding: 0.1rem 2.5rem 1.6rem 0;
  color: var(--ink2);
}

@media (max-width: 560px) {
  .s-faq .faq-q button { padding: 1.15rem 0; gap: 1rem; }
  .s-faq .faq-a-inner p { padding-right: 0; padding-bottom: 1.4rem; }
}

/* director fix: verbatim section label as atlas leader (replaces banned eyebrow) */
.s-faq .section-head { margin-bottom: 1.25rem; }
.s-faq .leader.s-label { margin-bottom: clamp(2.5rem, 5vw, 4rem); }

/* === contact === */
/* ============================================================
   V2 — Section: contact (slug: contact · registro dark)
   Scope: .s-contact only. Semantic tokens from v2.css.
   ============================================================ */

.s-contact .c-grid {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(2.5rem, 5vw, 4.5rem);
  align-items: start;
}
.s-contact .c-grid > * {
  min-width: 0; /* let tracks shrink below intrinsic control widths (select/textarea) */
}

/* --- form plate (left column) --- */
.s-contact .c-form {
  padding: clamp(22px, 3vw, 36px);
}
.s-contact .c-form > .field + .field {
  margin-top: 24px;
}
.s-contact .form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.s-contact .form-row .field {
  min-width: 0;
}
.s-contact .form-row .field + .field {
  margin-top: 0; /* grid gap rules inside a row; global .field rhythm applies between rows */
}
.s-contact .c-form select {
  min-width: 0;
}
.s-contact .c-form textarea {
  min-height: 7.5em;
  resize: vertical;
}
.s-contact .c-form .check {
  font-weight: 400;
  margin-bottom: 0;
}
.s-contact .c-submit {
  margin-bottom: 0;
}
/* honeypot anti-spam: invisível para humanos, presente para robôs */
.hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
/* status do envio (fetch): ok = confirmação, err = fallback com canais diretos */
.s-contact .form-status { margin: 12px 0 0; font-size: var(--fs-small); }
.s-contact .form-status.ok { color: var(--signal); }
.s-contact .form-status.err { color: var(--ink1); font-weight: 500; }
/* link ORCID na seção da equipe — discreto, verde ORCID, mono */
.s-team .orcid {
  font-family: var(--font-mono);
  font-size: 0.8em;
  color: #6a7a2e;
  text-decoration: none;
  white-space: nowrap;
}
.s-team .orcid:hover { color: #A6CE39; text-decoration: underline; }

/* --- direct channels (right column): hairline-ruled register --- */
.s-contact .c-channels {
  border-top: 1px solid var(--line2);
}
.s-contact .ci {
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
}
.s-contact .ci-label {
  display: block;
  font-family: var(--font-mono);
  font-size: var(--fs-cap);
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--ink3);
  margin-bottom: 8px;
}
.s-contact .ci-value {
  font-family: var(--font-mono);
  font-size: 1rem;
  font-weight: 700;
}
.s-contact a.ci-value {
  color: var(--violet);
}
.s-contact .ci-value.small {
  font-family: var(--font-text);
  font-size: var(--fs-small);
  font-weight: 400;
  line-height: 1.55;
  color: var(--ink2);
}
.s-contact .c-privacy {
  margin-top: 28px;
  font-size: var(--fs-small);
  line-height: 1.6;
  color: var(--ink2);
}

/* --- responsive --- */
@media (max-width: 960px) {
  .s-contact .c-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 560px) {
  .s-contact .form-row {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .s-contact .c-submit .btn {
    width: 100%;
    justify-content: center;
  }
}

/* director fix: verbatim section label as atlas leader (replaces banned eyebrow) */
.s-contact .section-head { margin-bottom: 1.25rem; }
.s-contact .leader.s-label { margin-bottom: clamp(2.5rem, 5vw, 4rem); }

/* === disclaimers === */
/* ============================================================
   Section: disclaimers (s-disclaimers) — reg-dark, .section.tight
   Compliance como editorial de primeira classe: 9 blocos verbatim
   em grade 3 → 2 → 1, títulos mono caps violeta, corpo small ink2.
   Escopado: nada de regras globais, nada de tokens redefinidos.
   ============================================================ */

.s-disclaimers .section-head {
  margin-bottom: clamp(2rem, 4vw, 3rem);
}

.s-disclaimers .disc-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: clamp(1.75rem, 3vw, 2.75rem);
  row-gap: clamp(2rem, 3.5vw, 3rem);
}

/* cada bloco: hairline top + título mono caps + corpo small */
.s-disclaimers .disc {
  border-top: 1px solid var(--line2);
  padding-top: 1.125rem;
}

.s-disclaimers .disc-t {
  font-family: var(--font-mono);
  font-size: var(--fs-cap);
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--violet);
  max-width: none;
}

.s-disclaimers .disc-b {
  font-size: 0.875rem;
  line-height: 1.65;
  color: var(--ink2);
  margin-top: 0.625rem;
}

/* dados dentro do corpo: mono, leitura de instrumento */
.s-disclaimers .dn {
  font-family: var(--font-mono);
  font-size: 0.92em;
  color: var(--ink1);
}

@media (max-width: 960px) {
  .s-disclaimers .disc-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 560px) {
  .s-disclaimers .disc-grid {
    grid-template-columns: 1fr;
    row-gap: 1.75rem;
  }
}

/* === science-page === */
/* ============================================================
   science-page — escopo: .s-science
   Hero dark (H1 + lead | plate Fig. 01) · corpo light:
   timeline 2026 (11 registros .rec, capítulos por mês),
   In Preparation (3 plates hairline), nota, fechamento + CTA.
   Gramática: plates + figcap, hairlines, mono só p/ dados.
   ============================================================ */

/* ---------- 1 · hero (reg-dark) ---------- */
.s-science-hero { padding-top: clamp(3.5rem, 7vw, 6rem); }

.s-science-hero .hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  gap: clamp(2.5rem, 5vw, 5rem);
  align-items: center;
}
/* text-wrap: balance infla o min-content do H1 — minmax(0,...) protege a pista no mobile */

.s-science-hero .hero-copy .lead { margin-top: 1.75rem; }

.s-science-hero .hero-visual { align-self: start; }
.s-science-hero .hero-visual .figcap { margin-top: 14px; }

/* ---------- 2 · agenda (reg-light) ---------- */
.s-science-agenda .section-head { margin-bottom: clamp(2rem, 4vw, 3rem); }

/* capítulo de mês: tab mono discreta + hairline (label de dados, não enfeite) */
.s-science .month-block + .month-block { margin-top: clamp(2.75rem, 5vw, 4.25rem); }
.s-science .month {
  font-family: var(--font-mono);
  font-size: var(--fs-data);
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1.4;
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 4px;
}
.s-science .month::after { content: ""; height: 1px; background: var(--line2); flex: 1 1 24px; }

/* registro de evento: rail de data mono violeta + corpo (ledger hairline) */
.s-science .rec {
  border-top: 1px solid var(--line);
  padding: clamp(1.4rem, 2.6vw, 1.9rem) 0;
  display: grid;
  grid-template-columns: 17ch minmax(0, 1fr);
  gap: clamp(1.5rem, 3.5vw, 3rem);
}

.s-science .rec-k {
  display: block;
  font-family: var(--font-mono);
  font-size: var(--fs-cap);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink2);
  margin-bottom: 6px;
}
.s-science .rec-date {
  display: block;
  font-family: var(--font-mono);
  font-size: var(--fs-data);
  font-weight: 700;
  line-height: 1.55;
  color: var(--violet);
}

.s-science .rec-name {
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 2vw, 1.625rem);
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.12;
  color: var(--ink1);
  max-width: 34ch;
  text-wrap: pretty;   /* audit A1-P2: evita viúva de 1 palavra nos títulos de evento */
}

/* campos do registro: label mono sobre hairline ledger, valor em texto corrido */
.s-science .rec-fields { margin-top: 0.9rem; }
.s-science .rec-field {
  display: grid;
  grid-template-columns: 12ch minmax(0, 1fr);
  gap: 1.4em;
  padding: 9px 0;
  border-top: 1px solid var(--line);
}
.s-science .rec-field dt {
  font-family: var(--font-mono);
  font-size: var(--fs-cap);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.5;
  color: var(--ink2);
  padding-top: 2px;
}
.s-science .rec-field dd {
  font-size: var(--fs-small);
  line-height: 1.55;
  color: var(--ink2);
  max-width: 66ch;
}
.s-science .rec-field dd.loc { color: var(--ink1); font-weight: 500; }
.s-science .rec-field dd em { font-style: italic; }

/* sub-itens (palestras/mesas): numerais mono violeta — a sequência é dado */
.s-science .rec-sub { margin-top: 8px; padding-left: 1.5em; }
.s-science .rec-sub li { padding: 4px 0; }
.s-science .rec-sub li::marker {
  font-family: var(--font-mono);
  font-size: 0.85em;
  font-weight: 700;
  color: var(--violet);
}

/* fotos junto ao evento: plates flush, caption colada abaixo do plate */
.s-science .rec-photos {
  margin-top: 1.4rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(14px, 2vw, 22px);
}
.s-science .rec-photo-single { margin-top: 1.4rem; max-width: 460px; }
.s-science .rec-photo-single.portrait { max-width: 340px; }

/* ---------- 3 · in preparation (reg-light, quiet) ---------- */
.s-science-prep .section-head { margin-bottom: clamp(1.75rem, 3vw, 2.5rem); }
.s-science-prep .prep-intro { margin-top: 1rem; color: var(--ink2); max-width: var(--measure); }
.s-science .prep-list { display: grid; gap: 14px; max-width: 880px; }
.s-science .prep-item {
  font-size: var(--fs-small); color: var(--ink2); max-width: none;
  padding: clamp(15px, 2vw, 20px) clamp(16px, 2.5vw, 24px);
}
.s-science .prep-item strong { color: var(--ink1); }

/* ---------- 4 · nota de rodapé (faixa quieta, não-landmark) ---------- */
.s-science.note-strip {
  padding: clamp(1.75rem, 3.5vw, 2.75rem) 0;
  border-top: 1px solid var(--line);
}
.s-science.note-strip + .section { border-top: 1px solid var(--line); }
.s-science .page-note { font-size: var(--fs-small); line-height: 1.6; color: var(--ink2); max-width: 74ch; }

/* ---------- 5 · fechamento (reg-light) ---------- */
.s-science-close .close-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: clamp(2.5rem, 6vw, 6rem);
  align-items: start;
}
.s-science-close .close-copy p { margin-top: 1.25rem; color: var(--ink2); }
.s-science-close .close-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 22px;
  padding-top: 8px;
}
.s-science .back-home .arr { flex: 0 0 auto; align-self: flex-start; margin-top: 0.18em; }
.s-science .back-home:hover .arr { transform: translateX(-4px); }

/* ---------- responsivo ---------- */
@media (max-width: 960px) {
  .s-science-hero .hero-grid { grid-template-columns: minmax(0, 1fr); gap: clamp(2.5rem, 7vw, 4rem); }
  .s-science .rec-photos { grid-template-columns: minmax(0, 1fr); }
  .s-science .rec-photo-single { max-width: 560px; }
}

@media (max-width: 768px) {
  .s-science .rec { grid-template-columns: minmax(0, 1fr); gap: 0.9rem; }
  .s-science .rec-when { display: flex; align-items: baseline; gap: 0.9em; }
  .s-science .rec-k { margin-bottom: 0; }
  .s-science .rec-field { grid-template-columns: minmax(0, 1fr); gap: 3px; }
  .s-science .rec-field dt { padding-top: 0; }
  .s-science-close .close-grid { grid-template-columns: minmax(0, 1fr); gap: 2.25rem; }
  .s-science-close .close-actions { padding-top: 0; }
}

/* === audit fixes (round 1) === */
/* audit A11Y-06: indicador visual de campo obrigatório */
.form .req { color: var(--err); font-weight: 700; }

/* bandeiras US→Brasil no bloco da marca (imagem fornecida pelo cliente, 2026-08-08) */
.s-nav-footer .foot-flags { margin-top: clamp(1.75rem, 3vw, 2.5rem); max-width: 460px; }
.s-nav-footer .foot-flags .flags-cap {
  font-family: var(--font-mono); font-size: var(--fs-cap); letter-spacing: 0.05em;
  text-transform: uppercase; color: var(--d-ink3); margin-top: 10px;
}
@media (min-width: 561px) { .s-nav-footer .foot-flags .flags-cap { white-space: nowrap; } }

