/* ============================================================
   Exames Inglês Cambridge — Da Vinci Language School
   Folha de estilos principal, organizada por secções da página:
   1. Variáveis e base
   2. Botões e elementos comuns
   3. Header
   4. Hero + níveis
   5. Bloco 4 passos
   6. Cambridge / vantagens
   7. Cursos de preparação
   8. Pré-inscrição (formulário)
   9. Ferramentas
   10. Manuais oficiais
   11. Testemunhos
   12. IELTS + recrutamento
   13. Rede Da Vinci
   14. Footer
   15. Responsivo
   ============================================================ */

/* ---------- 1. Variáveis e base ---------- */
:root{
  --navy:#12325C;
  --navy-deep:#0E2748;
  --teal:#2E93A8;
  --teal-soft:#9CCBD6;
  --teal-soft-2:#B7DCE4;
  --offwhite:#F5F8FA;
  --white:#FFFFFF;
  --ink:#22303F;
  --muted:#5B6B7B;
  --line:#DCE5EB;
  --red:#C1272D;
  --coral:#EF4B5B;
  --green:#2E7D32;
  --amber:#E0A32E;
  --plum:#7B1F52;

  --lvl-pre-a1:#1B3A6B;
  --lvl-a2:#1B95A8;
  --lvl-b1:#2E7D32;
  --lvl-b2:#E0A32E;
  --lvl-c1:#C1272D;
  --lvl-c2:#7B1F52;

  --radius:10px;
  --shadow:0 6px 20px rgba(16,40,70,.08);
  --font-sans:"Barlow", "Helvetica Neue", Arial, sans-serif;
  --font-serif:"Source Serif 4", Georgia, "Times New Roman", serif;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--font-sans);
  font-size:16px;
  line-height:1.55;
  color:var(--ink);
  background:var(--white);
  overflow-x:hidden;
  text-wrap:pretty;
}
img{ max-width:100%; display:block; }
a{ color:var(--teal); text-decoration:none; }
a:hover{ color:var(--navy); text-decoration:underline; }
h1,h2,h3{ font-family:var(--font-serif); color:var(--navy); margin:0 0 .5em; line-height:1.15; }
ul,ol{ margin:0; padding:0; list-style:none; }
@media (min-width:1200px){ .container{ max-width:1180px; } }
@media (max-width:1199.98px){ .container{ padding-left:24px; padding-right:24px; } }

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

.skip-link{
  position:absolute; left:-9999px; top:0; z-index:100;
  background:var(--navy); color:#fff; padding:10px 16px;
}
.skip-link:focus{ left:8px; top:8px; }

/* Ícones lineares */
.ico{ width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.6;
  stroke-linecap:round; stroke-linejoin:round; }

.section-title{
  text-align:center; font-size:1.65rem; margin-bottom:.35em;
}
.section-title span{ font-weight:600; color:var(--muted); font-size:.95rem; font-family:var(--font-sans); }
.section-sub{ text-align:center; color:var(--muted); font-size:.92rem; margin:0 0 1.8rem; }

