/* Mentoria Fetal · versão editorial · base de todas as páginas públicas
   (/curso e /cursotest só com este arquivo; home, formulários e textos legais com paginas.css por cima).
   Identidade "Batimento": petróleo, eco (verde-água), âmbar só para escassez, areia de fundo.
   Fontes: Bricolage Grotesque (títulos) e Figtree (texto).
   Mobile-first. Breakpoints do projeto: 420px, 560px e 920px (mais 1200px para o desktop largo). */
:root {
  --mf-petroleo-900: #0B2E33;
  --mf-petroleo-800: #0F3940;
  --mf-petroleo-700: #134550;
  --mf-borda-escura: #1D4D57;
  --mf-eco: #6FD6BE;
  --mf-eco-claro: #8BE0CC;
  --mf-ambar: #F0A35E;
  --mf-areia-50: #F5F1EA;
  --mf-areia-100: #EFE9DF;
  --mf-areia-200: #E7DFD2;
  --mf-linha: #DCD3C4;
  --mf-grafite: #4A5B5F;
  --mf-apagado: #8E9B98;
  --mf-texto: #14262A;
  --mf-texto-claro: #CFE3E0;
  --mf-apoio-claro: #9DB8B9;

  /* nomes usados pelos estilos compartilhados */
  --dark: var(--mf-petroleo-900);
  --ink: var(--mf-texto);
  --muted: var(--mf-grafite);
  --mint: var(--mf-eco);
  --texto-claro: var(--mf-texto-claro);
  --line: var(--mf-linha);

  --font-titulo: "Bricolage Grotesque", system-ui, sans-serif;
  --font-texto: "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --raio: 24px;
  --raio-g: 32px;
  --max: 1280px;
}

/* ---------- base ---------- */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0; background: var(--mf-areia-50); color: var(--mf-texto);
  font-family: var(--font-texto); font-size: 17px; line-height: 1.6; -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
.wrap { max-width: var(--max); margin: 0 auto; padding: 0 16px; }
h1, h2, h3 { font-family: var(--font-titulo); color: var(--mf-petroleo-900); line-height: 1.04; margin: 0 0 14px; letter-spacing: -0.025em; }
h1 { font-size: clamp(40px, 7vw, 96px); font-weight: 800; line-height: .96; letter-spacing: -0.035em; }
h2 { font-size: clamp(30px, 4vw, 52px); font-weight: 800; }
h2.titulo-xl { font-size: clamp(32px, 5vw, 68px); line-height: 1; letter-spacing: -0.032em; }
h3 { font-size: 22px; font-weight: 700; line-height: 1.2; }
h1 em, h2 em { font-style: italic; font-weight: 700; color: var(--mf-eco); }
p { margin: 0 0 12px; }
.lead { font-size: 18px; color: var(--mf-grafite); max-width: 640px; }
.apagado { color: var(--mf-apagado); }
.center { text-align: center; }
.center .lead { margin-left: auto; margin-right: auto; }
.ico { width: 22px; height: 22px; flex: none; }
.eyebrow { display: inline-block; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--mf-petroleo-700); margin-bottom: 12px; }
.nota { color: var(--mf-grafite); font-size: 15px; margin: 18px 0 0; }

