/* =========================================================
   NUAMCE – style.css
   Tokens: 07-design-system.json (cores, tipografia, espaços, raios, sombras)
   Mobile first · WCAG 2.2 AA · sem frameworks
   ========================================================= */

/* As fontes locais ainda não foram entregues; os stacks abaixo usam Arial como fallback. */

:root {
  /* Cores */
  --c-primary: #152740; /* azul da logo */
  --c-primary-hover: #22395A;
  --c-primary-soft: #EAF0F4;
  --c-secondary: #BFD37A;
  --c-secondary-hover: #A8BE5E;
  --c-secondary-soft: #F0F5DD;
  --c-accent-strong: #8FA73D;
  --c-text: #33475B; /* texto corrido mais suave (8,9:1 no branco) */
  --c-text-muted: #516879;
  --c-text-inverse: #FFFFFF;
  --c-surface: #FFFFFF;
  --c-surface-alt: #F6F6F6;
  --c-border: #D6E0E5;
  --c-border-strong: #7D929F;
  --c-error: #B42318;
  --c-focus: #1B59C1;
  --c-focus-inverse: #BFD37A;
  --c-inverse-muted: #C9D6E0;
  --c-whatsapp: #25D366; /* verde oficial: botão redondo e ícones */
  --c-whatsapp-text-bg: #0B8240; /* mesmo verde, um tom abaixo: texto branco com contraste 4,9:1 (WCAG AA) */
  --c-whatsapp-hover: #096C35;
  --c-kicker: #5A6E1A; /* verde com contraste AA (5,7:1) em fundo claro */

  /* Tipografia */
  --f-head: "Poppins", Arial, sans-serif;
  --f-body: "Inter", Arial, sans-serif;
  --fs-h1: clamp(2rem, 4.2vw, 3.5rem);
  --fs-h2: clamp(1.65rem, 3.1vw, 2.65rem);
  --fs-h3: clamp(1.2rem, 1.6vw, 1.45rem);
  --fs-h4: clamp(1.05rem, 1.25vw, 1.15rem);
  --fs-lead: clamp(1.0625rem, 1.35vw, 1.1875rem);
  --fs-body: clamp(1rem, 1.05vw, 1.0625rem);
  --fs-small: clamp(0.875rem, 1vw, 0.9375rem);

  /* Espaços */
  --s-1: 4px; --s-2: 8px; --s-3: 12px; --s-4: 16px; --s-6: 24px; --s-8: 32px;
  --s-12: 48px; --s-16: 64px; --s-24: 96px;
  --section: 48px;
  --gutter: 20px;
  --gap: 16px;
  --container: 1200px;
  --header-h: 64px;

  /* Raios e sombras */
  --r-sm: 6px; --r-btn: 8px; --r-img: 10px; --r-card: 12px; --r-lg: 14px; --r-xl: 20px; --r-pill: 999px;
  --sh-xs: 0 2px 6px rgba(4,38,66,.05);
  --sh-sm: 0 4px 16px rgba(4,38,66,.07);
  --sh-md: 0 10px 30px rgba(4,38,66,.10);
  --sh-lg: 0 18px 48px rgba(4,38,66,.12);
  --sh-hover: 0 16px 36px rgba(4,38,66,.13);

  --ease: cubic-bezier(.2,.7,.2,1);
}
@media (min-width: 768px) { :root { --section: 64px; --gutter: 24px; --gap: 20px; } }
@media (min-width: 1080px) { :root { --section: 96px; --gutter: 32px; --gap: 24px; --header-h: 72px; } }

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }
body {
  margin: 0; font-family: var(--f-body); font-size: var(--fs-body); line-height: 1.7;
  color: var(--c-text); background: var(--c-surface);
  padding-bottom: env(safe-area-inset-bottom, 0px);
  text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; height: auto; }
h1, h2, h3, h4 { font-family: var(--f-head); color: var(--c-primary); margin: 0 0 var(--s-4); text-wrap: balance; }
h1 { font-size: var(--fs-h1); font-weight: 700; line-height: 1.12; letter-spacing: -.035em; }
h2 { font-size: var(--fs-h2); font-weight: 700; line-height: 1.2; letter-spacing: -.025em; max-width: 30ch; }
h3 { font-size: var(--fs-h3); font-weight: 700; line-height: 1.3; letter-spacing: -.015em; }
h4 { font-size: var(--fs-h4); font-weight: 500; line-height: 1.4; letter-spacing: -.01em; margin-bottom: var(--s-2); }
p { margin: 0 0 var(--s-4); max-width: 72ch; }
ul, ol { margin: 0; padding: 0; list-style: none; }
strong { font-weight: 700; }
a { color: var(--c-primary); font-weight: 500; text-decoration: none; }
a:hover { color: var(--c-primary-hover); }
figure { margin: 0; }
address { font-style: normal; }
small { font-size: var(--fs-small); }
button { font: inherit; }

/* Mapa do site e índice público do EntityMap */
.sitemap-wrap { padding-block: var(--section); }
.site-map-nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--s-2) var(--s-4); }
.site-map-nav a { display: inline-flex; align-items: center; min-height: 44px; }
.sitemap-wrap > .section__head { margin-block: var(--s-8); }
.sitemap-wrap > .section__head h1 { max-width: 20ch; }
.sitemap-wrap > .section__head .section__lead { margin-top: var(--s-4); }
.sitemap-wrap > nav[aria-label="Breadcrumb"] { margin-bottom: var(--s-6); }
.sitemap-wrap .breadcrumbs { display: flex; flex-wrap: wrap; gap: var(--s-2); color: var(--c-text-muted); }
.sitemap-wrap .breadcrumbs li + li::before { content: "/"; margin-right: var(--s-2); }
.sitemap-group, .entity-card { margin-block: var(--s-4); padding: var(--s-6); border: 1px solid var(--c-border); border-radius: var(--r-lg); background: var(--c-surface); box-shadow: var(--sh-xs); }
.sitemap-group summary { cursor: pointer; }
.sitemap-group summary h2 { display: inline; margin: 0; font-size: var(--fs-h3); }
.sitemap-group summary small, .entity-type { color: var(--c-text-muted); }
.sitemap-links, .entity-index { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: var(--s-2) var(--s-6); margin-top: var(--s-4); }
.sitemap-links a, .entity-index a { display: inline-block; min-height: 44px; padding-block: var(--s-2); text-decoration: underline; text-underline-offset: .18em; }
.entity-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: var(--s-3); margin-block: var(--s-6); }
.entity-stats p { display: grid; gap: var(--s-1); margin: 0; padding: var(--s-4); border-radius: var(--r-sm); background: var(--c-primary-soft); text-align: center; }
.entity-stats strong { color: var(--c-primary); font: 700 var(--fs-h3)/1.2 var(--f-head); }
.entity-stats span { color: var(--c-text-muted); font-size: var(--fs-small); }
#entity-search { display: block; width: 100%; max-width: 36rem; min-height: 48px; margin-block: var(--s-2); padding: var(--s-3) var(--s-4); border: 1px solid var(--c-border-strong); border-radius: var(--r-sm); color: var(--c-text); background: var(--c-surface); }
.entity-card { scroll-margin-top: calc(var(--header-h) + var(--s-4)); }
.entity-card h2 { font-size: var(--fs-h3); }
.entity-card h3 { margin-top: var(--s-6); }
.entity-card blockquote { margin: 0; padding: var(--s-4); border-left: 4px solid var(--c-secondary); background: var(--c-surface-alt); }
.entity-card blockquote p { margin-bottom: var(--s-2); }
.entity-card cite { font-size: var(--fs-small); font-style: normal; }
.sitemap-wrap a:focus-visible, .sitemap-wrap summary:focus-visible, #entity-search:focus-visible { outline: 3px solid var(--c-focus); outline-offset: 3px; }
@media (max-width: 600px) {
  .sitemap-wrap { padding-inline: var(--gutter); }
  .header__inner { flex-wrap: wrap; }
  .site-map-nav { justify-content: flex-start; }
  .sitemap-group, .entity-card { padding: var(--s-4); }
  .sitemap-wrap .breadcrumbs { font-size: var(--fs-small); }
}

:focus-visible { outline: 3px solid var(--c-focus); outline-offset: 3px; border-radius: 4px; }
.hero :focus-visible, .section--navy :focus-visible, .footer :focus-visible, .cta-final :focus-visible, .topbar :focus-visible { outline-color: var(--c-focus-inverse); }

.skip-link { position: absolute; left: 16px; top: -100px; z-index: 200; background: var(--c-secondary); color: var(--c-primary); padding: 12px 16px; border-radius: var(--r-btn); font-weight: 700; }
.skip-link:focus { top: 12px; }

.container { width: 100%; max-width: calc(var(--container) + var(--gutter) * 2); margin: 0 auto; padding: 0 var(--gutter); }

/* ---------- Ícones (Lucide, traço 1,75) ---------- */
.icon { width: 24px; height: 24px; flex: none; stroke-width: 1.75; }
.icon--sm { width: 18px; height: 18px; }
.icon-box {
  display: inline-grid; place-items: center; width: 48px; height: 48px; flex: none;
  border-radius: var(--r-lg); background: linear-gradient(135deg, #D3E393 0%, #BFD37A 55%, #A8BE5E 100%); color: var(--c-primary);
  box-shadow: 0 6px 16px rgba(143,167,61,.28);
}
.icon-box--inverse { background: var(--c-secondary); color: var(--c-primary); box-shadow: none; }

/* ---------- Botões ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 12px 22px; border-radius: var(--r-btn); border: 2px solid transparent;
  font-family: var(--f-body); font-size: clamp(.9375rem, 1vw, 1rem); font-weight: 700; line-height: 1.3; letter-spacing: .01em;
  text-decoration: none; text-align: left; cursor: pointer;
  transition: background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease), box-shadow .2s var(--ease);
}
.btn:hover { text-decoration: none; transform: translateY(-1px); }
.btn:active { transform: translateY(0); }
.btn--primary { background: var(--c-secondary); color: var(--c-primary); }
.btn--primary:hover { background: var(--c-secondary-hover); color: var(--c-primary); box-shadow: var(--sh-sm); }
.btn--secondary { background: transparent; color: var(--c-primary); border-color: var(--c-primary); }
.btn--secondary:hover { background: var(--c-primary); color: var(--c-text-inverse); }
.btn--ghost-inverse { background: transparent; color: var(--c-text-inverse); border-color: rgba(255,255,255,.55); }
.btn--ghost-inverse:hover { color: var(--c-text-inverse); border-color: var(--c-text-inverse); background: rgba(255,255,255,.06); }
.btn--whatsapp { background: var(--c-whatsapp); color: #FFFFFF; }
.btn--whatsapp:hover { background: #1EBE5D; color: #FFFFFF; box-shadow: 0 8px 20px rgba(37,211,102,.35); }
.btn--whatsapp .icon { fill: currentColor; }
.btn--dark { background: var(--c-primary); color: var(--c-text-inverse); }
.btn--dark:hover { background: var(--c-primary-hover); color: var(--c-text-inverse); box-shadow: var(--sh-sm); }
.btn--sm { min-height: 44px; padding: 10px 16px; font-size: .9375rem; }
.btn--lg { min-height: 56px; padding: 14px 26px; }
.btn--block { width: 100%; }

/* ---------- Barra superior ---------- */
.topbar { background: var(--c-primary); color: var(--c-text-inverse); font-size: .875rem; }
.topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--s-4); min-height: 40px; }
.tb-num { display: none; }
.topbar__area { display: none; align-items: center; gap: 8px; margin: 0; color: var(--c-inverse-muted); }
.topbar__area .icon { color: var(--c-secondary); }
.topbar__contacts { display: flex; gap: var(--s-4); width: 100%; justify-content: space-between; }
.topbar a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--c-text-inverse); text-decoration: none; font-weight: 500; }
.topbar a:hover { text-decoration: none;color: var(--c-text-inverse); }
.topbar a .icon { color: var(--c-secondary); }
.topbar a .icon[data-wa-icon] { color: var(--c-secondary); fill: currentColor; }
@media (min-width: 768px) {
  .topbar__area { display: flex; }
  .tb-num { display: inline; }
  .topbar__contacts { width: auto; gap: var(--s-6); }
}

/* ---------- Hero (imagem de fundo + degradê à esquerda) ---------- */
.hero { position: relative; isolation: isolate; overflow: hidden; background: var(--c-primary); color: var(--c-text-inverse); padding: var(--s-16) 0; }
.hero__bg { position: absolute; inset: 0; z-index: -2; }
.hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 70% center; }
.hero__visual-frame { min-width: 0; align-self: center; justify-self: end; width: min(100%, 360px); }
.hero__visual { display: block; overflow: hidden; border-radius: var(--r-xl); }
.hero__visual img { display: block; width: 100%; height: auto; border-radius: inherit; }
.hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  /* celular: véu quase sólido para garantir contraste 4.5:1 em todo o texto */
  background: linear-gradient(180deg, rgba(4,38,66,.88) 0%, rgba(4,38,66,.92) 55%, rgba(4,38,66,.97) 100%);
}
.hero__grid { display: grid; position: relative; }
.hero__text { max-width: 760px; }
.eyebrow { margin: 0 0 var(--s-4); font-size: .875rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--c-secondary); }
.hero h1 { max-width: none; margin-bottom: var(--s-6); }
.hero__lead { font-size: var(--fs-lead); line-height: 1.7; color: var(--c-text-inverse); max-width: none; }
.hero__lead strong { color: var(--c-secondary); }
.hero__sub { color: var(--c-inverse-muted); max-width: none; }
.hero__actions { display: flex; flex-direction: column; gap: var(--s-3); margin: var(--s-8) 0 var(--s-3); }
.hero__actions .btn { width: 100%; }
.hero__micro { font-size: var(--fs-small); color: var(--c-inverse-muted); margin-bottom: var(--s-8); }
.proofs { display: grid; gap: var(--s-3); padding-top: var(--s-6); border-top: 1px solid rgba(255,255,255,.18); }
.proof { display: flex; gap: 12px; align-items: flex-start; }
.proof__icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: rgba(191,211,122,.16); color: var(--c-secondary); flex: none; }
.proof__icon .icon { width: 22px; height: 22px; }
.proof strong { display: block; font-size: .9375rem; line-height: 1.35; }
.proof small { display: block; color: var(--c-inverse-muted); font-size: .8125rem; line-height: 1.45; }
@media (min-width: 768px) {
  .hero { padding: var(--s-24) 0; }
  .hero__actions { flex-direction: row; flex-wrap: wrap; }
  .hero__actions .btn { width: auto; }
  .proofs { grid-template-columns: repeat(3, 1fr); gap: var(--s-4); }
  .hero::before {
    background: linear-gradient(90deg, rgba(4,38,66,.97) 0%, rgba(4,38,66,.93) 45%, rgba(4,38,66,.55) 72%, rgba(4,38,66,.15) 100%);
  }
}
@media (min-width: 1080px) {
  .hero { padding: 120px 0; min-height: 680px; display: flex; align-items: center; }
  .hero > .container { width: 100%; }
  .hero__actions { flex-wrap: nowrap; }
  .hero::before {
    background: linear-gradient(90deg, rgba(4,38,66,.98) 0%, rgba(4,38,66,.94) 38%, rgba(4,38,66,.6) 60%, rgba(4,38,66,.1) 82%, rgba(4,38,66,0) 100%);
  }
}

/* ---------- Seções ---------- */
.section { padding: var(--section) 0; }
.section--alt { background: var(--c-surface-alt); }
.section--navy { background: var(--c-primary); color: var(--c-text-inverse); }
.section__head { margin: 0 auto var(--s-8); text-align: center; max-width: 860px; }
.section__head h2 { margin-left: auto; margin-right: auto; }
.section__head .section__lead, .section__head .kicker { margin-left: auto; margin-right: auto; }
.section__head .btn { margin-top: var(--s-2); }
.kicker { width: fit-content; margin: 0 0 var(--s-3); font-size: .875rem; font-weight: 700; line-height: 1.4; letter-spacing: .02em; color: var(--c-kicker); }
.section--navy .kicker, .cta-final .kicker { color: var(--c-secondary); }
@media (min-width: 1080px) { .section__head { margin-bottom: 40px; } }
.section__lead { font-size: var(--fs-lead); line-height: 1.7; color: var(--c-text-muted); max-width: 65ch; }
.section--navy .section__lead { color: var(--c-inverse-muted); }
.section__foot { margin: var(--s-8) auto 0; text-align: center; }
.section--navy a { color: var(--c-text-inverse); }
.section--navy a:hover { color: var(--c-secondary); }