/* ---------- 2. Botões ---------- */
.btn{
  --bs-btn-focus-box-shadow:none;
  display:inline-flex; align-items:center; justify-content:center;
  font-family:var(--font-sans); font-weight:600; font-size:.95rem;
  padding:.6rem 1.5rem; border-radius:var(--radius);
  border:1px solid transparent; transition:transform .18s ease, background-color .18s ease, box-shadow .18s ease;
}
.btn:hover{ transform:translateY(-2px); text-decoration:none; }
.btn-navy{ background:var(--navy); color:#fff; }
.btn-navy:hover{ background:var(--navy-deep); color:#fff; }
.btn-teal{ background:var(--teal); color:#fff; }
.btn-teal:hover{ background:#25798B; color:#fff; }
.btn-light-outline{ background:var(--white); color:var(--navy); border-color:var(--line); }
.btn-light-outline:hover{ background:var(--offwhite); color:var(--navy); }

.link-cta{ font-weight:600; font-size:.9rem; color:var(--teal); }
.link-cta:hover{ color:var(--navy); text-decoration:none; }

/* ---------- 3. Header ---------- */
.site-header{
  background:#fff; border-bottom:1px solid var(--line);
  position:sticky; top:0; z-index:50;
}
.site-header .navbar{ padding:.6rem 0; }
.brand{ display:flex; align-items:center; padding:0; }
.brand img{ width:auto; height:44px; }
.brand__text strong{ display:block; font-family:var(--font-serif); font-size:1.35rem; color:var(--navy); line-height:1; }
.brand__text small{ display:block; font-size:.78rem; letter-spacing:.02em; color:var(--muted); }
.main-nav{ gap:0; flex-wrap:nowrap; }
.main-nav .nav-link{
  position:relative; display:inline-block; color:var(--navy); font-weight:600;
  font-size:.88rem; letter-spacing:.01em; white-space:nowrap;
  padding:.65rem .55rem; transition:color .2s ease;
}
.main-nav .nav-link::after{
  content:""; position:absolute; left:50%; right:50%; bottom:.35rem; height:2px;
  background:var(--teal); border-radius:2px; transition:left .22s cubic-bezier(.4,0,.2,1), right .22s cubic-bezier(.4,0,.2,1);
}
.main-nav .nav-link:hover{ color:var(--teal); }
.main-nav .nav-link:hover::after, .main-nav .nav-link.active::after{ left:.55rem; right:.55rem; }
.main-nav .nav-link.active{ color:var(--teal); }
.header-cta{ margin-left:1rem; padding:.55rem 1.15rem; font-size:.88rem; white-space:nowrap; }

@media (max-width:1199.98px){
  .main-nav .nav-link{ font-size:.82rem; padding:.65rem .4rem; }
}
@media (max-width:991.98px){
  .brand img{ height:40px; }
  .main-nav{ gap:0; flex-wrap:wrap; }
  .main-nav .nav-link{ padding:.55rem 0; font-size:.95rem; white-space:normal; }
  .main-nav .nav-link::after{ display:none; }
}
@media (max-width:575.98px){
  .brand img{ height:32px; }
}

/* ---------- 4. Hero ---------- */
.hero{ position:relative; background:var(--navy-deep); color:#fff; overflow:hidden; }
.hero__media{
  position:absolute; inset:0;
  background-image:url("../img/hero-alunos.jpg");
  background-size:cover;
  background-position:72% center;
  background-repeat:no-repeat;
}
.hero__media::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(255,255,255,.94) 0%, rgba(255,255,255,.86) 34%, rgba(255,255,255,.35) 52%, rgba(255,255,255,0) 66%);
}
.hero__inner{ position:relative; padding:3.5rem 0 3rem; }
.hero__content{ max-width:640px; }
.hero__title{ font-size:2.6rem; line-height:1.15; color:var(--navy); margin-bottom:.35em; }
.hero__lead{ font-family:var(--font-serif); font-weight:600; font-size:1.35rem; color:var(--navy); margin-bottom:1.6rem; }

/* Níveis */
.levels{ display:flex; flex-wrap:wrap; gap:.7rem; margin-bottom:1.8rem; }
.level{
  width:74px; height:74px; border-radius:50%; color:#fff;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; line-height:1.1; transition:transform .18s ease, box-shadow .18s ease;
  box-shadow:0 4px 12px rgba(10,30,60,.18);
}
.level:hover{ transform:translateY(-4px) scale(1.04); color:#fff; text-decoration:none; box-shadow:0 8px 18px rgba(10,30,60,.28); }
.level__code{ font-family:var(--font-serif); font-weight:700; font-size:1.15rem; }
.level__name{ font-size:.68rem; font-weight:600; }
.level--pre-a1{ background:var(--lvl-pre-a1); }
.level--a2{ background:var(--lvl-a2); }
.level--b1{ background:var(--lvl-b1); }
.level--b2{ background:var(--lvl-b2); }
.level--c1{ background:var(--lvl-c1); }
.level--c2{ background:var(--lvl-c2); }

.hero__actions{ display:flex; flex-wrap:wrap; gap:.8rem; }
.hero__actions .btn{ min-width:180px; box-shadow:var(--shadow); }

/* ---------- 5. Bloco 4 passos ---------- */
.steps{ background:var(--navy); color:#fff; padding:2.6rem 0; }
.steps__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
.step{ padding:0 1.8rem; border-left:1px solid rgba(255,255,255,.18); }
.step:first-child{ border-left:0; padding-left:0; }
.step__icon{ display:block; width:32px; height:32px; color:var(--teal-soft); margin-bottom:.9rem; }
.step__title{ color:#fff; font-size:1.05rem; margin-bottom:.4rem; }
.step p{ color:rgba(255,255,255,.8); font-size:.88rem; margin:0; }

/* ---------- 6. Cambridge / vantagens ---------- */
.advantages{ background:var(--offwhite); padding:3rem 0; }
.advantages__grid{
  display:grid; grid-template-columns:1fr 1.15fr 1.25fr; gap:2.2rem; align-items:start;
}
.advantages__text p{ font-size:1rem; color:var(--ink); line-height:1.8; }
.advantages__text a{ color:var(--teal); font-weight:600; }
.advantages__figure{ margin:0; }
.advantages__figure img{ width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; object-position:center 18%; border-radius:6px; box-shadow:var(--shadow); }
.features{ display:grid; gap:1rem; }
.feature{ display:flex; gap:.85rem; align-items:flex-start; }
.feature__icon{ flex:0 0 30px; width:30px; height:30px; color:var(--teal); }
.feature h3{ font-size:.98rem; color:var(--teal); margin:0 0 .15rem; }
.feature p{ margin:0; font-size:.83rem; color:var(--muted); line-height:1.45; }

/* ---------- 7. Cursos de preparação ---------- */
.courses{ position:relative; background:var(--offwhite); padding:1rem 0 3.6rem; overflow:hidden; }
.courses::before{
  content:""; position:absolute; inset:-8% -8% auto -8%; height:460px; z-index:0; pointer-events:none;
  background:
    radial-gradient(36% 65% at 18% 15%, rgba(46,147,168,.18), transparent 70%),
    radial-gradient(30% 55% at 82% 5%, rgba(18,50,92,.14), transparent 70%);
}
.courses .container{ position:relative; z-index:1; }
.courses__intro{ text-align:center; color:var(--muted); font-size:.95rem; max-width:640px; margin:0 auto 2.2rem; }
.courses__intro strong{ color:var(--navy); }

.course-accordion{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; align-items:start; }
.course-accordion__col{ display:flex; flex-direction:column; gap:1rem; }

.course-row{
  --accent:var(--lvl-pre-a1);
  background:rgba(255,255,255,.72); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.7); border-radius:20px; overflow:hidden;
  box-shadow:0 4px 16px rgba(16,40,70,.07);
  transition:box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}
.course-row:hover{ transform:translateY(-2px); box-shadow:0 10px 26px rgba(16,40,70,.13); }
.course-row.is-open{ border-color:color-mix(in srgb, var(--accent) 40%, white); box-shadow:0 14px 30px rgba(16,40,70,.15); }

.course-row--pre-a1{ --accent:var(--lvl-pre-a1); }
.course-row--a2{ --accent:var(--lvl-a2); }
.course-row--b1{ --accent:var(--lvl-b1); }
.course-row--b2{ --accent:var(--lvl-b2); }
.course-row--c1{ --accent:var(--lvl-c1); }
.course-row--c2{ --accent:var(--lvl-c2); }

.course-row__head{
  width:100%; display:flex; align-items:center; gap:.9rem; background:transparent; border:0;
  padding:1rem 1.1rem; cursor:pointer; text-align:left; font-family:var(--font-sans);
}
.course-row__icon{
  width:42px; height:42px; flex:0 0 42px; border-radius:14px; display:flex; align-items:center; justify-content:center;
  color:#fff; background:linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--accent) 55%, white));
}
.course-row__icon .ico{ width:20px; height:20px; }
.course-row__title{ flex:1; display:flex; flex-direction:column; line-height:1.3; }
.course-row__title strong{ font-family:var(--font-serif); font-size:1.05rem; color:var(--navy); }
.course-row__title small{ font-size:.78rem; color:var(--muted); font-weight:500; }
.course-row__toggle{
  flex:0 0 auto; height:32px; border-radius:999px; background:var(--offwhite); color:var(--navy);
  display:flex; align-items:center; justify-content:center; gap:.35rem; padding:0 .3rem 0 .7rem;
  transition:background-color .25s ease, color .25s ease;
}
.course-row__toggle-label{ font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em; }
.course-row__toggle .ico{ width:15px; height:15px; flex:0 0 15px; transition:transform .3s ease; }
.course-row.is-open .course-row__toggle{ background:var(--accent); color:#fff; }
.course-row.is-open .course-row__toggle .ico{ transform:rotate(180deg); }

.course-row__collapse{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .35s cubic-bezier(.4,0,.2,1); }
.course-row.is-open .course-row__collapse{ grid-template-rows:1fr; }
.course-row__collapse-inner{ overflow:hidden; }
.course-row__body{ display:flex; gap:.6rem; padding:0 1.1rem 1.1rem; flex-wrap:wrap; }

.price-chip{
  flex:1; min-width:132px; background:var(--offwhite); border-radius:14px; padding:.7rem .85rem;
  display:flex; flex-direction:column; gap:.3rem;
}
.price-chip__group{ font-family:var(--font-serif); font-size:1.2rem; font-weight:700; color:var(--navy); }
.price-chip__group small{ font-family:var(--font-sans); font-size:.72rem; font-weight:500; color:var(--muted); }
.price-chip__individual{ font-size:.82rem; font-weight:600; color:var(--navy); }
.price-chip__individual small{ font-family:var(--font-sans); font-size:.72rem; font-weight:500; color:var(--muted); }

@media (max-width:575.98px){
  .course-accordion{ grid-template-columns:1fr; }
  .price-chip{ min-width:100%; }
}

/* ---------- 8. Pré-inscrição ---------- */
.enrol{ background:linear-gradient(180deg, var(--teal-soft-2), var(--teal-soft)); padding:2.6rem 0; }
.enrol__intro{ max-width:640px; margin:0 auto 2.2rem; text-align:center; }
.enrol__intro h2{ color:var(--navy); font-size:2rem; font-weight:700; text-shadow:none; }
.enrol__intro-lead{ color:var(--muted); font-size:.92rem; margin:.7rem 0 0; line-height:1.5; }
.enrol__form-wrap{ max-width:920px; margin:0 auto; }
.field--regime{ margin-bottom:1.1rem; }
.regime-warning{
  color:var(--red); font-size:.82rem; font-weight:600; margin:.7rem 0 0; line-height:1.5;
}
.mode-switch{
  position:relative; display:inline-flex; gap:0; margin-top:.4rem; padding:.25rem;
  background:rgba(255,255,255,.6); border:1px solid rgba(18,50,92,.15); border-radius:999px;
}
.mode-switch__slider{
  position:absolute; top:.25rem; bottom:.25rem; left:.25rem; width:calc(50% - .25rem);
  background:var(--navy); border-radius:999px; transition:transform .25s cubic-bezier(.4,0,.2,1);
  z-index:0;
}
.mode-switch__btn{
  position:relative; z-index:1; flex:1; min-width:132px; justify-content:center;
  display:flex; align-items:center; gap:.4rem; border:0; background:transparent;
  border-radius:999px; padding:.6rem 1.3rem; font-weight:600; font-size:.9rem;
  color:var(--navy); cursor:pointer; transition:color .2s ease;
}
.mode-switch__btn .ico{ width:16px; height:16px; flex:0 0 16px; }
.mode-switch__btn.is-active{ color:#fff; }

.enrol__form .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-bottom:1rem; }
.field{ display:flex; flex-direction:column; }
.field--spacer{ display:none; }
.field > label{
  font-size:.78rem; font-weight:600; color:var(--navy); margin-bottom:.3rem; letter-spacing:.01em;
  display:flex; align-items:center; justify-content:space-between; gap:.5rem;
}
.field__hint-link{ font-size:.72rem; font-weight:600; color:var(--teal); text-decoration:underline; white-space:nowrap; }
.field select:disabled{ opacity:.55; cursor:not-allowed; }
.field__control{ position:relative; display:flex; align-items:center; }
.field__icon{ position:absolute; left:.7rem; width:18px; height:18px; color:var(--teal); pointer-events:none; }

.field__control input[type="text"], .field__control input[type="tel"], .field__control input[type="email"],
.field__control input[type="date"], .field__control select, .field__control textarea{
  width:100%; border:1px solid var(--line); border-radius:8px; background:#fff;
  padding:.65rem .8rem .65rem 2.4rem; font-family:var(--font-sans); font-size:.9rem; color:var(--ink);
  transition:box-shadow .18s ease, border-color .18s ease;
}
.field__control select{ appearance:none; -webkit-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='%232E93A8' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right .7rem center; background-size:16px; padding-right:2.2rem;
}
.field__control textarea{ resize:vertical; min-height:82px; }
.field__control input::placeholder, .field__control textarea::placeholder{ color:#8B9AA8; }
.field__control input:hover, .field__control select:hover, .field__control textarea:hover{ box-shadow:0 2px 8px rgba(10,40,70,.12); }
.field__control input:focus, .field__control select:focus, .field__control textarea:focus{
  outline:none; border-color:var(--teal); box-shadow:0 0 0 3px rgba(46,147,168,.18);
}

.form-row.form-row--footer{ grid-template-columns:1fr; margin-top:.8rem; }
.consent{ display:flex; gap:.55rem; align-items:flex-start; justify-content:center; text-align:center; max-width:520px; margin:0 auto; }
.consent label{ font-size:.85rem; color:var(--navy); line-height:1.4; }
.consent label a{ color:var(--navy); text-decoration:underline; }
.consent input{ margin-top:.25rem; width:16px; height:16px; flex:0 0 16px; }
.form-row.form-row--submit{ grid-template-columns:1fr; justify-items:center; margin-top:1rem; }
.btn-submit{ min-width:220px; text-transform:uppercase; }
.btn-submit:disabled{ opacity:.65; cursor:not-allowed; transform:none; }
.form-error{ grid-column:1/-1; font-size:.85rem; font-weight:600; color:var(--red); margin:0 0 .8rem; text-align:center; }

.enrol__success{
  background:#fff; border-radius:var(--radius); box-shadow:var(--shadow);
  padding:3rem 2rem; text-align:center; display:flex; flex-direction:column; align-items:center;
}
.enrol__success-icon{ width:52px; height:52px; color:var(--teal); margin-bottom:1rem; }
.enrol__success h3{ font-size:1.3rem; margin-bottom:.4rem; }
.enrol__success p{ color:var(--muted); margin:0 0 1.4rem; }

.thanks{ background:var(--offwhite); padding:3rem 0; }
.thanks__inner{ max-width:560px; }
.thanks__actions{ display:flex; flex-wrap:wrap; gap:.8rem; justify-content:center; }

/* ---------- 9. Ferramentas ---------- */
.tools{ background:var(--offwhite); padding:2.4rem 0; }
.tools__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.tool-card{
  display:flex; gap:1.1rem; align-items:flex-start;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.3rem;
  transition:transform .18s ease, box-shadow .18s ease;
}
.tool-card:hover{ transform:translateY(-3px); box-shadow:var(--shadow); }
.tool-card__icon{ flex:0 0 56px; width:56px; height:56px; color:var(--navy); }
.tool-card h3{ color:var(--teal); font-size:1.05rem; margin-bottom:.3rem; }
.tool-card p{ font-size:.85rem; color:var(--muted); margin:0 0 .6rem; }

/* ---------- 10. Manuais oficiais ---------- */
.books{ background:#fff; padding:2.6rem 0; }
.books__grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:1.1rem; }
.books__grid a{ display:block; color:inherit; }
.book{
  background:#fff; border:1px solid var(--line); border-radius:16px; overflow:hidden;
  box-shadow:0 2px 10px rgba(10,40,70,.05); transition:transform .18s ease, box-shadow .18s ease;
}
.book:hover{ transform:translateY(-4px); box-shadow:0 12px 26px rgba(10,40,70,.14); text-decoration:none; }
.book__cover{
  display:block; position:relative; aspect-ratio:3/4; background:#eef2f5; overflow:hidden;
}
.book__cover img{ width:100%; height:100%; object-fit:cover; display:block; }
.book__badge{
  position:absolute; top:.6rem; left:.6rem; padding:.22rem .55rem; border-radius:999px;
  font-size:.66rem; font-weight:700; color:#fff; letter-spacing:.02em; box-shadow:0 2px 6px rgba(0,0,0,.18);
}
.book--pre-a1 .book__badge{ background:var(--lvl-pre-a1); }
.book--a2 .book__badge{ background:var(--lvl-a2); }
.book--b1 .book__badge{ background:var(--lvl-b1); }
.book--b2 .book__badge{ background:var(--lvl-b2); }
.book--c1 .book__badge{ background:var(--lvl-c1); }
.book--c2 .book__badge{ background:var(--lvl-c2); }
.book__info{ padding:.8rem .85rem .9rem; }
.book__title{ display:block; font-family:var(--font-serif); font-weight:700; font-size:.88rem; line-height:1.25; color:var(--navy); }
.book__meta{ display:block; font-size:.68rem; color:var(--muted); margin-top:.3rem; line-height:1.25; }
.book__price{ display:flex; align-items:baseline; gap:.35rem; margin-top:.55rem; font-weight:700; color:var(--teal); font-size:1rem; }
.book__price small{ font-weight:500; font-size:.7rem; color:var(--muted); }
.books__cta{ text-align:center; margin-top:1.6rem; }

/* ---------- 11. Testemunhos ---------- */
.testimonials{ padding:1.2rem 0 2rem; background:#fff; }
.testimonials__row{ display:flex; gap:1.2rem; align-items:stretch; }
.testimonials__box{
  position:relative; background:var(--navy); border-radius:var(--radius);
  padding:1.6rem 3.4rem; color:#fff;
}
.testimonials__box--half{ flex:0 0 50%; padding:1.6rem 2.6rem; }

/* Faixa teste de nível — imagem de fundo com texto sobreposto */
.level-test-banner{
  position:relative; flex:1; display:block; border-radius:var(--radius);
  overflow:hidden; min-height:100%; color:inherit; text-decoration:none;
}
.level-test-banner img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.level-test-banner__text{ position:relative; z-index:1; padding:1.6rem 1.8rem; max-width:82%; }
.level-test-banner__text h2{ font-size:1.5rem; margin-bottom:.4rem; }
.level-test-banner__text h2 span{ color:var(--teal); }
.level-test-banner__text p{ font-size:.9rem; color:var(--ink); margin-bottom:1rem; }
.level-test-banner__text strong{ color:var(--teal); }
.level-test-banner:hover{ text-decoration:none; }
.level-test-banner:hover .btn{ transform:translateY(-2px); }
.testimonials__viewport{ min-height:112px; display:flex; align-items:center; }
.testimonial{ display:none; align-items:center; gap:1.6rem; margin:0; width:100%; }
.testimonial.is-active{ display:flex; }
.testimonial img{ width:88px; height:88px; border-radius:50%; object-fit:cover; object-position:center 22%; flex:0 0 88px; }
.testimonial blockquote{ margin:0; position:relative; padding-left:2.2rem; }
.testimonial blockquote::before{
  content:"“"; position:absolute; left:0; top:-.35em;
  font-family:var(--font-serif); font-size:3rem; color:var(--teal-soft); line-height:1;
}
.testimonial p{ margin:0; font-size:1rem; color:#fff; }
.testimonial figcaption{ margin-top:.4rem; font-size:.82rem; color:var(--teal-soft); }
.testimonials__nav{
  position:absolute; top:50%; transform:translateY(-50%);
  background:transparent; border:0; color:#fff; font-size:1.9rem; line-height:1;
  padding:0 .5rem; cursor:pointer; opacity:.75; transition:opacity .18s ease;
}
.testimonials__nav:hover{ opacity:1; }
.testimonials__nav--prev{ left:.7rem; }
.testimonials__nav--next{ right:.7rem; }
.testimonials__dots{ display:flex; gap:.4rem; justify-content:center; margin-top:.8rem; }
.testimonials__dots button{
  width:9px; height:9px; border-radius:50%; border:0; padding:0; cursor:pointer;
  background:rgba(255,255,255,.35); transition:background-color .18s ease;
}
.testimonials__dots button.is-active{ background:var(--teal); }

/* ---------- 12. IELTS + recrutamento ---------- */
.promos{ padding:1rem 0 2rem; background:#fff; }
.promos__grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; }
.promo{
  position:relative; display:flex; align-items:stretch; justify-content:space-between;
  border-radius:var(--radius); overflow:hidden; min-height:190px;
}
.promo__body{ padding:1.5rem; max-width:62%; }
.promo h2{ color:#fff; font-size:1.7rem; margin-bottom:.3rem; }
.promo p{ color:rgba(255,255,255,.92); font-size:.92rem; margin-bottom:1.1rem; }
.promo__img{ width:42%; height:100%; min-height:0; object-fit:cover; align-self:stretch; position:absolute; right:0; top:0; bottom:0; }
.promo__body{ position:relative; z-index:1; }
.promo--ielts{ background:#14608F; }
.promo--recrutamento{ background:#A9CFF3; }
.promo--recrutamento h2{ color:var(--navy); }
.promo--recrutamento p{ color:var(--navy); opacity:.85; }
.promo .btn-navy:hover{ background:var(--navy-deep); }

/* ---------- 13. Rede Da Vinci ---------- */
.network{ background:#fff; padding:.5rem 0 2rem; }
.network__box{
  display:flex; align-items:center; gap:1.2rem;
  background:var(--offwhite); border:1px solid var(--line); border-radius:var(--radius);
  padding:1.1rem 1.6rem;
}
.network__icon{ flex:0 0 30px; width:30px; height:30px; color:var(--teal); }
.network__box p{ margin:0; flex:1; font-size:.95rem; color:var(--navy); }
.network__box .btn{ flex:0 0 auto; }

/* ---------- 14. Footer ---------- */
.site-footer{ background:var(--navy-deep); color:rgba(255,255,255,.78); padding:2.2rem 0 1.2rem; font-size:.85rem; }
.footer__grid{ display:grid; grid-template-columns:1.1fr 1.2fr 1fr 1fr; gap:1.6rem; }
.site-footer h2{ color:#fff; font-size:1rem; margin-bottom:.7rem; }
.footer__list li{ margin-bottom:.3rem; }
.site-footer a{ color:rgba(255,255,255,.8); }
.site-footer a:hover{ color:#fff; }
.footer__list--contacts span{ color:var(--teal-soft); margin-right:.35rem; }
.footer__social{ display:flex; gap:.5rem; margin-top:1rem; }
.footer__social a{
  width:28px; height:28px; border-radius:6px; background:rgba(255,255,255,.12);
  display:flex; align-items:center; justify-content:center; font-size:.8rem; text-decoration:none;
}
.footer__social a:hover{ background:var(--teal); }

/* ---------- Efeito discreto de entrada no scroll ---------- */
.reveal{ opacity:0; transform:translateY(14px); transition:opacity .5s ease, transform .5s ease; }
.reveal.is-visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
  html{ scroll-behavior:auto; }
  .btn:hover, .course-card:hover, .level:hover, .tool-card:hover, .book a:hover{ transform:none; }
}

/* ============================================================
   15. RESPONSIVO
   ============================================================ */

/* Tablet grande */
@media (max-width:1199.98px){
  .hero__title{ font-size:2.3rem; }
  .advantages__grid{ grid-template-columns:1fr 1fr; }
  .features{ grid-column:1/-1; grid-template-columns:1fr 1fr; }
  .courses__grid{ grid-template-columns:repeat(3,1fr); }
  .books__grid{ grid-template-columns:repeat(3,1fr); }
}

/* Tablet / menu hamburger */
@media (max-width:991.98px){
  .navbar-collapse{ padding:.8rem 0; }
  .header-cta{ margin:.6rem 0 0; width:100%; }

  .hero__media{ background-position:78% center; }
  .hero__media::after{
    background:linear-gradient(180deg, rgba(255,255,255,.95) 0%, rgba(255,255,255,.88) 55%, rgba(255,255,255,.7) 100%);
  }
  .hero__inner{ padding:2.4rem 0 2.2rem; }

  .steps__grid{ grid-template-columns:1fr 1fr; gap:1.6rem 0; }
  .step{ padding:0 1.2rem; }
  .step:nth-child(odd){ border-left:0; padding-left:0; }

  .tools__grid{ grid-template-columns:1fr; }
  .promos__grid{ grid-template-columns:1fr; }
  .footer__grid{ grid-template-columns:1fr 1fr; }
}

/* Telemóvel */
@media (max-width:767.98px){
  .testimonials__row{ flex-direction:column; }
  .testimonials__box--half{ flex:1; padding:1.4rem 1rem; }
  .level-test-banner{ min-height:220px; }
  .level-test-banner__text{ max-width:100%; }

  .hero__title{ font-size:1.85rem; }
  .hero__lead{ font-size:1.1rem; }
  .hero__lead br{ display:none; }

  /* níveis com scroll horizontal */
  .levels{
    flex-wrap:nowrap; overflow-x:auto; padding-bottom:.6rem;
    scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch;
  }
  .levels li{ scroll-snap-align:start; }
  .level{ flex:0 0 68px; width:68px; height:68px; }

  .hero__actions{ flex-direction:column; }
  .hero__actions .btn{ width:100%; }

  .steps__grid{ grid-template-columns:1fr; }
  .step{ border-left:0; padding:0; }

  .advantages__grid{ grid-template-columns:1fr; }
  .features{ grid-template-columns:1fr; }

  .courses__grid{ grid-template-columns:1fr 1fr; }

  .enrol__form .form-row{ grid-template-columns:1fr; }
  .form-row--footer{ grid-template-columns:1fr; gap:1rem; }
  .btn-submit{ width:100%; }

  /* manuais em carrossel horizontal */
  .books__grid{
    display:flex; overflow-x:auto; gap:.9rem; padding-bottom:.8rem;
    scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;
  }
  .books__grid > li{ flex:0 0 62%; scroll-snap-align:start; }

  .testimonials__box{ padding:1.4rem 1rem; }
  .testimonial{ flex-direction:column; text-align:center; gap:.9rem; }
  .testimonial blockquote{ padding-left:0; }
  .testimonial blockquote::before{ position:static; display:block; }
  .testimonials__nav{ top:auto; bottom:-.2rem; transform:none; }
  .testimonials__nav--prev{ left:.2rem; }
  .testimonials__nav--next{ right:.2rem; }

  .promo{ flex-direction:column; }
  .promo__body{ max-width:100%; }
  .promo__img{ width:100%; height:180px; position:static; }

  .network__box{ flex-direction:column; text-align:center; }

  .footer__grid{ grid-template-columns:1fr; }
  .footer__legal{ text-align:left; }
}

/* ============================================================
   16. Calendário de Exames
   ============================================================ */
.exam-calendar{ background:var(--offwhite); padding:2.8rem 0; }
.exam-calendar .section-title{ margin-bottom:.2rem; }
.exam-calendar__grid{ display:grid; grid-template-columns:1.4fr 1fr; gap:1.6rem; margin-top:2rem; align-items:start; }

.cal-card{ background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow); padding:1.8rem; }
.cal-card__head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:1.2rem; }
.cal-card__month{ font-size:1.3rem; color:var(--navy); margin:0; }
.cal-card__month span{ font-weight:400; color:var(--muted); font-family:var(--font-sans); font-size:1rem; }
.cal-nav{
  width:36px; height:36px; border-radius:50%; border:1px solid var(--line); background:#fff;
  color:var(--navy); font-size:1.3rem; line-height:1; display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:background-color .18s ease, color .18s ease, transform .18s ease;
}
.cal-nav:hover:not(:disabled){ background:var(--teal); color:#fff; transform:translateY(-1px); }
.cal-nav:disabled{ opacity:.3; cursor:not-allowed; }

.cal-weekdays{
  display:grid; grid-template-columns:repeat(7,1fr); text-align:center; font-size:.72rem; font-weight:600;
  color:var(--muted); text-transform:uppercase; letter-spacing:.04em; margin-bottom:.4rem;
}

.cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:.35rem; }
.cal-day{ position:relative; aspect-ratio:1; display:flex; align-items:center; justify-content:center; border-radius:10px; font-size:.85rem; color:var(--ink); }
.cal-day--empty{ visibility:hidden; }
.cal-day--exam{
  background:linear-gradient(135deg, var(--teal), #1B7488); color:#fff; font-weight:700;
  box-shadow:0 3px 10px rgba(46,147,168,.35); cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease;
}
.cal-day--exam:hover, .cal-day--exam:focus-visible{ transform:translateY(-2px) scale(1.06); box-shadow:0 6px 16px rgba(46,147,168,.45); outline:none; }
.cal-day--exam::after{
  content:attr(data-exam); position:absolute; bottom:120%; left:50%; transform:translateX(-50%) translateY(4px);
  background:var(--navy-deep); color:#fff; font-size:.68rem; font-weight:500;
  padding:.35rem .6rem; border-radius:6px; white-space:nowrap;
  opacity:0; pointer-events:none; transition:opacity .15s ease, transform .15s ease; z-index:5;
}
.cal-day--exam:hover::after, .cal-day--exam:focus-visible::after{ opacity:1; transform:translateX(-50%) translateY(0); }

.cal-hint{ margin:1rem 0 0; font-size:.78rem; color:var(--muted); text-align:center; }

.cal-side{ display:flex; flex-direction:column; gap:1.2rem; }
.cal-side__block{ background:#fff; border:1px solid var(--line); border-radius:16px; padding:1.5rem; box-shadow:var(--shadow); }
.cal-side__block h3{ font-size:1.05rem; margin-bottom:.8rem; }
.cal-sessions{ list-style:none; margin:0 0 1rem; padding:0; display:flex; flex-direction:column; gap:.5rem; }
.cal-sessions li{ display:flex; justify-content:space-between; gap:.6rem; font-size:.85rem; padding-bottom:.5rem; border-bottom:1px dashed var(--line); }
.cal-sessions li:last-child{ border-bottom:0; padding-bottom:0; }
.cal-sessions__day{ font-weight:700; color:var(--teal); white-space:nowrap; }
.cal-sessions__exam{ color:var(--muted); text-align:right; }
.cal-sessions__empty{ font-size:.85rem; color:var(--muted); }

.cal-side__cta{ background:linear-gradient(135deg, var(--navy), var(--navy-deep)); color:#fff; border-radius:16px; padding:1.5rem; box-shadow:var(--shadow); }
.cal-side__cta h3{ color:#fff; margin-bottom:.4rem; }
.cal-side__cta p{ color:rgba(255,255,255,.82); font-size:.85rem; margin:0 0 1.1rem; }
.cal-side__cta .btn{ width:100%; }

@media (max-width:991.98px){
  .exam-calendar__grid{ grid-template-columns:1fr; }
}
@media (max-width:575.98px){
  .cal-day{ font-size:.75rem; }
  .cal-day--exam::after{ display:none; }
  .cal-card{ padding:1.3rem; }
}

/* ============================================================
   17. Página "Marcar Exame"
   ============================================================ */
.exam-page-header{
  position:relative; overflow:hidden;
  background:
    radial-gradient(60% 140% at 15% 0%, rgba(255,255,255,.08), transparent),
    linear-gradient(135deg, var(--navy), var(--navy-deep));
  color:#fff; padding:3.6rem 0 3rem; text-align:center;
}
.exam-page-header__badge{
  display:inline-flex; align-items:center; justify-content:center;
  width:56px; height:56px; border-radius:50%; background:rgba(255,255,255,.12);
  color:var(--teal-soft); margin-bottom:1rem; border:1px solid rgba(255,255,255,.2);
}
.exam-page-header__badge .ico{ width:26px; height:26px; }
.exam-page-header h1{ color:#fff; font-size:2.3rem; margin-bottom:.6rem; }
.exam-page-header p{ color:rgba(255,255,255,.85); max-width:600px; margin:0 auto; font-size:1rem; }

/* ---- 3 passos ---- */
.exam-steps{ background:#fff; padding:2.8rem 0 1.8rem; }
.exam-steps__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; position:relative; }
.exam-steps__grid::before{
  content:""; position:absolute; top:34px; left:16.5%; right:16.5%; height:2px;
  background:linear-gradient(90deg, var(--lvl-pre-a1), var(--teal), var(--lvl-c1));
  opacity:.25; z-index:0;
}
.exam-step{ position:relative; z-index:1; text-align:center; padding:0 .6rem; }
.exam-step__number{
  display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px;
  border-radius:50%; background:var(--teal); color:#fff; font-size:.72rem; font-weight:700;
  position:absolute; top:0; left:50%; transform:translate(18px,-6px); box-shadow:0 0 0 3px #fff;
}
.exam-step__icon{
  display:inline-flex; align-items:center; justify-content:center; width:60px; height:60px;
  border-radius:50%; color:#fff; margin-bottom:.9rem;
  background:linear-gradient(135deg, var(--navy), var(--teal));
  box-shadow:0 8px 20px rgba(18,50,92,.2);
}
.exam-step__icon .ico{ width:26px; height:26px; }
.exam-step h3{ font-size:1rem; margin-bottom:.3rem; }
.exam-step p{ font-size:.85rem; color:var(--muted); margin:0; }

/* ---- Formulário + preços ---- */
.exam-booking{ position:relative; background:var(--offwhite); padding:2.8rem 0 3.4rem; overflow:hidden; }
.exam-booking::before{
  content:""; position:absolute; inset:-6% -8% auto -8%; height:520px; z-index:0; pointer-events:none;
  background:
    radial-gradient(34% 60% at 12% 10%, rgba(46,147,168,.16), transparent 70%),
    radial-gradient(30% 55% at 88% 0%, rgba(18,50,92,.13), transparent 70%);
}
.exam-booking .container{ position:relative; z-index:1; }
.exam-booking__grid{ display:grid; grid-template-columns:1.5fr 1fr; gap:1.8rem; align-items:start; }

.exam-booking__form-col{
  background:rgba(255,255,255,.75); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.7); border-radius:22px; padding:1.9rem;
  box-shadow:0 12px 30px rgba(16,40,70,.09);
}
.exam-booking__form-head{ display:flex; align-items:center; gap:.9rem; margin-bottom:1.4rem; }
.exam-booking__form-icon{
  flex:0 0 46px; width:46px; height:46px; border-radius:14px; color:#fff;
  background:linear-gradient(135deg, var(--navy), var(--teal));
  display:flex; align-items:center; justify-content:center;
}
.exam-booking__form-icon .ico{ width:22px; height:22px; }
.exam-booking__form-head h2{ font-size:1.25rem; margin-bottom:.1rem; }
.exam-booking__form-head p{ font-size:.82rem; color:var(--muted); margin:0; }

.form-trust{
  display:flex; flex-direction:column; justify-content:center; gap:.55rem;
  background:linear-gradient(135deg, rgba(46,147,168,.1), rgba(18,50,92,.06));
  border:1px solid rgba(46,147,168,.18); border-radius:14px; padding:.9rem 1rem; margin:0;
}
.form-trust li{ display:flex; align-items:center; gap:.5rem; font-size:.82rem; color:var(--navy); font-weight:600; }
.form-trust .ico{ width:16px; height:16px; flex:0 0 16px; color:var(--teal); }

.exam-booking__prices{
  background:rgba(255,255,255,.75); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.7); border-radius:22px; padding:1.9rem;
  box-shadow:0 12px 30px rgba(16,40,70,.09);
}
.exam-booking__prices h2{ font-size:1.15rem; margin-bottom:.4rem; }
.exam-booking__prices-note{ font-size:.82rem; color:var(--muted); margin:0 0 1.3rem; }

.price-cards{ list-style:none; margin:0 0 1.3rem; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:.7rem; }
.price-card{
  --accent:var(--lvl-pre-a1);
  display:flex; flex-direction:column; gap:.6rem; padding:1rem 1.05rem;
  border-radius:16px; background:rgba(255,255,255,.65);
  border:1px solid rgba(255,255,255,.8); box-shadow:0 3px 10px rgba(16,40,70,.06);
  transition:transform .2s ease, box-shadow .2s ease;
}
.price-card:hover{ transform:translateY(-3px); box-shadow:0 10px 22px rgba(16,40,70,.13); }
.price-card__top{ display:flex; align-items:center; gap:.6rem; }
.price-card__badge{
  flex:0 0 36px; width:36px; height:36px; border-radius:11px; color:#fff;
  display:flex; align-items:center; justify-content:center; font-family:var(--font-serif);
  font-weight:700; font-size:.78rem;
  background:linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--accent) 55%, white));
}
.price-card__name{ flex:1; font-size:.78rem; color:var(--muted); font-weight:600; line-height:1.2; }
.price-card__value{ font-family:var(--font-serif); font-weight:700; color:var(--navy); font-size:1.4rem; }
.price-card--pre-a1{ --accent:var(--lvl-pre-a1); }
.price-card--a2{ --accent:var(--lvl-a2); }
.price-card--b1{ --accent:var(--lvl-b1); }
.price-card--b2{ --accent:var(--lvl-b2); }
.price-card--c1{ --accent:var(--lvl-c1); }
.price-card--c2{ --accent:var(--lvl-c2); }

.exam-booking__prices-footnote{ font-size:.78rem; color:var(--muted); margin:0; line-height:1.5; }

@media (max-width:991.98px){
  .exam-booking__grid{ grid-template-columns:1fr; }
  .exam-steps__grid{ grid-template-columns:1fr 1fr; gap:1.6rem 1rem; }
}
@media (max-width:575.98px){
  .exam-page-header{ padding:2.4rem 0 1.8rem; }
  .exam-page-header h1{ font-size:1.8rem; }
  .exam-booking__form-col, .exam-booking__prices{ padding:1.3rem; }
  .exam-steps__grid{ grid-template-columns:1fr; }
  .form-trust{ margin-top:.2rem; }
  .price-cards{ grid-template-columns:1fr; }
}

/* ---------- Página "Quem Somos" ---------- */
.about{ background:#fff; padding:3.4rem 0; }
.about--alt{ background:var(--offwhite); }
.about__intro{ max-width:700px; margin:0 auto; }
.about__intro .section-title{ margin-bottom:1.2rem; }
.about__intro p{ color:var(--ink); font-size:.98rem; line-height:1.75; margin:0 0 1.1rem; }
.about__intro p:last-of-type{ margin-bottom:0; }
.about__cta{ display:flex; flex-wrap:wrap; gap:.8rem; justify-content:center; margin-top:1.7rem; }

.about-highlights{
  list-style:none; margin:2.4rem 0 0; padding:0;
  display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem;
}
.about-highlight{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:1.5rem 1.2rem; text-align:center;
}
.about-highlight__icon{
  display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px;
  border-radius:50%; background:linear-gradient(135deg, var(--navy), var(--teal)); color:#fff;
  margin-bottom:.9rem;
}
.about-highlight__icon .ico{ width:22px; height:22px; }
.about-highlight h3{ font-size:.98rem; color:var(--navy); margin-bottom:.35rem; }
.about-highlight p{ font-size:.82rem; color:var(--muted); margin:0; line-height:1.5; }

@media (max-width:991.98px){
  .about-highlights{ grid-template-columns:1fr 1fr; }
}
@media (max-width:575.98px){
  .about{ padding:2.4rem 0; }
  .about-highlights{ grid-template-columns:1fr; }
}