.sec { padding: 72px 0; }
.sec-areia { background: var(--mf-areia-200); }
.sec-escura { background: var(--mf-petroleo-900); color: var(--mf-texto-claro); }
.sec-escura h2, .sec-escura h3 { color: var(--mf-areia-50); }
.sec-escura .eyebrow { color: var(--mf-eco); }
.sec-escura .lead, .sec-escura .nota { color: var(--mf-texto-claro); }
.sec-escura .apagado { color: #6F8E90; }

/* cabeçalho de seção: título de um lado, apoio do outro */
.cabeca { display: flex; flex-direction: column; gap: 16px; margin-bottom: 36px; }
.cabeca h2 { margin: 0; }
.cabeca .lead { margin: 0; font-size: 16px; }
.eyebrow-linha { border-left: 3px solid var(--mf-eco); padding-left: 14px; margin: 0; }

/* Texto provisório (mostrarRascunho) */
body.draft .ph { background: rgba(240,163,94,.25); outline: 1px dashed var(--mf-ambar); outline-offset: 2px; border-radius: 3px; }
body:not(.draft) .draft-only { display: none; }

/* ---------- botões ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 56px; padding: 0 28px; border-radius: 999px; border: 0; cursor: pointer;
  background: var(--mf-petroleo-900); color: var(--mf-areia-50);
  font-family: var(--font-texto); font-weight: 700; font-size: 17px; text-decoration: none; text-align: center;
  transition: transform .15s, background .15s, box-shadow .15s;
}
.btn svg { width: 20px; height: 20px; order: 2; flex: none; }
.btn:hover { transform: translateY(-2px); background: var(--mf-petroleo-700); }
.btn:focus-visible, a:focus-visible, summary:focus-visible { outline: 3px solid var(--mf-ambar); outline-offset: 3px; }
.hero .btn, .sec-escura .btn, .sticky .btn { background: var(--mf-eco); color: var(--mf-petroleo-900); }
.hero .btn:hover, .sec-escura .btn:hover, .sticky .btn:hover { background: var(--mf-eco-claro); box-shadow: 0 12px 28px -12px rgba(111,214,190,.6); }
.btn-contorno { background: transparent !important; color: var(--mf-petroleo-900) !important; border: 1.5px solid var(--mf-petroleo-900); }
.dl-link { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; margin-top: 18px; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }

.selo { display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px; border-radius: 999px; border: 1px solid #3C6A73; font-size: 14px; font-weight: 600; color: var(--mf-texto-claro); }
.selo-ambar { background: var(--mf-ambar); border-color: var(--mf-ambar); color: var(--mf-petroleo-900); font-weight: 700; }
.selo .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--mf-petroleo-900); }

/* ---------- topo ---------- */
.hero { background: var(--mf-petroleo-900); color: var(--mf-areia-50); position: relative; overflow: hidden; }
.nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 0; position: relative; z-index: 3; }
.brand img { width: 150px; height: auto; }
.nav-links { display: none; }
.nav-cta { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: 999px; background: var(--mf-areia-50); color: var(--mf-petroleo-900); font-weight: 700; font-size: 14px; text-decoration: none; white-space: nowrap; }
.nav-cta .ico { width: 18px; height: 18px; }
.nav-cta-longo { display: none; }

.hero-grid { display: flex; flex-direction: column; gap: 36px; padding-top: 20px; position: relative; z-index: 1; }
.hero-texto { display: flex; flex-direction: column; gap: 22px; }
.hero-selos { display: flex; flex-wrap: wrap; gap: 8px; }
.hero h1 { color: var(--mf-areia-50); margin: 0; }
.hero-acao { display: flex; flex-direction: column; gap: 22px; align-items: flex-start; }
.hero .lead { color: var(--mf-texto-claro); margin: 0; font-size: 18px; }
.hero .btn { width: 100%; }
.btn-sub { font-size: 14px; color: var(--mf-apoio-claro); }
.btn-sub a { text-decoration: underline; }