/* ---------- Grades simétricas ---------- */
.grid { display: grid; gap: var(--gap); grid-template-columns: 1fr; }
@media (min-width: 768px) {
  .grid--2x2, .grid--4 { grid-template-columns: repeat(2, 1fr); }
  .grid--3 { grid-template-columns: repeat(2, 1fr); }
  .grid--3 > :last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (min-width: 1080px) {
  .grid--3 { grid-template-columns: repeat(3, 1fr); }
  .grid--3 > :last-child:nth-child(odd) { grid-column: auto; }
  .grid--4 { grid-template-columns: repeat(4, 1fr); }
  .grid--2x2 { grid-template-columns: repeat(2, 1fr); }
  .grid--2x2 .card img { aspect-ratio: 16/9; }
  .grid--2x2 .card__body { padding: 0 var(--s-8) var(--s-8); }
  .grid--2x2 .card__link { white-space: nowrap; font-size: .9375rem; }
}

/* ---------- Cards ---------- */
.card {
  display: flex; flex-direction: column; background: var(--c-surface); border: 1px solid var(--c-border);
  border-radius: var(--r-card); overflow: hidden; position: relative;
  transition: box-shadow .25s var(--ease), transform .25s var(--ease), border-color .25s var(--ease);
}
.card:hover { box-shadow: var(--sh-hover); transform: translateY(-3px); border-color: transparent; }
.card img { width: 100%; aspect-ratio: 16/10; object-fit: cover; background: var(--c-primary-soft); }
.section--pillars .grid--2x2 .card img { aspect-ratio: 16/10; }
.section--pillars .grid--2x2 > .card--media:nth-child(3) > img { object-position: center 25%; }
.card__body { display: flex; flex-direction: column; flex: 1; padding: var(--s-6); }
.card--media .icon-box { margin-top: -28px; margin-bottom: var(--s-4); width: 56px; height: 56px; position: relative; z-index: 2; box-shadow: 0 8px 20px rgba(4,38,66,.18); }
.card--media .card__body { padding-top: 0; }
.card__body h3 { margin-bottom: var(--s-3); }
.card__body p { color: var(--c-text-muted); flex: 1; }
.card__link { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-size: .875rem; line-height: 1.35; font-weight: 700; margin-top: var(--s-2); }
.card__link .icon { transition: transform .2s var(--ease); }
.card:hover .card__link .icon { transform: translateX(3px); }
.card__tag { margin: 0 0 var(--s-2); font-size: .8125rem; font-weight: 700; color: var(--c-accent-strong); color: #5E6E27; }
.card--post h3 { font-size: clamp(1.1rem, 1.4vw, 1.25rem); }
.card__stretch { color: var(--c-primary); text-decoration: none; font-weight: inherit; }
.card__stretch::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.card__stretch:hover { text-decoration: none;}
.card__stretch:focus-visible { outline: none; }
.card:has(.card__stretch:focus-visible) { outline: 3px solid var(--c-focus); outline-offset: 3px; }

/* ---------- Bloco texto + imagem ---------- */
.split { display: grid; gap: var(--s-12); align-items: center; }
.split__text h3 { margin-top: var(--s-8); }
.split__intro { margin-bottom: var(--s-2); }
@media (min-width: 1080px) { .split__intro { white-space: nowrap; } }
.split__media img { width: 100%; aspect-ratio: 600/680; object-fit: cover; border-radius: var(--r-xl); background: var(--c-primary-soft); }
.split__text .btn { margin-top: var(--s-4); }
@media (min-width: 1080px) {
  .split { grid-template-columns: 7fr 5fr; gap: var(--s-16); }
  .split--reverse { grid-template-columns: 5fr 7fr; }
  .split--reverse .split__media { order: -1; }
}

/* ---------- Temas que trazem as pessoas (bullets com ícones do nicho) ---------- */
.topics { display: grid; gap: var(--s-3); margin-top: var(--s-4); }
.topics li { display: flex; gap: 12px; align-items: flex-start; font-size: .9375rem; line-height: 1.6; }
.topic__icon { display: inline-flex; flex: none; margin-top: 2px; color: var(--c-kicker); }
.topic__icon .icon { width: 18px; height: 18px; }
@media (min-width: 1080px) {
  .split--fit { align-items: stretch; }
  .split--fit .split__media { position: relative; min-height: 340px; }
  .split--fit .split__media img { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; }
  .split--fit .split__text > :last-child { margin-bottom: 0; }
}
.split + .welcome { margin-top: var(--s-12); }
.welcome {
  display: grid; gap: var(--s-8); padding: var(--s-8) var(--s-6); border-radius: var(--r-xl); color: var(--c-text-inverse);
  background: radial-gradient(120% 140% at 0% 0%, #0B395A 0%, var(--c-primary) 55%) ;
  box-shadow: var(--sh-lg); position: relative; overflow: hidden;
}
.welcome::after { content: ""; position: absolute; right: -80px; bottom: -80px; width: 260px; height: 260px; border-radius: 50%; border: 1px solid rgba(191,211,122,.18); pointer-events: none; }
.welcome__main { display: flex; flex-direction: column; align-items: flex-start; }
.welcome__icon { display: grid; place-items: center; width: 60px; height: 60px; margin-bottom: var(--s-4); border-radius: 16px; background: var(--c-secondary); color: var(--c-primary); }
.welcome__icon .icon { width: 28px; height: 28px; }
.welcome h3 { margin-bottom: var(--s-3); }
.welcome__main p { color: var(--c-inverse-muted); margin-bottom: var(--s-6); }
.welcome strong { color: var(--c-text-inverse); }
.welcome a:not(.btn) { color: var(--c-text-inverse); }
.welcome a:not(.btn):hover { color: var(--c-secondary); }
.welcome :focus-visible { outline-color: var(--c-focus-inverse); }
.welcome__list { display: grid; gap: var(--s-3); position: relative; z-index: 1; }
.welcome__list li { display: flex; gap: 14px; align-items: flex-start; padding: var(--s-4) var(--s-4); border-radius: var(--r-card); background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); }
.welcome__item-icon { display: grid; place-items: center; width: 40px; height: 40px; flex: none; border-radius: 12px; background: rgba(191,211,122,.16); color: var(--c-secondary); }
.welcome__item-icon .icon { width: 20px; height: 20px; }
.welcome__list h4 { margin: 0 0 2px; font-size: 1rem; font-weight: 700; color: var(--c-text-inverse); }
.welcome__list p { margin: 0; font-size: .9375rem; line-height: 1.55; color: var(--c-inverse-muted); }
@media (min-width: 1080px) {
  .welcome { grid-template-columns: 5fr 6fr; gap: var(--s-12); padding: var(--s-12); align-items: center; }
}

/* ---------- Etapas ---------- */
.steps { counter-reset: none; }
.step__num {
  position: absolute; top: 14px; right: 20px; font-family: var(--f-head); font-weight: 700; font-size: 3.25rem; line-height: 1;
  color: var(--c-primary); opacity: .07; pointer-events: none; user-select: none;
}
.step > :not(.step__num) { position: relative; }
.step .icon-box { margin-bottom: var(--s-4); }
.step h3 { font-size: clamp(1.1rem, 1.4vw, 1.25rem); margin-bottom: var(--s-2); }
.step p { color: var(--c-text-muted); margin: 0; }

/* ---------- Diferenciais (cards limpos, ícone suave à esquerda) ---------- */
.features { gap: var(--gap); }
.feature:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgba(4,38,66,.10); }
.feature .icon-box {
  grid-row: span 2; width: 48px; height: 48px; margin: 2px 0 0; border-radius: 12px;
  background: var(--c-primary-soft); border: 1px solid var(--c-border); color: var(--c-primary); box-shadow: none;
}
.feature .icon-box .icon { width: 22px; height: 22px; stroke-width: 1.5; }
.feature h3 { font-size: clamp(1.1rem, 1.4vw, 1.25rem); margin-bottom: var(--s-2); }
.feature p { color: var(--c-text-muted); margin: 0; }

/* ---------- Guia de decisão (Information Gain) ---------- */
.guide__head { display: grid; gap: var(--s-6); margin-bottom: var(--s-8); align-items: end; }
.guide__head h2 { font-size: clamp(2rem, 3.6vw, 3rem); line-height: 1.12; margin: 0; max-width: 14ch; }
.guide__lead { margin: 0; font-size: var(--fs-lead); line-height: 1.75; color: var(--c-text-muted); }
.guide__lead strong { color: var(--c-primary); }
@media (min-width: 1080px) { .guide__head { grid-template-columns: 1fr 1fr; gap: var(--s-16); } }
.guide__note a, .guide__after a { font-weight: 700; }
.guide__table-block { margin-bottom: var(--s-6); }
.guide__table-block > h3 { font-size: clamp(1.1rem, 1.4vw, 1.25rem); margin-bottom: var(--s-2); }
.guide__table-block > p { color: var(--c-text-muted); }
.table-wrap { overflow-x: auto; border-radius: var(--r-xl); border: 1px solid var(--c-border); background: var(--c-surface); color: var(--c-primary); margin-top: var(--s-4); }
.table { width: 100%; min-width: 760px; border-collapse: collapse; font-size: .9375rem; }
.table caption { text-align: left; padding: var(--s-4) var(--s-6); font-size: .8125rem; font-weight: 400; color: var(--c-text-muted); border-bottom: 1px solid var(--c-border); }
.table th, .table td { padding: var(--s-4) var(--s-6); text-align: left; vertical-align: top; border-bottom: 1px solid var(--c-border); line-height: 1.55; }
.table thead th { background: var(--c-surface-alt); font-size: .8125rem; font-weight: 700; }
.table tbody th { font-family: var(--f-head); font-weight: 700; width: 26%; }
.table td { color: var(--c-text); }
.table tbody tr:last-child > * { border-bottom: 0; }
.guide__after { max-width: none; margin: 0 0 var(--s-12); line-height: 1.75; }
.guide__cta { display: grid; gap: var(--s-6); align-items: center; margin-top: var(--s-12); padding: var(--s-8) var(--s-6); border-radius: var(--r-xl); background: var(--c-primary); color: var(--c-text-inverse); }
.guide__cta-title { margin: 0 0 var(--s-2); font-family: var(--f-head); font-weight: 700; font-size: clamp(1.15rem, 1.6vw, 1.4rem); }
.guide__cta-text { margin: 0; color: var(--c-inverse-muted); }
.guide__cta :focus-visible { outline-color: var(--c-focus-inverse); }
@media (min-width: 1080px) { .guide__cta { grid-template-columns: 1fr auto; gap: var(--s-12); padding: var(--s-8) var(--s-12); } }
.paths { gap: var(--gap); }
.path {
  display: flex; flex-direction: column; padding: var(--s-6); border-radius: var(--r-xl);
  background: var(--c-surface); color: var(--c-primary); border: 1px solid var(--c-border); box-shadow: 0 10px 30px rgba(4,38,66,.06);
}
.path > .icon-box { margin-bottom: var(--s-4); }
.path h3 { font-size: clamp(1.1rem, 1.4vw, 1.25rem); color: var(--c-primary); margin-bottom: var(--s-2); }
.path > p { color: var(--c-text-muted); font-size: .9375rem; line-height: 1.6; margin-bottom: var(--s-6); }
.path > p strong { color: var(--c-primary); }
.path__items { display: grid; gap: var(--s-3); }
.path__item { display: flex; gap: 12px; align-items: flex-start; padding: var(--s-4); border-radius: var(--r-card); background: #FAFCF3; border: 1px solid #E6EDCF; }
.path__item-icon { display: inline-flex; flex: none; margin-top: 1px; color: var(--c-primary); }
.path__item-icon .icon { width: 22px; height: 22px; stroke-width: 1.5; }
.path h4 { margin: 0 0 4px; font-size: 1rem; font-weight: 700; line-height: 1.35; color: var(--c-primary); }
.path__item p { margin: 0; font-size: .9375rem; line-height: 1.55; color: var(--c-text); }
.path a { color: var(--c-primary); font-weight: 700; }
.path a:hover { color: var(--c-primary-hover); }
.section--navy .path :focus-visible { outline-color: var(--c-focus); }

/* ---------- Comunidade no WhatsApp ---------- */
.community__box {
  display: grid; gap: var(--s-6); align-items: center;
  padding-top: var(--s-8); padding-bottom: var(--s-8);
  background: var(--c-secondary-soft); border: 1px solid #DCE7B5; border-radius: var(--r-xl);
  max-width: calc(var(--container)); margin-left: var(--gutter); margin-right: var(--gutter); width: auto;
  padding-left: var(--s-6); padding-right: var(--s-6);
}
.community__icon { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--c-secondary); color: var(--c-primary); }
.community__icon .icon { width: 30px; height: 30px; }
.community__text h2 { font-size: clamp(1.4rem, 2.4vw, 2rem); margin-bottom: var(--s-3); }
.community__text p { margin-bottom: var(--s-4); }
.community__facts { display: grid; gap: var(--s-2); }
.community__facts li { display: flex; gap: 10px; align-items: center; font-size: .9375rem; font-weight: 500; }
.community__facts .icon { color: var(--c-primary); }
.community__actions { display: grid; gap: var(--s-3); align-content: start; }
.community__media img { width: 100%; aspect-ratio: 2/1; object-fit: cover; border-radius: var(--r-card); background: var(--c-primary-soft); }
.community__actions .btn { width: 100%; }
.community__link { display: inline-flex; align-items: center; min-height: 44px; font-size: .9375rem; }
.community__note { margin: 0; font-size: .8125rem; color: var(--c-text-muted); }
@media (min-width: 1080px) {
  .community__box { grid-template-columns: auto 1fr 380px; gap: var(--s-8); padding: var(--s-12); margin-left: auto; margin-right: auto; align-items: stretch; }
  .community__actions { align-content: space-between; }
  .community__icon { align-self: start; }
}

/* ---------- Áreas atendidas (2 colunas: presencial | online) ---------- */
.areas { display: grid; gap: var(--gap); }
.areas__block { display: flex; flex-direction: column; padding: var(--s-6); border: 1px solid var(--c-border); border-top: 2px solid var(--c-secondary); border-radius: var(--r-xl); background: var(--c-surface); box-shadow: var(--sh-xs); }
.areas__icon { display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: var(--s-4); border-radius: 14px; background: var(--c-primary); color: var(--c-secondary); }
.areas__block h3 { margin-bottom: var(--s-2); }
.areas__block > p { color: var(--c-text-muted); }
.areas__sub { font-size: .875rem; margin-bottom: 0; }
.area-grid { display: grid; gap: var(--s-2); grid-template-columns: 1fr; margin-top: auto; padding-top: var(--s-4); }
.area-grid a {
  display: flex; align-items: center; gap: 8px; min-height: 48px; height: 100%; padding: 10px 14px; border-radius: var(--r-btn);
  border: 1px solid var(--c-border); background: var(--c-surface-alt); text-decoration: none; font-size: .9375rem; line-height: 1.35;
  transition: border-color .2s var(--ease), background-color .2s var(--ease);
}
.area-grid a:hover { border-color: var(--c-primary); background: var(--c-primary-soft); text-decoration: none; }
.area-grid .icon { color: var(--c-kicker); flex: none; }
.area-grid__more { grid-column: 1 / -1; }
.area-grid__more a { background: var(--c-secondary-soft); border-color: #DCE7B5; border-style: dashed; }
.area-grid__more a strong { color: var(--c-primary); }
@media (min-width: 768px) { .area-grid--2 { grid-template-columns: repeat(2, 1fr); } .area-grid--2 a { font-size: .875rem; padding: 10px 12px; } }
@media (min-width: 1080px) {
  .areas { grid-template-columns: 1fr 1fr; align-items: stretch; }
  .areas__block { padding: var(--s-8); }
}

/* ---------- Avaliações do Google ---------- */
.review figure { height: 100%; display: flex; flex-direction: column; padding: var(--s-6); background: var(--c-surface); border: 1px solid var(--c-border); border-top: 2px solid var(--c-secondary); border-radius: var(--r-xl); box-shadow: var(--sh-xs); }
.review__top { display: flex; align-items: center; justify-content: space-between; gap: var(--s-3); flex-wrap: wrap; }
.review__stars { display: inline-flex; gap: 2px; color: #FBBC04; }
.review__stars .icon { width: 20px; height: 20px; fill: currentColor; stroke: currentColor; }
.review__source { font-size: .8125rem; font-weight: 700; color: var(--c-text-muted); }
.review blockquote { margin: var(--s-4) 0 var(--s-6); flex: 1; font-size: 1rem; line-height: 1.65; color: var(--c-text); }
.review blockquote p { margin: 0 0 var(--s-3); }
.review blockquote p:last-child { margin-bottom: 0; }
.review figcaption { display: grid; gap: 2px; padding-top: var(--s-4); border-top: 1px solid var(--c-border); font-size: .875rem; color: var(--c-text-muted); }
.review figcaption strong { color: var(--c-primary); font-size: .9375rem; }

/* ---------- FAQ (2 colunas, estilo limpo com divisórias) ---------- */
.faq-layout { display: grid; gap: 0; }
.faq { display: grid; gap: 0; align-items: start; }
.faq__col { display: grid; align-content: start; border-top: 1px solid var(--c-border); }
@media (max-width: 1079px) { .faq__col + .faq__col { border-top: 0; } }
@media (min-width: 1080px) { .faq { grid-template-columns: 1fr 1fr; column-gap: var(--s-12); } }
.faq details { border-bottom: 1px solid var(--c-border); }
.faq summary { display: flex; align-items: center; justify-content: space-between; gap: var(--s-6); min-height: 68px; padding: var(--s-4) 0; cursor: pointer; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary h3 { margin: 0; font-size: clamp(1rem, 1.15vw, 1.0625rem); font-weight: 700; line-height: 1.45; color: var(--c-primary); transition: color .2s var(--ease); }
.faq summary:hover h3 { color: var(--c-primary-hover); }
.faq__toggle { display: inline-flex; flex: none; color: var(--c-primary); transition: transform .25s var(--ease); }
.faq__toggle .icon { width: 22px; height: 22px; stroke-width: 1.5; }
.faq details[open] .faq__toggle { transform: rotate(45deg); }
.faq .faq__answer { padding: 0 var(--s-8) var(--s-6) 0; }
.faq details[open] .faq__answer { animation: faq-open .3s var(--ease); }
@keyframes faq-open { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.faq .faq__answer p { color: var(--c-text); line-height: 1.75; }
.faq .faq__answer p:last-child { margin-bottom: 0; }

/* ---------- CTA final ---------- */
.cta-final { background: var(--c-primary); color: var(--c-text-inverse); padding: var(--section) 0; }
.cta-final__grid { display: grid; gap: var(--s-12); align-items: center; }
.cta-final .section__lead { color: var(--c-inverse-muted); }
.cta-final__facts { display: grid; gap: var(--s-3); margin-top: var(--s-6); }
.cta-final__facts li { display: flex; gap: 10px; align-items: center; font-size: .9375rem; }
.cta-final__facts .icon { color: var(--c-secondary); }
.wa-form { background: var(--c-surface); color: var(--c-primary); border-radius: var(--r-xl); padding: var(--s-6); box-shadow: var(--sh-lg); }
.wa-form fieldset { border: 0; margin: 0 0 var(--s-6); padding: 0; }
.wa-form legend { font-family: var(--f-head); font-weight: 700; font-size: 1.125rem; margin-bottom: var(--s-4); padding: 0; }
.wa-form__options { display: grid; gap: var(--s-3); }
.option { position: relative; display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; min-height: 56px; border: 2px solid var(--c-border-strong); border-radius: var(--r-btn); cursor: pointer; transition: border-color .15s var(--ease), background-color .15s var(--ease); }
.option:hover { border-color: var(--c-primary); }
.option input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--c-primary); flex: none; }
.option strong { display: block; font-size: .9375rem; line-height: 1.35; }
.option small { display: block; color: var(--c-text-muted); font-size: .8125rem; line-height: 1.4; }
.option:has(input:checked) { border-color: var(--c-primary); background: var(--c-secondary-soft); }
.option:has(input:focus-visible) { outline: 3px solid var(--c-focus); outline-offset: 2px; }
.wa-form__note { margin: var(--s-4) 0 0; font-size: .8125rem; color: var(--c-text-muted); }
@media (min-width: 768px) {
  .wa-form { padding: var(--s-8); }
  .wa-form__options { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1080px) { .cta-final__grid { grid-template-columns: 6fr 6fr; gap: var(--s-16); } }

/* ---------- Botões flutuantes ---------- */
.wa-float {
  position: fixed; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 90;
  display: grid; place-items: center; width: 60px; height: 60px; border-radius: 50%;
  background: var(--c-whatsapp); color: #FFFFFF; box-shadow: 0 10px 28px rgba(37,211,102,.4); text-decoration: none;
  transition: transform .2s var(--ease), box-shadow .2s var(--ease);
}
.wa-float .icon { width: 32px; height: 32px; fill: currentColor; }
.wa-float:hover { transform: scale(1.06); color: #FFFFFF; box-shadow: 0 14px 32px rgba(37,211,102,.5); }
.wa-float:focus-visible { outline: 3px solid var(--c-primary); outline-offset: 3px; }
@media (min-width: 1080px) { .wa-float { right: 24px; bottom: 24px; width: 64px; height: 64px; } }

.to-top {
  position: fixed; left: 50%; bottom: calc(20px + env(safe-area-inset-bottom, 0px)); z-index: 89; transform: translateX(-50%);
  display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%;
  background: rgba(191,211,122,.28); color: var(--c-primary); border: 1px solid rgba(143,167,61,.45);
  backdrop-filter: blur(10px) saturate(140%); -webkit-backdrop-filter: blur(10px) saturate(140%);
  box-shadow: 0 6px 18px rgba(4,38,66,.10); text-decoration: none; opacity: .8;
  transition: background-color .25s var(--ease), opacity .25s var(--ease), box-shadow .25s var(--ease);
}
.to-top[hidden] { display: none; }
.to-top:hover, .to-top:focus-visible { background: rgba(191,211,122,.9); color: var(--c-primary); opacity: 1; box-shadow: var(--sh-md); }

.invite {
  position: fixed; left: 16px; right: 88px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 91; max-width: 360px;
  padding: var(--s-6) var(--s-6) var(--s-6); border-radius: var(--r-xl); background: var(--c-surface); color: var(--c-primary);
  border: 1px solid var(--c-border); border-top: 3px solid var(--c-secondary); box-shadow: var(--sh-lg);
  animation: invite-in .35s var(--ease);
}
.invite[hidden] { display: none; }
.invite__close {
  position: absolute; top: 6px; right: 6px; display: grid; place-items: center; width: 44px; height: 44px;
  border: 0; border-radius: 50%; background: transparent; color: var(--c-text-muted); cursor: pointer;
}
.invite__close:hover { background: var(--c-primary-soft); color: var(--c-primary); }
.invite__title { margin: 0 32px var(--s-2) 0; font-family: var(--f-head); font-weight: 700; font-size: 1.0625rem; line-height: 1.35; }
.invite__text { font-size: .9375rem; line-height: 1.55; color: var(--c-text-muted); margin-bottom: var(--s-4); }
@keyframes invite-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@media (min-width: 1080px) { .invite { left: 24px; right: auto; bottom: 24px; } }
.invite:not([hidden]) ~ .to-top { opacity: 0; pointer-events: none; }
@media (max-width: 1079px) { body:has(.invite:not([hidden])) .to-top { display: none; } }

/* ---------- Aviso de cookies ---------- */
.cookie {
  position: fixed; left: 16px; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 120; width: auto; max-width: 620px; max-height: 78vh; max-height: min(78dvh, 680px); overflow: auto;
  padding: var(--s-5, 20px); border-radius: var(--r-card); background: var(--c-surface); color: var(--c-primary); box-shadow: var(--sh-lg); border: 1px solid var(--c-border);
}
.cookie[hidden] { display: none; }
.cookie__title { font-family: var(--f-head); font-weight: 700; font-size: 1.125rem; margin: 0 0 var(--s-2); }
.cookie p { font-size: .9rem; line-height: 1.5; margin-bottom: var(--s-4); }
.cookie__actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-2); }
.cookie__button { min-height: 44px; padding: 9px 10px; border: 1px solid var(--c-border-strong); border-radius: var(--r-btn); background: var(--c-surface); color: var(--c-primary); font: 600 .875rem/1.25 var(--f-body); cursor: pointer; text-align: center; }
.cookie__button:hover { background: var(--c-primary-soft); border-color: var(--c-primary); }
.cookie__button:focus-visible, .cookie__switch input:focus-visible { outline: 3px solid var(--c-focus); outline-offset: 2px; }
.cookie__settings { margin-top: var(--s-4); padding-top: var(--s-4); border-top: 1px solid var(--c-border); }
.cookie__settings h3 { margin: 0 0 var(--s-3); font: 700 1rem/1.4 var(--f-head); }
.cookie__category { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s-4); padding: var(--s-3) 0; border-bottom: 1px solid var(--c-border); }
.cookie__category strong { display: block; margin-bottom: 2px; }
.cookie__category p { margin: 0; color: var(--c-text-muted); }
.cookie__switch { flex: 0 0 auto; display: inline-flex; align-items: center; gap: var(--s-2); min-height: 44px; font-size: .875rem; }
.cookie__switch input { width: 20px; height: 20px; accent-color: var(--c-accent-strong); }
.cookie__settings-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: var(--s-2); margin-top: var(--s-4); }
@media (min-width: 1080px) { .cookie { left: 24px; right: auto; bottom: 24px; } }
@media (max-width: 480px) {
  .cookie { left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom, 0px)); max-height: 82vh; max-height: min(82dvh, 680px); padding: 16px; }
  .cookie__actions { grid-template-columns: 1fr; }
  .cookie__button { min-height: 42px; }
}

