/* ==========================================================================
   Dr. Bruno Bereza — Cirurgião Oncológico
   Sistema visual do site. Cores da marca: azul-petróleo (#063e5c / #042028)
   e terracota (#bd5935). Tipografia: Literata (títulos) + Manrope (texto).
   ========================================================================== */

/* ---------- Fontes (auto-hospedadas, licença SIL OFL 1.1) ---------- */
@font-face { font-family: "Literata"; src: url("../fonts/literata-regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Literata"; src: url("../fonts/literata-medium.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Literata"; src: url("../fonts/literata-semibold.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Literata"; src: url("../fonts/literata-regularitalic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Literata"; src: url("../fonts/literata-mediumitalic.woff2") format("woff2"); font-weight: 500; font-style: italic; font-display: swap; }
@font-face { font-family: "Manrope"; src: url("../fonts/manrope-var.woff2") format("woff2"); font-weight: 200 800; font-style: normal; font-display: swap; }

/* ---------- Tokens ---------- */
:root {
  --ink: #0c1f25;
  --text: #2a393e;
  --muted: #5d6b70;
  --soft: #8a9599;
  --line: #e6dfd4;
  --line-strong: #d4c9b9;
  --bg: #faf8f4;
  --bg-alt: #f3eee6;
  --bg-deep: #ece5da;
  --surface: #ffffff;

  --teal-950: #031a20;
  --teal-900: #042028;
  --teal-850: #062a33;
  --teal-800: #07323d;
  --teal-700: #063e5c;
  --teal-600: #0c5474;
  --teal-500: #2c6f8b;
  --teal-200: #b9d0d8;
  --teal-100: #e2edf0;

  --terra-800: #7f341a;
  --terra-700: #963f1f;
  --terra-600: #ad4f2c;
  --terra-500: #bd5935;
  --terra-400: #d26e4b;
  --terra-300: #e39a7d;
  --terra-100: #f6e8e0;

  --green-wa: #1f9d55;
  --success: #2f7d57;
  --danger: #b3261e;
  --warning: #8a5a00;

  --font-serif: "Literata", "Georgia", "Times New Roman", serif;
  --font-sans: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

  --container: 1240px;
  --gutter: clamp(20px, 5vw, 48px);
  --section: clamp(72px, 9vw, 128px);
  --header-h: 84px;

  --r-xs: 8px;
  --r-sm: 12px;
  --r: 18px;
  --r-lg: 28px;
  --r-xl: 40px;

  --shadow-sm: 0 1px 2px rgba(12, 31, 37, .06), 0 4px 12px -6px rgba(12, 31, 37, .12);
  --shadow: 0 1px 2px rgba(12, 31, 37, .05), 0 18px 40px -22px rgba(12, 31, 37, .30);
  --shadow-lg: 0 40px 80px -40px rgba(4, 32, 40, .55);

  --ease: cubic-bezier(.22, .61, .36, 1);
  --ease-out: cubic-bezier(.16, 1, .3, 1);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }
body {
  margin: 0; background: var(--bg); color: var(--text);
  font-family: var(--font-sans); font-size: 1.0625rem; line-height: 1.65; font-weight: 400;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility;
  font-feature-settings: "ss01" on;
}
img, svg, video, picture { display: block; max-width: 100%; }
img { height: auto; background-color: var(--ph, transparent); }
picture img { width: 100%; }
a { color: var(--teal-700); text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { color: var(--terra-600); }
p { margin: 0 0 1.1em; }
h1, h2, h3, h4 { color: var(--ink); margin: 0; font-weight: 400; text-wrap: balance; }
ul, ol { margin: 0; padding: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
::selection { background: var(--terra-100); color: var(--terra-800); }
:focus-visible { outline: 2px solid var(--terra-500); outline-offset: 3px; border-radius: 6px; }
[hidden] { display: none !important; }
.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; }
.skip-link { position: absolute; left: 16px; top: -60px; z-index: 1000; background: var(--teal-900); color: #fff; padding: 12px 18px; border-radius: 10px; font-weight: 700; text-decoration: none; transition: top .2s; }
.skip-link:focus { top: 12px; color: #fff; }
.icon { width: 1.25em; height: 1.25em; flex: none; }

/* ---------- Tipografia ---------- */
.display {
  font-family: var(--font-serif); font-weight: 400;
  font-size: clamp(2.6rem, 1.35rem + 4.1vw, 4.9rem);
  line-height: 1.02; letter-spacing: -.022em;
}
.display em, .titulo em, .titulo-secao em { font-style: italic; color: var(--terra-400); }
.titulo-secao {
  font-family: var(--font-serif); font-weight: 400;
  font-size: clamp(2rem, 1.3rem + 2.2vw, 3.25rem);
  line-height: 1.08; letter-spacing: -.018em;
}
.titulo-secao + .lead, .titulo-secao + p { margin-top: 1.2rem; }
.titulo-secao em, .subtitulo em { color: var(--terra-500); }
.subtitulo em { font-style: italic; }
.titulo {
  font-family: var(--font-serif); font-weight: 400;
  font-size: clamp(2.2rem, 1.4rem + 2.8vw, 3.9rem);
  line-height: 1.05; letter-spacing: -.02em;
}
.subtitulo { font-family: var(--font-serif); font-weight: 500; font-size: clamp(1.3rem, 1.1rem + .6vw, 1.6rem); line-height: 1.25; letter-spacing: -.01em; }
.lead { font-size: clamp(1.1rem, 1rem + .35vw, 1.3rem); line-height: 1.6; color: var(--muted); }
.eyebrow {
  display: inline-flex; align-items: center; gap: .75em;
  font-family: var(--font-sans); font-weight: 700; font-size: .78rem; letter-spacing: .16em; text-transform: uppercase;
  color: var(--terra-600); margin: 0 0 1.25rem;
}
.eyebrow::before { content: ""; width: 28px; height: 1.5px; background: currentColor; opacity: .7; }
.eyebrow--claro { color: var(--terra-300); }
.eyebrow--centro { justify-content: center; }
.muted { color: var(--muted); }
.small { font-size: .9rem; }
.tabular { font-variant-numeric: tabular-nums; }

/* ---------- Layout ---------- */
.container { width: 100%; max-width: calc(var(--container) + var(--gutter) * 2); margin-inline: auto; padding-inline: var(--gutter); }
.container--estreito { max-width: calc(820px + var(--gutter) * 2); }
.secao { padding-block: var(--section); position: relative; }
.secao--alt { background: var(--bg-alt); }
.secao--branca { background: var(--surface); }
.secao--escura { background: var(--teal-900); color: rgba(255,255,255,.82); }
.secao--escura h1, .secao--escura h2, .secao--escura h3, .secao--escura h4 { color: #fff; }
.secao--escura .lead, .secao--escura .muted { color: rgba(255,255,255,.72); }
.secao--escura a:not(.btn) { color: var(--terra-300); }
.secao__topo { display: flex; align-items: end; justify-content: space-between; gap: 32px 48px; margin-bottom: clamp(40px, 5vw, 64px); flex-wrap: wrap; }
.secao__topo > div { max-width: 700px; }
.secao__topo .lead { margin: 1.1rem 0 0; }
.secao__topo--centro { flex-direction: column; align-items: center; text-align: center; }
.secao__topo--centro > div { margin-inline: auto; }
.grid { display: grid; gap: clamp(20px, 2.4vw, 32px); }
.divisor { height: 1px; background: var(--line); border: 0; margin: 0; }

/* ---------- Botões e links ---------- */
.btn {
  --btn-bg: var(--terra-600); --btn-fg: #fff; --btn-bd: transparent;
  display: inline-flex; align-items: center; justify-content: center; gap: .6em;
  min-height: 52px; padding: .8em 1.6em; border-radius: 999px;
  background: var(--btn-bg); color: var(--btn-fg); border: 1.5px solid var(--btn-bd);
  font-family: var(--font-sans); font-weight: 700; font-size: .98rem; letter-spacing: .005em; line-height: 1.1;
  text-decoration: none; white-space: nowrap; cursor: pointer;
  transition: background-color .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease), box-shadow .25s var(--ease);
}
.btn:hover { --btn-bg: var(--terra-700); color: var(--btn-fg); transform: translateY(-1px); box-shadow: 0 10px 24px -12px rgba(150, 63, 31, .55); }
.btn:active { transform: translateY(0); }
.btn .icon { width: 1.2em; height: 1.2em; }
.btn--escuro { --btn-bg: var(--teal-900); }
.btn--escuro:hover { --btn-bg: var(--teal-700); box-shadow: 0 10px 24px -12px rgba(4, 32, 40, .6); }
.btn--claro { --btn-bg: #fff; --btn-fg: var(--teal-900); }
.btn--claro:hover { --btn-bg: var(--terra-100); --btn-fg: var(--teal-900); box-shadow: none; }
.btn--contorno { --btn-bg: transparent; --btn-fg: var(--teal-900); --btn-bd: var(--line-strong); }
.btn--contorno:hover { --btn-bg: var(--teal-900); --btn-fg: #fff; --btn-bd: var(--teal-900); box-shadow: none; }
.btn--contorno-claro { --btn-bg: transparent; --btn-fg: #fff; --btn-bd: rgba(255,255,255,.4); }
.btn--contorno-claro:hover { --btn-bg: #fff; --btn-fg: var(--teal-900); --btn-bd: #fff; box-shadow: none; }
.btn--sm { min-height: 42px; padding: .55em 1.2em; font-size: .9rem; }
.btn--lg { min-height: 60px; padding: .9em 1.9em; font-size: 1.05rem; }
.btn--bloco { width: 100%; }
.acoes { display: flex; flex-wrap: wrap; gap: 12px 14px; align-items: center; }

.link-seta {
  display: inline-flex; align-items: center; gap: .5em; font-weight: 700; font-size: .98rem;
  color: var(--teal-700); text-decoration: none;
}
.link-seta .icon { transition: transform .3s var(--ease); }
.link-seta:hover { color: var(--terra-600); }
.link-seta:hover .icon { transform: translateX(4px); }
.secao--escura .link-seta { color: #fff; }
.secao--escura .link-seta:hover { color: var(--terra-300); }

/* ---------- Cabeçalho ---------- */
.site-header {
  position: fixed; inset: 0 0 auto 0; z-index: 100; height: var(--header-h);
  color: var(--ink); transition: background-color .35s var(--ease), box-shadow .35s var(--ease), color .35s var(--ease), transform .35s var(--ease);
}
.site-header::before { content: ""; position: absolute; inset: 0; background: rgba(250, 248, 244, .88); backdrop-filter: saturate(160%) blur(14px); -webkit-backdrop-filter: saturate(160%) blur(14px); box-shadow: 0 1px 0 var(--line); opacity: 1; transition: opacity .35s var(--ease); }
.header-transparente .site-header:not(.is-scrolled) { color: #fff; }
.header-transparente .site-header:not(.is-scrolled)::before { opacity: 0; }
.site-header.is-hidden { transform: translateY(-100%); }
.site-header__inner { position: relative; height: 100%; display: flex; align-items: center; gap: 28px; }
.marca { display: inline-flex; align-items: center; gap: 14px; color: inherit; text-decoration: none; flex: none; }
.marca__assinatura {
  display: block; width: 148px; aspect-ratio: 3150 / 616; color: var(--teal-700); background-color: currentColor;
  -webkit-mask: url("../img/assinatura-horizontal.svg") no-repeat center / contain; mask: url("../img/assinatura-horizontal.svg") no-repeat center / contain;
  transition: color .35s var(--ease);
}
.marca__assinatura--empilhada { aspect-ratio: 1975 / 1043; -webkit-mask-image: url("../img/assinatura.svg"); mask-image: url("../img/assinatura.svg"); }
.header-transparente .site-header:not(.is-scrolled) .marca__assinatura { color: #fff; }
.marca__sep { width: 1px; height: 30px; background: currentColor; opacity: .22; }
.marca__texto { font-size: .66rem; line-height: 1.25; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; opacity: .85; }
.nav-principal { margin-left: auto; }
.nav-principal ul { display: flex; list-style: none; gap: clamp(14px, 1.6vw, 28px); }
.nav-principal a {
  position: relative; display: inline-block; padding: 8px 0; color: inherit; text-decoration: none;
  font-weight: 600; font-size: .93rem; letter-spacing: .005em;
}
.nav-principal a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 2px; height: 1.5px; background: var(--terra-500); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease); }
.nav-principal a:hover::after, .nav-principal a[aria-current="page"]::after { transform: scaleX(1); }
.nav-principal a:hover { color: inherit; }
.header-acoes { display: flex; align-items: center; gap: 10px; }
.header-acoes .btn { min-height: 44px; padding: .55em 1.15em; font-size: .9rem; }
.header-transparente .site-header:not(.is-scrolled) .btn--contorno { --btn-fg: #fff; --btn-bd: rgba(255,255,255,.45); }
.header-transparente .site-header:not(.is-scrolled) .btn--contorno:hover { --btn-bg: #fff; --btn-fg: var(--teal-900); --btn-bd: #fff; }
.menu-botao {
  display: none; align-items: center; justify-content: center; width: 46px; height: 46px; margin-left: auto;
  border-radius: 50%; border: 1.5px solid currentColor; background: transparent; color: inherit; opacity: .9;
}
.menu-botao .icon { width: 22px; height: 22px; }

@media (max-width: 1180px) {
  .nav-principal ul { gap: 18px; }
  .marca__sep, .marca__texto { display: none; }
}
@media (max-width: 1023px) {
  :root { --header-h: 72px; }
  .nav-principal, .header-acoes { display: none; }
  .menu-botao { display: inline-flex; }
  .marca__assinatura { width: 132px; }
}

/* Menu móvel */
.menu-movel {
  position: fixed; inset: 0; z-index: 200; background: var(--teal-950); color: #fff;
  display: flex; flex-direction: column; padding: 18px var(--gutter) max(24px, env(safe-area-inset-bottom));
  opacity: 0; visibility: hidden; transition: opacity .35s var(--ease), visibility .35s;
  overflow-y: auto;
}
.menu-movel.is-open { opacity: 1; visibility: visible; }
.menu-movel__topo { display: flex; align-items: center; justify-content: space-between; min-height: 40px; margin-bottom: 28px; }
.menu-movel__topo .marca__assinatura { color: #fff; width: 132px; }
.menu-movel__fechar { width: 46px; height: 46px; border-radius: 50%; border: 1.5px solid rgba(255,255,255,.4); background: transparent; color: #fff; display: inline-flex; align-items: center; justify-content: center; }
.menu-movel nav ul { list-style: none; }
.menu-movel nav a {
  display: flex; align-items: center; justify-content: space-between; padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,.1);
  color: #fff; text-decoration: none; font-family: var(--font-serif); font-size: 1.6rem; line-height: 1.2;
  opacity: 0; transform: translateY(12px); transition: opacity .5s var(--ease-out), transform .5s var(--ease-out);
}
.menu-movel nav a .icon { opacity: .5; }
.menu-movel.is-open nav a { opacity: 1; transform: none; }
.menu-movel.is-open nav li:nth-child(2) a { transition-delay: .04s; }
.menu-movel.is-open nav li:nth-child(3) a { transition-delay: .08s; }
.menu-movel.is-open nav li:nth-child(4) a { transition-delay: .12s; }
.menu-movel.is-open nav li:nth-child(5) a { transition-delay: .16s; }
.menu-movel.is-open nav li:nth-child(6) a { transition-delay: .2s; }
.menu-movel.is-open nav li:nth-child(7) a { transition-delay: .24s; }
.menu-movel.is-open nav li:nth-child(8) a { transition-delay: .28s; }
.menu-movel__acoes { display: grid; gap: 12px; margin-top: 28px; }
.menu-movel__contato { margin-top: auto; padding-top: 28px; font-size: .92rem; color: rgba(255,255,255,.65); }
.menu-movel__contato a { color: #fff; }
body.menu-aberto { overflow: hidden; }

/* ---------- Hero (início) ---------- */
.hero {
  position: relative; overflow: hidden; isolation: isolate;
  background: radial-gradient(120% 90% at 85% 40%, #0a3a3a 0%, var(--teal-950) 55%) var(--teal-950);
  color: rgba(255,255,255,.84);
  min-height: min(100svh, 940px); display: flex; align-items: center;
  padding: calc(var(--header-h) + 40px) 0 clamp(110px, 12vw, 150px);
}
.hero__midia { position: absolute; inset: 0 0 0 auto; width: 62%; z-index: -1; }
.hero__midia picture, .hero__midia img { width: 100%; height: 100%; }
.hero__midia img { object-fit: cover; object-position: 48% 26%; }
.hero__midia::after {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(90deg, var(--teal-950) 0%, rgba(3,26,32,.88) 16%, rgba(3,26,32,.35) 42%, rgba(3,26,32,0) 66%),
    linear-gradient(0deg, rgba(3,26,32,.75) 0%, rgba(3,26,32,0) 32%),
    linear-gradient(180deg, rgba(3,26,32,.55) 0%, rgba(3,26,32,0) 22%);
}
.hero__conteudo { position: relative; max-width: 640px; }
.hero h1 { color: #fff; margin-bottom: 1.6rem; }
.hero__lead { font-size: clamp(1.08rem, .98rem + .4vw, 1.28rem); line-height: 1.6; color: rgba(255,255,255,.8); max-width: 560px; margin-bottom: 2.2rem; }
.hero__lead strong { color: #fff; font-weight: 600; }
.hero__meta { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 2.4rem; list-style: none; font-size: .82rem; letter-spacing: .06em; text-transform: uppercase; font-weight: 600; color: rgba(255,255,255,.6); }
.hero__meta li { display: inline-flex; align-items: center; gap: 8px; }
.hero__meta li + li::before { content: ""; width: 4px; height: 4px; border-radius: 50%; background: var(--terra-400); margin-right: 14px; }
@media (max-width: 560px) {
  .hero__meta { flex-direction: column; gap: 8px; }
  .hero__meta li::before, .hero__meta li + li::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--terra-400); margin-right: 6px; flex: none; }
}
.hero__simbolo { position: absolute; right: var(--gutter); bottom: 150px; width: 54px; opacity: .9; }

@media (max-width: 767px) {
  .hero { display: block; min-height: 0; padding: 0 0 72px; }
  .hero__midia { position: relative; width: 100%; height: min(78svh, 620px); z-index: 0; }
  .hero__midia img { object-position: 50% 18%; }
  .hero__midia::after { background: linear-gradient(0deg, var(--teal-950) 0%, rgba(3,26,32,.6) 26%, rgba(3,26,32,0) 55%), linear-gradient(180deg, rgba(3,26,32,.55) 0%, rgba(3,26,32,0) 25%); }
  .hero__conteudo { margin-top: -150px; }
  .hero h1 { font-size: clamp(2.35rem, 9vw, 3rem); }
  .hero .acoes .btn { flex: 1 1 100%; }
  .hero__simbolo { display: none; }
}

/* ---------- Credenciais (cartão sobre o hero) ---------- */
.credenciais { position: relative; z-index: 2; margin-top: clamp(-96px, -7vw, -64px); }
.credenciais__cartao {
  background: var(--surface); border-radius: var(--r-lg); box-shadow: var(--shadow);
  display: grid; grid-template-columns: repeat(4, 1fr);
}
.credencial { padding: clamp(22px, 2.4vw, 32px); display: grid; gap: 6px; align-content: start; position: relative; }
.credencial + .credencial::before { content: ""; position: absolute; left: 0; top: 26px; bottom: 26px; width: 1px; background: var(--line); }
.credencial__icone { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; background: var(--terra-100); color: var(--terra-600); margin-bottom: 10px; }
.credencial__icone .icon { width: 20px; height: 20px; }
.credencial strong { font-family: var(--font-serif); font-weight: 500; font-size: 1.12rem; color: var(--ink); line-height: 1.25; }
.credencial span { font-size: .9rem; color: var(--muted); line-height: 1.45; }
@media (max-width: 1023px) {
  .credenciais__cartao { grid-template-columns: repeat(2, 1fr); }
  .credencial:nth-child(3)::before { display: none; }
  .credencial:nth-child(n+3) { border-top: 1px solid var(--line); }
}
@media (max-width: 540px) {
  .credenciais { margin-top: -40px; }
  .credenciais__cartao { grid-template-columns: minmax(0, 1fr); }
  .credencial::before { display: none; }
  .credencial + .credencial { border-top: 1px solid var(--line); }
  .credencial { grid-template-columns: 38px 1fr; column-gap: 14px; }
  .credencial__icone { grid-row: span 2; margin: 0; }
}

/* ---------- Sobre (início) ---------- */
.apresentacao { display: grid; grid-template-columns: 5fr 6fr; gap: clamp(40px, 6vw, 96px); align-items: center; }
.retrato { position: relative; }
.retrato__foto { border-radius: 999px 999px var(--r-lg) var(--r-lg); overflow: hidden; aspect-ratio: 4 / 5; box-shadow: var(--shadow-lg); }
.retrato__foto img { width: 100%; height: 100%; object-fit: cover; }
.retrato__selo {
  position: absolute; right: -28px; bottom: 40px; background: var(--surface); border-radius: var(--r); box-shadow: var(--shadow);
  padding: 16px 18px; display: grid; gap: 4px; max-width: 230px;
}
.retrato__selo small { font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--terra-600); }
.retrato__selo strong { font-family: var(--font-serif); font-weight: 500; color: var(--ink); font-size: 1rem; line-height: 1.3; }
.apresentacao__texto .titulo-secao { margin-bottom: 1.5rem; }
.apresentacao__texto p { color: var(--text); }
.assinatura-manuscrita { width: 190px; color: var(--terra-500); margin: 1.8rem 0 1.6rem; }
.citacao {
  margin: 2rem 0; padding: 0 0 0 24px; border-left: 2px solid var(--terra-400);
  font-family: var(--font-serif); font-style: italic; font-size: 1.25rem; line-height: 1.5; color: var(--ink);
}
@media (max-width: 900px) {
  .apresentacao { grid-template-columns: minmax(0, 1fr); }
  .retrato { max-width: 440px; margin-inline: auto; width: 100%; }
  .retrato__selo { right: 8px; }
  .retrato__detalhe { left: 8px; }
}

/* ---------- Áreas de atuação ---------- */
.areas-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.area-card {
  position: relative; display: flex; flex-direction: column; gap: 12px; min-height: 290px;
  padding: 28px 26px 24px; border-radius: var(--r); background: var(--surface); border: 1px solid var(--line);
  color: var(--text); text-decoration: none; overflow: hidden;
  transition: transform .45s var(--ease), box-shadow .45s var(--ease), border-color .45s var(--ease);
}
.area-card::after { content: ""; position: absolute; inset: auto 0 0 0; height: 3px; background: linear-gradient(90deg, var(--terra-500), var(--terra-300)); transform: scaleX(0); transform-origin: left; transition: transform .5s var(--ease); }
.area-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: transparent; color: var(--text); }
.area-card:hover::after { transform: scaleX(1); }
.area-card__num { font-family: var(--font-serif); font-style: italic; font-size: 1.05rem; color: var(--terra-500); }
.area-card h3 { font-family: var(--font-serif); font-weight: 500; font-size: 1.36rem; line-height: 1.2; letter-spacing: -.01em; }
.area-card p { font-size: .95rem; line-height: 1.55; color: var(--muted); margin: 0; }
.area-card__link { margin-top: auto; padding-top: 14px; display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: .88rem; color: var(--teal-700); }
.area-card__link .icon { transition: transform .35s var(--ease); }
.area-card:hover .area-card__link { color: var(--terra-600); }
.area-card:hover .area-card__link .icon { transform: translateX(4px); }
@media (max-width: 1100px) { .areas-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .areas-grid { grid-template-columns: minmax(0, 1fr); } .area-card { min-height: 0; } }

/* ---------- Jornada / como funciona ---------- */
.jornada { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 88px); align-items: center; }
.jornada__foto { margin: 0; position: relative; border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow-lg); aspect-ratio: 4 / 3.4; }
.jornada__foto img { width: 100%; height: 100%; object-fit: cover; }
.jornada__foto figcaption { position: absolute; left: 20px; bottom: 20px; right: 20px; display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: var(--r-sm); background: rgba(3, 26, 32, .72); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); color: #fff; font-size: .9rem; line-height: 1.4; }
.jornada__foto figcaption .icon { color: var(--terra-300); width: 22px; height: 22px; }
.passos { list-style: none; counter-reset: passo; display: grid; gap: 4px; margin: 2rem 0 2.2rem; }
.passo { counter-increment: passo; display: grid; grid-template-columns: 52px 1fr; gap: 18px; padding: 18px 0; border-top: 1px solid var(--line); }
.passo:last-child { border-bottom: 1px solid var(--line); }
.passo::before {
  content: counter(passo, decimal-leading-zero); font-family: var(--font-serif); font-style: italic; font-size: 1.05rem; color: var(--terra-500);
  width: 52px; height: 52px; border-radius: 50%; border: 1px solid var(--line-strong); display: grid; place-items: center;
}
.passo h3 { font-family: var(--font-sans); font-weight: 700; font-size: 1.02rem; color: var(--ink); margin-bottom: 4px; letter-spacing: 0; }
.passo p { margin: 0; font-size: .95rem; color: var(--muted); line-height: 1.55; }
@media (max-width: 900px) { .jornada { grid-template-columns: minmax(0, 1fr); } .jornada__foto { order: -1; } }

/* ---------- Curso ---------- */
.curso-faixa { background: var(--teal-900); color: rgba(255,255,255,.8); overflow: hidden; position: relative; isolation: isolate; }
.curso-faixa::before {
  content: ""; position: absolute; z-index: -1; width: 900px; height: 900px; right: -300px; top: -380px; border-radius: 50%;
  background: radial-gradient(closest-side, rgba(210, 110, 75, .22), rgba(210, 110, 75, 0));
}
.curso { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(40px, 6vw, 96px); align-items: center; }
.curso h2 { color: #fff; margin-bottom: 1.25rem; }
.curso .lead { color: rgba(255,255,255,.74); }
.lista-check { list-style: none; display: grid; gap: 14px; margin: 1.8rem 0 2.2rem; }
.lista-check li { display: grid; grid-template-columns: 24px 1fr; gap: 12px; align-items: start; line-height: 1.5; }
.lista-check .icon { width: 22px; height: 22px; color: var(--terra-400); margin-top: 1px; }
.secao:not(.secao--escura):not(.curso-faixa) .lista-check .icon { color: var(--terra-500); }
.curso__nota { margin: 1.4rem 0 0; font-size: .86rem; color: rgba(255,255,255,.55); display: flex; gap: 8px; align-items: center; }
.curso__nota .icon { width: 18px; height: 18px; }
.capa-curso {
  position: relative; aspect-ratio: 4 / 5; border-radius: var(--r-lg); overflow: hidden; box-shadow: 0 50px 90px -40px rgba(0,0,0,.7);
  transform: rotate(1.5deg); transition: transform .6s var(--ease);
}
.capa-curso:hover { transform: rotate(0deg) scale(1.01); }
.capa-curso picture, .capa-curso img { width: 100%; height: 100%; object-fit: cover; }
.capa-curso::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(3,26,32,0) 30%, rgba(3,26,32,.92) 78%); }
.capa-curso__texto { position: absolute; z-index: 1; left: 26px; right: 26px; bottom: 26px; color: #fff; }
.capa-curso__selo { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px; background: var(--terra-500); font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 14px; }
.capa-curso__titulo { font-family: var(--font-serif); font-size: clamp(1.7rem, 1.2rem + 1.4vw, 2.3rem); line-height: 1.05; margin: 0 0 14px; color: #fff; }
.capa-curso__dados { display: flex; gap: 8px; flex-wrap: wrap; }
.capa-curso__dados span { padding: 6px 12px; border-radius: 999px; border: 1px solid rgba(255,255,255,.35); font-size: .8rem; font-weight: 600; }
@media (max-width: 900px) { .curso { grid-template-columns: minmax(0, 1fr); } .capa-curso { max-width: 420px; transform: none; } }

/* ---------- Cards de artigos ---------- */
.artigos-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(20px, 2.5vw, 36px); }
.artigo-card { display: flex; flex-direction: column; gap: 14px; text-decoration: none; color: var(--text); }
.artigo-card__imagem { position: relative; border-radius: var(--r); overflow: hidden; aspect-ratio: 16 / 10; background: var(--bg-deep); }
.artigo-card__imagem img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.artigo-card:hover .artigo-card__imagem img { transform: scale(1.04); }
.artigo-card__sem-imagem { position: absolute; inset: 0; display: grid; place-items: center; padding: 26px; background: linear-gradient(135deg, var(--teal-800), var(--teal-950)); color: #fff; font-family: var(--font-serif); font-size: 1.25rem; text-align: center; line-height: 1.25; }
.artigo-card__sem-imagem::before { content: ""; position: absolute; inset: 14px; border: 1px solid rgba(255,255,255,.14); border-radius: 12px; }
.artigo-card__cat { font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--terra-600); }
.artigo-card h3 { font-family: var(--font-serif); font-weight: 500; font-size: 1.32rem; line-height: 1.25; letter-spacing: -.01em; transition: color .3s var(--ease); }
.artigo-card:hover h3 { color: var(--teal-700); }
.artigo-card p { margin: 0; font-size: .95rem; color: var(--muted); line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.artigo-card__meta { font-size: .84rem; color: var(--soft); display: flex; gap: 8px; align-items: center; margin-top: auto; }
.artigo-card__meta span + span::before { content: "·"; margin-right: 8px; }
@media (max-width: 1000px) { .artigos-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .artigos-grid { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Instagram ---------- */
.insta-topo { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: 36px; }
.insta-perfil { display: flex; align-items: center; gap: 18px; }
.insta-perfil__avatar { position: relative; width: 76px; height: 76px; border-radius: 50%; padding: 3px; background: conic-gradient(from 210deg, #f9ce34, #ee2a7b, #6228d7, #ee2a7b, #f9ce34); flex: none; }
.insta-perfil__avatar picture, .insta-perfil__avatar img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; border: 3px solid var(--surface); }
.insta-perfil h2 { font-family: var(--font-serif); font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.2rem); line-height: 1.1; }
.insta-perfil p { margin: 4px 0 0; color: var(--muted); }
.insta-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.insta-post { position: relative; display: block; aspect-ratio: 4 / 5; border-radius: var(--r-sm); overflow: hidden; background: var(--bg-deep); color: #fff; }
.insta-post img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.insta-post__tipo { position: absolute; top: 10px; right: 10px; width: 30px; height: 30px; border-radius: 50%; background: rgba(0,0,0,.45); backdrop-filter: blur(6px); display: grid; place-items: center; }
.insta-post__tipo .icon { width: 15px; height: 15px; }
.insta-post__legenda {
  position: absolute; inset: auto 0 0 0; padding: 40px 14px 14px; font-size: .84rem; line-height: 1.4;
  background: linear-gradient(0deg, rgba(3,26,32,.9), rgba(3,26,32,0)); opacity: 0; transform: translateY(10px); transition: opacity .4s var(--ease), transform .4s var(--ease);
  display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden;
}
.insta-post:hover img { transform: scale(1.05); }
.insta-post:hover .insta-post__legenda, .insta-post:focus-visible .insta-post__legenda { opacity: 1; transform: none; }
@media (max-width: 900px) { .insta-grid { grid-template-columns: repeat(2, 1fr); } }
.insta-convite { display: grid; grid-template-columns: 340px 1fr; gap: clamp(28px, 5vw, 72px); align-items: center; background: var(--bg-alt); border-radius: var(--r-lg); padding: clamp(24px, 4vw, 48px); }
.insta-convite__foto { border-radius: var(--r); overflow: hidden; aspect-ratio: 4 / 5; box-shadow: var(--shadow); }
.insta-convite__foto img { height: 100%; object-fit: cover; }
.insta-convite__temas { display: flex; flex-wrap: wrap; gap: 8px; margin: 1.4rem 0 2rem; list-style: none; }
.insta-convite__temas li { padding: 8px 14px; border-radius: 999px; background: var(--surface); border: 1px solid var(--line); font-size: .88rem; font-weight: 600; color: var(--ink); }
@media (max-width: 760px) { .insta-convite { grid-template-columns: minmax(0, 1fr); } .insta-convite__foto { max-width: 320px; } }

/* ---------- Faixa de projetos (Curadoria / materiais) ---------- */
.projetos { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.projeto {
  position: relative; display: grid; grid-template-columns: auto 1fr auto; gap: 20px; align-items: center;
  padding: 28px 30px; border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); text-decoration: none; color: var(--text);
  transition: transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
}
.projeto:hover { transform: translateY(-3px); box-shadow: var(--shadow); border-color: transparent; color: var(--text); }
.projeto__icone { width: 56px; height: 56px; border-radius: 16px; display: grid; place-items: center; background: var(--teal-900); color: var(--terra-300); }
.projeto__icone .icon { width: 26px; height: 26px; }
.projeto__texto small { display: block; font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--terra-600); margin-bottom: 4px; }
.projeto__texto strong { display: block; font-family: var(--font-serif); font-weight: 500; font-size: 1.3rem; color: var(--ink); line-height: 1.2; }
.projeto__texto span { display: block; font-size: .92rem; color: var(--muted); margin-top: 4px; line-height: 1.45; }
.projeto__seta { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line-strong); display: grid; place-items: center; color: var(--teal-700); transition: background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease); }
.projeto:hover .projeto__seta { background: var(--terra-600); border-color: var(--terra-600); color: #fff; }
@media (max-width: 860px) { .projetos { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 480px) { .projeto { grid-template-columns: auto 1fr; padding: 22px; } .projeto .projeto__seta { display: none; } }

/* ---------- Convênios ---------- */
.marquee { position: relative; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.marquee__trilho { display: flex; width: max-content; gap: 16px; animation: marquee 70s linear infinite; }
.marquee:hover .marquee__trilho { animation-play-state: paused; }
.marquee__item { flex: none; width: 190px; height: 104px; display: grid; place-items: center; padding: 20px 26px; border-radius: var(--r); background: var(--surface); border: 1px solid var(--line); }
.marquee__item img { max-height: 54px; width: auto; max-width: 100%; object-fit: contain; filter: grayscale(1) contrast(.9); opacity: .72; transition: filter .4s var(--ease), opacity .4s var(--ease); }
.marquee__item:hover img { filter: none; opacity: 1; }
@keyframes marquee { to { transform: translateX(calc(-50% - 8px)); } }
.convenios-rodape { display: flex; justify-content: center; gap: 12px 24px; flex-wrap: wrap; margin-top: 36px; align-items: center; }

/* ---------- Perguntas (acordeão) ---------- */
.faq-layout { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(36px, 6vw, 96px); align-items: start; }
.faq-layout__intro { position: sticky; top: calc(var(--header-h) + 32px); }
.acordeao { border-top: 1px solid var(--line-strong); }
.acordeao details { border-bottom: 1px solid var(--line-strong); }
.acordeao summary {
  list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 24px;
  padding: 22px 4px; font-family: var(--font-serif); font-weight: 500; font-size: clamp(1.08rem, 1rem + .3vw, 1.25rem); line-height: 1.35; color: var(--ink);
}
.acordeao summary::-webkit-details-marker { display: none; }
.acordeao summary:hover { color: var(--teal-700); }
.acordeao__icone { flex: none; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--line-strong); display: grid; place-items: center; transition: transform .35s var(--ease), background .35s var(--ease), color .35s var(--ease), border-color .35s; }
.acordeao__icone .icon { width: 18px; height: 18px; }
.acordeao details[open] .acordeao__icone { transform: rotate(180deg); background: var(--teal-900); border-color: var(--teal-900); color: #fff; }
.acordeao__resposta { padding: 0 60px 24px 4px; color: var(--text); line-height: 1.7; }
.acordeao__resposta p:last-child { margin: 0; }
.secao--escura .acordeao, .secao--escura .acordeao details { border-color: rgba(255,255,255,.14); }
.secao--escura .acordeao summary { color: #fff; }
@media (max-width: 900px) { .faq-layout { grid-template-columns: minmax(0, 1fr); } .faq-layout__intro { position: static; } .acordeao__resposta { padding-right: 4px; } }

/* ---------- Contato (bloco escuro) ---------- */
.contato-bloco { display: grid; grid-template-columns: 6fr 5fr; gap: clamp(40px, 6vw, 88px); align-items: stretch; }
.contato-bloco h2 { color: #fff; margin-bottom: 1.2rem; }
.contato-lista { list-style: none; display: grid; gap: 4px; margin: 2rem 0 0; }
.contato-lista li { display: grid; grid-template-columns: 44px 1fr; gap: 16px; align-items: center; padding: 14px 0; border-top: 1px solid rgba(255,255,255,.1); }
.contato-lista li:last-child { border-bottom: 1px solid rgba(255,255,255,.1); }
.contato-lista__icone { width: 44px; height: 44px; border-radius: 50%; background: rgba(255,255,255,.06); display: grid; place-items: center; color: var(--terra-300); }
.contato-lista__icone .icon { width: 20px; height: 20px; }
.contato-lista small { display: block; font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; color: rgba(255,255,255,.5); }
.secao--escura .contato-lista a, .contato-lista span { color: #fff; text-decoration: none; font-weight: 500; }
.secao--escura .contato-lista a:hover { color: var(--terra-300); }
.mapa { position: relative; border-radius: var(--r-lg); overflow: hidden; min-height: 460px; align-self: center; background: var(--teal-850); display: grid; }
.mapa__placeholder {
  position: relative; display: grid; place-content: center; justify-items: center; gap: 14px; text-align: center; padding: 32px;
  background:
    radial-gradient(circle at 50% 42%, rgba(210,110,75,.25) 0 12px, transparent 13px),
    repeating-linear-gradient(0deg, rgba(255,255,255,.04) 0 1px, transparent 1px 42px),
    repeating-linear-gradient(90deg, rgba(255,255,255,.04) 0 1px, transparent 1px 42px),
    linear-gradient(160deg, #0b3a45, #041e25);
  color: #fff;
}
.mapa__pino { width: 64px; height: 64px; border-radius: 50%; background: var(--terra-500); display: grid; place-items: center; box-shadow: 0 0 0 10px rgba(189,89,53,.2), 0 0 0 22px rgba(189,89,53,.08); }
.mapa__pino .icon { width: 28px; height: 28px; }
.mapa__placeholder strong { font-family: var(--font-serif); font-size: 1.3rem; font-weight: 500; }
.mapa__placeholder p { margin: 0; color: rgba(255,255,255,.7); font-size: .95rem; max-width: 300px; }
.mapa iframe { width: 100%; height: 100%; min-height: 380px; border: 0; }
@media (max-width: 900px) { .contato-bloco { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Rodapé ---------- */
.site-footer { background: var(--teal-950); color: rgba(255,255,255,.66); padding: clamp(64px, 8vw, 96px) 0 0; font-size: .95rem; }
.site-footer a { color: rgba(255,255,255,.82); text-decoration: none; }
.site-footer a:hover { color: var(--terra-300); }
.rodape-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.2fr; gap: 40px; padding-bottom: 56px; }
.rodape-marca .marca__assinatura { color: #fff; width: 170px; margin-bottom: 18px; }
.rodape-marca p { max-width: 330px; line-height: 1.6; }
.rodape-titulo { font-size: .74rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--terra-300); margin: 0 0 18px; }
.rodape-lista { list-style: none; display: grid; gap: 10px; }
.redes { display: flex; gap: 10px; margin-top: 22px; }
.redes a { width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255,255,255,.18); display: grid; place-items: center; transition: background .3s, border-color .3s; }
.redes a:hover { background: var(--terra-600); border-color: var(--terra-600); color: #fff; }
.redes .icon { width: 20px; height: 20px; }
.rodape-legal { border-top: 1px solid rgba(255,255,255,.1); padding: 26px 0 32px; display: grid; gap: 10px; font-size: .82rem; line-height: 1.6; color: rgba(255,255,255,.5); }
.rodape-legal__linha { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px 24px; }
.rodape-legal strong { color: rgba(255,255,255,.8); font-weight: 600; }
.rodape-legal nav { display: flex; gap: 18px; flex-wrap: wrap; }
@media (max-width: 1000px) { .rodape-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .rodape-grid { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Topo das páginas internas ---------- */
.pagina-topo { padding: calc(var(--header-h) + clamp(40px, 6vw, 80px)) 0 clamp(48px, 6vw, 80px); background: var(--bg-alt); position: relative; overflow: hidden; }
.pagina-topo--escuro { background: var(--teal-900); color: rgba(255,255,255,.78); }
.pagina-topo--escuro h1 { color: #fff; }
.pagina-topo--escuro .lead { color: rgba(255,255,255,.72); }
.pagina-topo__grid { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(32px, 6vw, 88px); align-items: center; }
.pagina-topo h1 { margin-bottom: 1.2rem; }
.pagina-topo .lead { max-width: 640px; margin: 0; }
.pagina-topo__foto { border-radius: 999px 999px var(--r-lg) var(--r-lg); overflow: hidden; aspect-ratio: 4 / 5; max-width: 420px; justify-self: end; width: 100%; box-shadow: var(--shadow-lg); }
.pagina-topo__foto img { height: 100%; object-fit: cover; }
.pagina-topo .acoes { margin-top: 2rem; }
@media (max-width: 900px) { .pagina-topo__grid { grid-template-columns: minmax(0, 1fr); } .pagina-topo__foto { justify-self: start; max-width: 340px; } }
.trilha { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; font-size: .84rem; margin-bottom: 26px; color: var(--muted); }
.trilha li + li::before { content: "/"; margin-right: 6px; opacity: .5; }
.trilha a { color: inherit; text-decoration: none; }
.trilha a:hover { color: var(--terra-600); }
.pagina-topo--escuro .trilha { color: rgba(255,255,255,.55); }

/* ---------- Página Sobre ---------- */
.historia { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(40px, 6vw, 96px); align-items: start; }
.historia__foto { border-radius: var(--r-lg); overflow: hidden; position: sticky; top: calc(var(--header-h) + 32px); box-shadow: var(--shadow); }
.historia__texto p { font-size: 1.08rem; line-height: 1.75; }
@media (max-width: 900px) { .historia { grid-template-columns: minmax(0, 1fr); } .historia__foto { position: static; max-width: 420px; } }
.linha-tempo { list-style: none; display: grid; gap: 0; max-width: 900px; }
.linha-tempo li { display: grid; grid-template-columns: 170px 1fr; gap: 32px; padding: 26px 0; border-top: 1px solid var(--line-strong); position: relative; }
.linha-tempo li:last-child { border-bottom: 1px solid var(--line-strong); }
.linha-tempo__ano { font-family: var(--font-serif); font-style: italic; color: var(--terra-600); font-size: 1.05rem; padding-top: 2px; }
.linha-tempo h3 { font-family: var(--font-serif); font-weight: 500; font-size: 1.3rem; line-height: 1.3; margin-bottom: 4px; }
.linha-tempo p { margin: 0; color: var(--muted); }
@media (max-width: 640px) { .linha-tempo li { grid-template-columns: minmax(0, 1fr); gap: 6px; } }
.sociedades { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.sociedade { padding: 28px 24px; border-radius: var(--r); background: var(--surface); border: 1px solid var(--line); }
.sociedade strong { display: block; font-family: var(--font-serif); font-size: 1.9rem; font-weight: 500; color: var(--teal-700); letter-spacing: .02em; line-height: 1; margin-bottom: 12px; }
.sociedade span { display: block; font-size: .92rem; color: var(--muted); line-height: 1.45; }
@media (max-width: 1000px) { .sociedades { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .sociedades { grid-template-columns: minmax(0, 1fr); } }
.valores { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: rgba(255,255,255,.12); border-radius: var(--r-lg); overflow: hidden; }
.valor { background: var(--teal-900); padding: 36px 30px; }
.valor .icon { width: 30px; height: 30px; color: var(--terra-300); margin-bottom: 22px; }
.valor h3 { font-family: var(--font-serif); font-weight: 500; font-size: 1.35rem; margin-bottom: 10px; }
.valor p { margin: 0; font-size: .95rem; line-height: 1.6; color: rgba(255,255,255,.7); }
@media (max-width: 1000px) { .valores { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .valores { grid-template-columns: minmax(0, 1fr); } }
.destaque-lateral { display: grid; grid-template-columns: 300px 1fr; gap: clamp(28px, 5vw, 64px); align-items: center; padding: clamp(24px, 4vw, 48px); border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); }
.destaque-lateral__imagem { border-radius: var(--r); overflow: hidden; background: var(--bg-deep); }
@media (max-width: 760px) { .destaque-lateral { grid-template-columns: minmax(0, 1fr); } .destaque-lateral__imagem { max-width: 280px; } }
.videos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.video { display: grid; gap: 12px; }
.video__player { position: relative; aspect-ratio: 16 / 9; border-radius: var(--r); overflow: hidden; background: var(--teal-900) center / cover no-repeat; }
.video__player button { position: absolute; inset: 0; width: 100%; border: 0; background: linear-gradient(0deg, rgba(3,26,32,.55), rgba(3,26,32,.1)); color: #fff; display: grid; place-items: center; }
.video__play { width: 64px; height: 64px; border-radius: 50%; background: rgba(255,255,255,.95); color: var(--terra-600); display: grid; place-items: center; transition: transform .3s var(--ease); box-shadow: 0 10px 30px -8px rgba(0,0,0,.5); }
.video__play .icon { width: 26px; height: 26px; margin-left: 4px; }
.video__player button:hover .video__play { transform: scale(1.08); }
.video__player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.video strong { font-family: var(--font-serif); font-weight: 500; font-size: 1.12rem; color: var(--ink); line-height: 1.3; }
.video span { font-size: .85rem; color: var(--muted); }
@media (max-width: 900px) { .videos { grid-template-columns: minmax(0, 1fr); max-width: 560px; } }
.galeria { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.galeria figure { margin: 0; border-radius: var(--r); overflow: hidden; aspect-ratio: 4 / 5; }
.galeria figure:nth-child(1) { grid-column: span 2; grid-row: span 2; aspect-ratio: auto; }
.galeria img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.galeria figure:hover img { transform: scale(1.04); }
@media (max-width: 800px) { .galeria { grid-template-columns: repeat(2, 1fr); } }

/* ---------- Página de área ---------- */
.area-layout { display: grid; grid-template-columns: 260px 1fr; gap: clamp(40px, 6vw, 96px); align-items: start; }
.area-nav { position: sticky; top: calc(var(--header-h) + 32px); }
.area-nav p { font-size: .74rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--soft); margin-bottom: 14px; }
.area-nav ul { list-style: none; display: grid; gap: 2px; border-left: 1px solid var(--line-strong); }
.area-nav a { display: block; padding: 8px 0 8px 18px; margin-left: -1px; border-left: 2px solid transparent; color: var(--muted); text-decoration: none; font-size: .95rem; font-weight: 600; transition: color .2s, border-color .2s; }
.area-nav a:hover, .area-nav a.is-ativo { color: var(--ink); border-left-color: var(--terra-500); }
.area-nav__cta { margin-top: 28px; padding: 22px; border-radius: var(--r); background: var(--teal-900); color: rgba(255,255,255,.75); font-size: .92rem; }
.area-nav__cta strong { display: block; font-family: var(--font-serif); color: #fff; font-weight: 500; font-size: 1.15rem; margin-bottom: 6px; }
.area-nav__cta .btn { margin-top: 14px; width: 100%; }
@media (max-width: 960px) { .area-layout { grid-template-columns: minmax(0, 1fr); } .area-nav { display: none; } }
.area-figura { margin: 0 0 3rem; border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow); }

/* ---------- Texto longo (artigos, áreas, páginas legais) ---------- */
.prosa { font-size: 1.12rem; line-height: 1.8; color: var(--text); max-width: 720px; }
.prosa > * + * { margin-top: 1.25em; }
.prosa p { margin: 0; }
.prosa h2 { font-family: var(--font-serif); font-weight: 500; font-size: clamp(1.6rem, 1.3rem + 1vw, 2.05rem); line-height: 1.2; letter-spacing: -.012em; margin-top: 2.2em; color: var(--ink); scroll-margin-top: calc(var(--header-h) + 24px); }
.prosa h3 { font-family: var(--font-serif); font-weight: 500; font-size: 1.35rem; line-height: 1.3; margin-top: 1.8em; color: var(--ink); }
.prosa h4 { font-family: var(--font-sans); font-weight: 700; font-size: 1.05rem; margin-top: 1.6em; }
.prosa h2 + *, .prosa h3 + * { margin-top: .7em; }
.prosa ul, .prosa ol { padding-left: 1.3em; }
.prosa li { margin: .45em 0; padding-left: .2em; }
.prosa li::marker { color: var(--terra-500); }
.prosa strong { color: var(--ink); font-weight: 700; }
.prosa a { color: var(--teal-700); text-decoration: underline; text-decoration-color: rgba(6,62,92,.35); }
.prosa a:hover { color: var(--terra-600); text-decoration-color: currentColor; }
.prosa blockquote { margin: 2em 0; padding: 4px 0 4px 26px; border-left: 3px solid var(--terra-400); font-family: var(--font-serif); font-style: italic; font-size: 1.28rem; line-height: 1.55; color: var(--ink); }
.prosa figure { margin: 2em 0; }
.prosa figure img, .prosa > img { border-radius: var(--r); }
.prosa figcaption { font-size: .88rem; color: var(--muted); margin-top: 10px; text-align: center; }
.prosa hr { border: 0; height: 1px; background: var(--line-strong); margin: 3em 0; }
.prosa .tabela { overflow-x: auto; }
.prosa table { width: 100%; border-collapse: collapse; font-size: .96rem; }
.prosa th, .prosa td { padding: 12px 14px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.prosa th { font-weight: 700; color: var(--ink); background: var(--bg-alt); }
.prosa iframe { width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: var(--r); }
.prosa .introducao { font-size: 1.28rem; line-height: 1.65; color: var(--ink); }
.prosa .indice, .prosa .caixa-destaque, .prosa .caixa-alerta, .prosa .bloco-sintoma, .prosa .pergunta, .prosa .referencias, .prosa .nota { border-radius: var(--r); padding: 24px 28px; }
.prosa .indice { background: var(--bg-alt); border: 1px solid var(--line); }
.prosa .indice > strong { display: block; font-family: var(--font-serif); font-weight: 500; font-size: 1.15rem; margin-bottom: 8px; }
.prosa .indice ol { margin: 0; }
.prosa .indice a { text-decoration: none; }
.prosa .caixa-destaque, .prosa .nota { background: var(--teal-100); border-left: 4px solid var(--teal-600); }
.prosa .caixa-alerta { background: #fdf3e2; border-left: 4px solid #c7891b; }
.prosa .caixa-alerta strong { color: #7a5206; }
.prosa .bloco-sintoma { background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-sm); }
.prosa .bloco-sintoma h3 { margin-top: 0; }
.prosa .lista-exames { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.prosa .exame { padding: 20px 22px; border-radius: var(--r-sm); background: var(--bg-alt); }
.prosa .exame h3 { margin: 0 0 6px; font-size: 1.12rem; }
.prosa .exame p { margin: 0; font-size: .97rem; line-height: 1.6; }
.prosa .pergunta { background: var(--surface); border: 1px solid var(--line); }
.prosa .pergunta h3 { margin: 0 0 8px; font-size: 1.15rem; }
.prosa .pergunta p { margin: 0; }
.prosa .cta { background: var(--teal-900); color: rgba(255,255,255,.8); padding: 32px; border-radius: var(--r-lg); text-align: center; }
.prosa .cta h2 { color: #fff; margin: 0 0 10px; font-size: 1.6rem; }
.prosa .cta p { margin: 0 0 20px; }
.prosa .cta a { display: inline-flex; padding: 14px 26px; border-radius: 999px; background: var(--terra-600); color: #fff; font-weight: 700; text-decoration: none; }
.prosa .cta a:hover { background: var(--terra-700); }
.prosa .referencias { background: transparent; padding: 24px 0 0; border-top: 1px solid var(--line-strong); border-radius: 0; font-size: .92rem; line-height: 1.6; color: var(--muted); }
.prosa .referencias h2 { font-size: 1.3rem; margin-top: 0; }
@media (max-width: 640px) { .prosa { font-size: 1.06rem; } .prosa .lista-exames { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Página de artigo ---------- */
.artigo-topo { padding: calc(var(--header-h) + clamp(36px, 5vw, 72px)) 0 clamp(32px, 4vw, 48px); background: var(--bg); }
.artigo-topo__cat { display: inline-block; font-size: .78rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--terra-600); text-decoration: none; margin-bottom: 18px; }
.artigo-topo h1 { font-family: var(--font-serif); font-weight: 400; font-size: clamp(2.1rem, 1.4rem + 2.6vw, 3.5rem); line-height: 1.08; letter-spacing: -.02em; max-width: 900px; }
.artigo-topo__resumo { font-size: clamp(1.1rem, 1rem + .35vw, 1.3rem); color: var(--muted); max-width: 760px; margin: 1.3rem 0 0; line-height: 1.55; }
.artigo-autor { display: flex; align-items: center; gap: 14px; margin-top: 2rem; }
.artigo-autor__foto { width: 52px; height: 52px; border-radius: 50%; overflow: hidden; flex: none; }
.artigo-autor strong { display: block; color: var(--ink); font-size: .98rem; }
.artigo-autor span { font-size: .88rem; color: var(--muted); }
.artigo-capa { border-radius: var(--r-lg); overflow: hidden; max-height: 620px; background: var(--bg-deep); }
.artigo-capa img { width: 100%; max-height: 620px; object-fit: cover; }
.artigo-corpo { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: clamp(40px, 6vw, 96px); align-items: start; padding: clamp(40px, 5vw, 72px) 0 var(--section); }
.artigo-lateral { position: sticky; top: calc(var(--header-h) + 28px); display: grid; gap: 28px; }
.sumario p { font-size: .74rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--soft); margin-bottom: 12px; }
.sumario ol { list-style: none; display: grid; gap: 2px; border-left: 1px solid var(--line-strong); counter-reset: sum; }
.sumario a { display: block; padding: 6px 0 6px 16px; margin-left: -1px; border-left: 2px solid transparent; font-size: .9rem; line-height: 1.4; color: var(--muted); text-decoration: none; transition: color .2s, border-color .2s; }
.sumario a:hover, .sumario a.is-ativo { color: var(--ink); border-left-color: var(--terra-500); }
.compartilhar p { font-size: .74rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--soft); margin-bottom: 12px; }
.compartilhar__botoes { display: flex; gap: 8px; }
.compartilhar__botoes a, .compartilhar__botoes button { width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--line-strong); background: transparent; display: grid; place-items: center; color: var(--teal-700); transition: background .25s, color .25s, border-color .25s; }
.compartilhar__botoes a:hover, .compartilhar__botoes button:hover { background: var(--teal-900); border-color: var(--teal-900); color: #fff; }
.compartilhar__botoes .icon { width: 18px; height: 18px; }
.autor-box { display: grid; grid-template-columns: 96px 1fr; gap: 24px; padding: 28px; margin-top: 3.5rem; border-radius: var(--r-lg); background: var(--bg-alt); max-width: 720px; }
.autor-box__foto { width: 96px; height: 96px; border-radius: 50%; overflow: hidden; }
.autor-box small { font-size: .72rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--terra-600); }
.autor-box strong { display: block; font-family: var(--font-serif); font-weight: 500; font-size: 1.35rem; color: var(--ink); margin: 4px 0 2px; }
.autor-box p { margin: 10px 0 0; font-size: .96rem; color: var(--muted); line-height: 1.6; }
.aviso-medico { max-width: 720px; margin-top: 24px; font-size: .88rem; color: var(--soft); display: flex; gap: 10px; line-height: 1.5; }
.aviso-medico .icon { margin-top: 2px; }
@media (max-width: 1000px) { .artigo-corpo { grid-template-columns: minmax(0, 1fr); } .artigo-lateral { position: static; order: -1; } .sumario { display: none; } }
@media (max-width: 560px) { .autor-box { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Lista de artigos ---------- */
.filtros { display: flex; flex-wrap: wrap; gap: 10px 24px; justify-content: space-between; align-items: center; margin-bottom: 44px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; }
.chip { display: inline-flex; align-items: center; gap: 6px; padding: 9px 16px; border-radius: 999px; border: 1px solid var(--line-strong); background: var(--surface); color: var(--text); text-decoration: none; font-size: .9rem; font-weight: 600; transition: background .2s, border-color .2s, color .2s; }
.chip:hover { border-color: var(--teal-700); color: var(--teal-700); }
.chip[aria-current="page"] { background: var(--teal-900); border-color: var(--teal-900); color: #fff; }
.chip small { font-weight: 700; opacity: .55; }
.busca { position: relative; min-width: min(320px, 100%); }
.busca input { width: 100%; height: 48px; padding: 0 48px 0 20px; border-radius: 999px; border: 1px solid var(--line-strong); background: var(--surface); }
.busca button { position: absolute; right: 6px; top: 6px; width: 36px; height: 36px; border-radius: 50%; border: 0; background: var(--teal-900); color: #fff; display: grid; place-items: center; }
.busca button .icon { width: 18px; height: 18px; }
.paginacao { display: flex; justify-content: center; gap: 8px; margin-top: 64px; list-style: none; flex-wrap: wrap; }
.paginacao a, .paginacao span { min-width: 46px; height: 46px; padding: 0 16px; border-radius: 999px; display: grid; place-items: center; border: 1px solid var(--line-strong); text-decoration: none; color: var(--text); font-weight: 700; font-size: .92rem; }
.paginacao a:hover { border-color: var(--teal-900); color: var(--teal-900); }
.paginacao [aria-current="page"] { background: var(--teal-900); border-color: var(--teal-900); color: #fff; }
.vazio { text-align: center; padding: 64px 24px; border-radius: var(--r-lg); background: var(--bg-alt); }
.vazio h2 { font-family: var(--font-serif); font-size: 1.6rem; margin-bottom: 10px; }

/* ---------- Faixa de chamada (CTA) ---------- */
.cta-faixa { position: relative; overflow: hidden; border-radius: var(--r-xl); background: var(--teal-900); color: rgba(255,255,255,.78); padding: clamp(40px, 6vw, 80px); display: grid; grid-template-columns: 1fr auto; gap: 32px 48px; align-items: center; isolation: isolate; }
.cta-faixa::before { content: ""; position: absolute; z-index: -1; width: 620px; height: 620px; border-radius: 50%; right: -200px; top: -260px; background: radial-gradient(closest-side, rgba(210,110,75,.26), transparent); }
.cta-faixa h2 { color: #fff; margin-bottom: .8rem; }
.cta-faixa p { margin: 0; max-width: 560px; }
@media (max-width: 860px) { .cta-faixa { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Formulários ---------- */
.campo { display: grid; gap: 8px; align-content: start; }
.campo > label:not(.aceite), .campo legend { font-weight: 700; font-size: .95rem; color: var(--ink); padding: 0; }
.campo .obrigatorio { color: var(--terra-600); margin-left: 2px; }
.campo__ajuda { font-size: .86rem; color: var(--muted); line-height: 1.45; margin: 0; }
.campo__erro { font-size: .88rem; color: var(--danger); font-weight: 600; display: flex; gap: 6px; align-items: center; margin: 0; }
.campo__erro .icon { width: 16px; height: 16px; }
.input, .select, .textarea {
  width: 100%; min-height: 52px; padding: 13px 16px; border-radius: var(--r-sm); border: 1.5px solid var(--line-strong);
  background: var(--surface); color: var(--ink); font-size: 1rem; line-height: 1.4; transition: border-color .2s, box-shadow .2s;
  -webkit-appearance: none; appearance: none;
}
.textarea { min-height: 120px; resize: vertical; }
.select { padding-right: 44px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23063e5c' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; background-size: 18px; }
.input:hover, .select:hover, .textarea:hover { border-color: var(--soft); }
.input:focus, .select:focus, .textarea:focus { outline: none; border-color: var(--teal-600); box-shadow: 0 0 0 4px rgba(12, 84, 116, .12); }
.campo.tem-erro .input, .campo.tem-erro .select, .campo.tem-erro .textarea { border-color: var(--danger); }
.input::placeholder, .textarea::placeholder { color: #9aa4a8; }
fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.opcoes { display: grid; gap: 10px; }
.opcoes--2 { grid-template-columns: 1fr 1fr; }
.opcao { position: relative; display: flex; gap: 12px; align-items: flex-start; padding: 13px 16px; border-radius: var(--r-sm); border: 1.5px solid var(--line-strong); background: var(--surface); cursor: pointer; line-height: 1.4; font-size: .98rem; transition: border-color .2s, background .2s; }
.opcao:hover { border-color: var(--soft); }
.opcao input { position: absolute; opacity: 0; pointer-events: none; }
.opcao__marca { flex: none; width: 22px; height: 22px; margin-top: -1px; border: 1.5px solid var(--line-strong); border-radius: 6px; display: grid; place-items: center; background: #fff; transition: all .2s; }
.opcao input[type="radio"] + .opcao__marca { border-radius: 50%; }
.opcao__marca::after { content: ""; width: 10px; height: 10px; border-radius: 3px; background: #fff; transform: scale(0); transition: transform .2s var(--ease); }
.opcao input[type="radio"] + .opcao__marca::after { border-radius: 50%; }
.opcao input:checked + .opcao__marca { background: var(--teal-700); border-color: var(--teal-700); }
.opcao input:checked + .opcao__marca::after { transform: scale(1); }
.opcao:has(input:checked) { border-color: var(--teal-700); background: var(--teal-100); }
.opcao input:focus-visible + .opcao__marca { outline: 2px solid var(--terra-500); outline-offset: 3px; }
/* caixas de seleção: marca de "check" em vez de quadrado */
.opcao input[type="checkbox"] + .opcao__marca::after, .aceite .opcao__marca::after {
  width: 6px; height: 11px; margin-top: -3px; border: solid #fff; border-width: 0 2.4px 2.4px 0; border-radius: 1px; background: none; transform: rotate(45deg) scale(0);
}
.opcao input[type="checkbox"]:checked + .opcao__marca::after, .aceite input:checked + .opcao__marca::after { transform: rotate(45deg) scale(1); }
.opcoes--cartoes { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
.opcoes--cartoes .opcao { padding: 16px 18px; font-weight: 600; }
.aceite { display: flex; gap: 14px; align-items: flex-start; padding: 18px 20px; border-radius: var(--r-sm); background: var(--bg-alt); cursor: pointer; line-height: 1.55; font-size: .96rem; }
.aceite input { position: absolute; opacity: 0; }
.aceite .opcao__marca { margin-top: 2px; }
.aceite input:checked + .opcao__marca { background: var(--teal-700); border-color: var(--teal-700); }
.aceite input:focus-visible + .opcao__marca { outline: 2px solid var(--terra-500); outline-offset: 3px; }
.campos-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 20px; }
.campos-grid > .campo { grid-column: 1 / -1; }
.campos-grid > .campo--meia { grid-column: auto; }
@media (max-width: 640px) { .campos-grid { grid-template-columns: minmax(0, 1fr); } .campos-grid > .campo--meia { grid-column: 1 / -1; } .opcoes--2 { grid-template-columns: minmax(0, 1fr); } }
.armadilha { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.alerta { display: flex; gap: 12px; padding: 16px 18px; border-radius: var(--r-sm); font-size: .96rem; line-height: 1.5; align-items: flex-start; }
.alerta .icon { width: 22px; height: 22px; margin-top: 1px; }
.alerta--erro { background: #fbeceb; color: #7d1c16; }
.alerta--ok { background: #e7f3ec; color: #1f5a3c; }
.alerta--info { background: var(--teal-100); color: var(--teal-700); }

/* Envio de arquivos */
.upload { position: relative; border: 1.5px dashed var(--line-strong); border-radius: var(--r); background: var(--surface); padding: 28px; text-align: center; transition: border-color .2s, background .2s; }
.upload.is-arrastando { border-color: var(--teal-600); background: var(--teal-100); }
.upload input[type="file"] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.upload__icone { width: 52px; height: 52px; border-radius: 50%; background: var(--teal-100); color: var(--teal-700); display: grid; place-items: center; margin: 0 auto 12px; }
.upload strong { color: var(--ink); }
.upload p { margin: 6px 0 0; font-size: .88rem; color: var(--muted); }
.arquivos { list-style: none; display: grid; gap: 8px; margin-top: 12px; }
.arquivos li { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-radius: var(--r-sm); background: var(--bg-alt); font-size: .92rem; }
.arquivos li .icon { color: var(--teal-700); }
.arquivos li span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.arquivos li small { color: var(--muted); }
.arquivos button { border: 0; background: transparent; color: var(--muted); width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; }
.arquivos button:hover { background: #fbeceb; color: var(--danger); }

/* ---------- Pré-consulta ---------- */
.pc-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: clamp(32px, 4vw, 56px); align-items: start; }
.pc-lateral { position: sticky; top: calc(var(--header-h) + 24px); display: grid; gap: 16px; }
.pc-card { padding: 24px; border-radius: var(--r); background: var(--surface); border: 1px solid var(--line); }
.pc-card h2 { font-family: var(--font-serif); font-weight: 500; font-size: 1.2rem; margin-bottom: 12px; }
.pc-card ul { list-style: none; display: grid; gap: 10px; font-size: .93rem; line-height: 1.5; color: var(--muted); }
.pc-card li { display: grid; grid-template-columns: 22px 1fr; gap: 10px; }
.pc-card li .icon { color: var(--terra-500); width: 20px; height: 20px; }
.pc-card--escuro { background: var(--teal-900); border-color: var(--teal-900); color: rgba(255,255,255,.75); }
.pc-card--escuro h2 { color: #fff; }
.pc-progresso { display: flex; gap: 6px; list-style: none; margin-bottom: 28px; counter-reset: pcp; }
.pc-progresso li { flex: 1; counter-increment: pcp; }
.pc-progresso button { width: 100%; border: 0; background: transparent; padding: 0; text-align: left; color: var(--soft); font-size: .8rem; font-weight: 700; letter-spacing: .02em; cursor: default; }
.pc-progresso button::before { content: ""; display: block; height: 4px; border-radius: 4px; background: var(--line); margin-bottom: 10px; transition: background .3s; }
.pc-progresso button span::before { content: counter(pcp) ". "; }
.pc-progresso li.is-feito button, .pc-progresso li.is-atual button { color: var(--ink); }
.pc-progresso li.is-feito button { cursor: pointer; }
.pc-progresso li.is-feito button::before { background: var(--teal-700); }
.pc-progresso li.is-atual button::before { background: var(--terra-500); }
@media (max-width: 640px) { .pc-progresso button span { display: none; } .pc-progresso li.is-atual button span { display: inline; } .pc-progresso li.is-atual { flex: 3; } }
.pc-etapa { padding: clamp(24px, 3.5vw, 44px); border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-sm); }
.pc-etapa + .pc-etapa { margin-top: 20px; }
.js .pc-etapa + .pc-etapa { margin-top: 0; }
.pc-etapa__topo { margin-bottom: 28px; }
.pc-etapa__topo small { font-size: .74rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--terra-600); }
.pc-etapa__topo h2 { font-family: var(--font-serif); font-weight: 500; font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); margin: 6px 0 8px; }
.pc-etapa__topo p { margin: 0; color: var(--muted); }
.pc-navegacao { display: flex; justify-content: space-between; gap: 12px; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--line); }
.pc-navegacao .btn--contorno { margin-right: auto; }
.pc-resumo { display: grid; gap: 14px; margin-bottom: 28px; }
.pc-resumo section { border: 1px solid var(--line); border-radius: var(--r-sm); padding: 16px 18px; }
.pc-resumo h3 { font-family: var(--font-sans); font-size: .78rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--terra-600); margin: 0 0 10px; display: flex; justify-content: space-between; align-items: center; }
.pc-resumo h3 button { border: 0; background: none; color: var(--teal-700); font-weight: 700; font-size: .8rem; letter-spacing: 0; text-transform: none; text-decoration: underline; }
.pc-resumo dl { display: grid; grid-template-columns: minmax(120px, 36%) 1fr; gap: 6px 14px; margin: 0; font-size: .92rem; }
.pc-resumo dt { color: var(--muted); }
.pc-resumo dd { margin: 0; color: var(--ink); overflow-wrap: anywhere; }
@media (max-width: 520px) { .pc-resumo dl { grid-template-columns: minmax(0, 1fr); gap: 2px; } .pc-resumo dd { margin-bottom: 10px; } .pc-resumo section { padding: 14px 16px; } }
.pc-seguranca { display: flex; gap: 10px; align-items: center; font-size: .86rem; color: var(--muted); margin-top: 16px; }
.pc-seguranca .icon { color: var(--success); }
.pc-enviar-texto, .pc-enviando { display: inline-flex; align-items: center; gap: .6em; }
.pc-enviando { display: none; }
.is-enviando .pc-enviando { display: inline-flex; }
.is-enviando .pc-enviar-texto { display: none; }
.giro { width: 20px; height: 20px; border: 2.5px solid rgba(255,255,255,.35); border-top-color: #fff; border-radius: 50%; animation: giro .8s linear infinite; }
@keyframes giro { to { transform: rotate(360deg); } }
@media (max-width: 1000px) { .pc-layout { grid-template-columns: minmax(0, 1fr); } .pc-lateral { position: static; order: 2; } }
@media (max-width: 560px) {
  .pc-navegacao { flex-wrap: wrap; }
  .pc-navegacao [data-avancar] { flex: 1 1 auto; }
  .pc-navegacao [data-enviar] { order: -1; flex: 1 1 100%; }
  .pc-navegacao [data-enviar] ~ .btn--contorno, .pc-navegacao .btn--contorno:has(~ [data-enviar]) { flex: 1 1 100%; }
}
.sucesso { text-align: center; max-width: 720px; margin-inline: auto; }
.sucesso__icone { width: 84px; height: 84px; border-radius: 50%; background: #e7f3ec; color: var(--success); display: grid; place-items: center; margin: 0 auto 28px; }
.sucesso__icone .icon { width: 40px; height: 40px; }
.protocolo { display: inline-flex; flex-direction: column; gap: 4px; padding: 16px 28px; border-radius: var(--r); background: var(--surface); border: 1px dashed var(--line-strong); margin: 1.6rem 0; }
.protocolo small { font-size: .72rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.protocolo strong { font-family: var(--font-serif); font-size: 1.8rem; font-weight: 500; letter-spacing: .06em; color: var(--ink); }
.proximos { text-align: left; list-style: none; display: grid; gap: 12px; margin: 2rem 0; counter-reset: prox; }
.proximos li { counter-increment: prox; display: grid; grid-template-columns: 40px 1fr; gap: 14px; align-items: start; padding: 16px 18px; border-radius: var(--r-sm); background: var(--surface); border: 1px solid var(--line); }
.proximos li::before { content: counter(prox); width: 40px; height: 40px; border-radius: 50%; background: var(--teal-900); color: #fff; display: grid; place-items: center; font-weight: 800; }
.proximos strong { display: block; color: var(--ink); font-size: 1.02rem; margin: 8px 0 4px; }
.proximos p { margin: 0; color: var(--muted); font-size: .95rem; line-height: 1.55; }
.sucesso .titulo { margin-bottom: 1.1rem; }
.sucesso__extras { margin-top: clamp(40px, 5vw, 56px); padding-top: 28px; border-top: 1px solid var(--line); }
.sucesso__extras ul { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 14px; }
.sucesso__extras a { display: flex; align-items: center; gap: 10px; height: 100%; padding: 14px 16px; border-radius: var(--r-sm); background: var(--surface); border: 1px solid var(--line); color: var(--ink); font-weight: 600; font-size: .92rem; text-align: left; text-decoration: none; transition: border-color .2s, transform .2s var(--ease); }
.sucesso__extras a:hover { border-color: var(--teal-600); transform: translateY(-2px); }
.sucesso__extras .icon { flex: none; color: var(--terra-500); }
@media (max-width: 640px) { .sucesso__extras ul { grid-template-columns: minmax(0, 1fr); } .sucesso .acoes .btn { flex: 1 1 100%; } }

/* ---------- Convênios (página) ---------- */
.convenios-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 14px; list-style: none; }
.convenio { display: grid; grid-template-rows: 92px auto; gap: 10px; padding: 18px; border-radius: var(--r); background: var(--surface); border: 1px solid var(--line); text-align: center; }
.convenio__logo { display: grid; place-items: center; }
.convenio__logo img { max-height: 60px; width: auto; max-width: 100%; object-fit: contain; }
.convenio span { font-size: .88rem; font-weight: 600; color: var(--ink); }
.convenio-busca { max-width: 460px; margin-bottom: 32px; }
.nota-convenio { display: flex; gap: 14px; align-items: flex-start; padding: 20px 22px; border-radius: var(--r); background: var(--teal-100); color: var(--teal-700); margin-top: 32px; }

/* ---------- Materiais ---------- */
.materiais { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.material { display: flex; flex-direction: column; border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); overflow: hidden; transition: transform .4s var(--ease), box-shadow .4s var(--ease); }
.material:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.material__capa { aspect-ratio: 4 / 3.3; background: var(--bg-alt); display: grid; place-items: center; padding: 26px 26px 0; overflow: hidden; }
.material__capa img { width: auto; max-height: 100%; box-shadow: 0 20px 40px -18px rgba(12,31,37,.45); border-radius: 6px 6px 0 0; }
.material__corpo { padding: 26px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.material__corpo small { font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--terra-600); }
.material__corpo h2 { font-family: var(--font-serif); font-weight: 500; font-size: 1.35rem; line-height: 1.25; }
.material__corpo p { margin: 0; color: var(--muted); font-size: .95rem; line-height: 1.55; }
.material__corpo .btn { margin-top: auto; align-self: flex-start; }
.material__corpo .acoes { margin-top: auto; padding-top: 12px; }
@media (max-width: 1000px) { .materiais { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .materiais { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Curso (página) ---------- */
.topicos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.topico { padding: 28px; border-radius: var(--r); background: var(--surface); border: 1px solid var(--line); }
.topico .icon { width: 28px; height: 28px; color: var(--terra-500); margin-bottom: 18px; }
.topico h3 { font-family: var(--font-serif); font-weight: 500; font-size: 1.25rem; margin-bottom: 8px; }
.topico p { margin: 0; font-size: .95rem; color: var(--muted); }
@media (max-width: 900px) { .topicos { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .topicos { grid-template-columns: minmax(0, 1fr); } }
.numeros { display: flex; gap: 32px; flex-wrap: wrap; margin: 2rem 0; }
.numeros div { display: grid; }
.numeros strong { font-family: var(--font-serif); font-weight: 400; font-size: 2.6rem; line-height: 1; color: #fff; }
.numeros span { font-size: .85rem; color: rgba(255,255,255,.6); margin-top: 6px; }

/* ---------- Contato (página) ---------- */
.contato-pagina { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(32px, 5vw, 72px); align-items: start; }
.cartao-contato { padding: clamp(24px, 3vw, 36px); border-radius: var(--r-lg); background: var(--teal-900); color: rgba(255,255,255,.78); }
.cartao-contato a, .contato-lista a { overflow-wrap: anywhere; }
.cartao-contato h2 { color: #fff; font-family: var(--font-serif); font-weight: 500; font-size: 1.6rem; margin-bottom: 8px; }
.cartao-formulario { padding: clamp(24px, 3.5vw, 44px); border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); }
@media (max-width: 960px) { .contato-pagina { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Página de links (bio do Instagram) ---------- */
.links-pagina { min-height: 100svh; background: radial-gradient(120% 70% at 50% 0%, #0b3b46 0%, var(--teal-950) 60%); color: rgba(255,255,255,.8); padding: 48px 20px 40px; }
.links-cartao { max-width: 480px; margin: 0 auto; text-align: center; }
.links-avatar { width: 112px; height: 112px; margin: 0 auto 18px; border-radius: 50%; overflow: hidden; border: 3px solid rgba(255,255,255,.9); box-shadow: 0 16px 40px -16px rgba(0,0,0,.6); }
.links-cartao .marca__assinatura { color: #fff; width: 190px; margin: 0 auto 6px; }
.links-cartao h1 { font-family: var(--font-sans); font-size: .82rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--terra-300); margin-bottom: 6px; }
.links-cartao .credenciais-linha { font-size: .8rem; color: rgba(255,255,255,.55); margin-bottom: 28px; }
.links-lista { list-style: none; display: grid; gap: 12px; }
.links-lista a { display: grid; grid-template-columns: 44px 1fr 20px; align-items: center; gap: 14px; padding: 12px 16px 12px 12px; border-radius: 18px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); color: #fff; text-decoration: none; text-align: left; transition: background .25s, transform .25s var(--ease), border-color .25s; }
.links-lista a:hover { background: rgba(255,255,255,.12); transform: translateY(-2px); color: #fff; }
.links-lista a.destaque { background: var(--terra-600); border-color: var(--terra-600); }
.links-lista a.destaque:hover { background: var(--terra-700); }
.links-lista__icone { width: 44px; height: 44px; border-radius: 12px; background: rgba(255,255,255,.1); display: grid; place-items: center; }
.links-lista__icone .icon { width: 22px; height: 22px; }
.links-lista strong { display: block; font-weight: 700; font-size: .98rem; }
.links-lista small { display: block; font-size: .8rem; color: rgba(255,255,255,.65); margin-top: 1px; }
.links-lista a > .icon { opacity: .6; width: 18px; height: 18px; }
.links-rodape { margin-top: 32px; font-size: .75rem; color: rgba(255,255,255,.45); line-height: 1.6; }

/* ---------- Páginas legais ---------- */
.legal { padding-top: calc(var(--header-h) + 64px); }
.legal .prosa h2 { font-size: 1.5rem; }
.legal__atualizado { font-size: .9rem; color: var(--muted); margin-bottom: 2rem; }

/* ---------- Erro ---------- */
.erro-pagina { min-height: 80svh; display: grid; place-items: center; padding: calc(var(--header-h) + 48px) 0 64px; text-align: center; }
.erro-pagina__codigo { font-family: var(--font-serif); font-style: italic; font-size: clamp(5rem, 14vw, 9rem); line-height: 1; color: var(--terra-400); }

/* ---------- WhatsApp flutuante, barra móvel e cookies ---------- */
.whatsapp-flutuante {
  position: fixed; right: 24px; bottom: 24px; z-index: 90; width: 60px; height: 60px; border-radius: 50%;
  background: var(--green-wa); color: #fff; display: grid; place-items: center; box-shadow: 0 16px 32px -12px rgba(18, 90, 50, .6);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.whatsapp-flutuante:hover { transform: scale(1.06); color: #fff; }
.whatsapp-flutuante .icon { width: 30px; height: 30px; }
.whatsapp-flutuante__balao { position: absolute; right: 72px; top: 50%; transform: translateY(-50%); white-space: nowrap; padding: 8px 14px; border-radius: 10px; background: var(--surface); color: var(--ink); font-size: .86rem; font-weight: 600; box-shadow: var(--shadow); opacity: 0; pointer-events: none; transition: opacity .3s; }
.whatsapp-flutuante:hover .whatsapp-flutuante__balao { opacity: 1; }
.barra-movel { display: none; }
@media (max-width: 767px) {
  .whatsapp-flutuante { display: none; }
  .barra-movel {
    position: fixed; inset: auto 0 0 0; z-index: 90; display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
    padding: 10px 12px max(10px, env(safe-area-inset-bottom)); background: rgba(250, 248, 244, .94); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 -1px 0 var(--line), 0 -10px 30px -18px rgba(12,31,37,.35);
    transform: translateY(110%); transition: transform .4s var(--ease);
  }
  .barra-movel.is-visivel { transform: none; }
  .barra-movel .btn { min-height: 48px; font-size: .92rem; padding-inline: 1em; }
  .barra-movel .btn--whats { --btn-bg: var(--green-wa); }
  .barra-movel .btn--whats:hover { --btn-bg: #188447; }
  body.tem-barra-movel .site-footer { padding-bottom: 76px; }
}
.cookies {
  position: fixed; left: 24px; bottom: 24px; z-index: 110; max-width: 420px; padding: 22px 22px 20px; border-radius: var(--r);
  background: var(--surface); box-shadow: 0 30px 60px -20px rgba(12,31,37,.45), 0 0 0 1px var(--line); font-size: .9rem; line-height: 1.55; color: var(--text);
}
.cookies strong { display: block; font-family: var(--font-serif); font-weight: 500; font-size: 1.1rem; color: var(--ink); margin-bottom: 6px; }
.cookies p { margin: 0 0 16px; }
.cookies .acoes .btn { min-height: 42px; padding: .5em 1.1em; font-size: .88rem; }
@media (max-width: 767px) {
  .cookies { left: 10px; right: 10px; bottom: 10px; max-width: none; padding: 16px; font-size: .84rem; }
  .cookies strong { font-size: 1rem; }
  .cookies p { margin-bottom: 12px; }
  .cookies .acoes { flex-wrap: nowrap; }
  .cookies .acoes .btn { flex: 1; }
  .eyebrow { letter-spacing: .12em; font-size: .72rem; }
}

/* ---------- Animações de entrada ---------- */
.js .revelar { opacity: 0; transform: translateY(24px); transition: opacity .9s var(--ease-out), transform .9s var(--ease-out); transition-delay: var(--atraso, 0s); }
.js .revelar.is-visivel { opacity: 1; transform: none; }
.js .hero .revelar { transition-duration: 1.1s; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .js .revelar { opacity: 1; transform: none; }
  .marquee__trilho { animation: none; flex-wrap: wrap; width: auto; justify-content: center; }
  .marquee__trilho [aria-hidden="true"] { display: none; }
}

/* ---------- Impressão ---------- */
@media print {
  .site-header, .site-footer, .whatsapp-flutuante, .barra-movel, .cookies, .artigo-lateral, .cta-faixa, .menu-movel { display: none !important; }
  body { background: #fff; font-size: 12pt; }
  .artigo-topo, .pagina-topo { padding-top: 0; background: none; }
  .prosa { max-width: none; }
  a { color: inherit; }
}

/* Imagens que preenchem o contêiner */
.retrato__foto picture, .jornada__foto picture, .insta-convite__foto picture, .pagina-topo__foto picture,
.historia__foto picture, .galeria picture, .artigo-card__imagem picture, .capa-curso picture,
.insta-perfil__avatar picture, .artigo-autor__foto picture, .autor-box__foto picture, .links-avatar picture,
.area-figura picture, .destaque-lateral__imagem picture { display: block; width: 100%; height: 100%; }
.artigo-autor__foto img, .autor-box__foto img, .links-avatar img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Pré-visualização de artigo (painel) ---------- */
.previa-aviso { position: sticky; top: 0; z-index: 60; background: #fff4d6; color: #5c4300; border-bottom: 1px solid #f1d98a; font-size: .92rem; }
.previa-aviso .container { display: flex; align-items: center; gap: 10px; min-height: 48px; flex-wrap: wrap; padding-block: 8px; }
.previa-aviso .icon { width: 20px; height: 20px; flex: none; }
.previa-aviso a { margin-left: auto; font-weight: 700; color: inherit; }
