/* =========================================================
   IFEV — Formação Executiva
   Folha de estilo única. Ordem: tokens, base, layout,
   componentes, blocos de página, responsivo, impressão.
   ========================================================= */

/* ---------- 1. Tokens ---------- */
:root{
  /* cor */
  --ink:#1B1746;
  --ink-90:#262055;
  --ink-70:#4A4577;
  --ink-50:#7A76A0;
  --muted:#6F7189;
  --amber:#F7A81B;
  --amber-600:#DE9209;
  --amber-100:#FEF1D8;
  --paper:#FFFFFF;
  --surface:#F5F6FA;
  --surface-2:#EBEDF5;
  --line:#E2E4EE;
  --line-strong:#CFD3E4;
  --ok-bg:#E4F3EA;
  --ok-fg:#136B3C;

  /* forma */
  --r-sm:8px;
  --r:14px;
  --r-lg:20px;
  --shadow:0 1px 2px rgba(27,23,70,.05), 0 10px 30px rgba(27,23,70,.07);
  --shadow-hover:0 2px 4px rgba(27,23,70,.06), 0 18px 44px rgba(27,23,70,.12);

  /* medida */
  --container:1200px;
  --header-h:76px;
  --fold:calc(100vh - var(--header-h));
  --gap:22px;

  /* tipo */
  --display:"Poppins", "Segoe UI", system-ui, -apple-system, sans-serif;
  --body:"Inter", "Segoe UI", system-ui, -apple-system, sans-serif;
}

