/* ============================================================
   ALPHABC ENSINO — sistema visual
   Conceito: "a conversa" — o próprio símbolo da marca (o alpha
   dentro de um balão de fala) vira o elemento de assinatura do
   site: fotos, depoimentos e destaques ganham o mesmo contorno
   de balão, com o verde, o azul e o vermelho reais da marca.
   ============================================================ */


:root{
  --paper: #FFFFFF;
  --paper-deep: #F1F7F1;
  --paper-line: #E1EBE0;
  --ink: #232323;
  --ink-soft: #59635B;

  --green: #1B6F2C;
  --green-dark: #0E3F1B;
  --green-light: #3DA84A;
  --green-pale: #E7F3E8;

  --navy: #0B4A82;
  --navy-dark: #072F54;
  --navy-pale: #E8F0F8;

  --red: #D81324;
  --red-dark: #A80E1C;
  --red-pale: #FBE6E7;

  --cream-card: #FFFFFF;
  --footer-bg: #0C1F14;
  --footer-text: #C6D3C8;
  --white: #FFFFFF;

  /* per-course accent colors (nav dropdown hover + course page theme) */
  --c-ingles: #2F6FE4; --c-ingles-dark: #1E4FAE; --c-ingles-pale: #EAF1FD;
  --c-vestibular: #7C3AED; --c-vestibular-dark: #5B21B6; --c-vestibular-pale: #F2EBFD;
  --c-reforco: #D81324; --c-reforco-dark: #A80E1C; --c-reforco-pale: #FBE6E7;
  --c-enem: #1B6F2C; --c-enem-dark: #0E3F1B; --c-enem-pale: #E7F3E8;
  --c-idiomas: #E2861F; --c-idiomas-dark: #B5670F; --c-idiomas-pale: #FCEEDD;
  --c-portugues: #0E8074; --c-portugues-dark: #0A5C53; --c-portugues-pale: #E3F5F3;
  --c-tdah: #A21CAF; --c-tdah-dark: #701A75; --c-tdah-pale: #FAE8FF;
  --c-alfabetizacao: #0284C7; --c-alfabetizacao-dark: #075985; --c-alfabetizacao-pale: #E0F2FE;

  --font-display: 'Baloo 2', 'Segoe UI', system-ui, sans-serif;
  --font-body: 'Work Sans', system-ui, -apple-system, sans-serif;
  --font-hand: 'Caveat', cursive;
  --font-mono: 'IBM Plex Mono', 'Courier New', monospace;

  --radius: 22px;
  --radius-sm: 14px;
  --shadow-card: 0 1px 2px rgba(14,40,20,0.06), 0 14px 30px -12px rgba(14,40,20,0.16);
  --shadow-pop: 0 1px 2px rgba(14,40,20,0.08), 0 26px 44px -14px rgba(14,40,20,0.26);
  --container: 1180px;
}

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior: auto; } }

body{
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.62;
  -webkit-font-smoothing: antialiased;
}

img{ max-width: 100%; display: block; }
a{ color: inherit; text-decoration: none; }

.container{
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 24px;
}

h1, h2, h3, h4{
  font-family: var(--font-display);
  color: var(--ink);
  margin: 0 0 .5em;
  line-height: 1.14;
  font-weight: 700;
  letter-spacing: -.01em;
}

p{ margin: 0 0 1em; }

::selection{ background: var(--green-pale); color: var(--green-dark); }

:focus-visible{
  outline: 3px solid var(--navy);
  outline-offset: 3px;
  border-radius: 4px;
}

.visually-hidden{
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap;
}
.visually-hidden:focus{
  position: fixed; top: 10px; left: 10px; width: auto; height: auto;
  background: var(--white); padding: 10px 16px; border-radius: 8px; z-index: 999;
}

/* ---------- speech-bubble shape (assinatura da marca) ---------- */
.bubble{
  position: relative;
  border-radius: 30px 30px 30px 8px;
}
.bubble::after{
  content: "";
  position: absolute;
  left: 26px; bottom: -13px;
  width: 24px; height: 24px;
  background: inherit;
  clip-path: polygon(0 0, 100% 0, 0 100%);
  border-bottom-left-radius: 5px;
}
.bubble-tail-right::after{ left: auto; right: 26px; clip-path: polygon(0 0, 100% 0, 100% 100%); border-bottom-left-radius: 0; border-bottom-right-radius: 5px; }

/* ---------- eyebrow / labels ---------- */
.eyebrow{
  display: inline-flex;
  align-items: center;
  gap: .55em;
  font-family: var(--font-mono);
  font-size: 12.5px;
  line-height: 20px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--green);
  font-weight: 600;
  margin-bottom: 1em;
}
.eyebrow::before{
  content: "";
  width: 18px; height: 2px;
  background: var(--green);
  display: inline-block;
}

.hand{ font-family: var(--font-hand); font-weight: 600; }

.hero-highlight{ color: var(--green-dark); }

/* ============ HEADER ============ */
.site-header{
  position: sticky; top: 0; z-index: 50;
  background: rgba(255,255,255,0.92);
  backdrop-filter: saturate(1.4) blur(10px);
  border-bottom: 1px solid var(--paper-line);
}
.site-header .container{
  display: flex; align-items: center; justify-content: space-between;
  padding-top: 12px; padding-bottom: 12px;
  gap: 20px;
}
.brand{ display: flex; align-items: center; }
.brand-logo{ height: 40px; width: auto; display:block; }

.main-nav{
  display: flex; align-items: center; gap: 30px;
}
.main-nav > ul{
  list-style: none; display: flex; align-items: center; gap: 28px; margin: 0; padding: 0;
}
.main-nav > ul > li{ display: flex; align-items: center; }
.main-nav > ul > li > a{
  font-weight: 600; font-size: 15px; color: var(--ink);
  position: relative; padding: 4px 0;
}
.main-nav > ul > li > a::after, .main-nav .dropdown-toggle::after{
  content: ""; position: absolute; left: 0; bottom: -2px;
  width: 0; height: 3px; border-radius: 2px; background: var(--green);
  transition: width .2s ease;
}
.main-nav > ul > li > a:hover::after,
.main-nav > ul > li > a[aria-current="page"]::after,
.main-nav .dropdown-toggle:hover::after,
.main-nav .dropdown-toggle[aria-current="page"]::after{ width: 100%; }
.main-nav > ul > li > a[aria-current="page"],
.main-nav .dropdown-toggle[aria-current="page"]{ color: var(--green-dark); }

