:root {
  --p100:#EEF2F9; --p200:#D5E0F0; --p300:#A8BEE0; --p400:#6E93CB;
  --p500:#3B6BB5; --p600:#1B3A6B; --p700:#142D52; --p800:#0C1F38; --p900:#071222;
  --a100:#FDECEA; --a200:#FAC5C0; --a300:#F4948C; --a400:#EB5C56;
  --a500:#D63031; --a600:#A82328; --a700:#7D181C;
  --g50:#FAFAF9; --g100:#F5F4F2; --g200:#EAE9E6; --g300:#D8D6D1;
  --g400:#B8B5AE; --g500:#928F88; --g600:#6E6A63; --g700:#4E4B46;
  --g800:#2E2C29; --g900:#1A1917;
  --ok:#1A7F4E;
  --fd:'Plus Jakarta Sans',system-ui,sans-serif;
  --fb:'Inter',system-ui,sans-serif;
}

*,*::before,*::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: var(--fb); background: #fff; color: var(--g900); overflow-x: hidden; }
a { text-decoration: none; color: inherit; }
button { font-family: var(--fb); cursor: pointer; }
input, select, textarea { font-family: var(--fb); }

/* ── Base components ── */
.btn-red {
  background: var(--a500); color: #fff;
  transition: all .2s ease; display: inline-flex; align-items: center;
}
.btn-red:hover { background: var(--a600); transform: translateY(-2px); box-shadow: 0 8px 32px rgba(214,48,49,.4); }
.btn-sm { background: var(--a500); color: #fff; transition: all .18s; display: inline-block; }
.btn-sm:hover { background: var(--a600); }

.nav-link { color: var(--g600); font-size: 14px; font-weight: 500; transition: color .15s; }
.nav-link:hover { color: var(--p600); }

/* Toggle de idioma PT/EN */
.lang-switch { display: flex; align-items: center; border: 1px solid var(--g200); border-radius: 999px; padding: 2px; background: #fff; }
.lang-switch button, .lang-switch a { border: none; background: none; font-size: 11px; font-weight: 700; letter-spacing: .04em; color: var(--g500); padding: 5px 10px; border-radius: 999px; cursor: pointer; transition: all .15s; }
.lang-switch button.active, .lang-switch a.active { background: var(--p600); color: #fff; }

.card { transition: all .2s ease; }
.card:hover { box-shadow: 0 10px 36px rgba(11,31,56,.09); transform: translateY(-3px); border-color: var(--p300) !important; }

.pillar { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.07); border-radius: 18px; padding: 32px 28px; transition: all .2s; }
.pillar:hover { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.13); }

.foot-link { font-size: 13px; color: rgba(255,255,255,.45); transition: color .15s; }
.foot-link:hover { color: rgba(255,255,255,.85); }
.social-btn { width: 32px; height: 32px; background: rgba(255,255,255,.05); border-radius: 7px; display: flex; align-items: center; justify-content: center; transition: background .15s; }
.social-btn:hover { background: rgba(255,255,255,.1); }

/* FAQ */
.faq-answer { display: none; padding-bottom: 26px; }
.faq-answer.open { display: block; }
.faq-chev { transition: transform .22s ease; flex-shrink: 0; margin-left: 20px; display: flex; align-items: center; }
.faq-chev.open { transform: rotate(180deg); }

/* Form */
.dark-input { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.1); border-radius: 8px; padding: 14px 16px; font-size: 15px; color: #fff; outline: none; width: 100%; }
.dark-input::placeholder { color: rgba(255,255,255,.28); }
.dark-input:focus { border-color: var(--p400) !important; background: rgba(255,255,255,.1) !important; box-shadow: 0 0 0 3px rgba(59,107,181,.18) !important; }

/* ── Layout helpers ── */
.wrap { max-width: 1200px; margin: 0 auto; }
.pad { padding: 96px 40px; }
.pad-sm { padding: 36px 40px; }

/* ── Stats row ── */
.stats { display: flex; }
.stat { padding-right: 28px; }
.stat + .stat { padding-left: 28px; border-left: 1px solid var(--g200); }
.stat:last-child { padding-right: 0; }

/* ── Logo bar ── */
.logos { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; }
.logo-item { padding: 8px 36px; border-right: 1px solid var(--g200); text-align: center; flex-shrink: 0; }
.logo-item:last-child { border-right: none; }

/* ── Timeline ── */
.tl-row { display: flex; align-items: flex-start; }
.tl-node { flex: 1; display: flex; flex-direction: column; align-items: center; padding: 0 8px; position: relative; }
.tl-line { position: absolute; top: 27px; left: calc(50% + 27px); right: calc(-50% + 27px); border-top: 1px dashed var(--g300); }

/* ── Gallery ── */
.gallery { display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: 180px 180px; gap: 12px; }
.gallery-main { grid-column: span 2; grid-row: span 2; }

/* ── Metrics ── */
.metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: rgba(255,255,255,.05); border-radius: 14px; overflow: hidden; }