/* ---------- 2. Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 16px)}
body{
  margin:0;
  font-family:var(--body);
  font-size:16px;
  line-height:1.6;
  color:var(--ink-70);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
}
img,svg{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
h1,h2,h3,h4{font-family:var(--display); color:var(--ink); margin:0; letter-spacing:-.02em; line-height:1.12; font-weight:700}
h1{font-size:clamp(2rem, 1.1rem + 2.7vw, 3.15rem)}
h2{font-size:clamp(1.55rem, 1.05rem + 1.5vw, 2.2rem)}
h3{font-size:1.0625rem; letter-spacing:-.01em; line-height:1.3}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
ul{margin:0;padding:0;list-style:none}
:focus-visible{outline:3px solid var(--amber); outline-offset:3px; border-radius:4px}

.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--ink);color:#fff;padding:12px 18px;border-radius:0 0 var(--r-sm) 0}
.skip:focus{left:0}

.container{width:100%; max-width:var(--container); margin-inline:auto; padding-inline:24px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- 3. Marca ---------- */
.logo{display:inline-flex; align-items:center; gap:7px; font-family:var(--display); color:var(--ink)}
.logo__word{font-weight:800; font-size:23px; letter-spacing:-.02em; line-height:1; position:relative}
.logo__word i{font-style:normal; position:relative}
.logo__word .e{color:var(--amber)}
.logo__word .dot{position:absolute; top:-.02em; left:.035em; width:.2em; height:.2em; background:var(--amber); border-radius:50%}
.logo__tag{font-size:9px; font-weight:700; line-height:1.15; letter-spacing:.28em; text-transform:uppercase; color:var(--ink)}
.logo--light,.logo--light .logo__tag{color:#fff}

/* ---------- 4. Cabeçalho ---------- */
.header{
  position:fixed; inset:0 0 auto 0; z-index:100;
  height:var(--header-h);
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid var(--line);
}
.header__inner{display:flex; align-items:center; gap:28px; height:100%}
.nav{display:flex; align-items:center; gap:22px; margin-left:auto}
.nav a{font-size:14px; color:var(--ink-70); font-weight:500; padding:6px 0; position:relative}
.nav a:hover{color:var(--ink)}
.nav a[aria-current="page"]{color:var(--ink); font-weight:600}
.nav a[aria-current="page"]::after{content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:var(--amber); border-radius:2px}
.header .btn{margin-left:6px}
.burger{display:none; width:44px; height:44px; margin-left:auto; border:1px solid var(--line); background:#fff; border-radius:var(--r-sm); align-items:center; justify-content:center; cursor:pointer}
.burger span{display:block; width:18px; height:2px; background:var(--ink); box-shadow:0 -6px 0 var(--ink), 0 6px 0 var(--ink)}
body{padding-top:var(--header-h)}

/* ---------- 5. Botões ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:46px; padding:0 22px;
  font-family:var(--display); font-size:14.5px; font-weight:600; letter-spacing:-.005em;
  border-radius:999px; border:1.5px solid transparent; cursor:pointer;
  transition:transform .15s ease, background-color .15s ease, box-shadow .15s ease, color .15s ease;
  text-align:center;
}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:none}
/* amarelo = ação principal. Uma por tela. */
.btn--primary{background:var(--amber); color:var(--ink); box-shadow:0 6px 18px rgba(247,168,27,.32)}
.btn--primary:hover{background:var(--amber-600)}
.btn--ghost{background:#fff; color:var(--ink); border-color:var(--ink)}
.btn--ghost:hover{background:var(--ink); color:#fff}
.btn--quiet{background:#fff; color:var(--ink); border-color:var(--line-strong)}
.btn--quiet:hover{border-color:var(--ink)}
.btn--dark{background:var(--ink); color:#fff}
.btn--dark:hover{background:var(--ink-90)}
.btn--sm{min-height:38px; padding:0 16px; font-size:13.5px}
.btn--wide{width:100%}
.btn-row{display:flex; flex-wrap:wrap; gap:12px}

/* ---------- 6. Seções e rótulos ---------- */
.section{padding:54px 0; border-top:1px solid var(--line)}
.section--flush{border-top:0}
.section--tint{background:var(--surface)}
.section--ink{background:var(--ink); color:#C9C7E0; border-top:0}
.section--ink h2,.section--ink h3{color:#fff}
h2.eyebrow{margin-bottom:18px}
.eyebrow{
  display:flex; align-items:center; gap:9px;
  font-family:var(--display); font-size:11px; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--ink-50);
  margin:0 0 18px;
}
.eyebrow::before{content:""; width:14px; height:2px; background:var(--amber); border-radius:2px; flex:none}
.section--ink .eyebrow{color:#8F8BC0}
.section__head{max-width:660px; margin-bottom:26px}
.section__head p{margin-top:12px; font-size:1.0625rem}
.lead{font-size:1.0625rem; color:var(--ink-70)}
.small{font-size:13.5px; color:var(--muted)}

/* ---------- 7. Placeholder de imagem ---------- */
/* Substituir por foto real do IFEV. Banco de imagens não é usado em foto de pessoa. */
.ph{
  position:relative; background:var(--surface); border:1px solid var(--line);
  border-radius:var(--r); overflow:hidden; display:grid; place-items:center;
  background-image:linear-gradient(135deg, rgba(27,23,70,.025) 25%, transparent 25%, transparent 50%, rgba(27,23,70,.025) 50%, rgba(27,23,70,.025) 75%, transparent 75%);
  background-size:16px 16px;
}
.ph::after{
  content:attr(data-label);
  font-size:12px; color:var(--ink-50); text-align:center; padding:10px 16px; max-width:90%;
}
.ph--hero{aspect-ratio:1/1}
.ph--wide{aspect-ratio:16/9}
.ph--card{aspect-ratio:16/10; border-radius:var(--r) var(--r) 0 0; border:0; border-bottom:1px solid var(--line)}
.ph--portrait{aspect-ratio:4/5}
.ph--cover{aspect-ratio:3/4}
.ph--square{aspect-ratio:1/1}
.ph--round{aspect-ratio:1/1; border-radius:50%; width:56px; flex:none}
.ph--round::after{font-size:0}

/* ---------- 8. Cards ---------- */
.card{
  background:#fff; border:1px solid var(--line); border-radius:var(--r);
  display:flex; flex-direction:column; overflow:hidden; position:relative;
  transition:box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
.card:hover{box-shadow:var(--shadow-hover); transform:translateY(-2px); border-color:var(--line-strong)}
.card__body{padding:16px 18px 18px; display:flex; flex-direction:column; gap:6px; flex:1}
.card__title{font-family:var(--display); font-weight:600; font-size:15.5px; color:var(--ink); line-height:1.3}
.card__meta{font-size:13px; color:var(--muted)}
.card__foot{margin-top:auto; padding-top:14px; display:flex; align-items:center; gap:12px}
.price{font-family:var(--display); font-weight:700; color:var(--ink); font-size:16px}
.grid{display:grid; gap:var(--gap)}
.grid--2{grid-template-columns:repeat(2,1fr)}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--4{grid-template-columns:repeat(4,1fr)}

/* ---------- 9. Etiquetas e selo ---------- */
.tags{display:flex; flex-wrap:wrap; gap:8px; align-items:center}
.tag{
  font-size:12.5px; font-weight:500; color:var(--ink-70);
  background:var(--surface-2); border-radius:999px; padding:5px 12px;
}
.tag--ok{background:var(--ok-bg); color:var(--ok-fg); font-weight:600}
.tag--free{background:var(--amber-100); color:#8A5B00; font-weight:600}
/* Selo do MEC: só na página do MBA e nos cards que levam a ela. */
.mec{
  width:52px; height:52px; border-radius:50%; background:var(--ink); color:#fff;
  display:grid; place-content:center; text-align:center; flex:none;
  font-family:var(--display); font-size:9px; font-weight:700; line-height:1.15; letter-spacing:.04em;
}
.mec--float{position:absolute; top:12px; right:12px; z-index:2; box-shadow:0 4px 14px rgba(27,23,70,.25)}
.mec--inline{display:inline-grid; vertical-align:-14px; margin-left:8px}

/* ---------- 10. Carrossel ---------- */
.carousel{position:relative}
.carousel__track{
  display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 2*var(--gap))/3);
  gap:var(--gap); overflow-x:auto; scroll-snap-type:x mandatory;
  scrollbar-width:none; padding:4px 2px 6px;
}
.carousel__track::-webkit-scrollbar{display:none}
.carousel__track > *{scroll-snap-align:start}
.carousel--4 .carousel__track{grid-auto-columns:calc((100% - 3*var(--gap))/4)}
.carousel__nav{
  position:absolute; top:38%; width:40px; height:40px; border-radius:50%;
  background:#fff; border:1px solid var(--line); color:var(--ink); cursor:pointer;
  display:grid; place-items:center; box-shadow:var(--shadow); z-index:3;
}
.carousel__nav:hover{border-color:var(--ink)}
.carousel__nav[disabled]{opacity:.3; cursor:default}
.carousel__nav[hidden],.dots[hidden]{display:none}
.carousel__nav--prev{left:-19px}
.carousel__nav--next{right:-19px}
.dots{display:flex; gap:7px; justify-content:center; margin-top:18px}
.dots button{width:7px; height:7px; padding:0; border:0; border-radius:50%; background:var(--line-strong); cursor:pointer}
.dots button[aria-current="true"]{background:var(--ink); width:20px; border-radius:999px}

/* ---------- 11. Sanfona ---------- */
.accordion{display:grid; gap:10px}
.acc{border:1px solid var(--line); border-radius:var(--r-sm); background:#fff; overflow:hidden}
.acc[open]{border-color:var(--line-strong); box-shadow:var(--shadow)}
.acc summary{
  list-style:none; cursor:pointer; padding:16px 20px; display:flex; align-items:center; gap:16px;
  font-family:var(--display); font-weight:600; font-size:15px; color:var(--ink);
}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:""; margin-left:auto; width:9px; height:9px; border-right:2px solid var(--ink-50); border-bottom:2px solid var(--ink-50); transform:rotate(45deg) translateY(-2px); transition:transform .2s ease; flex:none}
.acc[open] summary::after{transform:rotate(-135deg) translateY(-2px)}
.acc__body{padding:0 20px 20px; font-size:15px}
.acc__body .small{margin-top:8px}

/* ---------- 12. Formulários ---------- */
.form{display:grid; gap:14px}
.field{display:grid; gap:6px}
.field label,.fieldlabel{display:block; font-size:13px; font-weight:600; color:var(--ink); font-family:var(--display)}
.field input,.field select,.field textarea{
  width:100%; padding:12px 14px; font:inherit; font-size:15px; color:var(--ink);
  background:#fff; border:1px solid var(--line-strong); border-radius:var(--r-sm);
}
.field input::placeholder,.field textarea::placeholder{color:#A6A8BD}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ink); outline:none; box-shadow:0 0 0 3px rgba(27,23,70,.08)}
.field textarea{min-height:110px; resize:vertical}
.form__row{display:grid; grid-template-columns:1fr 1fr; gap:14px}
.form__note{font-size:12.5px; color:var(--muted)}
.choice{display:flex; gap:10px; flex-wrap:wrap}
.choice input{position:absolute; opacity:0; pointer-events:none}
.choice label{
  border:1.5px solid var(--line-strong); border-radius:999px; padding:9px 18px; cursor:pointer;
  font-family:var(--display); font-weight:600; font-size:14px; color:var(--ink-70); background:#fff;
}
.choice input:checked + label{border-color:var(--ink); background:var(--ink); color:#fff}
.choice input:focus-visible + label{outline:3px solid var(--amber); outline-offset:2px}

/* ---------- 13. Barra fixa e WhatsApp ---------- */
.stickybar{
  position:fixed; left:0; right:0; bottom:0; z-index:90;
  background:rgba(255,255,255,.96); backdrop-filter:blur(10px);
  border-top:1px solid var(--line); box-shadow:0 -8px 30px rgba(27,23,70,.08);
  transform:translateY(105%); transition:transform .28s cubic-bezier(.2,.7,.3,1);
}
.stickybar.is-on{transform:none}
.stickybar__inner{display:flex; align-items:center; gap:18px; padding:12px 0}
.stickybar__title{font-family:var(--display); font-weight:600; color:var(--ink); font-size:15px; line-height:1.25}
.stickybar__meta{font-size:12.5px; color:var(--muted)}
.stickybar .btn{margin-left:auto; flex:none}
.wa{
  position:fixed; right:20px; bottom:20px; z-index:80;
  opacity:0; visibility:hidden; transform:translateY(12px);
  width:54px; height:54px; border-radius:50%; background:#1FA855; color:#fff;
  display:grid; place-items:center; box-shadow:0 10px 26px rgba(31,168,85,.35);
  transition:bottom .28s cubic-bezier(.2,.7,.3,1), transform .2s ease, opacity .2s ease, visibility .2s;
}
.wa.is-on{opacity:1; visibility:visible; transform:none}
.wa.is-on:hover{transform:scale(1.05)}
body.has-sticky .wa{bottom:96px}

/* ---------- 14. Rodapé ---------- */
.footer{background:var(--ink); color:#A8A5CB; padding:48px 0 24px; font-size:14px}
.footer__grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:36px}
.footer h4{color:#fff; font-size:12px; letter-spacing:.14em; text-transform:uppercase; margin-bottom:16px; font-weight:600}
.footer a:hover{color:#fff}
.footer li{margin-bottom:9px}
.footer__legal{
  margin-top:32px; padding-top:20px; border-top:1px solid rgba(255,255,255,.12);
  display:flex; flex-wrap:wrap; gap:8px 24px; align-items:center; font-size:12.5px; color:#8B88B4;
}
.footer__legal .sep{margin-left:auto}
.social{display:flex; gap:10px; margin-top:18px}
.social a{width:36px; height:36px; border:1px solid rgba(255,255,255,.2); border-radius:50%; display:grid; place-items:center; font-size:12px; font-weight:600}

/* ---------- 15. Primeira dobra ---------- */
.hero{
  min-height:var(--fold); display:flex; align-items:center;
  padding:48px 0; border-bottom:1px solid var(--line);
}
.hero__grid{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; width:100%}
.hero__text{max-width:560px}
.hero h1{margin-bottom:20px}
.hero .lead{margin-bottom:28px; font-size:1.125rem; max-width:48ch}
.hero .btn-row{margin-top:4px}
.hero--tall{min-height:var(--fold)}
.hero--short{min-height:calc(var(--fold) * .74); padding:64px 0}

/* ---------- 16. As duas frentes (bloco assinatura) ---------- */
.doors{display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; background:#fff}
.door{padding:40px; display:flex; flex-direction:column; gap:14px; position:relative; border-right:1px solid var(--line)}
.door:last-child{border-right:0}
.door::before{content:""; position:absolute; top:0; left:0; height:4px; width:0; background:var(--amber); transition:width .35s cubic-bezier(.2,.7,.3,1)}
.door:hover::before,.door:focus-within::before{width:100%}
.door h3{font-size:1.35rem}
.door ul{display:grid; gap:8px; margin:4px 0 6px}
.door li{position:relative; padding-left:18px; font-size:14.5px}
.door li::before{content:""; position:absolute; left:0; top:.62em; width:6px; height:6px; border-radius:50%; background:var(--line-strong)}
.door .btn{margin-top:auto; align-self:flex-start}

/* ---------- 17. Blocos diversos ---------- */
.split{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center}
.split--form{grid-template-columns:.85fr 1.15fr; align-items:start}
.split--reverse .split__media{order:2}
.steps{display:grid; grid-template-columns:repeat(4,1fr); gap:var(--gap); counter-reset:step}
.step{padding:26px 22px; background:#fff; border:1px solid var(--line); border-radius:var(--r); position:relative}
.step__n{font-family:var(--display); font-weight:700; font-size:13px; color:var(--amber-600); letter-spacing:.1em; display:block; margin-bottom:8px}
.step h3{margin-bottom:6px}
.step p{font-size:14px; margin:0}

.person{text-align:left}
.person .ph{margin-bottom:12px}
.person__name{font-family:var(--display); font-weight:600; color:var(--ink); font-size:15.5px}
.person__role{font-size:13px; color:var(--muted)}

.quote{background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:24px; display:flex; flex-direction:column; gap:16px}
.quote p{font-size:15px; margin:0}
.quote__who{display:flex; align-items:center; gap:12px; margin-top:auto}
.quote__name{font-family:var(--display); font-weight:600; font-size:14.5px; color:var(--ink); line-height:1.3}
.quote__meta{font-size:12.5px; color:var(--muted)}
.quote__result{font-size:12.5px; color:var(--amber-600); font-weight:600; font-family:var(--display)}

.logos{display:grid; grid-template-columns:repeat(6,1fr); gap:18px; align-items:center}
.logos div{height:56px; border:1px solid var(--line); border-radius:var(--r-sm); display:grid; place-items:center; font-size:11px; color:var(--ink-50); background:#fff; text-align:center; padding:6px}

.stats{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap); text-align:center}
.stat__n{font-family:var(--display); font-weight:700; font-size:2.6rem; color:var(--amber-600); line-height:1}
.stat__l{font-size:13px; color:var(--muted); margin-top:6px}

.situations{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap)}
.situation{border:1px solid var(--line); border-radius:var(--r); padding:24px; background:#fff}
.situation h3{margin-bottom:8px}
.situation p{font-size:14.5px; margin:0}

.checklist{display:grid; grid-template-columns:1fr 1fr; gap:12px 32px}
.checklist li{position:relative; padding-left:28px; font-size:15px}
.checklist li::before{
  content:""; position:absolute; left:0; top:.35em; width:16px; height:16px; border-radius:50%;
  background:var(--amber-100); box-shadow:inset 0 0 0 1.5px var(--amber)
}
.checklist li::after{content:""; position:absolute; left:5px; top:.62em; width:5px; height:8px; border-right:2px solid var(--amber-600); border-bottom:2px solid var(--amber-600); transform:rotate(40deg)}

.deflist{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap)}
.deflist--4{grid-template-columns:repeat(4,1fr)}
.deflist div{border:1px solid var(--line); border-radius:var(--r); padding:20px; background:#fff}
.deflist dt{font-family:var(--display); font-weight:600; color:var(--ink); font-size:14.5px; margin-bottom:6px}
.deflist dd{margin:0; font-size:14px}

.newsletter{background:var(--ink); color:#C9C7E0; border-radius:var(--r-lg); padding:36px}
.newsletter--slim{padding:26px 30px; margin-top:26px}
.newsletter--slim h2{font-size:1.25rem}
.newsletter--slim .form__row{margin-top:14px}
.newsletter h2{color:#fff; margin-bottom:10px}
.newsletter .form__row{margin-top:20px; grid-template-columns:1fr 1fr auto; align-items:end}
.newsletter .field label{color:#fff}
.newsletter .field input{background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.25); color:#fff}
.newsletter .field input::placeholder{color:#8B88B4}
.newsletter .form__note{color:#8B88B4}

.closing{display:grid; grid-template-columns:1fr 1fr; gap:var(--gap)}
.closing a{
  border:1px solid var(--line); border-radius:var(--r); padding:24px 28px; background:#fff;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  font-family:var(--display); font-weight:600; color:var(--ink); font-size:1.15rem;
  transition:border-color .18s ease, transform .18s ease;
}
.closing a:hover{border-color:var(--ink); transform:translateY(-2px)}
.closing span{color:var(--amber-600); font-size:1.4rem}

.breadcrumb{font-size:13px; color:var(--muted); margin-bottom:20px; display:flex; gap:8px; flex-wrap:wrap}
.breadcrumb a:hover{color:var(--ink)}

.article{max-width:680px; margin-inline:auto}
.article p{font-size:1.0625rem; line-height:1.75}
.article h2{font-size:1.5rem; margin:36px 0 14px}
.article__meta{font-size:13.5px; color:var(--muted); margin-bottom:24px}
.inline-cta{
  border:1px solid var(--line); border-radius:var(--r); padding:22px; background:var(--surface);
  display:flex; gap:20px; align-items:center; margin:36px 0;
}
.inline-cta .ph{width:120px; flex:none; border-radius:var(--r-sm)}
.inline-cta h3{margin-bottom:4px}

.filterbar{display:flex; flex-wrap:wrap; gap:10px; align-items:center}
.chip{border:1px solid var(--line-strong); background:#fff; border-radius:999px; padding:8px 16px; font-size:14px; cursor:pointer; color:var(--ink-70)}
.chip[aria-pressed="true"]{background:var(--ink); border-color:var(--ink); color:#fff}
.search{margin-left:auto; display:flex; gap:8px}
.search input{padding:10px 16px; border:1px solid var(--line-strong); border-radius:999px; font:inherit; font-size:14px; min-width:220px}

.flow{display:grid; grid-template-columns:1fr 1fr; gap:var(--gap)}
.flow ol{display:grid; gap:10px; counter-reset:f}
.flow li{background:#fff; border:1px solid var(--line); border-radius:var(--r-sm); padding:14px 18px}
.flow strong{display:block; font-family:var(--display); color:var(--ink); font-size:15px}
.flow span{font-size:13px; color:var(--muted)}

/* ---------- 18. Responsivo ---------- */
@media (max-width:1240px){
  .carousel__nav--prev{left:4px}
  .carousel__nav--next{right:4px}
}
@media (max-width:1024px){
  :root{--gap:18px; --header-h:66px}
  .nav{display:none}
  .burger{display:flex}
  .header .btn{display:none}
  .hero__grid{grid-template-columns:1fr; gap:32px}
  .split,.split--form{grid-template-columns:1fr; gap:32px}
  .split--reverse .split__media{order:0}
  .grid--4{grid-template-columns:repeat(2,1fr)}
  .steps,.deflist--4{grid-template-columns:repeat(2,1fr)}
  .logos{grid-template-columns:repeat(3,1fr)}
  .carousel__track{grid-auto-columns:calc((100% - var(--gap))/2)}
  .carousel--4 .carousel__track{grid-auto-columns:calc((100% - var(--gap))/2)}
}
@media (max-width:720px){
  .section{padding:44px 0}
  .container{padding-inline:18px}
  /* Primeira dobra no celular: imagem, título em até duas linhas e os
     dois botões empilhados, tudo visível antes de rolar. */
  .hero,.hero--short{min-height:auto; padding:28px 0 40px}
  .hero__grid{gap:22px}
  .hero__media{order:-1}
  .hero .ph--hero{aspect-ratio:16/10}
  .hero .lead{font-size:1rem; margin-bottom:22px}
  .hero .btn-row{flex-direction:column; align-items:stretch}
  .hero .btn{width:100%}
  .grid--2,.grid--3{grid-template-columns:1fr}
  .grid--4{grid-template-columns:repeat(2,1fr)} /* especialistas: duas colunas, nunca quatro espremidas */
  .doors{grid-template-columns:1fr}
  .door{border-right:0; border-bottom:1px solid var(--line); padding:28px}
  .door:last-child{border-bottom:0}
  .steps,.situations,.deflist,.deflist--4,.stats,.closing,.flow{grid-template-columns:1fr}
  .checklist{grid-template-columns:1fr}
  .form__row,.newsletter .form__row{grid-template-columns:1fr}
  .carousel__track,.carousel--4 .carousel__track{grid-auto-columns:84%} /* um card por vez, com arrasto lateral */
  .carousel__nav{display:none}
  .footer__grid{grid-template-columns:1fr 1fr; gap:28px}
  .newsletter{padding:28px 22px}
  .stickybar__inner{padding:10px 0}
  .stickybar__title{font-size:14px}
  .stickybar .btn{min-height:44px}
  .stickybar__copy{display:none}
  .stickybar .btn{margin-left:0; width:100%}
  .inline-cta{flex-direction:column; align-items:flex-start}
  .inline-cta .ph{width:100%}
  .search{margin-left:0; width:100%}
  .search input{flex:1; min-width:0}
  .logos{grid-template-columns:repeat(2,1fr)}
}

/* Menu de celular */
.mobilenav{position:fixed; inset:var(--header-h) 0 0 0; background:#fff; z-index:99; padding:24px; display:none; overflow:auto}
.mobilenav.is-on{display:block}
.mobilenav a{display:block; padding:15px 0; border-bottom:1px solid var(--line); font-family:var(--display); font-weight:600; font-size:17px; color:var(--ink)}
.mobilenav .btn{margin-top:24px; width:100%}

/* ---------- 19. Preferências e impressão ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important}
}
@media print{
  .header,.stickybar,.wa,.carousel__nav,.dots{display:none}
  body{padding-top:0}
  .section{page-break-inside:avoid}
}