.hero-foto { position: relative; width: 100%; max-width: 360px; margin: 0 auto; }
.hero-brilho { position: absolute; left: 50%; top: 8%; transform: translateX(-50%); width: 100%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(111,214,190,.32) 0%, rgba(111,214,190,0) 62%); pointer-events: none; }
.arco { position: relative; border-radius: 200px 200px 0 0; overflow: hidden; aspect-ratio: 390 / 560; background: var(--mf-petroleo-700); border: 1px solid #3C6A73; border-bottom: 0; }
.arco img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.chip { position: absolute; border-radius: 18px; padding: 12px 16px; box-shadow: 0 20px 44px rgba(3,20,23,.45); line-height: 1.2; }
.chip b { display: block; font-family: var(--font-titulo); font-size: 20px; }
.chip small { display: block; font-size: 12.5px; }
.chip-claro { left: -6px; top: 36%; background: var(--mf-areia-50); color: var(--mf-petroleo-900); display: flex; align-items: center; gap: 10px; }
.chip-claro small { color: var(--mf-grafite); }
/* os dois números do selo empilhados (não alargam o selo sobre a foto) */
.chip-numeros { display: flex; flex-direction: column; gap: 4px; }
.chip-numeros > span + span { border-top: 1px solid rgba(15,59,67,.14); padding-top: 4px; }
/* celular: selo compacto (sem ícone) e abaixo do rosto */
@media (max-width: 559px) {
  .chip-claro { top: 42%; padding: 7px 10px; border-radius: 12px; }
  .chip-claro img { display: none; }
  .chip-claro b { font-size: 13px; }
  .chip-claro small { font-size: 10px; }
  .chip-numeros { gap: 3px; }
  .chip-numeros > span + span { padding-top: 3px; }
}
.chip-escuro { right: -6px; bottom: 48px; max-width: 220px; background: var(--mf-petroleo-700); border: 1px solid #3C6A73; }
.chip-escuro b { color: var(--mf-eco); font-size: 17px; }
.chip-escuro small { color: var(--mf-texto-claro); }
.pulso { display: block; width: 100%; height: 56px; position: relative; z-index: 1; }

/* ---------- faixa de números ---------- */
.numeros { background: var(--mf-petroleo-900); color: var(--mf-areia-50); border-top: 1px solid var(--mf-borda-escura); }
.numeros-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 0; }
.num { display: flex; flex-direction: column; gap: 6px; padding: 24px 16px; border-bottom: 1px solid var(--mf-borda-escura); }
.num:nth-child(odd) { border-right: 1px solid var(--mf-borda-escura); }
.num b { font-family: var(--font-titulo); font-weight: 800; font-size: 56px; line-height: .85; color: var(--mf-eco); }
.num-ambar b { color: var(--mf-ambar); }
.num span { font-size: 14px; line-height: 1.35; color: var(--mf-texto-claro); }
.num strong { display: block; color: var(--mf-areia-50); }

/* ---------- vídeos ---------- */
.vcard { margin: 0; display: flex; flex-direction: column; gap: 12px; }
.vid { display: block; width: 100%; aspect-ratio: 9 / 16; border-radius: var(--raio); background: var(--mf-petroleo-900); object-fit: cover; box-shadow: 0 28px 50px -30px rgba(11,46,51,.6); }
.vcard figcaption { font-size: 15px; font-weight: 600; color: var(--mf-petroleo-900); }
.sec-escura .vcard figcaption { color: var(--mf-areia-50); }
.videos { display: grid; gap: 20px; grid-template-columns: minmax(0, 1fr); }
.videos.dois { max-width: 760px; }

/* destaque (vídeo da prática) */
.destaque { display: flex; flex-direction: column; gap: 36px; }
.destaque-texto .lead { margin-bottom: 20px; }
.passos { list-style: none; counter-reset: passo; margin: 0 0 28px; padding: 0; display: flex; flex-direction: column; }
.passos li { counter-increment: passo; display: flex; gap: 16px; padding: 16px 0; border-top: 1px solid var(--mf-linha); }
.passos li::before { content: counter(passo, decimal-leading-zero); font-family: var(--font-titulo); font-weight: 800; color: var(--mf-petroleo-700); min-width: 32px; }
.vcard-destaque { width: 100%; max-width: 360px; margin: 0 auto; }

/* ---------- para quem ---------- */
.split { display: flex; flex-direction: column; border-radius: var(--raio-g); overflow: hidden; }
.split-sim, .split-nao { padding: 32px 22px; }
.split-sim { background: var(--mf-eco); color: var(--mf-petroleo-900); }
.split-nao { background: var(--mf-petroleo-900); color: var(--mf-texto-claro); }
.split h3 { font-size: 28px; font-weight: 800; letter-spacing: -0.02em; margin-bottom: 12px; }
.split-nao h3 { color: var(--mf-areia-50); }
.lista-num, .lista-x { list-style: none; margin: 0; padding: 0; }
.lista-num { counter-reset: item; }
.lista-num li, .lista-x li { display: flex; gap: 14px; align-items: baseline; padding: 14px 0; font-size: 17px; }
.lista-num li { counter-increment: item; border-top: 1px solid rgba(11,46,51,.2); font-weight: 500; }
.lista-num li::before { content: counter(item, decimal-leading-zero); font-family: var(--font-titulo); font-weight: 800; font-size: 14px; }
.lista-x li { border-top: 1px solid var(--mf-borda-escura); align-items: flex-start; }
.lista-x li::before { content: ""; flex: none; width: 14px; height: 14px; margin-top: 6px; background:
  linear-gradient(45deg, transparent 43%, var(--mf-ambar) 43%, var(--mf-ambar) 57%, transparent 57%),
  linear-gradient(-45deg, transparent 43%, var(--mf-ambar) 43%, var(--mf-ambar) 57%, transparent 57%); }

/* ---------- jornada ---------- */
.trilha { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
.trilha li { position: relative; padding: 0 0 26px 30px; border-left: 2px solid var(--mf-eco); }
.trilha li:last-child { padding-bottom: 0; }
.trilha .no { position: absolute; left: -10px; top: 2px; width: 18px; height: 18px; border-radius: 50%; background: var(--mf-eco); box-shadow: 0 0 0 6px var(--mf-petroleo-900); }
.trilha small { display: block; font-size: 12.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--mf-eco); }
.trilha b { display: block; font-family: var(--font-titulo); font-size: 24px; line-height: 1.15; color: var(--mf-areia-50); margin: 4px 0 6px; }
.trilha p { font-size: 15px; margin: 0; }
.trilha-pratica { border-left-color: var(--mf-ambar) !important; }
.trilha-pratica .no { background: var(--mf-ambar); }
.trilha-pratica small { color: var(--mf-ambar); }

.modulos { display: grid; gap: 14px; grid-template-columns: minmax(0, 1fr); margin-top: 40px; }
.mod { background: var(--mf-petroleo-700); border-radius: 26px; padding: 26px 22px; }
.mod-topo { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 12px; }
.mod .tag { font-family: var(--font-titulo); font-weight: 800; font-size: 40px; line-height: 1; color: var(--mf-eco); }
.pill { font-size: 12.5px; font-weight: 600; padding: 6px 12px; border-radius: 999px; border: 1px solid #3C6A73; color: var(--mf-texto-claro); white-space: nowrap; }
.mod ol { margin: 0; padding-left: 20px; font-size: 15.5px; display: flex; flex-direction: column; gap: 6px; }

.handsbox { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; margin-top: 14px; }
.handsbox > img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 26px; }
.handsbox-texto { background: var(--mf-areia-50); color: var(--mf-grafite); border-radius: 26px; padding: 26px 22px; display: flex; flex-direction: column; gap: 12px; }
.handsbox-texto .selo { align-self: flex-start; }
.handsbox-texto h3 { color: var(--mf-petroleo-900); margin: 0; }
.handsbox-texto p { margin: 0; font-size: 15.5px; }
.day b { display: block; color: var(--mf-petroleo-900); font-size: 15px; margin-bottom: 4px; }
.day ul, .encontro ul { margin: 0; padding-left: 20px; font-size: 15.5px; display: flex; flex-direction: column; gap: 4px; }
.encontro { border: 1.5px dashed #3C6A73; border-radius: 26px; padding: 26px 22px; display: flex; flex-direction: column; gap: 10px; }
.encontro .ico { color: var(--mf-eco); width: 30px; height: 30px; }
.encontro b { font-family: var(--font-titulo); font-size: 22px; color: var(--mf-areia-50); }

/* ---------- faixa rolante (decorativa) ---------- */
.faixa { background: var(--mf-eco); color: var(--mf-petroleo-900); overflow: hidden; padding: 16px 0; }
.faixa-trilho { display: flex; gap: 36px; width: max-content; font-family: var(--font-titulo); font-weight: 800; font-size: 22px; white-space: nowrap; animation: mf-faixa 40s linear infinite; }
.faixa-trilho i { font-style: normal; }
@keyframes mf-faixa { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ---------- resultados ---------- */
.resultados { display: flex; flex-direction: column; gap: 20px; }
.oc-lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); column-gap: 40px; }
.oc { display: flex; gap: 18px; padding: 22px 0; border-top: 1px solid var(--mf-linha); }
.oc .n { font-family: var(--font-titulo); font-weight: 800; font-size: 36px; line-height: 1; color: var(--mf-eco); -webkit-text-stroke: 1px var(--mf-petroleo-700); min-width: 50px; }
.oc p { margin: 0; font-size: 16.5px; color: var(--mf-texto); }

/* ---------- diferenciais (bento) ---------- */
.bento { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.bento > * { border-radius: 26px; margin: 0; }
.b-foto { position: relative; overflow: hidden; min-height: 240px; background: var(--mf-petroleo-900); }
.b-foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.b-alta { min-height: 420px; }
.b-alta::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,46,51,0) 35%, rgba(11,46,51,.92) 100%); }
.b-alta figcaption { position: absolute; left: 22px; right: 22px; bottom: 22px; z-index: 1; color: #E3EEEC; font-size: 15px; }
.b-alta figcaption b { display: block; font-family: var(--font-titulo); font-size: 24px; color: var(--mf-areia-50); margin-bottom: 4px; }
.df { padding: 26px 22px; display: flex; flex-direction: column; justify-content: space-between; gap: 18px; min-height: 220px; }
.df h3 { margin: 0 0 6px; }
.df p { margin: 0; font-size: 15.5px; }
.df .ico { width: 34px; height: 34px; }
.b-escuro { background: var(--mf-petroleo-900); color: var(--mf-texto-claro); }
.b-escuro h3 { color: var(--mf-areia-50); }
.b-escuro .ico { color: var(--mf-eco); }
.b-ambar { background: var(--mf-ambar); color: var(--mf-petroleo-900); }
.b-numero { font-family: var(--font-titulo); font-weight: 800; font-size: 96px; line-height: .8; letter-spacing: -0.04em; }
.b-claro { background: var(--mf-areia-50); color: var(--mf-grafite); }
.b-claro .ico { color: var(--mf-petroleo-900); }

.local { margin-top: 14px; background: var(--mf-areia-50); border-radius: 26px; padding: 26px 22px; display: flex; flex-direction: column; gap: 18px; }
.local h3 { font-size: 26px; margin-bottom: 6px; }
.local p { margin: 0; color: var(--mf-grafite); font-size: 15.5px; }
.local-info { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.local-info li { display: flex; gap: 12px; align-items: flex-start; font-size: 15.5px; font-weight: 600; color: var(--mf-petroleo-900); }

/* ---------- professor ---------- */
.prof-sec { padding: 72px 0; }
.prof { display: flex; flex-direction: column; gap: 40px; }
.prof-video { width: 100%; max-width: 340px; margin: 0 auto; }
.prof-video .vid { border-radius: 170px 170px var(--raio) var(--raio); aspect-ratio: 9 / 16; }
.prof-texto .lead { font-size: 17px; }
.prof-numeros { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); column-gap: 20px; border-top: 1px solid var(--mf-borda-escura); border-bottom: 1px solid var(--mf-borda-escura); margin: 22px 0; }
.prof-numeros div { padding: 18px 0; display: flex; flex-direction: column; }
.prof-numeros b { font-family: var(--font-titulo); font-weight: 800; font-size: 40px; line-height: 1; color: var(--mf-eco); white-space: nowrap; }
.prof-numeros span { font-size: 13.5px; color: var(--mf-apoio-claro); }
/* números em grade: lado a lado quando cabem, senão descem para a linha de baixo; no celular, sempre 2 colunas */
@media (max-width: 559px) {
  .prof-numeros { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; }
  .prof-numeros div { padding: 14px 0; }
  .prof-numeros b { font-size: clamp(28px, 8.6vw, 34px); }
}
.creds { list-style: none; margin: 0; padding: 0; }
.creds li { position: relative; padding: 12px 0 12px 28px; font-size: 14.5px; color: var(--mf-apoio-claro); }
.creds li::before { content: ""; position: absolute; left: 0; top: 19px; width: 12px; height: 12px; border-radius: 50%; background: var(--mf-eco); }
.creds li.cred-ambar::before { background: var(--mf-ambar); }
.creds b { display: block; font-size: 16.5px; color: var(--mf-areia-50); }
.registro { font-size: 13.5px; color: var(--mf-apoio-claro); margin-top: 14px; }

/* ---------- depoimentos (formato reels) ---------- */
.reel { background: var(--mf-petroleo-900); border-radius: 28px; padding: 18px; gap: 14px; }
/* citações de tamanhos diferentes: a citação cresce e os vídeos ficam na mesma altura */
.reel .cita { flex: 1 1 auto; }
.reel .cita { margin: 0; font-size: 16.5px; line-height: 1.45; font-weight: 500; color: var(--mf-areia-50); }
.reel .cita::before { content: "“"; display: block; font-family: var(--font-titulo); font-weight: 800; font-size: 56px; line-height: .55; padding-top: 10px; color: var(--mf-eco); }
.reel .vid { border-radius: 18px; box-shadow: none; }
.reel figcaption { color: var(--mf-apoio-claro) !important; font-size: 13.5px; font-weight: 500; border-top: 1px solid var(--mf-borda-escura); padding-top: 12px; }
.reel-eco { background: var(--mf-eco); }
.reel-eco .cita, .reel-eco figcaption { color: var(--mf-petroleo-900) !important; }
.reel-eco .cita::before { color: var(--mf-petroleo-900); }
.reel-eco figcaption { border-top-color: rgba(11,46,51,.25); }
.reel-areia { background: var(--mf-areia-200); }
.reel-areia .cita { color: var(--mf-petroleo-900); }
.reel-areia .cita::before { color: var(--mf-petroleo-700); }
.reel-areia figcaption { color: var(--mf-grafite) !important; border-top-color: var(--mf-linha); }

/* ---------- oferta (ingresso) ---------- */
.offer h2 { margin-bottom: 8px; }
.offer-card { margin: 36px auto 0; max-width: 1040px; display: flex; flex-direction: column; background: var(--mf-areia-50); color: var(--mf-texto); border-radius: var(--raio-g); text-align: left; box-shadow: 0 40px 90px rgba(0,0,0,.35); }
.offer-preco, .offer-inclui { padding: 28px 22px; }
.offer-preco { border-bottom: 2px dashed var(--mf-linha); display: flex; flex-direction: column; }
.offer-card .top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; }
.offer-card .top b { font-family: var(--font-titulo); font-size: 21px; color: var(--mf-petroleo-900); }
.seats { display: inline-block; padding: 6px 14px; border-radius: 999px; background: var(--mf-ambar); color: var(--mf-petroleo-900); font-weight: 700; font-size: 14px; }
.seatbar { height: 8px; border-radius: 999px; background: var(--mf-areia-200); margin: 16px 0 22px; overflow: hidden; }
.seatbar i { display: block; height: 100%; width: 0; background: var(--mf-ambar); transition: width 1.2s cubic-bezier(.2,.7,.2,1); }
.price small { display: block; font-size: 14px; color: var(--mf-grafite); }
.price b { display: block; font-family: var(--font-titulo); font-weight: 800; font-size: clamp(46px, 6vw, 72px); line-height: 1; letter-spacing: -0.03em; color: var(--mf-petroleo-900); margin: 4px 0; }
.inst { font-size: 15px; color: var(--mf-grafite); }
.anchor { font-size: 15px; color: var(--mf-grafite); margin: 16px 0 22px; }
.offer-preco .btn { width: 100%; background: var(--mf-petroleo-900); color: var(--mf-areia-50); }
.offer-preco .btn:hover { background: var(--mf-petroleo-700); box-shadow: none; }
.garantia-linha { font-size: 13.5px; color: var(--mf-grafite); margin: 14px 0 0; }
.garantia { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--mf-petroleo-900); }
.garantia .ico { width: 18px; height: 18px; }
.offer-inclui .eyebrow { color: var(--mf-petroleo-700); }
.includes { list-style: none; margin: 0; padding: 0; }
.includes li { display: flex; gap: 14px; align-items: flex-start; padding: 11px 0; border-bottom: 1px solid var(--mf-areia-200); font-size: 15.5px; }
.includes li:last-child { border-bottom: 0; }
.includes li::before { content: ""; flex: none; width: 26px; height: 26px; border-radius: 50%; background: var(--mf-eco) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B2E33' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5 10 17 19 7'/%3E%3C/svg%3E") center / 14px no-repeat; }
.offer .dl-link { color: var(--mf-texto-claro); }

/* ---------- FAQ ---------- */
.faq { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; align-items: start; }
.faq details { background: #FFFFFF; border-radius: 20px; padding: 18px 20px; }
.faq summary { display: flex; justify-content: space-between; align-items: center; gap: 14px; min-height: 40px; cursor: pointer; list-style: none; font-weight: 700; font-size: 17px; color: var(--mf-petroleo-900); }
.faq summary::-webkit-details-marker { display: none; }
.mais { flex: none; position: relative; width: 36px; height: 36px; border-radius: 50%; background: var(--mf-areia-200); transition: transform .2s, background .2s; }
.mais::before, .mais::after { content: ""; position: absolute; left: 50%; top: 50%; width: 14px; height: 2.25px; border-radius: 2px; background: var(--mf-petroleo-900); transform: translate(-50%, -50%); }
.mais::after { transform: translate(-50%, -50%) rotate(90deg); }
.faq details[open] .mais { transform: rotate(45deg); background: var(--mf-eco); }
.faq details p { margin: 12px 0 0; color: var(--mf-grafite); font-size: 15.5px; }
.faq details a { text-decoration: underline; }

/* ---------- CTA final ---------- */
.final { position: relative; overflow: hidden; background: var(--mf-eco); color: var(--mf-petroleo-900); padding: 80px 0; }
.pulso-fundo { position: absolute; left: 0; top: 50%; width: 100%; height: 120px; transform: translateY(-50%); }
.final .wrap { position: relative; }
.final h2 { font-size: clamp(46px, 10vw, 150px); line-height: .88; letter-spacing: -0.05em; margin-bottom: 20px; }
.final .lead { color: var(--mf-petroleo-900); font-size: 18px; margin-bottom: 28px; }
.final-acoes { display: flex; flex-direction: column; gap: 12px; align-items: stretch; max-width: 420px; margin: 0 auto; }

/* ---------- rodapé ---------- */
.rodape { background: var(--mf-petroleo-900); color: var(--mf-apoio-claro); font-size: 14px; padding: 56px 0 96px; }
.rodape-topo { display: flex; flex-direction: column; gap: 22px; }
.rodape-topo img { width: 170px; }
.rodape-topo nav { display: flex; flex-wrap: wrap; gap: 4px 20px; }
.rodape-topo nav a { color: var(--mf-texto-claro); text-decoration: none; min-height: 40px; display: inline-flex; align-items: center; }
.rodape-marca { font-family: var(--font-titulo); font-weight: 800; font-size: 15vw; line-height: .8; letter-spacing: -0.05em; color: var(--mf-petroleo-700); margin: 36px 0 24px; white-space: nowrap; overflow: hidden; }
.rodape-base { display: flex; flex-direction: column; gap: 8px; border-top: 1px solid var(--mf-borda-escura); padding-top: 20px; }

/* ---------- barra fixa (celular) ---------- */
.sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; background: rgba(11,46,51,.97); backdrop-filter: blur(8px); padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); display: flex; align-items: center; gap: 12px; border-top: 1px solid var(--mf-petroleo-700); transform: translateY(110%); transition: transform .25s; }
.sticky.show { transform: none; }
.sticky .txt { color: var(--mf-texto-claro); font-size: 13px; line-height: 1.3; flex: 1; min-width: 0; }
.sticky .txt b { color: var(--mf-ambar); display: block; font-size: 14px; }
.sticky .btn { min-height: 48px; padding: 0 20px; font-size: 15px; }