/* ---------- Movimento reduzido ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; scroll-behavior: auto !important; }
  .card:hover, .btn:hover { transform: none; }
}

/* ---------- Cards do blog (etiqueta em pílula + chamada de leitura) ---------- */
.card--post { border-radius: var(--r-xl); }
.card--post img { aspect-ratio: 16/10; }
.card--post .card__body { padding-top: var(--s-6); padding: var(--s-6) var(--s-6) var(--s-6); }
.card--post .card__tag { margin: 0 0 var(--s-4); }
.card--post .card__tag span { display: inline-block; padding: 5px 12px; border-radius: var(--r-pill); background: var(--c-primary-soft); color: var(--c-primary); font-size: .8125rem; font-weight: 700; line-height: 1.4; }
.card--post h3 { font-size: clamp(1.15rem, 1.5vw, 1.3rem); line-height: 1.35; margin-bottom: var(--s-3); }
.card--post .card__body p:not(.card__tag) { color: var(--c-text-muted); flex: 1; }
.card__more { display: block; margin-top: var(--s-2); font-size: .9375rem; font-weight: 500; color: var(--c-primary); }
.card--post:hover .card__more { text-decoration: none; }
.card--post:hover { transform: translateY(-3px); }

/* =========================================================
   Ajustes de suavidade e expansão (v. referência clean)
   ========================================================= */
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.hero h1, .hero h2, .cta-final h2, .welcome h3, .guide__cta-title, .section--navy h2, .section--navy h3 { color: var(--c-text-inverse); }
.path h3, .path h4 { color: var(--c-primary); }
.welcome__list h4 { color: var(--c-text-inverse); }
.footer h2 { color: var(--c-text-inverse); }

/* Hero: botões em uma linha */
.hero__actions .btn { white-space: nowrap; }
@media (max-width: 420px) { .hero__actions .btn { font-size: .9375rem; padding-left: 16px; padding-right: 16px; gap: 8px; } }