/* ── Grids ── */
.g2 { display: grid; grid-template-columns: repeat(2, 1fr); }
.g3 { display: grid; grid-template-columns: repeat(3, 1fr); }
.g4 { display: grid; grid-template-columns: repeat(4, 1fr); }

/* ── Hero ── */
.hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.hero-card-wrap { position: relative; }
.hero-badge { position: absolute; background: #fff; border-radius: 12px; padding: 9px 13px; box-shadow: 0 8px 28px rgba(0,0,0,.13); display: flex; align-items: center; gap: 9px; z-index: 10; }

/* ── Modules ── */
.mod-grid { display: grid; grid-template-columns: 5fr 3fr; gap: 80px; align-items: start; }
.mod-sticky { position: sticky; top: 110px; }

/* ── Quem ensina ── */
.inst-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }

/* ── O caminho é mais viável ── */
.path-grid { display: grid; grid-template-columns: 1fr 300px; gap: 56px; align-items: center; max-width: 880px; margin: 0 auto; }

/* ── Footer ── */
.foot-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 56px; margin-bottom: 40px; }

/* ── Mobile sticky ── */
.mob-cta { display: none; }

/* ═══════════════════════════════
   TABLET — 960px
═══════════════════════════════ */
@media (max-width: 960px) {
  .hero-grid { grid-template-columns: 1fr; gap: 48px; }
  .hero-card-wrap { max-width: 420px; margin: 0 auto; }
  .hero-badge { display: none; }                 /* badges causam overflow sem a coluna ampla */
  .g3 { grid-template-columns: repeat(2, 1fr); }
  .g4 { grid-template-columns: repeat(2, 1fr); }
  .mod-grid { grid-template-columns: 1fr; gap: 40px; }
  .mod-sticky { position: static; }
  .inst-grid { grid-template-columns: 1fr; gap: 48px; }
  .path-grid { grid-template-columns: 1fr; gap: 32px; }
  .foot-grid { grid-template-columns: 1fr 1fr; gap: 40px; }
  .md-hide { display: none !important; }
  .metrics { grid-template-columns: repeat(2, 1fr); }
  .nav-inner { padding: 0 24px !important; }
  .pad { padding: 80px 32px; }
  .pad-sm { padding: 28px 32px; }
}