/* ---------- efeitos ao rolar (o JS marca .revelar só abaixo da dobra; sem JS tudo aparece) ---------- */
.revelar { opacity: 0; transform: translateY(28px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.revelar.visivel { opacity: 1; transform: none; }
.revelar-foto { opacity: 0; transform: scale(1.04); transition: opacity .9s ease, transform 1.2s cubic-bezier(.2,.7,.2,1); }
.revelar-foto.visivel { opacity: 1; transform: none; }
/* imagens e capas de vídeo carregadas sob demanda aparecem com fade quando chegam */
img[loading="lazy"] { transition: opacity .5s ease; }
img[loading="lazy"].carregando { opacity: 0; }
.vid[data-poster] { background: linear-gradient(160deg, var(--mf-petroleo-700), var(--mf-petroleo-900)); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .faixa-trilho { animation: none; }
  .revelar, .revelar-foto, img[loading="lazy"] { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ---------- só /cursotest: local com galeria, conteúdo sem foto (vídeos em carrossel no celular: /curso e /cursotest) ---------- */
.modulos-topo { margin-top: 0; }
.loc { display: flex; flex-direction: column; gap: 28px; }
.galeria { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.galeria img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 22px; }
@media (max-width: 760px) {
  .videos.carrossel { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px; margin: 0 -16px; padding: 4px 16px 14px; -webkit-overflow-scrolling: touch; }
  .videos.carrossel > .vcard { flex: 0 0 78%; max-width: 300px; scroll-snap-align: center; }
}

/* com mais de uma coluna, citação, vídeo e legenda de cada card dividem as mesmas linhas da grade
   (subgrid): vídeos começam e terminam na mesma altura, mesmo com citações e legendas de tamanhos diferentes */
@media (min-width: 560px) {
  @supports (grid-template-rows: subgrid) {
    .videos.quatro > .reel { display: grid; grid-row: span 3; grid-template-rows: subgrid; row-gap: 14px; }
  }
}

/* =================== 420px+ =================== */
@media (min-width: 420px) {
  .nav-cta-longo { display: inline; }
  .brand img { width: 170px; }
}

/* =================== 560px+ =================== */
@media (min-width: 560px) {
  .wrap { padding: 0 24px; }
  .sec, .prof-sec { padding: 96px 0; }
  .hero .btn { width: auto; }
  .videos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .modulos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .b-alta { grid-row: span 2; }
  .bento > :last-child { grid-column: span 2; }
  .oc-lista { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .split-sim, .split-nao, .offer-preco, .offer-inclui { padding: 40px 36px; }
  .final-acoes { flex-direction: row; justify-content: center; max-width: none; }
  .rodape-base { flex-direction: row; flex-wrap: wrap; justify-content: space-between; }
}

/* =================== 920px+ =================== */
@media (min-width: 920px) {
  body { font-size: 18px; }
  .sec, .prof-sec { padding: 120px 0; }
  .nav { padding: 22px 0; }
  .nav-links { display: flex; gap: 4px; padding: 6px; border-radius: 999px; background: rgba(255,255,255,.06); border: 1px solid var(--mf-borda-escura); font-size: 14px; font-weight: 600; }
  .nav-links a { color: var(--mf-texto-claro); text-decoration: none; padding: 8px 14px; border-radius: 999px; }
  .nav-links a:hover { background: rgba(255,255,255,.08); color: var(--mf-areia-50); }
  .brand img { width: 186px; }

  .hero-grid { flex-direction: row; align-items: flex-end; gap: 48px; padding-top: 40px; }
  .hero-texto { flex: 1 1 0; min-width: 0; padding-bottom: 88px; gap: 28px; }
  .hero-acao { flex-direction: row; align-items: center; gap: 28px; }
  .hero-acao .lead { flex: 1 1 300px; max-width: 460px; }
  .hero-foto { flex: 0 0 auto; width: 400px; max-width: none; margin: 0; }
  .chip-claro { left: -44px; }
  .chip-escuro { right: -20px; bottom: 64px; }
  .pulso { height: 64px; }

  .numeros-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .num { flex-direction: row; align-items: center; gap: 18px; padding: 34px 26px; border-bottom: 0; border-right: 1px solid var(--mf-borda-escura); }
  .num:last-child { border-right: 0; }
  .num b { font-size: 76px; }
  .num span { font-size: 15.5px; }

  .cabeca { flex-direction: row; justify-content: space-between; align-items: flex-end; gap: 48px; margin-bottom: 52px; }
  .cabeca > :first-child { flex: 1 1 620px; min-width: 0; }
  .cabeca > .lead, .cabeca > .eyebrow-linha { flex: 0 1 380px; }

  .destaque { flex-direction: row; align-items: center; gap: 72px; }
  .destaque-texto { flex: 1 1 0; min-width: 0; }
  .vcard-destaque { flex: 0 0 360px; margin: 0; }

  .split { flex-direction: row; }
  .split-sim { flex: 1.3 1 0; padding: 52px; }
  .split-nao { flex: 1 1 0; padding: 52px; }
  .split h3 { font-size: 34px; }

  .trilha { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .trilha li { padding: 26px 24px 0 0; border-left: 0; border-top: 2px solid var(--mf-eco); }
  .trilha-pratica { border-top-color: var(--mf-ambar) !important; }
  .trilha .no { left: 0; top: -10px; }
  .modulos { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 56px; }
  .mod { padding: 32px; }
  .handsbox { grid-template-columns: minmax(0, .9fr) minmax(0, 1.25fr) minmax(0, 1fr); gap: 16px; margin-top: 16px; }
  .handsbox > img { aspect-ratio: auto; height: 100%; min-height: 320px; }
  .handsbox-texto, .encontro { padding: 32px; }

  .faixa { padding: 22px 0; }
  .faixa-trilho { font-size: 30px; gap: 48px; }

  .resultados { flex-direction: row; gap: 56px; }
  .resultados > div { flex: 0 1 360px; }
  .oc-lista { flex: 1 1 0; min-width: 0; }
  .oc { padding: 26px 0; }
  .oc .n { font-size: 40px; min-width: 56px; }

  .bento { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: minmax(250px, auto); gap: 16px; }
  .bento .b-alta { grid-row: span 3; }
  .df { padding: 30px; }
  .local { flex-direction: row; justify-content: space-between; align-items: center; gap: 40px; padding: 32px; margin-top: 16px; }
  .local > div { flex: 1 1 0; }
  .local-info { flex: 0 1 460px; }

  .prof-sec { padding: 0; }
  .prof { flex-direction: row; align-items: center; gap: 80px; padding-top: 120px; padding-bottom: 120px; }
  .prof-video { flex: 0 0 380px; margin: 0; max-width: none; }
  .prof-texto { flex: 1 1 0; min-width: 0; }
  .prof-texto h2 { font-size: clamp(44px, 5vw, 72px); line-height: .95; }
  .prof-numeros { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
  .prof-numeros b { font-size: 48px; }

  .videos.quatro { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
  .reel { padding: 22px; }

  .offer-card { flex-direction: row; }
  .offer-preco { flex: 1 1 0; border-bottom: 0; border-right: 2px dashed var(--mf-linha); padding: 48px; }
  .offer-inclui { flex: 1.15 1 0; padding: 48px; }

  .faq { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .handsbox.sem-foto { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
  .loc { flex-direction: row; align-items: center; gap: 64px; }
  .loc-texto { flex: 1 1 0; min-width: 0; }
  .galeria { flex: 0 1 560px; gap: 16px; }
  .faq details { padding: 22px 26px; }

  .final { padding: 130px 0; }
  .rodape { padding: 80px 0 40px; }
  .rodape-topo { flex-direction: row; justify-content: space-between; align-items: center; }
  .rodape-marca { font-size: min(13vw, 200px); }
  .sticky { display: none; }
}

/* =================== 1200px+ =================== */
@media (min-width: 1200px) {
  .hero-foto { width: 460px; }
  .vcard-destaque { flex-basis: 400px; }
}