/* Letreiro */
.marquee { position: relative; display: flex; align-items: center; background: var(--c-secondary-soft); border-top: 1px solid #E3EBC6; border-bottom: 1px solid #E3EBC6; }
.marquee__viewport { overflow: hidden; flex: 1; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.marquee__track { display: flex; width: max-content; animation: marquee 48s linear infinite; }
.marquee:hover .marquee__track, .marquee:focus-within .marquee__track, .marquee.is-paused .marquee__track { animation-play-state: paused; }
.marquee__list { display: flex; flex: none; }
.marquee__list li { display: flex; align-items: center; }
.marquee__list li::after { content: ""; width: 6px; height: 6px; margin: 0 24px; border-radius: 50%; background: var(--c-accent-strong); opacity: .7; }
.marquee__list a { display: inline-flex; align-items: center; min-height: 56px; font-size: .9375rem; font-weight: 500; color: var(--c-primary); text-decoration: none; white-space: nowrap; }
.marquee__list a:hover { text-decoration: none; }
.marquee__toggle { flex: none; display: grid; place-items: center; width: 44px; height: 44px; margin: 0 12px; border: 1px solid #DCE7B5; border-radius: 50%; background: rgba(255,255,255,.7); color: var(--c-primary); cursor: pointer; }
.marquee__toggle:hover { background: #FFFFFF; }
.marquee__play { display: none; }
[aria-pressed="true"] .marquee__pause { display: none; }
[aria-pressed="true"] .marquee__play { display: block; }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.no-js .marquee__toggle { display: none; }
@media (prefers-reduced-motion: reduce) {
  .marquee__track { animation: none; width: 100%; }
  .marquee__list { flex-wrap: wrap; justify-content: center; padding: 8px 16px; }
  .marquee__list[aria-hidden="true"], .marquee__toggle { display: none; }
  .marquee__viewport { -webkit-mask-image: none; mask-image: none; }
}

/* Passo a passo: fundo claro */
.step .icon-box { box-shadow: none; }

/* Links sem sublinhado nos caminhos do guia */
.path a { text-decoration: none; color: var(--c-primary); font-weight: 700; border-bottom: 1px solid transparent; transition: border-color .2s var(--ease), color .2s var(--ease); }
.path a:hover { color: var(--c-primary-hover); border-bottom-color: currentColor; }

/* Carrossel de avaliações (só com JavaScript; sem JS fica a grade) */
.js .carousel__track { display: block; position: relative; min-height: 1px; }
.js .carousel__track > .review { display: none; }
.js .carousel .review__top { justify-content: center; flex-direction: column; gap: var(--s-2); }
.js .carousel .review blockquote { font-size: 1.0625rem; line-height: 1.75; max-width: 60ch; }
.js .carousel .review figcaption { justify-items: center; width: 100%; }
@keyframes slide-in { from { opacity: 0; transform: translateX(16px); } to { opacity: 1; transform: none; } }

/* FAQ encaixotada e delicada */
.faq-box { max-width: 1040px; margin: 0 auto; padding: var(--s-4) var(--s-6); background: var(--c-surface); border: 1px solid #E6ECF1; border-radius: var(--r-xl); box-shadow: 0 10px 30px rgba(21,39,64,.05); }
@media (min-width: 1080px) { .faq-box { padding: var(--s-6) var(--s-12); } }
.faq-box .faq__col { border-top: 0; }
.faq-box details { border-bottom-color: #EDF1F4; }
.faq-box .faq__col details:last-child { border-bottom: 0; }
@media (max-width: 1079px) { .faq-box .faq__col:first-child details:last-child { border-bottom: 1px solid #EDF1F4; } }
.faq-box summary { min-height: 60px; }
.faq-box summary h3 { font-size: .9375rem; font-weight: 600; }
.faq-box .faq__answer p { font-size: .9375rem; color: var(--c-text-muted); }
.faq-box .faq__answer a { color: var(--c-primary); }

/* ===== Ajustes 10/10 (tarde) ===== */
/* Sem sombra abaixo dos ícones */
.icon-box, .card--media .icon-box, .feature .icon-box, .step .icon-box { box-shadow: none !important; }

/* Avaliações em 2 colunas */
.reviews-layout { display: grid; gap: var(--s-8); align-items: center; }
.reviews-layout__head h2 { margin-bottom: var(--s-4); }
.reviews-layout__head .section__lead { margin-bottom: var(--s-6); }
.reviews-layout__head .btn { gap: 10px; }
@media (min-width: 1080px) { .reviews-layout { grid-template-columns: 5fr 7fr; gap: var(--s-16); } }
.js .carousel { position: relative; max-width: none; margin: 0; padding: 0 28px; }
.carousel__arrow {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; display: grid; place-items: center; width: 44px; height: 44px;
  border: 1px solid rgba(21,39,64,.08); border-radius: 50%; background: rgba(255,255,255,.55); color: var(--c-text-muted);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); cursor: pointer; opacity: .75;
  transition: opacity .2s var(--ease), background-color .2s var(--ease), color .2s var(--ease);
}
.carousel__arrow--prev { left: 6px; }
.carousel__arrow--next { right: 6px; }
.carousel__arrow:hover, .carousel__arrow:focus-visible { opacity: 1; background: rgba(255,255,255,.95); color: var(--c-primary); }
.js .carousel .review figure { text-align: center; align-items: center; padding: var(--s-8) var(--s-12) var(--s-8); }

/* FAQ: ícone + em verde */
.faq-box .faq__toggle .icon { width: 18px; height: 18px; color: #6B7F24; }

/* Blog: etiqueta em verde suave */
.card--post .card__tag span { background: var(--c-secondary-soft); color: var(--c-kicker); border: 1px solid #E3EBC6; }

/* Tabela com linhas alternadas */
.table thead th { background: #DCE7B5; color: var(--c-primary); }
.table tbody tr:nth-child(even) { background: #F7FAEC; }
.table tbody tr:nth-child(odd) { background: #FFFFFF; }
.table caption { background: #FFFFFF; }

/* Aviso do guia em verde claro, links sem sublinhado */
.guide__note {
  max-width: none; margin: 0 0 var(--s-8); padding: var(--s-6); border-radius: var(--r-xl);
  border: 1px solid var(--c-border); line-height: 1.75; background: var(--c-secondary-soft); border-color: #E3EBC6;
}
.guide__note a { text-decoration: none; color: var(--c-primary); border-bottom: 1px solid transparent; }
.guide__note a:hover { border-bottom-color: currentColor; }

/* Diferenciais: ícone em verde claro */
.feature .icon-box { background: var(--c-secondary-soft); border-color: #E3EBC6; color: var(--c-primary); }

/* Comunidade mais próxima da seção anterior */
.community { padding: var(--section) 0 0; padding-top: 0; margin-top: calc(var(--section) * -0.5); }

/* Links sem sublinhado (negrito e cor; linha só no hover) */
.guide__after a, .community__link, a.link-soft {
  text-decoration: none; color: var(--c-primary); font-weight: 700;
  border-bottom: 1px solid transparent; transition: border-color .2s var(--ease), color .2s var(--ease);
}
.guide__after a:hover, .community__link:hover, a.link-soft:hover { color: var(--c-primary-hover); border-bottom-color: currentColor; }
.community__link { display: inline-block; min-height: 44px; align-self: start; padding: 11px 0; line-height: 1.4; }

/* ===== Ícones com fundo verde: um único verde, sem degradê ===== */
.icon-box, .feature .icon-box, .card--media .icon-box, .step .icon-box, .path > .icon-box,
.welcome__icon, .welcome__item-icon, .proof__icon, .community__icon, .topic__icon, .icon-box--inverse {
  background: var(--c-secondary) !important; background-image: none !important; color: var(--c-primary) !important;
  border-color: var(--c-secondary) !important; box-shadow: none !important;
}
.topic__icon { background: none !important; color: var(--c-kicker) !important; }

/* ===== Carrossel por rolagem com encaixe (uma avaliação por vez, mesmo sem JS) ===== */
.carousel__track::-webkit-scrollbar { display: none; }
.carousel .review figure { padding: var(--s-8) var(--s-12); text-align: center; align-items: center; }
.carousel .review__top { justify-content: center; flex-direction: column; gap: var(--s-2); }
.carousel .review figcaption { justify-items: center; width: 100%; }
@media (max-width: 767px) { .carousel .review figure { padding: var(--s-6) var(--s-8); } }
.marquee__toggle { display: none !important; }
.carousel .review figure { justify-content: center; }
.carousel .review blockquote { font-size: 1.0625rem; line-height: 1.75; flex: none; }

/* ===== Sem sublinhado em nenhum link (decisão do cliente) =====
   Links dentro de texto ficam em negrito e na cor da marca, para continuarem identificáveis. */
a, a:hover, a:focus, a:visited { text-decoration: none !important; }
/* Só os links de texto que usavam a borda inferior como sublinhado; botões e cartões mantêm o contorno completo */
.path a:not(.btn), .guide__note a:not(.btn), .guide__after a:not(.btn), .community__link, a.link-soft,
.path a:not(.btn):hover, .guide__note a:not(.btn):hover, .guide__after a:not(.btn):hover, .community__link:hover, a.link-soft:hover { border-bottom-color: transparent !important; }
p a:not(.btn), li p a:not(.btn), td a, .faq__answer a, address a, .care-note a { font-weight: 700; color: var(--c-primary); }
.section--navy p a:not(.btn), .welcome p a, .footer p a, .footer .care-note a, .guide__cta a:not(.btn) { color: var(--c-text-inverse); }
a:not(.btn):hover { color: var(--c-primary-hover); }
.footer a:not(.btn):hover, .welcome a:not(.btn):hover, .topbar a:hover, .section--navy a:not(.btn):hover { color: var(--c-secondary); }
.faq summary:hover h3, .card--post:hover .card__more { text-decoration: none !important; }

/* ===== Carrossel com botões de opção (funciona sem JavaScript) ===== */
.carousel { position: relative; padding: 0 28px; }
.carousel__radio { position: absolute; width: 1px; height: 1px; margin: 0; padding: 0; border: 0; overflow: hidden; clip: rect(0,0,0,0); opacity: 0; }
.carousel__track {
  overflow-x: auto; scroll-behavior: smooth; scrollbar-width: none; gap: 0; display: block !important;
  overflow: visible !important; scroll-snap-type: none !important;
}
.carousel__track > .review { flex: 0 0 100%; scroll-snap-align: center; animation: none !important; padding: 2px; display: none !important; }
#avaliacao-1:checked ~ .carousel__track > .review:nth-child(1),
#avaliacao-2:checked ~ .carousel__track > .review:nth-child(2),
#avaliacao-3:checked ~ .carousel__track > .review:nth-child(3) { display: block !important; animation: slide-in .45s var(--ease) !important; }
.carousel__nav { display: none; }
#avaliacao-1:checked ~ .carousel__navs .carousel__nav--1,
#avaliacao-2:checked ~ .carousel__navs .carousel__nav--2,
#avaliacao-3:checked ~ .carousel__navs .carousel__nav--3 { display: block; }
label.carousel__arrow { cursor: pointer; }
.carousel:has(.carousel__radio:focus-visible) .review figure { outline: 3px solid var(--c-focus); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .carousel__track > .review { animation: none !important; } }

/* Reforço: nenhum link sublinhado, mesmo com estilos externos do navegador ou do visualizador */
html body a, html body a:hover, html body a:focus, html body a:visited, html body a *, html body .faq__answer a, html body .faq__answer a:hover { text-decoration: none !important; text-decoration-line: none !important; }

/* ===== Hover em todos os links: muda de cor =====
   Fundo claro: azul da marca -> verde-escuro (#5A6E1A, 5,7:1). Fundo azul: branco -> verde da marca. */
a { transition: color .2s var(--ease), background-color .2s var(--ease), border-color .2s var(--ease); }
html body a:where(:not(.btn, .wa-float, .to-top, .logo, .footer__logo, .uf--on)):hover,
html body a:where(:not(.btn, .wa-float, .to-top, .logo, .footer__logo, .uf--on)):focus-visible,
html body a:where(:not(.btn)):hover strong, html body .card:hover .card__stretch, html body .card:hover .card__more,
html body .card--media:hover .card__link { color: var(--c-kicker) !important; }
html body .topbar a:hover, html body .hero a:not(.btn):hover, html body .footer a:not(.uf--on):not(.footer__logo):not(.social a):hover,
html body .footer a:not(.uf--on):hover strong, html body .section--navy a:not(.btn):hover, html body .welcome a:not(.btn):hover,
html body .cta-final a:not(.btn):hover, html body .guide__cta a:not(.btn):hover, html body .footer .link-button:hover,
html body .topbar a:focus-visible, html body .footer a:focus-visible { color: var(--c-secondary) !important; }
html body .social a:hover { color: var(--c-primary) !important; }
.link-button { background: none; border: 0; padding: 0; color: var(--c-text-inverse); cursor: pointer; text-decoration: none; transition: color .2s var(--ease); }
html body .footer a.uf--on:hover, html body .footer a.uf--on:focus-visible { color: var(--c-primary) !important; background: #FFFFFF; }

/* =========================================================
   Componentes de páginas internas (hub de categoria)
   ========================================================= */
/* Breadcrumb */
.breadcrumb { background: var(--c-surface); border-bottom: 1px solid var(--c-border); }
.breadcrumb__list { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 0; min-height: 48px; padding-top: 8px; padding-bottom: 8px; font-size: .875rem; color: var(--c-text-muted); }
.breadcrumb__list li { display: inline-flex; align-items: center; }
.breadcrumb__list li + li::before { content: ""; width: 6px; height: 6px; margin: 0 12px; border-top: 1.5px solid var(--c-border-strong); border-right: 1.5px solid var(--c-border-strong); transform: rotate(45deg); }
.breadcrumb__list a { color: var(--c-primary); font-weight: 500; }
.breadcrumb__list [aria-current="page"] { color: var(--c-text-muted); }

/* Hero do hub: mesma linguagem da home, um pouco mais baixo */
@media (min-width: 1080px) { .hero--hub { min-height: 600px; padding: 96px 0; } }
.hero--hub h1 { font-size: clamp(2rem, 3.6vw, 3rem); }
.hero--curso-psicanalise .hero__grid { gap: var(--s-8); align-items: center; }
@media (min-width: 768px) {
  .hero--curso-psicanalise .hero__grid { grid-template-columns: minmax(0, 1fr) minmax(380px, 460px); gap: clamp(36px, 4vw, 52px); }
  .hero--curso-psicanalise .hero__visual-frame { justify-self: stretch; width: 100%; }
}
@media (max-width: 767px) {
  .hero--curso-psicanalise .hero__visual-frame { justify-self: stretch; width: 100%; margin-top: var(--s-6); }
}

/* Resposta direta */
.answer { padding: var(--s-12) 0 var(--s-8); }
.answer__box { display: grid; gap: var(--s-4); }
.answer__box > div { padding: var(--s-6); border-radius: var(--r-xl); background: var(--c-secondary-soft); border: 1px solid #E3EBC6; }
.answer__box p { max-width: none; margin-bottom: var(--s-3); line-height: 1.75; }
.answer__box p:last-child { margin-bottom: 0; }
.answer__icon { display: none; }
@media (min-width: 1080px) {
  .answer__box { grid-template-columns: auto 1fr; align-items: center; gap: var(--s-6); }
  .answer__icon { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--c-secondary); color: var(--c-primary); }
  .answer__icon .icon { width: 30px; height: 30px; }
  .answer__box > div { padding: var(--s-8) var(--s-12); }
}

/* Grade de 2 colunas */
@media (min-width: 768px) { .grid--2 { grid-template-columns: repeat(2, 1fr); } }

/* Cards de indicação */
.referral { margin-top: var(--s-12); }
.referral__label { margin: 0 auto var(--s-4); text-align: center; font-size: .875rem; font-weight: 700; letter-spacing: .02em; color: var(--c-kicker); }
.referral__card { display: flex; gap: var(--s-4); align-items: flex-start; padding: var(--s-6); border-radius: var(--r-xl); background: var(--c-surface); border: 1px solid var(--c-border); border-bottom: 2px solid var(--c-secondary); }
.referral__card h3 { font-size: clamp(1.1rem, 1.4vw, 1.25rem); margin-bottom: var(--s-2); }
.referral__card p { color: var(--c-text-muted); margin-bottom: var(--s-2); }
.referral__card.rental-space-card { display: flex; flex-direction: column; gap: 0; padding: 0; overflow: hidden; }
.rental-space-card__image { display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover; background: var(--c-primary-soft); }
.rental-space-carousel { position: relative; width: 100%; aspect-ratio: 4/3; overflow: hidden; background: var(--c-primary-soft); }
.rental-space-carousel__slide { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .7s var(--ease); }
.rental-space-carousel__slide--portrait { object-fit: cover; background: var(--c-primary-soft); }
.rental-space-carousel__slide.is-active { opacity: 1; }
.rental-space-carousel__arrow { position: absolute; z-index: 1; top: 50%; display: grid; place-items: center; width: 34px; height: 34px; padding: 0; transform: translateY(-50%); border: 1px solid rgba(255,255,255,.72); border-radius: 50%; background: rgba(4,38,66,.58); color: #fff; opacity: .78; cursor: pointer; transition: opacity .2s ease, background .2s ease; }
.rental-space-carousel__arrow--prev { left: 10px; }
.rental-space-carousel__arrow--next { right: 10px; }
.rental-space-carousel__arrow .icon { width: 17px; height: 17px; }
.rental-space-carousel__arrow:hover { background: rgba(4,38,66,.86); opacity: 1; }
.rental-space-carousel__arrow:focus-visible { outline: 3px solid var(--c-focus); outline-offset: 3px; opacity: 1; }
.referral__card.rental-space-card > .rental-space-card__content { display: flex; flex: 1; align-items: stretch; gap: var(--s-4); padding: var(--s-6); }
.rental-space-card__content > .icon-box { align-self: flex-start; }
.rental-space-card__body { display: flex; flex: 1; min-width: 0; flex-direction: column; }
.rental-space-card__body > .card__link { margin-top: auto; align-self: flex-start; }
@media (prefers-reduced-motion: reduce) { .rental-space-carousel__slide, .rental-space-carousel__arrow { transition: none; } }

/* Nota abaixo da tabela */
.table-note { max-width: none; margin: var(--s-4) 0 0; font-size: .875rem; color: var(--c-text-muted); text-align: center; }
.table tbody th a { color: var(--c-primary); font-family: var(--f-head); font-weight: 700; }

/* Blocos de verificação (Information Gain) */
.checks { gap: var(--gap); }
.check { padding: var(--s-8) 28px; border-radius: var(--r-xl); background: var(--c-surface); border: 1px solid var(--c-border); border-bottom: 2px solid var(--c-secondary); box-shadow: 0 10px 30px rgba(21,39,64,.05); }
.check > .icon-box { margin-bottom: var(--s-4); }
.check h3 { font-size: clamp(1.15rem, 1.5vw, 1.3rem); margin-bottom: var(--s-2); }
.check__intro { color: var(--c-text-muted); padding-bottom: var(--s-4); border-bottom: 1px solid var(--c-border); }
.check h4 { margin-top: var(--s-4); font-size: 1rem; font-weight: 700; }
.check h4 + p { color: var(--c-text); font-size: .9375rem; line-height: 1.65; margin-bottom: 0; }

/* =========================================================
   Página de serviço
   ========================================================= */
.hero--service { padding: var(--s-12) 0; }
.hero-service__grid { display: grid; gap: var(--s-8); align-items: center; position: relative; }
.hero--service h1 { font-size: clamp(1.9rem, 3.4vw, 2.85rem); }
.hero--service::before { background: linear-gradient(180deg, rgba(21,39,64,.9), rgba(21,39,64,.96)) !important; }
@media (min-width: 1080px) {
  .hero--service { padding: 80px 0; min-height: 640px; display: flex; align-items: center; }
  .hero--service > .container { width: 100%; }
  .hero-service__grid { grid-template-columns: 7fr 5fr; gap: var(--s-16); }
  .hero--service::before { background: linear-gradient(90deg, rgba(21,39,64,.97) 0%, rgba(21,39,64,.92) 55%, rgba(21,39,64,.7) 100%) !important; }
}
.proofs--stack { grid-template-columns: 1fr !important; gap: var(--s-4); margin-top: var(--s-6); }
.wa-form--hero { padding: var(--s-6); }
.wa-form__title { margin: 0 0 var(--s-2); font-family: var(--f-head); font-weight: 700; font-size: 1.25rem; color: var(--c-primary); }
.wa-form--hero legend { font-family: var(--f-body); font-size: .9375rem; font-weight: 500; color: var(--c-text-muted); margin-bottom: var(--s-3); }
.wa-form--hero .wa-form__options { grid-template-columns: 1fr 1fr; gap: var(--s-2); }
.wa-form--hero .option { padding: 10px 12px; }
.wa-form--hero .option strong { font-size: .875rem; }
.wa-form--hero .option small { font-size: .75rem; }
@media (max-width: 420px) { .wa-form--hero .wa-form__options { grid-template-columns: 1fr; } }

/* O que é */
.explain__item { padding: var(--s-8) 28px; border-radius: var(--r-xl); background: var(--c-surface); border: 1px solid var(--c-border); border-bottom: 2px solid var(--c-secondary); }
.explain__item .icon-box { margin-bottom: var(--s-4); }
.explain__item h3 { font-size: clamp(1.1rem, 1.4vw, 1.25rem); }
.explain__item p { color: var(--c-text); font-size: .9375rem; line-height: 1.7; }
.explain__item p:last-child { margin-bottom: 0; }

/* Sinais */
.signs { gap: var(--gap); }
.sign { display: flex; gap: 14px; align-items: flex-start; padding: var(--s-6); border-radius: var(--r-xl); background: var(--c-surface); border: 1px solid var(--c-border); }
.sign__icon { display: grid; place-items: center; width: 44px; height: 44px; flex: none; border-radius: 12px; background: var(--c-secondary); color: var(--c-primary); }
.sign__icon .icon { width: 22px; height: 22px; }
.sign__title { margin: 0 0 4px; font-family: var(--f-head); font-weight: 700; color: var(--c-primary); line-height: 1.35; }
.sign p:last-child { margin: 0; color: var(--c-text-muted); font-size: .9375rem; line-height: 1.6; }

/* Etapas em 5 colunas */
@media (min-width: 768px) { .grid--5 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px) { .grid--5 { grid-template-columns: repeat(5, 1fr); } }
.step {
  position: relative; padding: var(--s-6); border-radius: var(--r-card); border: 1px solid var(--c-border);
  overflow: hidden; background: #F4F7FA; border-color: #E4EBF1; display: flex; flex-direction: column;
}
.step p { flex: 1; }
.step .step__when { flex: none; display: flex; gap: 8px; align-items: flex-start; margin-top: var(--s-4); padding-top: var(--s-3); border-top: 1px solid #E4EBF1; font-size: .8125rem; line-height: 1.5; color: var(--c-kicker); font-weight: 500; }
.step__when .icon { margin-top: 1px; color: var(--c-kicker); }

/* Incluído / não incluído */
.includes { gap: var(--gap); }
.includes__col { padding: var(--s-8); border-radius: var(--r-xl); background: var(--c-surface); border: 1px solid var(--c-border); }
.includes__col h3 { font-size: clamp(1.1rem, 1.4vw, 1.25rem); margin-bottom: var(--s-4); }
.includes__col ul { display: grid; gap: var(--s-3); }
.includes__col li { display: flex; gap: 10px; align-items: flex-start; line-height: 1.55; }
.includes__col li .icon { margin-top: 3px; }
.includes__col--yes { border-bottom: 2px solid var(--c-secondary); }
.includes__col--yes .icon { color: var(--c-kicker); }
.includes__col--no .icon { color: #9AA7B2; }

/* Diferenciais com prova */
.feature {
  grid-template-columns: auto 1fr; column-gap: 20px; align-items: start; align-content: start; padding: var(--s-8) 28px;
  background: var(--c-surface); border: 1px solid var(--c-border); border-bottom: 2px solid var(--c-secondary);
  border-radius: var(--r-xl); box-shadow: 0 10px 30px rgba(4,38,66,.06);
  transition: transform .25s var(--ease), box-shadow .25s var(--ease); display: grid;
}
.feature__proof { grid-column: 2; display: flex; gap: 6px; align-items: center; margin-top: var(--s-3) !important; font-size: .8125rem; font-weight: 700; color: var(--c-kicker) !important; }
.feature__proof .icon { color: var(--c-kicker); }
.feature--link .card__link { grid-column: 2; margin-top: var(--s-3); }
.section--same-address .features > .feature { grid-template-rows: auto 1fr auto; }
.section--same-address .feature__proof { align-self: end; }

/* Checklist */
.ticks { display: grid; gap: 6px; margin-top: var(--s-2); }
.ticks li { position: relative; padding-left: 22px; font-size: .9375rem; line-height: 1.55; }
.ticks li::before { content: ""; position: absolute; left: 2px; top: .45em; width: 10px; height: 6px; border-left: 2px solid var(--c-kicker); border-bottom: 2px solid var(--c-kicker); transform: rotate(-45deg); }
.check h5 { margin: var(--s-3) 0 4px; font-family: var(--f-body); font-size: .875rem; font-weight: 700; color: var(--c-kicker); }
.check h5 + p, .check h4 + p { font-size: .9375rem; line-height: 1.65; }
.checks.grid--3 .check { padding: var(--s-6) 24px; }

/* Caixa de artigos de apoio */
.support { margin-top: var(--s-8); padding: var(--s-6); border-radius: var(--r-xl); background: var(--c-secondary-soft); border: 1px solid #E3EBC6; }
.support__title { display: flex; gap: 8px; align-items: center; margin: 0 0 var(--s-3); font-weight: 700; color: var(--c-primary); }
.support ul { display: grid; gap: var(--s-2); }
@media (min-width: 768px) { .support ul { grid-template-columns: repeat(3, 1fr); } }
.support a { display: flex; align-items: center; min-height: 44px; font-weight: 700; color: var(--c-primary); }

/* Galeria de espaços */
.gallery { gap: var(--gap); }
.gallery__item figure { overflow: hidden; border-radius: var(--r-xl); background: var(--c-surface); border: 1px solid var(--c-border); box-shadow: 0 10px 30px rgba(21,39,64,.05); }
.gallery__item img { width: 100%; aspect-ratio: 4/3; object-fit: cover; background: var(--c-primary-soft); transition: transform .4s var(--ease); }
.gallery__item figure:hover img { transform: scale(1.03); }
.gallery__item figcaption { padding: var(--s-4) var(--s-6); text-align: center; font-family: var(--f-head); font-weight: 700; color: var(--c-primary); }
.gallery__item figcaption small { display: block; margin-top: var(--s-2); color: var(--c-text-muted); font-family: var(--f-body); font-size: var(--fs-small); font-weight: 400; line-height: 1.5; }
.gallery--descriptive { grid-auto-rows: 1fr; align-items: stretch; }
.gallery--descriptive .gallery__item figure { display: flex; height: 100%; flex-direction: column; }
.gallery--descriptive .gallery__item img { flex: none; }
.gallery--descriptive .gallery__item figcaption { box-sizing: border-box; display: flex; height: 220px; flex: none; flex-direction: column; gap: var(--s-2); padding: var(--s-4) var(--s-6); text-align: left; font-family: var(--f-body); font-size: var(--fs-body); font-weight: 400; line-height: 1.6; color: var(--c-text-muted); }
.gallery--descriptive .gallery__item figcaption strong { display: block; min-height: 2.7em; font-family: var(--f-head); font-size: 1rem; font-weight: 700; line-height: 1.35; color: var(--c-primary); }
.gallery--descriptive .gallery__item figcaption p { margin: 0; color: var(--c-text-muted); font-size: var(--fs-body); font-weight: 400; line-height: 1.6; }
@media (max-width: 767px) { .gallery--descriptive .gallery__item figcaption { height: 232px; } }
.gallery--online .gallery__item figcaption { height: 236px; padding-bottom: var(--s-6); }
.gallery--online .gallery__item figcaption p { font-size: .875rem; line-height: 1.5; }
@media (max-width: 767px) { .gallery--online .gallery__item figcaption { height: 248px; } }
@media (prefers-reduced-motion: reduce) { .gallery__item figure:hover img { transform: none; } }

/* ---------- Carrossel de fotos reais da clínica ---------- */
.space-gallery__head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--s-8); margin-bottom: var(--s-8); }
.space-gallery__copy { max-width: 760px; }
.space-gallery__copy .kicker { margin-bottom: var(--s-2); }
.space-gallery__copy h2 { margin-bottom: var(--s-3); }
.space-gallery__copy > p:last-child { max-width: 65ch; margin: 0; color: var(--c-text-muted); }
.space-gallery__copy > p.space-gallery__comfort { margin-top: var(--s-3); padding: var(--s-3) var(--s-4); border-left: 3px solid var(--c-secondary); border-radius: 0 var(--r-md) var(--r-md) 0; background: var(--c-secondary-soft); color: var(--c-primary); line-height: 1.6; }
.space-gallery__controls { display: flex; flex: none; gap: var(--s-2); }
.space-gallery__controls[hidden] { display: none !important; }
.space-gallery__button { display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid var(--c-border); border-radius: 50%; background: var(--c-surface); color: var(--c-primary); cursor: pointer; transition: background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease), opacity .2s var(--ease); }
.space-gallery__button:hover:not(:disabled) { background: var(--c-primary); border-color: var(--c-primary); color: var(--c-text-inverse); }
.space-gallery__button:focus-visible { outline: 3px solid var(--c-focus); outline-offset: 3px; }
.space-gallery__button:disabled { cursor: default; opacity: .42; }
.space-gallery__button .icon { width: 20px; height: 20px; }
.space-gallery__viewport { overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.space-gallery__viewport::-webkit-scrollbar { display: none; }
.space-gallery__viewport:focus-visible { outline: 3px solid var(--c-focus); outline-offset: 4px; border-radius: var(--r-xl); }
.space-gallery__track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - var(--gap) - var(--gap)) / 3); gap: var(--gap); margin: 0; padding: 0 0 var(--s-2); list-style: none; }
.space-gallery__item { min-width: 0; scroll-snap-align: start; scroll-snap-stop: always; }
.space-gallery__item figure { height: 100%; margin: 0; overflow: hidden; border: 1px solid var(--c-border); border-radius: var(--r-xl); background: var(--c-surface); box-shadow: 0 10px 30px rgba(21,39,64,.06); }
.space-gallery__item img { width: 100%; aspect-ratio: 4/3; object-fit: cover; background: var(--c-primary-soft); }
.space-gallery__item figcaption { min-height: 60px; padding: var(--s-4) var(--s-6); color: var(--c-primary); font-family: var(--f-head); font-weight: 700; line-height: 1.4; }
.space-gallery__item figcaption small { display: block; margin-top: var(--s-2); color: var(--c-text-muted); font-family: var(--f-body); font-size: var(--fs-small); font-weight: 400; line-height: 1.5; }
.space-gallery__hint { margin: var(--s-2) 0 0; color: var(--c-text-muted); font-size: var(--fs-small); }
@media (min-width: 768px) and (max-width: 1079px) { .space-gallery__track { grid-auto-columns: calc((100% - var(--gap)) / 2); } }
@media (max-width: 767px) {
  .space-gallery__head { align-items: flex-start; flex-direction: column; gap: var(--s-4); }
  .space-gallery__track { grid-auto-columns: minmax(250px, 88%); }
  .space-gallery__controls { align-self: flex-end; }
}
@media (prefers-reduced-motion: reduce) { .space-gallery__viewport { scroll-behavior: auto; } .space-gallery__button { transition: none; } }

/* =========================================================
   Página Sobre (entity home)
   ========================================================= */
.about-hero { padding: var(--s-12) 0 var(--section); }
.about-hero__grid { display: grid; gap: var(--s-8); align-items: start; }
.about-hero h1 { font-size: clamp(2rem, 3.6vw, 3rem); line-height: 1.15; margin-bottom: var(--s-6); }
.about-hero__def { max-width: 70ch; font-size: var(--fs-lead); line-height: 1.8; color: var(--c-text); }
@media (min-width: 1080px) { .about-hero__grid { grid-template-columns: 7fr 5fr; gap: var(--s-16); } }
.factsheet { padding: var(--s-6); border-radius: var(--r-xl); background: var(--c-secondary-soft); border: 1px solid #E3EBC6; }
.factsheet__title { margin: 0 0 var(--s-4); font-family: var(--f-head); font-weight: 700; color: var(--c-primary); }
.factsheet dl, .person__facts, .hours { margin: 0; display: grid; gap: var(--s-3); }
.factsheet dl > div, .person__facts > div { display: grid; gap: 2px; }
.factsheet dt, .person__facts dt { font-size: .75rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--c-kicker); }
.factsheet dd, .person__facts dd { margin: 0; font-size: .9375rem; line-height: 1.5; color: var(--c-text); }

/* Linha do tempo */
.timeline { gap: var(--gap); position: relative; }
.timeline__item { position: relative; padding: var(--s-6); border-radius: var(--r-xl); background: var(--c-surface); border: 1px solid var(--c-border); border-bottom: 2px solid var(--c-secondary); }
.timeline__dot { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: var(--s-4); border-radius: 12px; background: var(--c-secondary); color: var(--c-primary); }
.timeline__date { margin: 0 0 4px; font-family: var(--f-head); font-weight: 700; font-size: 1.5rem; color: var(--c-primary); }
.timeline__title { margin: 0 0 var(--s-2); font-weight: 700; color: var(--c-primary); }
.timeline__text { margin: 0; font-size: .9375rem; line-height: 1.6; color: var(--c-text-muted); }

/* Pessoas */
.people { gap: var(--gap); }
.person { display: grid; gap: var(--s-6); padding: var(--s-6); border-radius: var(--r-xl); background: var(--c-surface); border: 1px solid var(--c-border); border-bottom: 2px solid var(--c-secondary); }
.person__photo { width: 100%; max-width: 220px; aspect-ratio: 1; object-fit: cover; border-radius: var(--r-lg); background: var(--c-primary-soft); }
.person h3 { margin-bottom: 4px; }
.person__role { color: var(--c-kicker); font-weight: 700; font-size: .9375rem; }
.person__links { margin-top: var(--s-4); }
@media (min-width: 768px) { .person { grid-template-columns: 180px 1fr; } .person__photo { max-width: none; } }

/* Números */
.numbers { padding: var(--s-12) 0; background: var(--c-secondary-soft); border-top: 1px solid #E3EBC6; border-bottom: 1px solid #E3EBC6; }
.numbers__title { text-align: center; margin: 0 auto var(--s-8); font-size: clamp(1.4rem, 2.4vw, 2rem); }
.numbers__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--gap); }
.numbers__grid li { display: grid; gap: 4px; text-align: center; padding: var(--s-4); }
.numbers__value { font-family: var(--f-head); font-weight: 700; font-size: clamp(2rem, 4vw, 3rem); line-height: 1; color: var(--c-primary); }
.numbers__label { font-size: .9375rem; color: var(--c-text); }
@media (min-width: 1080px) { .numbers__grid { grid-template-columns: repeat(4, 1fr); } .numbers__grid li + li { border-left: 1px solid #DCE7B5; } }

/* NAP e perfis */
.nap { gap: var(--gap); }
.nap__card { padding: var(--s-8) 28px; border-radius: var(--r-xl); background: var(--c-surface); border: 1px solid var(--c-border); border-bottom: 2px solid var(--c-secondary); }
.nap__card .icon-box { margin-bottom: var(--s-4); }
.nap__card h3 { font-size: clamp(1.1rem, 1.4vw, 1.25rem); }
.nap__card address p { margin: 0 0 6px; font-size: .9375rem; line-height: 1.55; }
.hours > div { display: flex; justify-content: space-between; gap: var(--s-4); padding: 8px 0; border-bottom: 1px solid var(--c-border); font-size: .9375rem; }
.hours dt { font-weight: 700; color: var(--c-primary); }
.hours dd { margin: 0; color: var(--c-text); }
.nap__note { margin: var(--s-4) 0 0; font-size: .8125rem; color: var(--c-text-muted); }
.profiles { display: grid; gap: 4px; }
.profiles a, .profiles__pending { display: flex; gap: 10px; align-items: center; min-height: 44px; font-size: .9375rem; font-weight: 700; color: var(--c-primary); }
.profiles__pending { color: var(--c-text-muted); font-weight: 500; }
.profiles .icon { color: var(--c-kicker); }

/* CTA final simples */
.cta-final__center { text-align: center; max-width: 820px; }
.cta-final__center .kicker, .cta-final__center .section__lead { margin-left: auto; margin-right: auto; }
.cta-final__center h2 { margin-left: auto; margin-right: auto; color: var(--c-text-inverse); }
.cta-final__actions { display: flex; flex-wrap: wrap; gap: var(--s-3); justify-content: center; margin-top: var(--s-6); }
.cta-final__actions .btn { white-space: nowrap; }
@media (max-width: 480px) { .cta-final__actions .btn { width: 100%; white-space: normal; } }
/* Equipe em 3 cards verticais */
.people.grid--3 .person { grid-template-columns: 1fr !important; align-content: start; }
.people.grid--3 .person__photo { max-width: none; aspect-ratio: 4/3; }

/* =========================================================
   Página de contato
   ========================================================= */
.contact-hero { padding: var(--s-12) 0 var(--section); }
.contact-hero__grid { display: grid; gap: var(--s-8); align-items: start; }
.contact-hero h1 { font-size: clamp(1.9rem, 3.4vw, 2.75rem); line-height: 1.15; margin-bottom: var(--s-4); }
.contact-hero__lead { font-size: var(--fs-lead); line-height: 1.75; color: var(--c-text); max-width: 60ch; }
.contact-hero__facts { display: grid; gap: var(--s-3); margin-top: var(--s-6); }
.contact-hero__facts li { display: flex; gap: 10px; align-items: flex-start; font-size: .9375rem; color: var(--c-text); }
.contact-hero__facts .icon { color: var(--c-kicker); margin-top: 3px; }
@media (min-width: 1080px) { .contact-hero__grid { grid-template-columns: 7fr 5fr; gap: var(--s-16); } }
.contact-form { border: 1px solid var(--c-border); box-shadow: 0 18px 48px rgba(21,39,64,.08); }
.field { display: grid; gap: 6px; margin-bottom: var(--s-4); }
.field label { font-weight: 700; font-size: .9375rem; color: var(--c-primary); }
.field__opt { font-weight: 400; color: var(--c-text-muted); }
.field select, .field input { min-height: 48px; padding: 10px 14px; border: 1.5px solid var(--c-border-strong); border-radius: var(--r-btn); font: inherit; color: var(--c-text); background: var(--c-surface); }
.field select:focus-visible, .field input:focus-visible { outline: 3px solid var(--c-focus); outline-offset: 2px; border-color: var(--c-primary); }
.field__hint { margin: 0; font-size: .8125rem; color: var(--c-text-muted); }
.channels { gap: var(--gap); }
.channel { display: flex; flex-direction: column; padding: var(--s-6); border-radius: var(--r-xl); background: var(--c-surface); border: 1px solid var(--c-border); border-bottom: 2px solid var(--c-secondary); }
.channel .icon-box { margin-bottom: var(--s-4); }
.channel__label { margin: 0 0 2px; font-size: .8125rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--c-kicker); }
.channel__value { flex: 1; margin: 0 0 var(--s-3); font-family: var(--f-head); font-weight: 700; color: var(--c-primary); line-height: 1.4; word-break: break-word; }
.channel .icon-box .icon[data-wa-icon] { color: var(--c-primary); }
.info { gap: var(--gap); margin-top: var(--gap); }
.info__card { display: flex; gap: var(--s-4); align-items: flex-start; padding: var(--s-6); border-radius: var(--r-xl); background: var(--c-surface); border: 1px solid var(--c-border); }
.info__card > div { flex: 1; }
.info__card h3 { font-size: clamp(1.05rem, 1.3vw, 1.2rem); margin-bottom: var(--s-3); }
.info__card p { font-size: .9375rem; color: var(--c-text); }
.info__card p:last-child { margin-bottom: 0; }
.mapbox { margin-top: var(--s-12); overflow: hidden; border-radius: var(--r-xl); border: 1px solid var(--c-border); background: var(--c-surface); }
.mapbox__media img, .mapbox__frame { display: block; width: 100%; aspect-ratio: 12/5; border: 0; object-fit: cover; background: var(--c-primary-soft); }
@media (max-width: 767px) { .mapbox__media img, .mapbox__frame { aspect-ratio: 4/3; } }
.mapbox__bar { display: flex; flex-wrap: wrap; gap: var(--s-4); align-items: center; justify-content: space-between; padding: var(--s-4) var(--s-6); }
.mapbox__bar p { display: flex; gap: 8px; align-items: center; margin: 0; font-size: .875rem; color: var(--c-text-muted); }
.mapbox__bar .icon { color: var(--c-kicker); }
.mapbox.is-loaded .mapbox__bar { display: none; }
.faq-box--single { max-width: 820px; }
.faq-box--single .faq { grid-template-columns: 1fr !important; }

/* =========================================================
   Blog: hub e categoria
   ========================================================= */
.blog-hero { padding: var(--s-12) 0 var(--s-8); text-align: center; }
.blog-hero h1 { font-size: clamp(1.9rem, 3.4vw, 2.75rem); line-height: 1.15; max-width: 26ch; margin: 0 auto var(--s-4); }
.blog-hero .kicker { margin-left: auto; margin-right: auto; }
.blog-hero__lead { max-width: 70ch; margin: 0 auto; font-size: var(--fs-lead); line-height: 1.75; color: var(--c-text-muted); }
.section--tight { padding-top: var(--s-8); }
.blog-articles-section { padding-bottom: var(--s-6); }
.blog-articles-cta { padding-top: var(--s-6); }
.blog-articles-cta .guide__cta { margin-top: 0; }
.section-title-sm { font-size: clamp(1.15rem, 1.6vw, 1.35rem); margin-bottom: var(--s-6); max-width: none; }
.featured-post { position: relative; display: grid; overflow: hidden; border-radius: var(--r-xl); background: var(--c-surface); border: 1px solid var(--c-border); box-shadow: 0 10px 30px rgba(21,39,64,.06); transition: transform .25s var(--ease), box-shadow .25s var(--ease); }
.featured-post:hover { transform: translateY(-3px); box-shadow: var(--sh-hover); }
.featured-post img { width: 100%; height: 100%; aspect-ratio: 16/10; object-fit: cover; background: var(--c-primary-soft); }
.featured-post__body { display: flex; flex-direction: column; justify-content: center; padding: var(--s-8); }
.featured-post h3 { font-size: clamp(1.4rem, 2.4vw, 2rem); line-height: 1.25; margin-bottom: var(--s-3); }
.featured-post p { color: var(--c-text-muted); }
@media (min-width: 1080px) { .featured-post { grid-template-columns: 7fr 5fr; } .featured-post__body { padding: var(--s-12); } }
.post-meta { display: flex; gap: 8px; align-items: center; margin: var(--s-2) 0 0 !important; font-size: .8125rem !important; color: var(--c-text-muted) !important; flex: none !important; }
.post-meta .icon { color: var(--c-kicker); }
.topic-cards { gap: var(--gap); }
.topic-card { display: flex; gap: 14px; align-items: flex-start; height: 100%; padding: var(--s-6); border-radius: var(--r-xl); background: var(--c-surface); border: 1px solid var(--c-border); color: var(--c-primary); }
.topic-card:hover { border-color: var(--c-secondary); }
.topic-card.is-current { border-color: var(--c-secondary); background: var(--c-secondary-soft); }
.topic-card__text { display: grid; gap: 2px; }
.topic-card__name { font-family: var(--f-head); font-weight: 700; font-size: 1.0625rem; }
.topic-card__desc { font-size: .875rem; font-weight: 400; color: var(--c-text-muted); line-height: 1.5; }
.topic-card__count { margin-top: 4px; font-size: .8125rem; font-weight: 700; color: var(--c-kicker); }
.pagination { margin-top: var(--s-12); }
.pagination ul { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.pagination a { display: grid; place-items: center; min-width: 44px; height: 44px; padding: 0 12px; border-radius: var(--r-btn); border: 1px solid var(--c-border); background: var(--c-surface); font-weight: 700; color: var(--c-primary); }
.pagination a[aria-current="page"] { background: var(--c-secondary); border-color: var(--c-secondary); }
.guide__cta-actions { display: grid; gap: var(--s-3); justify-items: start; }
.guide__cta-link { color: var(--c-text-inverse); font-weight: 700; }
@media (min-width: 1080px) { .guide__cta-actions { justify-items: center; } }
.guide__cta h2.guide__cta-title { margin: 0 0 var(--s-2); font-size: clamp(1.15rem, 1.6vw, 1.4rem); max-width: none; }
.card--post .card__body .card__tag { flex: none !important; }
.featured-post .card__tag { margin: 0 0 var(--s-4); }
.featured-post .card__tag span { display: inline-block; padding: 5px 12px; border-radius: var(--r-pill); background: var(--c-secondary-soft); color: var(--c-kicker); border: 1px solid #E3EBC6; font-size: .8125rem; font-weight: 700; }
.featured-post .card__stretch::after { content: ""; position: absolute; inset: 0; }

/* =========================================================
   Artigo do blog
   ========================================================= */
.article__header { max-width: calc(820px + var(--gutter) * 2); padding-top: var(--s-12); }
.article__header h1 { font-size: clamp(1.9rem, 3.6vw, 2.8rem); line-height: 1.15; margin: var(--s-3) 0 var(--s-6); }
.article__header .card__tag span { display: inline-block; padding: 5px 12px; border-radius: var(--r-pill); background: var(--c-secondary-soft); color: var(--c-kicker); border: 1px solid #E3EBC6; font-size: .8125rem; font-weight: 700; }
.byline { display: flex; gap: var(--s-4); align-items: center; padding: var(--s-4) 0; border-top: 1px solid var(--c-border); border-bottom: 1px solid var(--c-border); }
.byline__text p { margin: 0; line-height: 1.45; }
.byline__name { font-weight: 700; color: var(--c-primary); }
.byline__role { font-size: .875rem; color: var(--c-text-muted); }
.byline__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; margin-top: 4px !important; font-size: .8125rem; color: var(--c-text-muted); }
.byline__meta span { display: inline-flex; gap: 5px; align-items: center; }
.byline__meta .icon { color: var(--c-kicker); }
.article__answer { margin: var(--s-6) 0; padding: var(--s-6); border-radius: var(--r-xl); background: var(--c-secondary-soft); border: 1px solid #E3EBC6; font-size: var(--fs-lead); line-height: 1.75; color: var(--c-text); max-width: none; }
.article__cover img { width: 100%; aspect-ratio: 16/10; object-fit: cover; border-radius: var(--r-xl); background: var(--c-primary-soft); }
.article__cover img.article__cover-img--certificate { object-position: center top; }

.summary, .toc { margin-top: var(--s-8); padding: var(--s-6); border-radius: var(--r-xl); background: var(--c-surface); border: 1px solid var(--c-border); }
.summary { border-left: 3px solid var(--c-secondary); }
.summary__title, .toc__title { display: flex; gap: 8px; align-items: center; margin: 0 0 var(--s-3); font-family: var(--f-head); font-weight: 700; color: var(--c-primary); }
.summary__title .icon { color: var(--c-kicker); }
.summary ul { display: grid; gap: var(--s-2); }
.summary li { position: relative; padding-left: 20px; line-height: 1.6; }
.summary li::before { content: ""; position: absolute; left: 4px; top: .65em; width: 7px; height: 7px; border-radius: 50%; background: var(--c-secondary); }
.toc ol { display: grid; gap: 2px; counter-reset: toc; }
.toc li { counter-increment: toc; }
.toc a { display: flex; gap: 10px; align-items: baseline; min-height: 40px; padding: 8px 0; color: var(--c-primary); font-weight: 500; border-bottom: 1px solid #EDF1F4; }
.toc a::before { content: counter(toc, decimal-leading-zero); font-size: .8125rem; font-weight: 700; color: var(--c-kicker); }
.article__body { margin-top: var(--s-8); }
.article__body > h2 { font-size: clamp(1.45rem, 2.4vw, 1.9rem); max-width: none; margin: var(--s-12) 0 var(--s-4); scroll-margin-top: calc(var(--header-h) + 24px); }
.article__body > h3 { font-size: clamp(1.15rem, 1.6vw, 1.3rem); margin: var(--s-8) 0 var(--s-3); }
.article__body > h4 { font-size: 1.0625rem; font-weight: 700; margin: var(--s-6) 0 var(--s-3); }
.article__body > p, .article__body > ul { font-size: 1.0625rem; line-height: 1.8; color: var(--c-text); max-width: none; }
.article__body .table-wrap { margin: var(--s-6) 0 0; }
.cta-box { display: flex; gap: var(--s-4); align-items: flex-start; margin: var(--s-12) 0; padding: var(--s-6); border-radius: var(--r-xl); background: var(--c-secondary-soft); border: 1px solid #E3EBC6; }
.cta-box__title { margin: 0 0 var(--s-2); font-family: var(--f-head); font-weight: 700; font-size: 1.15rem; color: var(--c-primary); }
.cta-box p { font-size: 1rem; line-height: 1.7; }
.cta-box .btn { margin-top: var(--s-2); }
.crisis-note { padding: var(--s-4) var(--s-6); border-radius: var(--r-card); background: var(--c-surface-alt); font-size: .9375rem !important; }
.author-box { display: grid; gap: var(--s-6); margin-top: var(--s-12); padding: var(--s-8); border-radius: var(--r-xl); background: var(--c-surface); border: 1px solid var(--c-border); border-bottom: 2px solid var(--c-secondary); }
.author-box img { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; background: var(--c-primary-soft); }
.author-box__label { margin: 0; font-size: .8125rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--c-kicker); }
.author-box__name { margin: 2px 0 var(--s-3); font-family: var(--f-head); font-weight: 700; font-size: 1.25rem; color: var(--c-primary); }
.author-box p { line-height: 1.7; }
.author-box__links { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-6); margin: 0; }
.author-box__links a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; color: var(--c-primary); }
@media (min-width: 768px) { .author-box { grid-template-columns: 120px 1fr; } }

/* ===== Artigo: layout com coluna lateral (referência) ===== */
.article__layout { display: grid; gap: var(--s-8); padding-bottom: var(--section); }
.article__main { min-width: 0; }
.article__side { display: none; }
@media (min-width: 1080px) {
  .article__header { max-width: calc(var(--container) + var(--gutter) * 2); display: grid; grid-template-columns: 8fr 4fr; column-gap: var(--s-12); }
  .article__header > * { grid-column: 1; }
  .article__layout { grid-template-columns: 8fr 4fr; gap: var(--s-12); }
  .article__side > * + * { margin-top: var(--s-6); }
  .article__side { display: block; position: sticky; top: calc(var(--header-h) + 24px); align-self: start; }
  .toc--mobile { display: none; }
}
.article__answer { padding: var(--s-6) var(--s-8); background: var(--c-primary); border-color: var(--c-primary); color: var(--c-text-inverse); }
.article__answer p { margin: 0; color: var(--c-inverse-muted); }
.article__answer strong { color: var(--c-text-inverse); }
.article__answer-label { display: flex; gap: 8px; align-items: center; margin: 0 0 var(--s-2) !important; font-size: .8125rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--c-secondary) !important; }
.toc--mobile summary { cursor: pointer; list-style: none; }
.toc--side { margin-top: 0; }
.toc--side a { font-size: .875rem; min-height: 36px; padding: 6px 0; }
.side-cta { padding: var(--s-6); border-radius: var(--r-xl); background: var(--c-primary); color: var(--c-text-inverse); }
.side-cta__title { margin: 0 0 var(--s-2); font-family: var(--f-head); font-weight: 700; font-size: 1.125rem; color: var(--c-text-inverse); }
.side-cta p { font-size: .9375rem; color: var(--c-inverse-muted); }
.side-cta strong { color: var(--c-text-inverse); }
.side-cta__link { display: block; margin-top: var(--s-3); text-align: center; font-weight: 700; color: var(--c-text-inverse) !important; }
.article__figure { margin: var(--s-6) 0; }
.article__figure img { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: var(--r-xl); background: var(--c-primary-soft); }
.article__figure figcaption { margin-top: var(--s-2); font-size: .8125rem; color: var(--c-text-muted); text-align: center; }
.factor-grid { display: grid; gap: var(--gap); margin-top: var(--s-6); }
@media (min-width: 768px) { .factor-grid { grid-template-columns: 1fr 1fr; } }
.factor { padding: var(--s-6); border-radius: var(--r-xl); background: var(--c-surface); border: 1px solid var(--c-border); }
.factor h3 { font-size: 1.0625rem; margin: 0 0 var(--s-2); }
.factor p { margin: 0; font-size: .9375rem; line-height: 1.65; color: var(--c-text); }
.factor__tag { margin: 0 0 var(--s-2) !important; display: inline-block; padding: 3px 10px; border-radius: var(--r-pill); background: var(--c-secondary-soft); color: var(--c-kicker) !important; font-size: .75rem !important; font-weight: 700; }
.factor--main { background: var(--c-primary); border-color: var(--c-primary); }
.factor--main h3 { color: var(--c-text-inverse); }
.factor--main p { color: var(--c-inverse-muted); }
.factor--main strong { color: var(--c-text-inverse); }
.factor--main .factor__tag { background: rgba(191,211,122,.18); color: var(--c-secondary) !important; }
.q-grid { display: grid; gap: var(--s-2); margin: var(--s-4) 0; }
@media (min-width: 768px) { .q-grid { grid-template-columns: 1fr 1fr; } }
.q-grid li { display: flex; gap: 10px; align-items: flex-start; padding: var(--s-4); border-radius: var(--r-card); background: var(--c-surface); border: 1px solid var(--c-border); font-size: .9375rem; line-height: 1.55; }
.q-grid .icon { color: var(--c-kicker); margin-top: 2px; flex: none; }
.sign-grid { display: grid; gap: var(--gap); margin: var(--s-4) 0 var(--s-6); }
@media (min-width: 768px) { .sign-grid { grid-template-columns: 1fr 1fr; } }
.warn { padding: var(--s-6); border-radius: var(--r-xl); background: #FFF8F1; border: 1px solid #F3DFC8; }
.warn h3, .warn h4 { margin: 0 0 var(--s-2); font-size: 1rem; font-weight: 700; }
.warn p { margin: 0; font-size: .9375rem; line-height: 1.6; color: var(--c-text); }
.cta-box--dark { background: var(--c-primary); border-color: var(--c-primary); }
.cta-box--dark .cta-box__title { color: var(--c-text-inverse); }
.cta-box--dark p { color: var(--c-inverse-muted); }
.cta-box--dark strong { color: var(--c-text-inverse); }
.cta-box--dark a:not(.btn) { color: var(--c-text-inverse) !important; }
.cta-box--dark .icon-box { flex: none; }
.article__tags { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: var(--s-6) 0 0; font-size: .875rem; color: var(--c-text-muted); max-width: none; }
.article__tags span { font-weight: 700; color: var(--c-primary); }
.article__tags a { padding: 4px 12px; border-radius: var(--r-pill); background: var(--c-secondary-soft); border: 1px solid #E3EBC6; color: var(--c-kicker) !important; font-weight: 700; font-size: .8125rem; }
.article__main .author-box { margin-top: var(--s-8); }
.article__layout { padding-top: var(--s-12); }
.article__header { max-width: none !important; padding-top: 0 !important; display: block !important; }
@media (min-width: 1080px) { .article__side { top: calc(var(--header-h) + 24px); } }
/* Lateral do artigo: fixa durante a leitura e nunca maior que a tela */
@media (min-width: 1080px) {
  .article__side { max-height: calc(100vh - var(--header-h) - 48px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; padding-bottom: 4px; }
}
@media (min-width: 1080px) and (max-height: 760px) { .toc--side a { min-height: 30px; padding: 4px 0; } .side-cta { padding: var(--s-4); } }
.byline__avatar { width: 56px; height: 56px; flex: none; border-radius: 50%; object-fit: cover; background: var(--c-secondary-soft); border: 1px solid #E3EBC6; }
.author-box__avatar { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; background: var(--c-secondary-soft); border: 1px solid #E3EBC6; }
.byline__avatar, .author-box .author-box__avatar { object-fit: contain; padding: 9px; background: #FFFFFF; }
.article__disclaimer { margin-top: var(--s-8); padding: var(--s-4) var(--s-6); border-radius: var(--r-card); background: var(--c-surface-alt); border: 1px solid var(--c-border); }
.article__disclaimer p { display: flex; gap: 10px; align-items: flex-start; margin: 0; font-size: .875rem; line-height: 1.6; color: var(--c-text-muted); max-width: none; }
.article__disclaimer .icon { flex: none; margin-top: 2px; color: var(--c-kicker); }

/* =========================================================
   Página de eventos
   ========================================================= */
.events-nav { display: flex; flex-wrap: wrap; gap: var(--s-3); justify-content: center; margin-top: var(--s-6); }
.events-nav .btn { white-space: nowrap; }
.events { gap: var(--gap); }
.events--list { grid-template-columns: 1fr; }
.event { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--r-xl); background: var(--c-surface); border: 1px solid var(--c-border); box-shadow: 0 10px 30px rgba(21,39,64,.05); }
.event__media { position: relative; }
.event__media img { width: 100%; aspect-ratio: 1; object-fit: cover; background: var(--c-primary-soft); }
.ev-date { position: absolute; left: 16px; top: 16px; display: grid; justify-items: center; min-width: 72px; margin: 0; padding: 8px 10px; border-radius: var(--r-card); background: var(--c-surface); box-shadow: var(--sh-md); line-height: 1; }
.ev-date__day { font-family: var(--f-head); font-weight: 700; font-size: 1.5rem; color: var(--c-primary); }
.ev-date__mon { margin-top: 4px; font-size: .75rem; font-weight: 700; text-transform: uppercase; color: var(--c-kicker); }
.event__status { position: absolute; right: 16px; top: 16px; padding: 4px 10px; border-radius: var(--r-pill); background: var(--c-primary); color: var(--c-text-inverse); font-size: .75rem; font-weight: 700; }
.event__body { display: flex; flex-direction: column; flex: 1; padding: var(--s-6); }
.event__body .card__tag { margin: 0 0 var(--s-3); }
.event__body .card__tag span { display: inline-block; padding: 4px 12px; border-radius: var(--r-pill); background: var(--c-secondary-soft); color: var(--c-kicker); border: 1px solid #E3EBC6; font-size: .8125rem; font-weight: 700; }
.event__body h3 { font-size: clamp(1.1rem, 1.4vw, 1.25rem); margin-bottom: var(--s-2); }
.event__summary { color: var(--c-text-muted); font-size: .9375rem; }
.event__facts { display: grid; gap: 6px; margin: 0 0 var(--s-6); flex: 1; align-content: start; }
.event__facts li { display: flex; gap: 8px; align-items: flex-start; font-size: .875rem; line-height: 1.5; color: var(--c-text); }
.event__facts .icon { flex: none; margin-top: 2px; color: var(--c-kicker); }
.event-registration { display: grid; gap: var(--s-3); margin-top: var(--s-4); }
.event-registration .field { margin: 0; }
.event-registration__note { margin: 0; color: var(--c-text-muted); font-size: .8125rem; line-height: 1.5; }
.event--past .event__media img { filter: grayscale(.6); opacity: .85; }
.study-program__card { display: flex; flex-direction: column; height: 100%; padding: var(--s-6); border: 1px solid var(--c-border); border-radius: var(--r-xl); background: var(--c-surface); box-shadow: 0 10px 30px rgba(21,39,64,.05); }
.study-program__body { flex: 1; }
.study-program__body .card__tag { margin: 0 0 var(--s-3); }
.study-program__body .card__tag span { display: inline-block; padding: 4px 12px; border-radius: var(--r-pill); background: var(--c-secondary-soft); color: var(--c-kicker); border: 1px solid #E3EBC6; font-size: .8125rem; font-weight: 700; }
.study-program__body h3 { font-size: 1.125rem; line-height: 1.35; margin-bottom: var(--s-3); }
.study-program__body > p:not(.card__tag) { color: var(--c-text-muted); font-size: .9375rem; line-height: 1.65; }
.study-program__facts { display: grid; gap: var(--s-2); margin: var(--s-4) 0 var(--s-6); }
.study-program__facts li { display: flex; gap: 8px; align-items: flex-start; color: var(--c-text); font-size: .875rem; line-height: 1.5; }
.study-program__facts .icon { flex: none; margin-top: 2px; color: var(--c-kicker); }
.study-benefits { margin-top: var(--s-12); }
.study-benefits > h3 { text-align: center; margin: 0 auto var(--s-6); font-size: clamp(1.25rem, 2vw, 1.6rem); }
.study-benefits__grid > li { min-height: 100%; padding: clamp(var(--s-6), 2vw, var(--s-8)); border-radius: var(--r-card); background: var(--c-surface); border: 1px solid var(--c-border); }
.study-benefits__grid h4 { margin: 0 0 var(--s-2); font-size: 1rem; }
.study-benefits__grid p { margin: 0; color: var(--c-text-muted); font-size: .875rem; line-height: 1.6; }
@media (min-width: 768px) {
  .events--list .event { display: grid; grid-template-columns: minmax(260px, 36%) minmax(0, 1fr); column-gap: var(--s-6); }
  .events--list .event__media { width: 100%; aspect-ratio: 1; align-self: center; padding: 0 0 0 var(--s-4); background: transparent; }
  .events--list .event__media img { height: 100%; max-height: none; object-fit: cover; }
  .events--list .event__body { padding: clamp(var(--s-8), 4vw, var(--s-12)); }
}

/* =========================================================
   Páginas institucionais (políticas, obrigado, 404)
   ========================================================= */
.legal { padding-top: var(--s-12); }
.legal__wrap { max-width: calc(820px + var(--gutter) * 2); }
.legal__wrap--center { text-align: center; max-width: calc(980px + var(--gutter) * 2); }
.legal__wrap--center .referral__grid { text-align: left; margin-top: var(--s-8); }
.legal h1 { font-size: clamp(1.9rem, 3.4vw, 2.6rem); line-height: 1.15; margin-bottom: var(--s-4); }
.legal__wrap--center .kicker, .legal__wrap--center h1, .legal__wrap--center .legal__lead { margin-left: auto; margin-right: auto; }
.legal__lead { font-size: var(--fs-lead); line-height: 1.75; color: var(--c-text-muted); max-width: none; }
.legal h2:not(.h3-like) { font-size: clamp(1.25rem, 2vw, 1.6rem); max-width: none; margin: var(--s-8) 0 var(--s-3); }
.legal p, .legal li { line-height: 1.75; }
.legal ul:not(.grid) { display: grid; gap: var(--s-2); margin: 0 0 var(--s-4); padding-left: 0; }
.legal ul:not(.grid) li { position: relative; padding-left: 20px; }
.legal ul:not(.grid) li::before { content: ""; position: absolute; left: 4px; top: .7em; width: 7px; height: 7px; border-radius: 50%; background: var(--c-secondary); }
.legal__alert { display: flex; gap: 10px; align-items: flex-start; margin: var(--s-6) 0; padding: var(--s-4) var(--s-6); border-radius: var(--r-card); background: #FFF8F1; border: 1px solid #F3DFC8; font-size: .9375rem; max-width: none; }
.legal__alert .icon { flex: none; margin-top: 3px; color: #B4651A; }
.legal__actions { display: flex; flex-wrap: wrap; gap: var(--s-3); justify-content: center; margin-top: var(--s-8); max-width: none; }
.h3-like { font-size: clamp(1.1rem, 1.4vw, 1.25rem) !important; margin: 0 0 var(--s-2) !important; max-width: none; }
.link-inline { background: none; border: 0; padding: 0; font: inherit; font-weight: 700; color: var(--c-primary); cursor: pointer; }
.link-inline:hover { color: var(--c-kicker); }

/* =========================================================
   Cabeçalho, mega menus e rodapé (docs/06-mega-menu.md, versão 2, revisão 3)
   Celular e tablet até 1279px; computador a partir de 1280px
   ========================================================= */
.header { position: sticky; top: 0; z-index: 100; background: var(--c-surface); border-bottom: 1px solid var(--c-border); }
.header__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--s-4); min-height: var(--header-h); }
.logo { display: inline-flex; flex: none; padding: 8px 0; text-decoration: none; }
.logo img { height: 44px; width: auto; max-width: none; }
.nav-toggle, .nav__close {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 48px; height: 48px; flex: none;
  border: 1px solid var(--c-border); border-radius: var(--r-btn); background: var(--c-surface); color: var(--c-primary); cursor: pointer;
}
.nav-toggle { padding: 0 12px; }
.nav-toggle__label { font-size: .75rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.nav__head, .nav__call, .cta-short { display: none; }
.nav__link { position: relative; display: flex; align-items: center; gap: 6px; color: var(--c-primary); font-weight: 500; text-decoration: none; }
.nav__icon { width: 15px; height: 15px; flex: none; color: var(--c-kicker); }
.nav__sub { display: grid; place-items: center; flex: none; border-radius: var(--r-btn); background: none; color: var(--c-primary); cursor: pointer; }
.nav__sub .icon { width: 18px; height: 18px; transition: transform .18s var(--ease); }
.nav__item--mega.is-open .nav__sub .icon { transform: rotate(180deg); }

/* Conteúdo dos mega menus */
.mega__grid { display: grid; gap: var(--s-6); }
.mega__col { display: flex; flex-direction: column; }
.mega__title { align-self: flex-start; margin-bottom: 14px; font-family: var(--f-head); font-size: 1.0625rem; font-weight: 700; line-height: 1.3; color: var(--c-primary); }
.mega__list { display: grid; gap: 4px; }
.mega__link {
  display: grid; grid-template-columns: 40px 1fr; column-gap: 14px; align-items: center; min-height: 56px;
  padding: 8px 10px; margin-left: -10px; border-radius: 10px; color: var(--c-primary); transition: background-color .15s var(--ease);
}
.mega__link:hover { background: var(--c-surface-alt); }
.mega__link[aria-current] { background: var(--c-secondary-soft); box-shadow: inset 3px 0 0 var(--c-accent-strong); }
.mega__icon { grid-row: span 2; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: var(--c-primary-soft); color: var(--c-primary); }
.mega__icon .icon { width: 22px; height: 22px; }
.mega__name { font-family: var(--f-head); font-size: 1rem; font-weight: 500; line-height: 1.3; }
.mega__desc { font-size: .875rem; font-weight: 400; line-height: 1.35; color: var(--c-text-muted); }
.mega__all { align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-top: auto; padding-top: 14px; font-size: .9375rem; font-weight: 700; color: var(--c-primary); }
.mega__all .icon { transition: transform .15s var(--ease); }
.mega__all:hover .icon { transform: translateX(3px); }
.mega__feature { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--r-lg); background: var(--c-primary-soft); border: 1px solid var(--c-border); }
.mega__feature-img { width: 100%; aspect-ratio: 2/1; object-fit: cover; }
.mega__feature-body { display: flex; flex-direction: column; gap: 8px; flex: 1; padding: 22px; }
.mega__feature-body p { margin: 0; }
.mega__eyebrow { font-size: .8125rem; font-weight: 700; color: var(--c-kicker); }
.mega__feature-title { font-family: var(--f-head); font-size: 1.1875rem; font-weight: 700; line-height: 1.3; color: var(--c-primary); }
.mega__feature-text { font-size: .9375rem; line-height: 1.55; color: var(--c-text); }
.mega__feature-btn { align-self: flex-start; margin-top: auto; min-height: 48px; padding: 10px 16px; font-size: .875rem; white-space: nowrap; }
.mega__feature-body .mega__feature-btn { margin-top: var(--s-3); }
.mega__strip { display: grid; gap: 4px 20px; align-items: center; margin-top: var(--s-3); padding: 6px 12px; border: 1px solid transparent; border-radius: var(--r-lg); background: var(--c-surface); }
.mega__strip-label { margin: 0; font-family: var(--f-head); font-size: .9375rem; font-weight: 700; line-height: 1.3; color: var(--c-primary); }
.mega__strip-item { display: flex; align-items: center; gap: 10px; min-height: 40px; margin: 0; color: var(--c-primary); max-width: none; }
.mega__strip-item > .icon { color: var(--c-kicker); }
.mega__strip-item > .icon[data-wa-icon] { color: var(--c-whatsapp); fill: currentColor; }
.mega__strip-item strong { display: block; font-size: .9375rem; font-weight: 700; line-height: 1.35; }
.mega__strip-item small { display: block; font-size: .8125rem; line-height: 1.4; color: var(--c-text-muted); }
.mega__strip-item--care strong a { color: var(--c-primary); font-weight: 700; }

/* Atalhos do menu organizados por perfil */
.audience-nav { border-top: 1px solid var(--c-border); background: var(--c-surface); }
.audience-nav__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; max-width: calc(1400px + var(--gutter) * 2); margin: 0 auto; padding: 8px var(--gutter); list-style: none; }
.audience-nav__link { display: grid; grid-template-columns: 34px minmax(0, 1fr); grid-template-rows: auto auto; align-content: center; align-items: center; column-gap: 10px; min-height: 56px; padding: 5px 8px; border-radius: 9px; color: var(--c-primary); text-decoration: none; transition: background-color .15s var(--ease); }
.audience-nav__link:hover, .audience-nav__link:focus-visible { background: var(--c-surface-alt); }
.audience-nav__icon { grid-column: 1; grid-row: 1 / 3; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 9px; background: var(--c-secondary-soft); color: var(--c-primary); }
.audience-nav__icon .icon { width: 19px; height: 19px; }
.audience-nav__label { align-self: end; font-size: .75rem; font-weight: 500; line-height: 1.25; color: var(--c-text-muted); }
.audience-nav__title { align-self: start; font-family: var(--f-head); font-size: .9375rem; font-weight: 600; line-height: 1.3; }
.header__inner, .audience-nav__list, .audience-nav__link, .audience-nav__icon, .logo img { transition: min-height .2s var(--ease), height .2s var(--ease), padding .2s var(--ease), gap .2s var(--ease), width .2s var(--ease), font-size .2s var(--ease); }
.header.is-compact .header__inner { min-height: 56px; }
.header.is-compact .logo { padding: 4px 0; }
.header.is-compact .logo img { height: 36px; }
.header.is-compact .audience-nav__list { padding-top: 3px; padding-bottom: 3px; }
.header.is-compact .audience-nav__link { min-height: 44px; padding-top: 3px; padding-bottom: 3px; grid-template-columns: 32px minmax(0, 1fr); column-gap: 8px; }
.header.is-compact .audience-nav__icon { width: 32px; height: 32px; }
.header.is-compact .audience-nav__icon .icon { width: 18px; height: 18px; }
.header.is-compact .audience-nav__label { font-size: .7rem; }
.header.is-compact .audience-nav__title { font-size: .85rem; font-weight: 600; }

/* Celular e tablet: menu em tela cheia */
@media (max-width: 1279px) {
  .js .nav {
    position: fixed; inset: 0; z-index: 150; display: none; flex-direction: column;
    padding: 0 var(--gutter); background: var(--c-surface); overflow-y: auto; overscroll-behavior: contain;
  }
  body.nav-open { overflow: hidden; }
  body.nav-open .nav { display: flex; }
  .no-js .header__inner { flex-wrap: wrap; }
  .no-js .nav { width: 100%; padding-bottom: var(--s-4); }
  .no-js .nav-toggle { display: none; }
  .js .nav__head {
    position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between;
    min-height: 64px; margin-bottom: var(--s-2); background: var(--c-surface); border-bottom: 1px solid var(--c-border);
  }
  .nav__head-title { margin: 0; font-family: var(--f-head); font-size: 1.125rem; font-weight: 700; color: var(--c-primary); }
  .nav__list { display: flex; flex-direction: column; }
  .nav__item { border-bottom: 1px solid var(--c-border); }
  .nav__item--mega { display: flex; flex-wrap: wrap; align-items: center; }
  .nav__link { flex: 1; min-height: 56px; padding: 0 4px; font-size: 1.0625rem; }
  .nav__icon { width: 18px; height: 18px; }
  .nav__link[aria-current]::before { content: ""; position: absolute; left: calc(var(--gutter) * -1); top: 14px; bottom: 14px; width: 4px; border-radius: 0 2px 2px 0; background: var(--c-accent-strong); }
  .nav__sub { width: 48px; height: 48px; border: 1px solid var(--c-border); }
  .mega { flex-basis: 100%; padding: var(--s-2) 0 var(--s-6); }
  .mega__inner { padding: 0; }
  .js .nav__item--mega:not(.is-open) .mega { display: none; }
  .mega__feature-img { display: none; }
  .mega__feature-body { padding: 18px; }
  .mega__feature-btn { align-self: stretch; justify-content: center; }
  .nav__foot {
    position: sticky; bottom: 0; display: grid; gap: var(--s-2); margin-top: auto;
    padding: 14px 0 calc(14px + env(safe-area-inset-bottom, 0px)); background: var(--c-surface); border-top: 1px solid var(--c-border);
  }
  .no-js .nav__foot { position: static; margin-top: var(--s-4); }
  .nav__cta { width: 100%; min-height: 52px; }
  .nav__call { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; font-weight: 500; color: var(--c-primary); }
  .nav__call .icon { width: 18px; height: 18px; }
}
@media (min-width: 720px) and (max-width: 1279px) {
  .mega__grid { grid-template-columns: 1fr 1fr; }
  .mega__feature { grid-column: 1 / -1; }
  .mega__strip { grid-template-columns: 1fr 1fr; }
  .mega__strip-label { grid-column: 1 / -1; }
}
@media (max-width: 719px) {
  .header.is-compact .audience-nav { display: none; }
  .audience-nav__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; padding-top: 6px; padding-bottom: 6px; }
  .audience-nav__link { grid-template-columns: 30px minmax(0, 1fr); column-gap: 8px; min-height: 54px; padding: 5px; }
  .audience-nav__icon { width: 30px; height: 30px; border-radius: 8px; }
  .audience-nav__icon .icon { width: 17px; height: 17px; }
  .audience-nav__label { font-size: .6875rem; }
  .audience-nav__title { font-size: .8125rem; font-weight: 600; }
}

/* Computador: 8 itens, 3 mega menus abertos pela setinha ou ao passar o mouse */
@media (min-width: 1280px) {
  .header__inner { gap: var(--s-6); }
  .logo img { height: 48px; }
  .nav-toggle { display: none; }
  .nav { display: flex; align-items: center; gap: var(--s-4); }
  .nav__list { display: flex; align-items: center; gap: 0; }
  .nav__item--mega { display: flex; align-items: center; }
  .nav__link { min-height: 44px; padding: 0 9px; font-size: .9375rem; white-space: nowrap; border-radius: var(--r-btn); }
  .nav__link:hover { color: var(--c-primary-hover); }
  .nav__link[aria-current]::after { content: ""; position: absolute; left: 9px; right: 9px; bottom: calc((var(--header-h) - 44px) / -2); height: 3px; border-radius: 2px; background: var(--c-accent-strong); }
  .header.is-compact .nav__link[aria-current]::after { bottom: -6px; }
  .nav__top { padding-right: 4px; }
  .nav__sub { width: 26px; height: 44px; border: 0; }
  .mega {
    position: absolute; left: 50%; right: auto; top: 100%; width: min(calc(var(--container) + var(--gutter) * 2), calc(100vw - var(--gutter) * 2));
    background: var(--c-surface); border: 1px solid var(--c-border); border-top: 0; border-radius: 0 0 var(--r-xl) var(--r-xl); box-shadow: var(--sh-lg);
    visibility: hidden; opacity: 0; transform: translate(-50%, -8px);
    transition: opacity .18s var(--ease), transform .18s var(--ease), visibility 0s linear .18s;
  }
  .nav__item--mega.is-open .mega,
  .no-js .nav__item--mega:hover .mega, .no-js .nav__item--mega:focus-within .mega {
    visibility: visible; opacity: 1; transform: translate(-50%, 0); transition: opacity .18s var(--ease), transform .18s var(--ease);
  }
  .mega__inner { padding-top: var(--s-8); padding-bottom: var(--s-4); }
  .mega__grid { grid-template-columns: minmax(0, 320px) minmax(0, 320px) 400px; justify-content: center; gap: 28px; }
  .mega__all { gap: 6px; margin-top: auto; padding-top: 8px; font-size: .75rem; white-space: nowrap; }
  .mega__feature-img { aspect-ratio: 2.4 / 1; }
  .mega__feature-body { gap: 6px; padding: 18px; }
  #mega-clinica .mega__feature { align-self: start; }
  .mega__feature-btn { min-height: 44px; }
  .mega__strip { grid-template-columns: auto 1fr 1fr; }
  .nav__cta { min-height: 48px; padding: 10px 16px; font-size: .9375rem; white-space: nowrap; }
}
@media (min-width: 1280px) and (max-width: 1599px) {
  .cta-long { display: none; }
  .cta-short { display: inline; }
  .nav { gap: 8px; }
  .nav__link { gap: 4px; padding-right: 5px; padding-left: 5px; font-size: .8125rem; }
  .nav__icon { width: 13px; height: 13px; }
  .nav__sub { width: 22px; }
}
@media (min-width: 1440px) {
  .header__inner, .mega__inner { max-width: calc(1400px + var(--gutter) * 2); }
  .logo img { height: 52px; }
}
@media (prefers-reduced-motion: reduce) { .mega, .nav__sub .icon, .header__inner, .audience-nav__list, .audience-nav__link, .audience-nav__icon, .logo img { transition: none !important; } }

/* ---------- Rodapé ---------- */
.footer { background: var(--c-primary); color: var(--c-text-inverse); padding: 0 0 104px; }
.footer a { color: var(--c-text-inverse); font-weight: 400; text-decoration: none; }
.footer__cta { border-bottom: 1px solid rgba(255,255,255,.14); }
.footer__cta-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-6); padding-top: var(--s-12); padding-bottom: var(--s-12); }
.footer__cta-text { margin: 0; max-width: 34ch; font-family: var(--f-head); font-size: clamp(1.2rem, 2vw, 1.5rem); font-weight: 700; line-height: 1.35; color: var(--c-text-inverse); }
.footer__cta .btn { white-space: nowrap; }
.footer__cols { display: grid; grid-template-columns: 1fr; gap: var(--s-8); padding-top: 56px; }
.footer__title { display: flex; align-items: flex-start; gap: 8px; max-width: none; margin: 0 0 var(--s-4); font-size: 1rem; font-weight: 700; letter-spacing: 0; line-height: 1.4; color: var(--c-text-inverse); }
.footer__title .icon { flex: none; margin-top: 1px; color: var(--c-secondary); }
.footer__col ul { display: grid; gap: 2px; }
.footer__col li a { display: inline-flex; align-items: center; min-height: 40px; font-size: .875rem; line-height: 1.4; }
.footer__nap li { display: flex; gap: 10px; align-items: flex-start; padding: 6px 0; font-size: .875rem; line-height: 1.5; color: var(--c-inverse-muted); }
.footer__nap .icon { flex: none; width: 18px; height: 18px; margin-top: 2px; color: var(--c-secondary); }
.footer__nap .icon[data-wa-icon] { color: var(--c-whatsapp); fill: currentColor; }
.footer address a, .footer__nap li a { display: inline; min-height: 0; font-weight: 700; color: var(--c-text-inverse); }
.footer__nap-cta { display: inline-flex; align-items: center; gap: 4px; min-height: 44px; margin-top: var(--s-2); font-size: .8125rem; font-weight: 700 !important; white-space: nowrap; color: var(--c-secondary) !important; }
.footer__seals { display: grid; gap: var(--s-3); margin-top: var(--s-12); padding-top: var(--s-8); border-top: 1px solid rgba(255,255,255,.14); }
.footer__seals a { display: flex; gap: 12px; align-items: center; height: 100%; padding: 14px 16px; border-radius: var(--r-card); border: 1px solid rgba(255,255,255,.18); transition: border-color .2s var(--ease); }
.footer__seals a:hover { border-color: var(--c-secondary); }
.footer__seals .icon { flex: none; color: var(--c-secondary); }
.footer__seals strong { display: block; font-size: .9375rem; }
.footer__seals small { display: block; font-size: .8125rem; color: var(--c-inverse-muted); }
.footer__states { margin-top: var(--s-8); padding-top: var(--s-8); border-top: 1px solid rgba(255,255,255,.14); }
.footer__states-note { margin: -8px 0 var(--s-4); font-size: .8125rem; color: var(--c-inverse-muted); }
.uf-list { display: flex; flex-wrap: wrap; gap: 8px; }
.uf { display: grid; place-items: center; min-width: 44px; height: 36px; padding: 0 10px; border-radius: 8px; border: 1px solid rgba(255,255,255,.14); font-size: .8125rem; font-weight: 700; color: rgba(255,255,255,.55); }
a.uf--on { color: var(--c-primary); background: var(--c-secondary); border-color: var(--c-secondary); }
a.uf--on:hover { background: #FFFFFF; color: var(--c-primary); }
.footer__social-care { display: grid; gap: var(--s-6); margin-top: var(--s-8); }
.social { display: flex; gap: var(--s-3); }
.social a { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255,255,255,.3); }
.social a:hover { background: var(--c-secondary); color: var(--c-primary); border-color: var(--c-secondary); }
.care-note { display: flex; gap: 10px; align-items: flex-start; max-width: 90ch; margin: 0; font-size: .875rem; color: var(--c-inverse-muted); }
.care-note .icon { flex: none; margin-top: 2px; color: var(--c-secondary); }
.footer__bottom { display: grid; gap: var(--s-4); margin-top: var(--s-8); padding-top: var(--s-6); border-top: 1px solid rgba(255,255,255,.18); font-size: .8125rem; color: var(--c-inverse-muted); }
.footer__bottom p { margin: 0; max-width: none; }
.footer__legal { display: flex; flex-wrap: wrap; gap: 0 var(--s-6); }
.footer__legal a, .link-button { display: inline-flex; align-items: center; min-height: 44px; font-size: .8125rem; }
.link-button { padding: 0; border: 0; background: none; color: var(--c-text-inverse); cursor: pointer; transition: color .2s var(--ease); }
@media (min-width: 768px) {
  .footer__cols { grid-template-columns: repeat(2, 1fr); }
  .footer__seals { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1080px) {
  .footer__cols { grid-template-columns: repeat(4, 1fr); gap: var(--s-8); }
  .footer__social-care { grid-template-columns: auto 1fr; align-items: center; gap: var(--s-8); }
  .footer__bottom { grid-template-columns: 1fr auto; align-items: center; }
}

/* Placeholder da foto de fundo do hero (sai quando a foto real entrar) */
.hero__bg--ph { background: repeating-linear-gradient(135deg, #1B3352 0 14px, #223D60 14px 28px); }
.hero__ph-label { display: none; }
@media (min-width: 768px) {
  .hero__ph-label {
    display: block; position: absolute; right: 5%; top: 50%; transform: translateY(-50%); max-width: 300px; margin: 0;
    padding: 16px 20px; border: 1.5px dashed rgba(255,255,255,.5); border-radius: var(--r-card);
    font-size: .8125rem; line-height: 1.5; text-align: center; color: #E3EAF0;
  }
  .hero__ph-label span { display: block; margin-bottom: 4px; font-size: .9375rem; font-weight: 700; color: #FFFFFF; }
  .hero--service .hero__ph-label { display: none; } /* o formulário ocupa o lado direito */
}

/* CTA em faixa (cartão azul com foto de fundo, texto à esquerda e botão à direita) */
.cta-band-section { padding: var(--section) 0; }
.cta-band {
  position: relative; isolation: isolate; overflow: hidden; display: grid; gap: var(--s-6); align-items: center;
  padding: var(--s-8) var(--s-6); border-radius: var(--r-xl); background: var(--c-primary); color: var(--c-text-inverse);
  box-shadow: 0 24px 60px rgba(4,38,66,.16);
}
.cta-band::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(21,39,64,.95) 0%, rgba(21,39,64,.86) 55%, rgba(21,39,64,.72) 100%); }
.cta-band--ph { background: repeating-linear-gradient(135deg, #1B3352 0 14px, #223D60 14px 28px); }
.cta-band__img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.cta-band h2 { max-width: 22ch; margin: 0 0 var(--s-3); font-size: clamp(1.6rem, 3vw, 2.4rem); line-height: 1.15; letter-spacing: -.03em; color: var(--c-text-inverse); }
.cta-band p { max-width: 58ch; margin: 0; font-size: var(--fs-lead); line-height: 1.65; color: var(--c-inverse-muted); }
.cta-band p strong { color: var(--c-text-inverse); }
.cta-band__link { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; margin-top: var(--s-3); font-weight: 700; color: var(--c-secondary) !important; }
.cta-band :focus-visible { outline-color: var(--c-focus-inverse); }
.cta-band__btn { justify-self: start; white-space: nowrap; }
.cta-band { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 480px) {
  .cta-band { padding: var(--s-8) 20px; }
  .cta-band__btn { justify-self: stretch; padding-left: 14px; padding-right: 14px; gap: 8px; font-size: .9375rem; }
}
@media (min-width: 1080px) {
  .cta-band { grid-template-columns: minmax(0, 1fr) auto; gap: var(--s-12); padding: 56px 72px; }
}

/* Hero da Sobre: ficha do NUAMCE no lugar do formulário */
.hero--about .factsheet { background: var(--c-surface); border-color: var(--c-surface); box-shadow: var(--sh-lg); color: var(--c-text); }
.hero--about .factsheet a { color: var(--c-primary); font-weight: 700; }
.hero--about .factsheet :focus-visible { outline-color: var(--c-focus); }
.hero--about h1 { font-size: clamp(1.9rem, 3.2vw, 2.7rem); }

/* Quem atende (Sobre): links no fim de cada card, alinhados na mesma linha */
.people.grid--3 .person { display: flex; flex-direction: column; }
.people.grid--3 .person__body { display: flex; flex-direction: column; flex: 1; }
.people.grid--3 .person__links { margin-top: auto; padding-top: var(--s-4); }

/* Cards de pilares/indicação: link sempre na base do card, alinhado com o card vizinho */
.referral__card { align-items: stretch; }
.referral__card > .icon-box { align-self: flex-start; }
.referral__card > div { display: flex; flex-direction: column; flex: 1; }
.referral__card > div > .card__link { margin-top: auto; align-self: flex-start; }

/* "Antes de marcar" (grade de 2 colunas): título, introdução e linha divisória alinhados entre os cards vizinhos */
@media (min-width: 768px) {
  .checks.grid--2 > .check { display: grid; grid-row: span 7; grid-template-rows: subgrid; row-gap: 0; align-content: start; }
  .section--check-aligned .checks.grid--3 > .check { display: grid; grid-row: span 4; grid-template-rows: subgrid; row-gap: 0; align-content: start; }
  .section--check-aligned .check__details { align-self: start; }
}

/* Hero do Contato: fundo azul, como as demais páginas */
.hero--contact h1 { font-size: clamp(1.9rem, 3.2vw, 2.6rem); }
.hero--contact .contact-hero__facts li { color: var(--c-inverse-muted); }
.hero--contact .contact-hero__facts .icon { color: var(--c-secondary); }
.hero--contact .contact-form { border-color: var(--c-surface); }
.hero--contact .contact-form :focus-visible, .hero--contact .contact-form:focus-within :focus-visible { outline-color: var(--c-focus); }

/* Contato: escolha de quem faz o primeiro contato */
.wa-form .field--choice { margin: 0 0 var(--s-4); }
.wa-form .field--choice legend { margin: 0 0 4px; font-family: var(--f-body); font-size: .9375rem; font-weight: 700; color: var(--c-primary); }
.choice-list { display: grid; gap: var(--s-2); margin-top: var(--s-2); }
.option--compact { min-height: 48px; padding: 10px 14px; align-items: center; }
.option--compact input { margin-top: 0; }
.option--compact small { display: inline; margin-left: 6px; }

/* Categoria do blog: grade de artigos logo abaixo do destaque */
.featured-post + .posts-grid,
.posts-grid + .posts-grid { margin-top: var(--gap); }

/* ---------- Lista de municípios (psicanálise online por estado e região) ---------- */
.muni-group { margin-top: var(--gap); border: 1px solid var(--c-border); border-radius: var(--r-card); background: var(--c-surface); }
.muni-group > summary { display: flex; align-items: center; justify-content: space-between; gap: var(--s-4); padding: var(--s-4) var(--s-6); cursor: pointer; list-style: none; }
.muni-group > summary::-webkit-details-marker { display: none; }
.muni-group > summary h3 { margin: 0; font-size: var(--fs-h4); }
.muni-group > summary h3 small { margin-left: var(--s-2); font-family: var(--f-body); font-size: var(--fs-small); font-weight: 400; color: var(--c-text-muted); }
.muni-group[open] > summary .faq__toggle { transform: rotate(45deg); }
.muni-list { columns: 2 160px; column-gap: var(--s-6); margin: 0; padding: 0 var(--s-6) var(--s-6); list-style: none; font-size: var(--fs-small); }
.muni-list li { break-inside: avoid; padding: 3px 0; color: var(--c-text-muted); }
.muni-list a { font-weight: 700; color: var(--c-primary); }
.muni-list a:hover { color: var(--c-accent-strong); }
@media (min-width: 768px) { .muni-list { columns: 4 160px; } }

/* FAQ das páginas de seminário: perguntas e respostas alinhadas ao centro. */
.faq--seminario { display: block; }
.faq--seminario > .container { width: 100%; margin-inline: auto; }
.faq--seminario .faq__col { text-align: center; }
.faq--seminario summary { position: relative; justify-content: center; text-align: center; }
.faq--seminario summary > span:first-child { max-width: calc(100% - 28px); }
.faq--seminario summary .faq__toggle { position: absolute; right: 0; }
.faq--seminario .faq__answer { padding-right: 0; text-align: center; }

/* Locality pages intentionally await real clinic photos from the NUAMCE team. */
.split--text-only { grid-template-columns: minmax(0, 1fr) !important; max-width: 860px; margin-inline: auto; }
.locality-how-section .section__head { margin-left: auto; margin-right: auto; text-align: center; }
.locality-how-section .section__head > .kicker,
.locality-how-section .section__head > h2,
.locality-how-section .section__head > .section__lead { margin-left: auto; margin-right: auto; text-align: center; }
.locality-how-section .split__text { text-align: center; }
.locality-how-section .split__text > p { margin-left: auto; margin-right: auto; }
.city-conversion-cta { margin-top: var(--s-8); }