/* ---------- dropdown: Cursos ---------- */
.has-dropdown{ position: relative; }
.dropdown-toggle{
  display: inline-flex; align-items: center; gap: 5px;
  background: none; border: none; cursor: pointer;
  font-family: inherit; font-weight: 600; font-size: 15px; color: var(--ink);
  padding: 4px 0; line-height: inherit;
}
.dropdown-toggle svg{ width: 15px; height: 15px; transition: transform .18s ease; flex: none; }
.dropdown-menu{
  list-style: none; margin: 0; padding: 10px;
  position: absolute; top: calc(100% + 14px); left: 50%;
  transform: translate(-50%, 8px);
  min-width: 240px;
  background: var(--white);
  border: 1.5px solid var(--paper-line);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-pop);
  opacity: 0; visibility: hidden;
  transition: opacity .16s ease, transform .16s ease, visibility .16s;
  z-index: 60;
}
.has-dropdown:hover .dropdown-menu,
.has-dropdown:focus-within .dropdown-menu,
.has-dropdown.open .dropdown-menu{
  opacity: 1; visibility: visible; transform: translate(-50%, 0);
}
.has-dropdown:hover .dropdown-toggle svg,
.has-dropdown:focus-within .dropdown-toggle svg,
.has-dropdown.open .dropdown-toggle svg{ transform: rotate(180deg); }
.dropdown-menu li{ list-style: none; }
.dropdown-menu a{
  display: block; padding: 10px 14px; border-radius: 8px;
  font-size: 14.5px; font-weight: 600; color: var(--ink);
  white-space: nowrap;
  transition: background .18s ease, color .18s ease;
}
.dropdown-menu a:hover{ background: var(--green-pale); color: var(--green-dark); }
.dropdown-menu a.dd-ingles:hover{ background: rgba(47,111,228,0.24); color: var(--c-ingles-dark); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.dropdown-menu a.dd-vestibular:hover{ background: rgba(124,58,237,0.24); color: var(--c-vestibular-dark); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.dropdown-menu a.dd-reforco:hover{ background: rgba(216,19,36,0.22); color: var(--c-reforco-dark); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.dropdown-menu a.dd-enem:hover{ background: rgba(27,111,44,0.22); color: var(--c-enem-dark); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.dropdown-menu a.dd-idiomas:hover{ background: rgba(226,134,31,0.26); color: var(--c-idiomas-dark); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.dropdown-menu a.dd-portugues:hover{ background: rgba(14,128,116,0.24); color: var(--c-portugues-dark); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.dropdown-menu a.dd-tdah:hover{ background: rgba(162,28,175,0.22); color: var(--c-tdah-dark); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.dropdown-menu a.dd-alfabetizacao:hover{ background: rgba(2,132,199,0.24); color: var(--c-alfabetizacao-dark); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }

@media (max-width: 900px){
  .dropdown-menu{
    position: static; transform: none; opacity: 1; visibility: visible;
    max-height: 0; overflow: hidden; padding: 0 0 0 14px;
    border: none; box-shadow: none; min-width: 0;
    transition: max-height .22s ease;
  }
  .has-dropdown:hover .dropdown-menu,
  .has-dropdown:focus-within .dropdown-menu,
  .has-dropdown.open .dropdown-menu{ transform: none; opacity: 1; visibility: visible; }
  .has-dropdown.open .dropdown-menu{ max-height: 420px; padding: 6px 0 6px 14px; }
  .dropdown-menu a{ padding: 9px 0; font-size: 16px; }
  .dropdown-toggle svg{ transition: transform .18s ease; }
  .has-dropdown.open .dropdown-toggle svg{ transform: rotate(180deg); }
}

.btn{
  display: inline-flex; align-items: center; gap: 9px;
  font-family: var(--font-body); font-weight: 700; font-size: 15px;
  padding: 14px 28px;
  border-radius: 999px;
  border: 2px solid transparent;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
  white-space: nowrap;
}
.btn-primary{
  background: #1FA24E;
  color: var(--white);
  box-shadow: 0 3px 8px rgba(13,62,26,0.35);
}
.btn-primary:hover{ transform: translateY(-2px); background: #187F3D; box-shadow: 0 6px 14px rgba(13,62,26,0.4); }
.btn-primary:active{ transform: translateY(0); }
.btn-ghost{
  background: transparent; color: var(--ink); border-color: var(--paper-line);
}
.btn-ghost:hover{ border-color: var(--green); color: var(--green-dark); background: var(--green-pale); }
.btn-sm{ padding: 12px 24px; font-size: 14px; }
.btn svg{ width: 18px; height: 18px; flex: none; }

.nav-toggle{
  display: none;
  background: none; border: 1.5px solid var(--paper-line); border-radius: 10px;
  width: 44px; height: 40px; cursor: pointer;
  align-items: center; justify-content: center;
  color: var(--ink);
}
.nav-toggle svg{ width: 22px; height: 22px; }

@media (max-width: 900px){
  .main-nav{
    position: fixed; inset: 65px 0 auto 0;
    background: var(--white);
    flex-direction: column; align-items: stretch;
    padding: 20px 24px 28px;
    border-bottom: 1px solid var(--paper-line);
    box-shadow: 0 18px 30px -14px rgba(14,40,20,0.18);
    transform: translateY(-130%);
    transition: transform .25s ease;
    gap: 18px;
  }
  .main-nav.open{ transform: translateY(0); }
  .main-nav > ul{ flex-direction: column; align-items: stretch; gap: 16px; font-size: 18px; }
  .main-nav > ul > li{ align-items: flex-start; }
  .main-nav .btn{ align-self: flex-start; }
  .nav-toggle{ display: inline-flex; }
}

/* ============ HERO ============ */
.hero{
  position: relative;
  overflow: hidden;
  padding: 48px 0 40px;
  min-height: 0;
  display: grid;
  align-items: center;
  color: var(--white);
}
.hero-bg{ position: absolute; inset: 0; z-index: 0; }
.hero-slide{
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: 0;
  transform: scale(1.06);
  filter: blur(3px) saturate(1.05);
  transition: opacity 1.8s ease;
}
.hero-slide.active{ opacity: 1; }
.hero-scrim{
  position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(112deg, rgba(9,22,13,0.92) 0%, rgba(9,22,13,0.74) 36%, rgba(9,22,13,0.44) 62%, rgba(9,22,13,0.22) 100%);
}

.hero .container{ position: relative; z-index: 2; }
.hero-grid{
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 48px;
  align-items: center;
}
.hero-copy{ max-width: 560px; }
.hero h1{
  font-size: clamp(36px, 4.6vw, 56px);
  max-width: 15ch;
  color: var(--white);
}
.hero .eyebrow{ color: #93E8A0; }
.hero .eyebrow::before{ background: #93E8A0; }
.hero .hero-highlight{ color: #93E8A0; }
.hero-lede{
  font-size: 19px;
  color: rgba(255,255,255,0.86);
  max-width: 46ch;
  margin-bottom: 1.6em;
}
.hero-ctas{
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  margin-bottom: 26px;
}
.hero .btn-ghost{
  background: rgba(255,255,255,0.08);
  color: var(--white);
  border-color: rgba(255,255,255,0.55);
}
.hero .btn-ghost:hover{ background: rgba(255,255,255,0.18); border-color: var(--white); color: var(--white); }
.hero .small-note{ color: rgba(255,255,255,0.74); }

/* ---- fixed portrait of Elza, second column ---- */
.hero-figure{ position: relative; max-width: 420px; margin: 0 auto; }
.hero-elza-card{
  position: relative; width: 100%; max-width: 420px; margin: 0;
  border-radius: 28px; overflow: hidden;
  border: 4px solid rgba(255,255,255,0.9);
  box-shadow: 0 30px 60px -20px rgba(0,0,0,0.55);
}
.hero-elza-card img{ width: 100%; aspect-ratio: 4/5; object-fit: cover; display: block; }
.hero-elza-card figcaption{
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 40px 20px 16px;
  background: linear-gradient(0deg, rgba(9,22,13,0.9) 0%, rgba(9,22,13,0) 100%);
  color: var(--white);
}
.hero-elza-card figcaption strong{ display: block; font-family: var(--font-hand); font-size: 21px; font-weight: 600; }
.hero-elza-card figcaption span{ font-size: 12px; color: rgba(255,255,255,0.82); font-family: var(--font-mono); letter-spacing: .03em; }

.hero-stamp{
  position: absolute;
  z-index: 3;
  top: -18px; right: -4px;
  width: 112px; height: 112px;
  border-radius: 50%;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; line-height: 1.15;
  background: var(--white);
  border: 5px solid var(--green-pale);
  box-shadow: var(--shadow-card);
  font-family: var(--font-mono);
  color: var(--green-dark);
}
.hero-stamp strong{ font-size: 24px; display:block; color: var(--green-dark); }
.hero-stamp span{ font-size: 9px; letter-spacing: .07em; text-transform: uppercase; color: var(--ink-soft); }

.doodle{ position: absolute; opacity: .9; pointer-events: none; }
@media (prefers-reduced-motion: no-preference){
  .doodle.float{ animation: floaty 6.5s ease-in-out infinite; }
}
@keyframes floaty{
  0%,100%{ transform: translateY(0) rotate(var(--r,0deg)); }
  50%{ transform: translateY(-10px) rotate(var(--r,0deg)); }
}

@media (max-width: 1080px){
  .hero{ padding: 96px 0 64px; min-height: 0; }
  .hero-scrim{ background: linear-gradient(180deg, rgba(9,22,13,0.6) 0%, rgba(9,22,13,0.86) 55%, rgba(9,22,13,0.94) 100%); }
  .hero-grid{ grid-template-columns: 1fr; gap: 40px; text-align: center; }
  .hero-copy{ max-width: none; margin: 0 auto; }
  .hero .eyebrow, .hero-ctas{ justify-content: center; }
  .hero-lede{ margin-left: auto; margin-right: auto; }
  .hero-figure{ max-width: 280px; margin: 0 auto; }
  .hero-stamp{ display: none; }
}

@media (max-width: 640px){
  .hero{ padding-top: 56px; }
}

/* ============ SECTIONS ============ */
section{ padding: 88px 0; position: relative; }
.section-alt{ background: var(--paper-deep); }
.section-head{ max-width: 640px; margin-bottom: 48px; }
.section-head.center{ margin-left: auto; margin-right: auto; text-align: center; }
.section-head h2{ font-size: clamp(29px, 3.6vw, 40px); }
.section-head p{ color: var(--ink-soft); font-size: 18px; }

/* ---------- subject pill strip ---------- */
.tab-strip{
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 12px;
  padding: 4px;
}
.tab-chip{
  display: flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 23px;
  font-weight: 600;
  padding: 12px 16px;
  border-radius: 999px;
  border: 1.5px solid var(--paper-line);
  background: var(--white);
  color: var(--ink);
  white-space: nowrap;
  cursor: default;
  transition: border-color .15s ease, color .15s ease, background .15s ease, transform .18s ease, box-shadow .18s ease;
}
.tab-chip svg{ width: 16px; height: 16px; flex: none; }
.tab-chip:hover{ transform: translateY(-3px); box-shadow: var(--shadow-card); }
.tab-chip:nth-child(5n+1){ border-color: #CFE6D2; color: var(--green-dark); }
.tab-chip:nth-child(5n+2){ border-color: #C9DCEE; color: var(--navy-dark); }
.tab-chip:nth-child(5n+3){ border-color: #F0CACD; color: var(--red-dark); }
.tab-chip:nth-child(5n+4){ border-color: #CFE6D2; color: var(--green-dark); }
.tab-chip:nth-child(5n+5){ border-color: #C9DCEE; color: var(--navy-dark); }

@media (max-width: 900px){
  .tab-strip{ grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 560px){
  .tab-strip{ grid-template-columns: repeat(2, 1fr); }
}

/* ---------- cursos grid ---------- */
.curso-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 22px;
}
.curso-grid-3col{ grid-template-columns: repeat(3, 1fr); }
.curso-grid-4col{ grid-template-columns: repeat(4, 1fr); }
@media (max-width: 980px){
  .curso-grid-4col{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 860px){
  .curso-grid-3col{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px){
  .curso-grid-3col{ grid-template-columns: 1fr; }
  .curso-grid-4col{ grid-template-columns: 1fr; }
}
.curso-card{
  background: var(--cream-card);
  border: 1.5px solid var(--paper-line);
  border-radius: var(--radius);
  padding: 28px 24px 24px;
  position: relative;
  box-shadow: var(--shadow-card);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.curso-card:hover{ transform: translateY(-5px); box-shadow: var(--shadow-pop); border-color: var(--green-pale); }
.curso-icon{
  width: 48px; height: 48px;
  border-radius: 16px;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 18px;
  color: var(--white);
}
.curso-card h3{ font-size: 21px; margin-bottom: .4em; }
.curso-card p{ color: var(--ink-soft); font-size: 15px; margin-bottom: 1.2em; }
.curso-card .tag-list{ display:flex; flex-wrap:wrap; gap:7px; margin-bottom: 1.2em; }
.tag{
  font-family: var(--font-mono); font-size: 11.5px; font-weight:600;
  padding: 4px 10px; border-radius: 999px;
  color: var(--green-dark); background: var(--green-pale);
}
.tag-green{ color: var(--green-dark); background: var(--green-pale); }
.tag-navy{ color: var(--navy-dark); background: var(--navy-pale); }
.tag-red{ color: var(--red-dark); background: var(--red-pale); }
.curso-card .curso-link{
  font-weight: 700; font-size: 14.5px; color: var(--green-dark);
  display: inline-flex; align-items: center; gap: 6px;
}
.curso-card .curso-link svg{ width: 16px; height: 16px; transition: transform .15s ease; }
.curso-card:hover .curso-link svg{ transform: translateX(4px); }

.icon-red{ background: linear-gradient(135deg,#EA2E3C,var(--red)); }
.icon-green{ background: linear-gradient(135deg,var(--green-light),var(--green)); }
.icon-gold{ background: linear-gradient(135deg,#2196C4,var(--navy)); color:#fff; }
.icon-sky{ background: linear-gradient(135deg,#2196C4,var(--navy)); }

/* ---------- mural de recados (depoimentos) ---------- */
.mural{
  background: linear-gradient(160deg, var(--green-dark) 0%, var(--green) 100%);
  position: relative;
}
.mural::before{
  content: "";
  position: absolute; inset: 0;
  background-image: radial-gradient(rgba(255,255,255,0.10) 1px, transparent 1px);
  background-size: 16px 16px;
  opacity: .6;
}
.mural .section-head h2, .mural .section-head p{ color: var(--white); }
.mural .section-head p{ color: #DCEFE0; }
.mural .eyebrow{ color: #C9F2CF; }
.mural .eyebrow::before{ background: #C9F2CF; }

.note-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 40px 26px;
  position: relative; z-index: 1;
}
.note{
  background: var(--cream-card);
  padding: 24px 22px 22px;
  box-shadow: 0 18px 34px -12px rgba(6,20,10,0.4);
}
.note:nth-child(1){ transform: rotate(-1.4deg); }
.note:nth-child(2){ transform: rotate(1deg); }
.note:nth-child(3){ transform: rotate(-.8deg); }
.note:nth-child(4){ transform: rotate(1.4deg); }
.note:hover{ transform: rotate(0) translateY(-4px); transition: transform .2s ease; }
.note-pin{ display:none; }
.note-quote{
  font-family: var(--font-hand);
  font-weight: 600;
  font-size: 21px;
  line-height: 1.35;
  color: var(--ink);
  margin-bottom: 14px;
}
.note-person{ display: flex; align-items: center; gap: 10px; }
.note-person img{
  width: 42px; height: 42px; border-radius: 50%; object-fit: cover;
  border: 2px solid var(--green-pale);
}
.note-person .name{ font-weight: 700; font-size: 14.5px; }
.note-person .meta{ font-size: 12.5px; color: var(--ink-soft); font-family: var(--font-mono); }

/* ---------- stamp stats ---------- */
.stamp-strip{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
  text-align: center;
}
.stamp{
  background: var(--white);
  border: 1.5px solid var(--paper-line);
  border-radius: 26px;
  aspect-ratio: 1;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 10px;
  box-shadow: var(--shadow-card);
}
.stamp strong{
  font-family: var(--font-display); font-size: clamp(26px,3vw,36px); display:block; color: var(--green-dark);
}
.stamp span{ font-size: 12.5px; font-weight: 600; color: var(--ink-soft); max-width: 12ch; }

@media (max-width: 780px){
  .stamp-strip{ grid-template-columns: repeat(2, 1fr); gap: 16px; }
}

/* ---------- final cta band ---------- */
.cta-band{
  background: linear-gradient(155deg, var(--green-dark) 0%, var(--green) 100%);
  color: var(--white);
  text-align: center;
  padding: 76px 0;
  position: relative;
  overflow: hidden;
}
.cta-band::before{
  content:"";
  position:absolute; inset:0;
  background: radial-gradient(520px 320px at 50% 0%, rgba(255,255,255,0.18), transparent 70%);
}
.cta-band .container{ position: relative; z-index: 1; }
.cta-band h2{ color: var(--white); font-size: clamp(28px,4vw,40px); }
.cta-band p{ color: var(--footer-text); font-size: 18px; max-width: 50ch; margin: 0 auto 1.8em; }
.cta-band .eyebrow{ color: #9FE6AC; justify-content: center; }
.cta-band .eyebrow::before{ background: #9FE6AC; }

/* ---------- team ---------- */
.team-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 26px;
}
.team-card{ text-align: center; }
.team-photo{
  width: 100%; aspect-ratio: 1; border-radius: 50%; overflow: hidden;
  border: 4px solid var(--green-pale); margin-bottom: 16px;
  box-shadow: var(--shadow-card);
}
.team-photo img{ width:100%; height:100%; object-fit: cover; }
.team-card h3{ font-size: 19px; margin-bottom: .2em; }
.team-card .role{ font-family: var(--font-mono); font-size: 12.5px; color: var(--green-dark); font-weight:600; }
.team-card p{ font-size: 13.5px; color: var(--ink-soft); margin: 10px 0 0; line-height: 1.5; }

/* ---------- generic content blocks ---------- */
.split{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: center;
}
.split.reverse .split-media{ order: 2; }
.split-media img{
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  width: 100%; aspect-ratio: 4/3; object-fit: cover;
  border: 1.5px solid var(--paper-line);
}
.split h2{ font-size: clamp(28px,3.6vw,38px); }
.split ul{ padding-left: 0; list-style:none; margin: 1.4em 0; }
.split ul li{
  display:flex; gap: 10px; align-items:flex-start;
  margin-bottom: .7em; color: var(--ink-soft);
}
.split ul li svg{ flex:none; width:20px; height:20px; color: var(--green); margin-top: 2px; }

@media (max-width: 860px){
  .split, .split.reverse{ grid-template-columns: 1fr; }
  .split.reverse .split-media{ order: 0; }
}

/* ---------- page hero (páginas internas) ---------- */
.page-hero{
  padding: 84px 0 78px;
  margin-bottom: 48px;
  position: relative;
  overflow: hidden;
}
.page-hero::before{
  content: "";
  position: absolute; inset: -20px;
  background-image: url(/images/hero1.jpg);
  background-size: cover;
  background-position: center 30%;
  filter: blur(7px) saturate(1.05);
  transform: scale(1.06);
  z-index: 0;
}
.page-hero::after{
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(100deg, var(--paper) 0%, var(--paper) 40%, rgba(255,255,255,0.86) 62%, rgba(255,255,255,0.58) 100%);
  z-index: 1;
}
.page-hero .container{ position: relative; z-index: 2; }
.page-hero .eyebrow{ margin-bottom: .6em; }
.page-hero h1{ font-size: clamp(32px,4.6vw,50px); max-width: 20ch; }
.page-hero p{ color: var(--ink-soft); font-size: 18px; max-width: 56ch; }
.breadcrumb.breadcrumb{
  font-family: var(--font-body); font-size: 12.5px; font-weight: 600;
  color: var(--ink-soft);
  margin-bottom: 20px;
}
.breadcrumb a{ color: var(--green-dark); font-weight: 700; }
.breadcrumb a:hover{ text-decoration: underline; text-underline-offset: 2px; }

@media (max-width: 640px){
  .page-hero::after{ background: linear-gradient(180deg, var(--paper) 15%, rgba(255,255,255,0.82) 55%, rgba(255,255,255,0.6) 100%); }
}

.page-hero-media .container{
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 44px;
  align-items: center;
}
.page-hero-media-img{
  background: var(--white);
  border-radius: var(--radius);
  border: 1.5px solid var(--paper-line);
  box-shadow: var(--shadow-card);
  padding: 20px;
  aspect-ratio: 1;
}
.page-hero-media-img img{ width: 100%; height: 100%; object-fit: contain; display: block; }
@media (max-width: 900px){
  .page-hero-media .container{ grid-template-columns: 1fr; }
  .page-hero-media-img{ max-width: 320px; margin: 8px auto 0; }
}

/* ---------- contact ---------- */
.contact-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 46px;
  align-items: flex-start;
}
.contact-card{
  background: var(--cream-card);
  border: 1.5px solid var(--paper-line);
  border-radius: var(--radius);
  padding: 30px;
  box-shadow: var(--shadow-card);
}
.info-row{
  display:flex; gap: 14px; align-items:flex-start; padding: 14px 0;
  border-bottom: 1px solid var(--paper-line);
}
.info-row:last-child{ border-bottom:none; }
.info-row svg{ width:22px; height:22px; color: var(--green); flex:none; margin-top:3px; }
.info-row strong{ display:block; font-size: 14.5px; }
.info-row span, .info-row a{ color: var(--ink-soft); font-size: 15px; }
.info-row a:hover{ color: var(--green-dark); }

.field{ margin-bottom: 18px; }
.field label{ display:block; font-weight:700; font-size:14.5px; margin-bottom:6px; }
.field input, .field textarea, .field select{
  width: 100%;
  font-family: var(--font-body);
  font-size: 15.5px;
  padding: 12px 14px;
  border: 1.5px solid var(--paper-line);
  border-radius: var(--radius-sm);
  background: var(--white);
  color: var(--ink);
  resize: vertical;
}
.field select{
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2359635B' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 18px;
  padding-right: 40px;
}
.field input:focus, .field textarea:focus, .field select:focus{ outline: 3px solid var(--navy-pale); border-color: var(--navy); }
.form-note{ font-size: 13px; color: var(--ink-soft); margin-top: 10px; }

@media (max-width: 860px){ .contact-grid{ grid-template-columns: 1fr; } }

/* ---------- footer ---------- */
.site-footer{
  background: var(--footer-bg);
  color: var(--footer-text);
  padding: 60px 0 26px;
}
.footer-grid{
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 40px;
  padding-bottom: 40px;
  border-bottom: 1px solid rgba(255,255,255,0.12);
}
.footer-logo-plate{ display: inline-flex; }
.footer-logo-plate .brand-logo{ height: 36px; }
.footer-brand p{ color: #96A69B; font-size: 14.5px; max-width: 32ch; margin-top: 16px; }
.footer-col h4{
  color: var(--white); font-family: var(--font-mono); font-size: 13px;
  letter-spacing: .08em; text-transform: uppercase; margin-bottom: 16px;
}
.footer-col ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap: 10px; }
.footer-col a{ color: #B7C6BA; font-size: 14.5px; }
.footer-col a:hover{ color: var(--green-light); }
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap: 10px;
  padding-top: 22px;
  font-size: 13px; color: #7B8C7E;
}
.footer-bottom a{ color: #7B8C7E; }
.footer-bottom a:hover{ color: var(--white); }

@media (max-width: 860px){
  .footer-grid{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 540px){
  .footer-grid{ grid-template-columns: 1fr; }
}

/* ---------- whatsapp float ---------- */
.wa-float{
  position: fixed; right: 20px; bottom: 20px; z-index: 60;
  width: 60px; height: 60px; border-radius: 50%;
  background: #1FA24E;
  color: var(--white);
  display:flex; align-items:center; justify-content:center;
  box-shadow: 0 8px 18px rgba(13,62,26,0.4);
  border: 3px solid var(--white);
}
.wa-float svg{ width: 28px; height: 28px; }
.wa-float:hover{ transform: scale(1.06); }

@media (max-width: 640px){
  .wa-float{
    left: 0; right: 0; bottom: 0; top: auto;
    width: 100%; height: 56px;
    border-radius: 0;
    border: none; border-top: 1px solid rgba(255,255,255,0.35);
    flex-direction: row; gap: 10px;
    font-family: var(--font-body); font-weight: 700; font-size: 15.5px;
    box-shadow: 0 -6px 18px rgba(13,62,26,0.28);
  }
  .wa-float svg{ width: 22px; height: 22px; }
  .wa-float::after{ content: "Falar no WhatsApp"; }
  .wa-float:hover{ transform: none; }
  body{ padding-bottom: 56px; }
}

/* ---------- cookie banner (LGPD) ---------- */
.cookie-banner{
  display: none;
  position: fixed; bottom: 0; left: 0; right: 0; top: auto; z-index: 70;
  background: var(--ink, #1a1a1a);
  color: rgba(255,255,255,0.92);
  padding: 14px 20px;
  gap: 12px 24px;
  align-items: center; justify-content: center;
  flex-wrap: wrap;
  text-align: center;
  box-shadow: 0 -4px 16px rgba(0,0,0,0.25);
}
.cookie-banner.show{ display: flex; }
.cookie-banner p{ margin: 0; font-size: 14px; max-width: 640px; }
.cookie-banner p a{ color: var(--white); text-decoration: underline; }
.cookie-banner-actions{ display: flex; gap: 10px; flex-shrink: 0; }
.cookie-banner .btn-ghost{ color: rgba(255,255,255,0.9); border-color: rgba(255,255,255,0.4); }
.cookie-banner .btn-ghost:hover{ background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.7); color: var(--white); }

/* Evita sobrepor o botão flutuante do WhatsApp (desktop) */
@media (min-width: 641px){
  body:has(.cookie-banner.show) .wa-float{ bottom: 92px; }
}

@media (max-width: 640px){
  .cookie-banner{ padding: 12px 16px; bottom: 56px; }
  .cookie-banner p{ font-size: 13px; }
}

/* ---------- reveal on scroll ---------- */
.reveal{ opacity: 0; transform: translateY(16px); transition: opacity .5s ease, transform .5s ease; }
.reveal.in{ opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity: 1; transform: none; transition: none; }
}

/* ---------- utility ---------- */
.mt-0{ margin-top:0; }
.center-text{ text-align:center; }
.small-note{ font-size: 13.5px; color: var(--ink-soft); }

/* ---------- related courses strip ---------- */
.related-strip{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 16px;
}
.related-card{
  display: flex; align-items: center; gap: 12px;
  background: var(--white);
  border: 1.5px solid var(--paper-line);
  border-radius: var(--radius-sm);
  padding: 16px 18px;
  transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
.related-card:hover{ border-color: var(--green-pale); transform: translateY(-3px); box-shadow: var(--shadow-card); }
.related-card .curso-icon{ width: 38px; height: 38px; margin-bottom: 0; border-radius: 12px; }
.related-card span{ font-weight: 700; font-size: 15px; }

/* ---------- blog ---------- */
.blog-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 26px;
}
.blog-card{
  background: var(--white);
  border: 1.5px solid var(--paper-line);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow-card);
  transition: transform .18s ease, box-shadow .18s ease;
  display: flex; flex-direction: column;
}
.blog-card:hover{ transform: translateY(-5px); box-shadow: var(--shadow-pop); }
.blog-card img{ width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.blog-card-body{ padding: 22px 22px 24px; display:flex; flex-direction:column; gap:10px; flex:1; }
.post-meta{
  font-family: var(--font-mono); font-size: 12px; color: var(--ink-soft);
  display:flex; align-items:center; gap: 10px; flex-wrap: wrap;
}
.post-meta .cat{ color: var(--green-dark); font-weight: 600; }
.blog-card h3{ font-size: 21px; margin: 0; }
.blog-card p{ color: var(--ink-soft); font-size: 15px; margin: 0; flex: 1; }
.blog-card .curso-link{ font-weight: 700; font-size: 14.5px; color: var(--green-dark); display:inline-flex; align-items:center; gap:6px; margin-top: 4px; }
.blog-card .curso-link svg{ width:16px; height:16px; }

.post-hero{ padding: 52px 0 20px; }
.post-hero h1{ font-size: clamp(30px,4.2vw,46px); max-width: 22ch; }
.post-cover{
  width: 100%; max-height: 420px; object-fit: cover;
  border-radius: var(--radius);
  border: 1.5px solid var(--paper-line);
  box-shadow: var(--shadow-card);
  margin-bottom: 8px;
}
.post-body{ max-width: 720px; font-size: 17.5px; color: var(--ink); }
.post-body h2{ font-size: 24px; margin-top: 1.5em; }
.post-body h3{ font-size: 19px; margin-top: 1.3em; color: var(--green-dark); }
.post-body p{ margin-bottom: 1.1em; color: var(--ink); }
.post-body ul, .post-body ol{ padding-left: 1.3em; margin: 0 0 1.3em; }
.post-body li{ margin-bottom: .5em; color: var(--ink); }
.post-body li strong{ color: var(--ink); }
.post-body a{ color: var(--green-dark); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.post-body .table-scroll{ overflow-x: auto; margin: 1.6em 0; border-radius: var(--radius-sm); border: 1.5px solid var(--paper-line); }
.post-body table{
  width: 100%; border-collapse: collapse; font-size: 15px; min-width: 480px;
}
.post-body th{
  background: var(--green-pale); color: var(--green-dark);
  text-align: left; padding: 12px 16px; font-weight: 700;
  border-bottom: 1.5px solid var(--paper-line);
  white-space: nowrap;
}
.post-body td{
  padding: 12px 16px; border-bottom: 1px solid var(--paper-line);
  color: var(--ink-soft);
}
.post-body tr:last-child td{ border-bottom: none; }
.post-body tr:nth-child(even) td{ background: var(--paper-deep); }
.post-cta-inline{
  display: inline-flex; align-items: center; gap: 8px;
  margin: 1.4em 0; padding: 16px 22px;
  background: var(--green-pale); border-radius: var(--radius-sm);
  font-weight: 700; color: var(--green-dark);
}
.post-cta-inline svg{ width: 20px; height: 20px; flex: none; }
.post-author{
  display:flex; align-items:center; gap: 14px;
  margin-top: 40px; padding-top: 28px; border-top: 1px solid var(--paper-line);
  max-width: 720px;
}
.post-author img{ width: 56px; height: 56px; border-radius: 50%; object-fit: cover; border: 2px solid var(--green-pale); }
.post-author strong{ display:block; font-size: 15px; }
.post-author span{ font-size: 13.5px; color: var(--ink-soft); }
.post-tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top: 26px; max-width: 720px; }

.video-embed{
  position: relative; width: 100%; padding-top: 56.25%;
  border-radius: var(--radius); overflow: hidden;
  box-shadow: var(--shadow-card); border: 1.5px solid var(--paper-line);
  margin-bottom: 8px; background: #000;
}
.video-embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }

/* ---------- teacher bio cards ---------- */
.teacher-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 24px;
}
.teacher-card{
  background: var(--white);
  border: 1.5px solid var(--paper-line);
  border-radius: var(--radius);
  padding: 26px 24px;
  box-shadow: var(--shadow-card);
  text-align: center;
}
.teacher-photo{
  width: 108px; height: 108px; border-radius: 50%; overflow: hidden;
  margin: 0 auto 16px; border: 3px solid var(--green-pale);
}
.teacher-photo img{ width:100%; height:100%; object-fit:cover; }
.teacher-card h3{ font-size: 19px; margin-bottom: .2em; }
.teacher-card .role{ font-family: var(--font-mono); font-size: 12px; color: var(--green-dark); font-weight:600; margin-bottom: 12px; display:block; }
.teacher-card p{ color: var(--ink-soft); font-size: 14.5px; text-align: left; }
.teacher-social{ display:flex; gap:10px; justify-content:center; margin-top: 14px; }
.teacher-social a{
  width: 36px; height: 36px; border-radius: 50%; background: var(--green-pale);
  color: var(--green-dark); display:flex; align-items:center; justify-content:center;
  transition: background .15s ease, color .15s ease;
}
.teacher-social a:hover{ background: var(--green); color: var(--white); }
.teacher-social svg{ width: 17px; height: 17px; }

/* ---------- chip row (programas / faixas etárias) ---------- */
.chip-row{ display:flex; flex-wrap:wrap; gap: 12px; }
.chip{
  display:flex; align-items:center; gap:8px;
  background: var(--green-pale); color: var(--green-dark);
  font-weight: 700; font-size: 14.5px;
  padding: 12px 18px; border-radius: 999px;
}
.chip svg{ width:18px; height:18px; }
.chip:nth-child(5n+2){ background: var(--navy-pale); color: var(--navy-dark); }
.chip:nth-child(5n+3){ background: var(--red-pale); color: var(--red-dark); }

/* ---------- numbered value list ---------- */
.num-list{ list-style:none; padding:0; margin: 1.4em 0; counter-reset: numlist; }
.num-list li{
  counter-increment: numlist;
  display:flex; gap: 14px; align-items:flex-start;
  margin-bottom: 1em; color: var(--ink-soft);
}
.num-list li::before{
  content: counter(numlist);
  flex: none;
  width: 28px; height: 28px; border-radius: 50%;
  background: var(--green); color: var(--white);
  font-family: var(--font-mono); font-weight:700; font-size: 13px;
  display:flex; align-items:center; justify-content:center;
}

/* ---------- university / target tags ---------- */
.uni-row{ display:flex; flex-wrap:wrap; gap:10px; }
.uni-row .tag{ font-size: 13px; padding: 7px 14px; }

/* ---------- age group split rows ---------- */
.age-row{
  display:grid; grid-template-columns: 220px 1fr; gap: 26px; align-items:center;
  padding: 26px 0; border-bottom: 1px solid var(--paper-line);
}
.age-row:last-child{ border-bottom:none; }
.age-row img{ border-radius: var(--radius-sm); width:100%; aspect-ratio:1; object-fit:cover; border:1.5px solid var(--paper-line); }
.age-row h3{ font-size: 20px; margin-bottom:.3em; }
.age-row p{ color: var(--ink-soft); margin:0; }
@media (max-width: 640px){
  .age-row{ grid-template-columns: 100px 1fr; }
}

/* ---------- legal ---------- */
.legal{ max-width: 760px; }
.legal h2{ font-size: 24px; margin-top: 1.6em; }
.legal p, .legal li{ color: var(--ink-soft); font-size: 16px; }
.legal ul{ padding-left: 1.2em; }

/* ---------- course page theming ---------- */
body.course-ingles{ --course: var(--c-ingles); --course-dark: var(--c-ingles-dark); --course-pale: var(--c-ingles-pale); }
body.course-vestibular{ --course: var(--c-vestibular); --course-dark: var(--c-vestibular-dark); --course-pale: var(--c-vestibular-pale); }
body.course-reforco{ --course: var(--c-reforco); --course-dark: var(--c-reforco-dark); --course-pale: var(--c-reforco-pale); }
body.course-enem{ --course: var(--c-enem); --course-dark: var(--c-enem-dark); --course-pale: var(--c-enem-pale); }
body.course-idiomas{ --course: var(--c-idiomas); --course-dark: var(--c-idiomas-dark); --course-pale: var(--c-idiomas-pale); }
body.course-portugues{ --course: var(--c-portugues); --course-dark: var(--c-portugues-dark); --course-pale: var(--c-portugues-pale); }
body.course-tdah{ --course: var(--c-tdah); --course-dark: var(--c-tdah-dark); --course-pale: var(--c-tdah-pale); }
body.course-alfabetizacao{ --course: var(--c-alfabetizacao); --course-dark: var(--c-alfabetizacao-dark); --course-pale: var(--c-alfabetizacao-pale); }

body[class*="course-"] .breadcrumb a{ color: var(--course); }
body[class*="course-"] .eyebrow{ color: var(--course); }
body[class*="course-"] .eyebrow::before{ background: var(--course); }
body[class*="course-"] .cta-band .eyebrow{ color: #ffffffcc; }
body[class*="course-"] .cta-band .eyebrow::before{ background: #ffffffcc; }
body[class*="course-"] .btn-primary{ background: var(--course); box-shadow: 0 3px 8px rgba(0,0,0,0.2); }
body[class*="course-"] .btn-primary:hover{ background: var(--course-dark); }
body[class*="course-"] .curso-link{ color: var(--course); }
body[class*="course-"] .curso-icon{ background: linear-gradient(135deg, var(--course), var(--course-dark)); }
body[class*="course-"] .tag{ color: var(--course-dark); background: var(--course-pale); }
body[class*="course-"] .chip{ color: var(--course-dark); background: var(--course-pale); }
body[class*="course-"] .related-card:hover{ border-color: var(--course-pale); }
body[class*="course-"] .related-card span:last-child{ color: inherit; }
body[class*="course-"] .related-card:hover span:last-child{ color: var(--course); }
body[class*="course-"] .cta-band{ background: linear-gradient(155deg, var(--course-dark) 0%, var(--course) 100%); }
body[class*="course-"] .main-nav .dropdown-toggle[aria-current="page"]{ color: var(--course); }
body[class*="course-"] .main-nav .dropdown-toggle[aria-current="page"]::after{ background: var(--course); }
body[class*="course-"] .breadcrumb a:hover{ text-decoration-color: var(--course); }

/* ---------- two-column, course-colored page-hero (sharp photo card) ---------- */
body[class*="course-"] .page-hero{
  position: relative;
  overflow: hidden;
  padding: 64px 0;
  background: var(--course-dark);
}
body[class*="course-"] .page-hero::before,
body[class*="course-"] .page-hero::after{ content: none; }
body[class*="course-"] .page-hero .container{
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 40px;
  align-items: stretch;
  min-height: 420px;
}
body[class*="course-"] .page-hero .container > div:first-child{
  align-self: center;
  max-width: 560px;
}
body[class*="course-"] .page-hero h1{ color: var(--white); }
body[class*="course-"] .page-hero p{ color: rgba(255,255,255,0.86); }
body[class*="course-"] .page-hero .eyebrow{ color: rgba(255,255,255,0.9); }
body[class*="course-"] .page-hero .eyebrow::before{ background: rgba(255,255,255,0.9); }
body[class*="course-"] .page-hero .breadcrumb{ color: rgba(255,255,255,0.7); }
body[class*="course-"] .page-hero .breadcrumb a{ color: var(--white); }
body[class*="course-"] .page-hero .small-note{ color: rgba(255,255,255,0.72); }
body[class*="course-"] .page-hero .btn-primary{ background: var(--white); color: var(--course-dark); box-shadow: 0 3px 10px rgba(0,0,0,0.25); }
body[class*="course-"] .page-hero .btn-primary:hover{ background: rgba(255,255,255,0.9); }

.page-hero-figure{ display: block; height: 100%; margin: 0; }
.page-hero-figure img{
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  border-radius: var(--radius);
  border: 4px solid rgba(255,255,255,0.85);
  box-shadow: 0 30px 60px -20px rgba(0,0,0,0.45);
}

@media (max-width: 900px){
  body[class*="course-"] .page-hero .container{ grid-template-columns: 1fr; text-align: center; min-height: 0; }
  body[class*="course-"] .page-hero .container > div:first-child{ max-width: none; margin: 0 auto; }
  body[class*="course-"] .page-hero .breadcrumb,
  body[class*="course-"] .page-hero .eyebrow,
  body[class*="course-"] .page-hero .hero-ctas{ justify-content: center; }
  .page-hero-figure{ height: 320px; }
}

/* ---------- course-colored cards (used outside body-level theming, e.g. homepage grid) ---------- */
.icon-c-ingles{ background: linear-gradient(135deg, var(--c-ingles), var(--c-ingles-dark)); }
.icon-c-vestibular{ background: linear-gradient(135deg, var(--c-vestibular), var(--c-vestibular-dark)); }
.icon-c-reforco{ background: linear-gradient(135deg, var(--c-reforco), var(--c-reforco-dark)); }
.icon-c-enem{ background: linear-gradient(135deg, var(--c-enem), var(--c-enem-dark)); }
.icon-c-idiomas{ background: linear-gradient(135deg, var(--c-idiomas), var(--c-idiomas-dark)); }
.icon-c-portugues{ background: linear-gradient(135deg, var(--c-portugues), var(--c-portugues-dark)); }
.icon-c-tdah{ background: linear-gradient(135deg, var(--c-tdah), var(--c-tdah-dark)); }
.icon-c-alfabetizacao{ background: linear-gradient(135deg, var(--c-alfabetizacao), var(--c-alfabetizacao-dark)); }

.curso-card.theme-ingles .tag{ background: var(--c-ingles-pale); color: var(--c-ingles-dark); }
.curso-card.theme-ingles .curso-link{ color: var(--c-ingles); }
.curso-card.theme-vestibular .tag{ background: var(--c-vestibular-pale); color: var(--c-vestibular-dark); }
.curso-card.theme-vestibular .curso-link{ color: var(--c-vestibular); }
.curso-card.theme-reforco .tag{ background: var(--c-reforco-pale); color: var(--c-reforco-dark); }
.curso-card.theme-reforco .curso-link{ color: var(--c-reforco); }
.curso-card.theme-enem .tag{ background: var(--c-enem-pale); color: var(--c-enem-dark); }
.curso-card.theme-enem .curso-link{ color: var(--c-enem); }
.curso-card.theme-idiomas .tag{ background: var(--c-idiomas-pale); color: var(--c-idiomas-dark); }
.curso-card.theme-idiomas .curso-link{ color: var(--c-idiomas); }
.curso-card.theme-portugues .tag{ background: var(--c-portugues-pale); color: var(--c-portugues-dark); }
.curso-card.theme-portugues .curso-link{ color: var(--c-portugues); }
.curso-card.theme-tdah .tag{ background: var(--c-tdah-pale); color: var(--c-tdah-dark); }
.curso-card.theme-tdah .curso-link{ color: var(--c-tdah); }
.curso-card.theme-alfabetizacao .tag{ background: var(--c-alfabetizacao-pale); color: var(--c-alfabetizacao-dark); }
.curso-card.theme-alfabetizacao .curso-link{ color: var(--c-alfabetizacao); }

/* ---------- whole-site color wash on nav dropdown hover ---------- */
.page-tint{
  position: fixed; inset: 0; z-index: 45;
  pointer-events: none;
  background-color: transparent;
  opacity: 0;
  transition: background-color .4s ease, opacity .4s ease;
}
.site-header{ transition: background-color .35s ease; }
@supports selector(body:has(a)){
  body:has(.dropdown-menu a.dd-ingles:hover) .page-tint{ background-color: var(--c-ingles); opacity: .16; }
  body:has(.dropdown-menu a.dd-vestibular:hover) .page-tint{ background-color: var(--c-vestibular); opacity: .16; }
  body:has(.dropdown-menu a.dd-reforco:hover) .page-tint{ background-color: var(--c-reforco); opacity: .14; }
  body:has(.dropdown-menu a.dd-enem:hover) .page-tint{ background-color: var(--c-enem); opacity: .14; }
  body:has(.dropdown-menu a.dd-idiomas:hover) .page-tint{ background-color: var(--c-idiomas); opacity: .16; }
  body:has(.dropdown-menu a.dd-portugues:hover) .page-tint{ background-color: var(--c-portugues); opacity: .16; }
  body:has(.dropdown-menu a.dd-tdah:hover) .page-tint{ background-color: var(--c-tdah); opacity: .16; }
  body:has(.dropdown-menu a.dd-alfabetizacao:hover) .page-tint{ background-color: var(--c-alfabetizacao); opacity: .16; }

  body:has(.dropdown-menu a.dd-ingles:hover) .site-header{ background: rgba(47,111,228,0.24); }
  body:has(.dropdown-menu a.dd-vestibular:hover) .site-header{ background: rgba(124,58,237,0.24); }
  body:has(.dropdown-menu a.dd-reforco:hover) .site-header{ background: rgba(216,19,36,0.22); }
  body:has(.dropdown-menu a.dd-enem:hover) .site-header{ background: rgba(27,111,44,0.22); }
  body:has(.dropdown-menu a.dd-idiomas:hover) .site-header{ background: rgba(226,134,31,0.26); }
  body:has(.dropdown-menu a.dd-portugues:hover) .site-header{ background: rgba(14,128,116,0.24); }
  body:has(.dropdown-menu a.dd-tdah:hover) .site-header{ background: rgba(162,28,175,0.22); }
  body:has(.dropdown-menu a.dd-alfabetizacao:hover) .site-header{ background: rgba(2,132,199,0.24); }
}