/* ═══════════════════════════════
   MOBILE — 620px
═══════════════════════════════ */
@media (max-width: 620px) {
  /* Padding */
  .pad { padding: 64px 20px; }
  .pad-sm { padding: 24px 20px; }
  .nav-inner { padding: 0 16px !important; }

  /* Grids */
  .g2, .g3 { grid-template-columns: 1fr; }
  .g4 { grid-template-columns: 1fr 1fr; }
  .metrics { grid-template-columns: 1fr 1fr; }

  /* Pillar cards */
  .pillar { padding: 24px 18px; }

  /* Stats */
  .stats { flex-direction: column; gap: 0; }
  .stat { padding: 0 0 16px !important; border-left: none !important; border-bottom: 1px solid var(--g200); }
  .stat:last-child { border-bottom: none; padding-bottom: 0 !important; }

  /* Logo bar */
  .logo-item { width: 50%; padding: 12px 0; border-right: none !important; border-bottom: 1px solid var(--g200); }
  .logo-item:nth-child(odd) { border-right: 1px solid var(--g200) !important; }
  .logo-item:nth-last-child(-n+2) { border-bottom: none; }

  /* Timeline — vertical */
  .tl-row { flex-direction: column; gap: 20px; }
  .tl-node { flex-direction: row; align-items: flex-start; gap: 14px; flex: none; width: 100%; padding: 0; }
  .tl-node-icon { margin-bottom: 0; }
  .tl-node-text { text-align: left !important; }
  .tl-line { display: none; }

  /* Gallery */
  .gallery { grid-template-columns: 1fr 1fr; grid-template-rows: 140px 140px 140px; }
  .gallery-main { grid-column: span 2; grid-row: span 1; }

  /* Hero CTA */
  .hero-cta { width: 100%; justify-content: center; }

  /* Callout row */
  .callout-row { flex-direction: column; gap: 20px; align-items: flex-start !important; }
  .callout-btn { display: none !important; }

  /* Mod number */
  .mod-num { font-size: 36px !important; width: 38px !important; }

  /* Footer */
  .foot-grid { grid-template-columns: 1fr; gap: 28px; }

  /* Hero section */
  .hero-lead { font-size: 15px !important; }

  /* FAQ */
  .faq-q { font-size: 15px !important; }

  /* Misc */
  .sm-hide { display: none !important; }
  .mob-cta { display: flex !important; }
}

/* ══ CARROSSEL VERTICAL — MasterClass style ══════════════
   3 colunas animadas. AJUSTE: valor final = (início - 50%)
══════════════════════════════════════════════════════ */
@keyframes car-col1 { 0%{transform:translateY(0)}     100%{transform:translateY(-40%)} }
@keyframes car-col2 { 0%{transform:translateY(-10%)}  100%{transform:translateY(-50%)} }
@keyframes car-col3 { 0%{transform:translateY(-20%)}  100%{transform:translateY(-45%)} }
.car-wrap { position:relative; display:grid; grid-template-columns:repeat(3,1fr); gap:10px; height:560px; overflow:hidden; border-radius:18px; } /* AJUSTE: height */
.car-col  { display:flex; flex-direction:column; gap:10px; will-change:transform; }
.car-col:nth-child(1) { animation:car-col1 34s linear infinite; } /* AJUSTE: vel col 1 (seg) */
.car-col:nth-child(2) { animation:car-col2 28s linear infinite; } /* AJUSTE: vel col 2 */
.car-col:nth-child(3) { animation:car-col3 38s linear infinite; } /* AJUSTE: vel col 3 */
.car-col:hover { animation-play-state:paused; }
.pcard { flex-shrink:0; border-radius:12px; overflow:hidden; position:relative; aspect-ratio:3/4; display:flex; flex-direction:column; justify-content:flex-end; padding:14px 12px; background-size:cover; background-position:center; }
.pcard::after { content:''; position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,.72) 0%,rgba(0,0,0,.1) 55%,transparent 80%); z-index:0; }
.pcard > * { position:relative; z-index:1; }
.car-fade-t { position:absolute; top:0; left:0; right:0; height:100px; background:linear-gradient(to bottom,#fff,transparent); z-index:20; pointer-events:none; } /* AJUSTE: #fff = fundo do hero */
.car-fade-b { position:absolute; bottom:0; left:0; right:0; height:100px; background:linear-gradient(to top,#fff,transparent); z-index:20; pointer-events:none; }
@media (max-width:960px) { .car-wrap { height:400px; } }
@media (max-width:620px) { .car-wrap { grid-template-columns:repeat(2,1fr)!important; height:320px; } .car-col:nth-child(3) { display:none; } }
