/* PLS Prime Language School — stylesheet principal
   separado do index.html em 22/10/2026 */
/* PALETA: PLS – Prime Language School (@Prime) — azul premium + dourado */
:root {
  --primaria: #1D4ED8;
  --primaria-escura: #1E40AF;
  --primaria-claro: #EFF6FF;
  --destaque: #F5B301;
  --fundo: #FFFFFF;
  --card: #FFFFFF;
  --texto: #0F172A;
  --texto-suave: #64748B;
  --borda: #E2E8F0;
  --verde: #16A34A;
  --raio: 16px;
  --sombra: 0 4px 20px rgba(15,23,42,0.07);
  --sombra-hover: 0 14px 40px rgba(29,78,216,0.16);
}
@media (prefers-color-scheme: dark) {
  :root { --fundo:#0B1220; --card:#151F32; --texto:#F1F5F9; --texto-suave:#94A3B8; --borda:#263450; --primaria-claro:#172554; --primaria:#60A5FA; --primaria-escura:#BFDBFE; }
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Inter',sans-serif; background:var(--fundo); color:var(--texto); line-height:1.6; }
.container { max-width:1100px; margin:0 auto; padding:0 20px; }
img { max-width:100%; }

/* HEADER */
header { background:rgba(255,255,255,0.92); backdrop-filter:blur(14px); border-bottom:1px solid var(--borda); position:sticky; top:0; z-index:100; }
.header-topo { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:10px 0; }
.logo { text-decoration:none; display:flex; align-items:center; gap:10px; }
.logo-chip { background:#fff; border:1px solid var(--borda); border-radius:12px; padding:4px 10px; display:flex; align-items:center; line-height:1; }
.logo-chip img { height:60px; width:auto; display:block; }
.logo .marca { font-size:1.02rem; font-weight:900; color:var(--texto); line-height:1.15; }
.logo .marca b { color:var(--primaria); display:block; font-size:0.72rem; font-weight:800; letter-spacing:0.4px; text-transform:uppercase; }
nav.desk { display:flex; gap:20px; align-items:center; }
nav.desk a { text-decoration:none; color:var(--texto-suave); font-weight:600; font-size:0.9rem; }
nav.desk a:hover { color:var(--primaria); }
.header-redes { display:flex; gap:8px; }
.header-redes a { width:34px; height:34px; border-radius:50%; background:var(--primaria-claro); color:var(--primaria); display:flex; align-items:center; justify-content:center; text-decoration:none; font-size:0.95rem; transition:transform .15s, background .2s; }
.header-redes a:hover { background:var(--primaria); color:#fff; transform:translateY(-2px); }
/* MENU MOBILE */
.btn-menu { display:none; background:var(--primaria-claro); color:var(--primaria); border:1px solid var(--borda); border-radius:10px; width:44px; height:44px; font-size:1.25rem; line-height:1; cursor:pointer; align-items:center; justify-content:center; flex:none; }
.menu-mobile { display:none; position:absolute; top:100%; left:0; right:0; background:var(--fundo); border-bottom:1px solid var(--borda); box-shadow:0 14px 30px rgba(15,23,42,0.14); padding:8px 20px 14px; }
.menu-mobile.aberto { display:block; }
.menu-mobile a { display:block; padding:11px 4px; color:var(--texto); text-decoration:none; font-weight:600; font-size:0.95rem; border-bottom:1px solid var(--borda); }
.menu-mobile a:last-child { border-bottom:none; }
.menu-mobile a:hover { color:var(--primaria); }
.btn { display:inline-flex; align-items:center; gap:8px; padding:13px 26px; border-radius:var(--raio); font-weight:800; font-size:0.95rem; text-decoration:none; cursor:pointer; border:none; font-family:inherit; transition:transform 0.15s, box-shadow 0.2s, background 0.2s; }
.btn:active { transform:scale(0.97); }
.btn-fantasma { background:var(--card); border:1px solid var(--borda); color:var(--texto); }
.btn-fantasma:hover { border-color:var(--primaria); color:var(--primaria); }
.btn-zap { background:#25D366; color:#fff; box-shadow:0 6px 20px rgba(37,211,102,0.35); }
.btn-zap:hover { transform:translateY(-2px); box-shadow:0 12px 28px rgba(37,211,102,0.45); }

/* HERO */
.hero { padding:64px 0 60px; background:linear-gradient(160deg, var(--primaria-claro) 0%, var(--fundo) 45%, var(--primaria-claro) 100%); background-size:220% 220%; animation:heroGradiente 18s ease-in-out infinite; overflow:hidden; }
@keyframes heroGradiente { 0% { background-position:0% 50%; } 50% { background-position:100% 50%; } 100% { background-position:0% 50%; } }
@media (prefers-reduced-motion: reduce) { .hero { animation:none; } }
.hero-grid { display:grid; grid-template-columns:1.15fr 0.85fr; gap:44px; align-items:center; }
.hero .selo { display:inline-flex; gap:8px; align-items:center; background:var(--destaque); color:#0F172A; font-weight:800; font-size:0.85rem; padding:8px 16px; border-radius:100px; margin-bottom:18px; }
.hero h1 { font-size:clamp(2.1rem,5vw,3.1rem); font-weight:900; line-height:1.12; margin-bottom:16px; }
.hero h1 .gradiente { background:linear-gradient(135deg, var(--primaria), var(--destaque)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.hero p { color:var(--texto-suave); font-size:1.1rem; margin-bottom:26px; max-width:560px; }
.hero .provas { display:flex; gap:16px; flex-wrap:wrap; margin-bottom:28px; }
.hero .prova { display:flex; align-items:center; gap:7px; font-weight:700; font-size:0.88rem; background:var(--card); border:1px solid var(--borda); padding:7px 14px; border-radius:100px; box-shadow:var(--sombra); }
.hero .acoes { display:flex; gap:12px; flex-wrap:wrap; }
.hero-visual { position:relative; }
.hero-visual img { display:block; width:100%; height:auto; border-radius:28px; box-shadow:0 24px 60px rgba(15,23,42,0.22); }
.hero-visual .tag { position:absolute; left:16px; bottom:16px; background:rgba(11,18,32,0.88); backdrop-filter:blur(8px); color:#fff; font-size:0.8rem; font-weight:700; padding:8px 16px; border-radius:100px; }

/* SEÇÕES */
section { padding:56px 0 12px; }
.secao-titulo { text-align:center; max-width:680px; margin:0 auto 40px; }
.secao-selo { display:inline-block; padding:5px 14px; border-radius:100px; background:var(--primaria-claro); color:var(--primaria); font-weight:700; font-size:0.78rem; text-transform:uppercase; letter-spacing:0.5px; margin-bottom:12px; }
.secao-titulo h2 { font-size:clamp(1.7rem,4vw,2.3rem); font-weight:900; margin-bottom:10px; }
.secao-titulo p { color:var(--texto-suave); font-size:1.05rem; }

/* DIFERENCIAIS */
.resultados { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:18px; }
.resultado { background:var(--card); border:1px solid var(--borda); border-radius:var(--raio); box-shadow:var(--sombra); padding:28px; transition:transform 0.2s, box-shadow 0.2s; }
.resultado:hover { transform:translateY(-4px); box-shadow:var(--sombra-hover); }
.resultado .icone { font-size:2rem; display:inline-block; margin-bottom:12px; }
.resultado h3 { font-size:1.05rem; font-weight:800; margin-bottom:6px; }
.resultado p { color:var(--texto-suave); font-size:0.88rem; }

/* MODALIDADES / PACOTES EM DESTAQUE (cards) */
.turmas { display:grid; grid-template-columns:repeat(auto-fit,minmax(270px,1fr)); gap:18px; }
.turma { background:var(--card); border:1px solid var(--borda); border-radius:var(--raio); box-shadow:var(--sombra); padding:28px; transition:transform 0.2s, box-shadow 0.2s; position:relative; overflow:hidden; display:flex; flex-direction:column; }
.turma:hover { transform:translateY(-5px); box-shadow:var(--sombra-hover); }
.turma .faixa { position:absolute; top:14px; right:-34px; background:var(--destaque); color:#0F172A; font-size:0.65rem; font-weight:800; padding:4px 38px; transform:rotate(45deg); text-transform:uppercase; }
.turma .icone { font-size:2.2rem; display:inline-block; margin-bottom:12px; }
.turma h3 { font-size:1.12rem; font-weight:800; margin-bottom:6px; }
.turma .desc { color:var(--texto-suave); font-size:0.87rem; margin-bottom:14px; }
.turma .meta { display:flex; gap:12px; font-size:0.79rem; color:var(--texto-suave); margin-bottom:16px; flex-wrap:wrap; }
.turma .meta span { display:flex; align-items:center; gap:5px; background:var(--primaria-claro); color:var(--primaria-escura); padding:4px 10px; border-radius:100px; font-weight:600; }
.turma .btn { width:100%; justify-content:center; padding:11px; font-size:0.9rem; background:var(--primaria-claro); color:var(--primaria); margin-top:auto; }
.turma .btn:hover { background:var(--primaria); color:#fff; }

/* COMO FUNCIONA */
.passos { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.passo { background:var(--card); border:1px solid var(--borda); border-radius:var(--raio); box-shadow:var(--sombra); padding:28px 22px; text-align:center; transition:transform .2s; }
.passo:hover { transform:translateY(-4px); }
.passo .num { width:44px; height:44px; background:linear-gradient(135deg, var(--primaria), var(--destaque)); color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:900; margin:0 auto 12px; }
.passo h3 { font-size:1rem; font-weight:800; margin-bottom:6px; }
.passo p { color:var(--texto-suave); font-size:0.85rem; }

/* METODOLOGIA EAD (4 passos) */
.metodo { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:16px; }
.metodo-passo { background:var(--card); border:1px solid var(--borda); border-radius:var(--raio); box-shadow:var(--sombra); padding:24px 20px; position:relative; transition:transform .2s, box-shadow .2s; }
.metodo-passo:hover { transform:translateY(-4px); box-shadow:var(--sombra-hover); }
.metodo-passo .etapa { font-size:0.7rem; font-weight:800; letter-spacing:1px; color:var(--primaria); text-transform:uppercase; }
.metodo-passo h3 { font-size:1.05rem; font-weight:900; margin:6px 0 8px; }
.metodo-passo p { color:var(--texto-suave); font-size:0.85rem; }
.metodo-nota { max-width:820px; margin:22px auto 0; background:var(--primaria-claro); border:1px dashed var(--primaria); border-radius:var(--raio); padding:20px 24px; text-align:center; font-size:0.92rem; color:var(--texto-suave); }
.metodo-nota strong { color:var(--texto); }

/* QUEM SOMOS */
.sobre-card { background:var(--card); border:1px solid var(--borda); border-radius:24px; box-shadow:var(--sombra); padding:32px; display:grid; grid-template-columns:300px 1fr; gap:30px; align-items:center; max-width:940px; margin:0 auto; }
.sobre-card .foto { margin:0 auto; max-width:300px; }
.sobre-card .foto img { display:block; width:100%; height:auto; }
.sobre-card h3 { font-size:1.4rem; font-weight:900; margin-bottom:4px; }
.sobre-card .cargo { color:var(--primaria); font-weight:700; margin-bottom:12px; }
.sobre-card p { color:var(--texto-suave); font-size:0.94rem; margin-bottom:10px; }
.sobre-card .selos { display:flex; gap:10px; flex-wrap:wrap; margin-top:14px; }
.sobre-card .selo-item { background:var(--primaria-claro); color:var(--primaria); font-size:0.76rem; font-weight:700; padding:6px 13px; border-radius:100px; }

/* DEPOIMENTOS */
.depo-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:18px; }
.depo { background:var(--card); border:1px solid var(--borda); border-radius:var(--raio); box-shadow:var(--sombra); padding:24px; transition:transform .2s; }
.depo:hover { transform:translateY(-4px); }
.depo .estrelas { color:var(--destaque); margin-bottom:8px; }
.depo p { font-size:0.92rem; font-style:italic; margin-bottom:14px; }
.depo .aluno { display:flex; align-items:center; gap:10px; }
.depo .aluno .avatar { width:46px; height:46px; border-radius:50%; overflow:hidden; background:linear-gradient(135deg, var(--primaria), var(--destaque)); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; flex:none; }
.depo .aluno .avatar img { width:100%; height:100%; object-fit:cover; display:block; }
.depo .aluno .nome { font-weight:700; font-size:0.87rem; }
.depo .aluno .turma-tag { color:var(--texto-suave); font-size:0.76rem; }

/* PACOTES E VALORES */
.formas { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:18px; max-width:900px; margin:0 auto 34px; }
.forma { background:var(--card); border:2px solid var(--borda); border-radius:22px; padding:28px; transition:transform .2s; }
.forma:hover { transform:translateY(-4px); }
.forma.destaque { border-color:var(--primaria); box-shadow:var(--sombra-hover); }
.forma .icone { font-size:2rem; }
.forma h3 { font-size:1.15rem; font-weight:900; margin:8px 0 6px; }
.forma p { color:var(--texto-suave); font-size:0.9rem; }
.lista-pacotes { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:12px; margin-bottom:30px; }
.pacote-link { display:flex; align-items:center; justify-content:space-between; gap:10px; background:var(--card); border:1px solid var(--borda); border-radius:100px; padding:12px 20px; text-decoration:none; color:var(--texto); font-weight:700; font-size:0.89rem; box-shadow:var(--sombra); transition:transform .15s, border-color .2s, color .2s; }
.pacote-link:hover { transform:translateY(-3px); border-color:var(--primaria); color:var(--primaria); }
.pacote-link .seta { color:var(--destaque); font-weight:900; }
.subrotulo { text-align:center; font-weight:800; font-size:0.95rem; margin-bottom:14px; color:var(--texto); }
.chips { display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-bottom:28px; }
.chip { background:var(--primaria-claro); color:var(--primaria-escura); border:1px solid transparent; border-radius:100px; padding:9px 18px; font-size:0.85rem; font-weight:700; text-decoration:none; transition:transform .15s, background .2s, color .2s; }
.chip:hover { background:var(--primaria); color:#fff; transform:translateY(-2px); }
.valores-cta { text-align:center; }
.nota-troque { display:block; margin-top:12px; font-size:0.76rem; color:var(--texto-suave); }

/* O QUE ESTÁ INCLUSO */
.incluso { max-width:860px; margin:44px auto 0; background:var(--primaria-claro); border:1px dashed var(--primaria); border-radius:var(--raio); padding:26px; }
.incluso h3 { font-weight:900; margin-bottom:6px; text-align:center; }
.incluso .sub { text-align:center; color:var(--texto-suave); font-size:0.9rem; margin-bottom:18px; }
.incluso ul { list-style:none; display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:12px; }
.incluso li { display:flex; gap:10px; align-items:flex-start; background:var(--card); border:1px solid var(--borda); border-radius:12px; padding:14px 16px; font-size:0.88rem; }
.incluso li .check { color:var(--verde); font-weight:900; }
.incluso li a { color:var(--primaria); font-weight:700; }

/* FAQ */
.faq { max-width:760px; margin:0 auto; }
.faq details { background:var(--card); border:1px solid var(--borda); border-radius:var(--raio); box-shadow:var(--sombra); margin-bottom:12px; padding:18px 22px; }
.faq summary { font-weight:700; cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:12px; }
.faq summary::after { content:'+'; font-size:1.3rem; color:var(--primaria); }
.faq details[open] summary::after { content:'−'; }
.faq p { color:var(--texto-suave); font-size:0.9rem; margin-top:10px; }

/* CTA FINAL */
.cta-final { background:linear-gradient(135deg, var(--primaria), #0F172A); border-radius:28px; padding:56px 36px; text-align:center; color:#fff; margin:56px 0; position:relative; overflow:hidden; }
.cta-final::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 20% 0%, rgba(245,179,1,0.3), transparent 55%); }
.cta-final h2 { font-size:clamp(1.7rem,4vw,2.3rem); font-weight:900; margin-bottom:10px; position:relative; }
.cta-final p { opacity:0.92; margin-bottom:26px; position:relative; }
.cta-final .btn { background:linear-gradient(135deg, var(--destaque), #F59E0B); color:#0F172A; position:relative; font-size:1.05rem; }
.cta-final .btn:hover { transform:translateY(-3px); box-shadow:0 14px 32px rgba(245,179,1,0.4); }

/* ATENDIMENTO */
.atendimento { max-width:760px; margin:0 auto; background:var(--card); border:1px solid var(--borda); border-radius:24px; box-shadow:var(--sombra); padding:32px; }
.atend-linha { display:flex; gap:14px; margin-bottom:18px; align-items:flex-start; }
.atend-linha .icone { font-size:1.4rem; }
.atend-linha .rotulo { font-weight:700; font-size:0.9rem; }
.atend-linha .valor { color:var(--texto-suave); font-size:0.92rem; }
.atend-linha .valor a { color:var(--primaria); font-weight:700; text-decoration:none; }
.atendimento .btn { width:100%; justify-content:center; }

/* RODAPÉ */
footer { background:#0B1220; color:#94A3B8; margin-top:48px; padding:40px 0 28px; font-size:0.87rem; }
.footer-grid { display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:32px; padding-bottom:28px; border-bottom:1px solid #1E293B; }
.footer-logo { background:#fff; border-radius:14px; padding:8px 12px; display:inline-block; margin-bottom:14px; }
.footer-logo img { height:76px; width:auto; display:block; }
footer strong { color:#fff; display:block; margin-bottom:10px; }
.footer-col a { display:block; color:#94A3B8; text-decoration:none; margin-bottom:9px; }
.footer-col a:hover { color:#fff; }
.footer-redes { display:flex; gap:12px; margin-top:14px; }
.footer-redes a { font-size:1.4rem; text-decoration:none; transition:transform .15s; }
.footer-redes a:hover { transform:translateY(-3px); }
.footer-final { padding-top:22px; text-align:center; font-size:0.78rem; color:#94A3B8; }
.footer-final .slogan { display:block; color:#F5B301; font-weight:700; margin-bottom:6px; }

/* ZAP */
.zap { position:fixed; bottom:22px; right:22px; z-index:200; width:62px; height:62px; border-radius:50%; background:#25D366; color:#fff; font-size:1.9rem; display:flex; align-items:center; justify-content:center; text-decoration:none; box-shadow:0 6px 24px rgba(37,211,102,0.45); animation:pulsar 2.4s infinite; transition:transform 0.2s; }
.zap:hover { transform:scale(1.1); }
@keyframes pulsar { 0%,100% { box-shadow:0 6px 24px rgba(37,211,102,0.45),0 0 0 0 rgba(37,211,102,0.4); } 50% { box-shadow:0 6px 24px rgba(37,211,102,0.45),0 0 0 16px rgba(37,211,102,0); } }

.revelar { transition:opacity 0.6s ease, transform 0.6s ease; }
html.js .revelar { opacity:0; transform:translateY(24px); }
html.js .revelar.visivel { opacity:1; transform:none; }

@media (max-width:960px) {
  nav.desk, .header-redes { display:none; }
  .btn-menu { display:flex; }
  .hero-grid, .sobre-card { grid-template-columns:1fr; }
  .hero-visual { order:-1; }
  .sobre-card { text-align:center; }
  .sobre-card .foto { max-width:320px; margin:0 auto; }
  .sobre-card .selos { justify-content:center; }
  .passos { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:560px) {
  .logo .marca { display:none; }
  .hero .acoes .btn, .cta-final .btn { width:100%; justify-content:center; }
  .footer-grid { grid-template-columns:1fr; }
  .cta-final { padding:44px 22px; }
}
/* DARK MODE — regras de componente vêm depois das bases para vencer o cascade */
@media (prefers-color-scheme: dark) {
  header { background:rgba(11,18,32,0.92); }
  .header-redes a { color:#93C5FD; }
  .metodo-passo .etapa { color:var(--destaque); }
}
/* Salvaguarda: painel do menu é só de celular (se abrir e redimensionar, some no desktop) */
@media (min-width:961px) {
  .menu-mobile.aberto { display:none; }
}

/* ICONES SVG — Lucide (interface) + Simple Icons (marcas) — ver BIBLIOTECAS/icones */
svg { vertical-align:-0.12em; }
.btn svg, .selo svg, .prova svg, .meta span svg, .tag svg, .selo-item svg { flex:none; }
.depo .estrelas { display:flex; gap:2px; align-items:center; }

/* ===== POLIMENTO + CORRECOES QA (ECC) ===== */
html { -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; scroll-padding-top:104px; }
h1, h2, h3, .secao-titulo h2, .secao-titulo h1, .subrotulo, .cta-final h2 { text-wrap:balance; }
.secao-titulo p, .hero p, .turma .desc, .resultado p, .passo p, .metodo-passo p, .depo p, .faq p, .forma p, footer { text-wrap:pretty; }
.contador, .turma .meta, .turma .meta span { font-variant-numeric:tabular-nums; }
.header-redes a { width:40px; height:40px; }
.hero-visual img, .sobre-card .foto img { outline:1px solid rgba(0,0,0,0.1); outline-offset:-1px; }
@media (prefers-color-scheme: dark) {
  .hero-visual img, .sobre-card .foto img { outline-color:rgba(255,255,255,0.1); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .revelar { transition:none; }
  .zap { animation:none; }
}
/* 15 skip-link / 22 classes */
.pular-conteudo { position:absolute; left:12px; top:-60px; z-index:400; background:var(--primaria); color:#fff; padding:10px 18px; border-radius:0 0 10px 10px; font-weight:700; text-decoration:none; transition:top .15s; }
.pular-conteudo:focus { top:0; }
.header-acoes { display:flex; align-items:center; gap:12px; }
.secao-titulo.tight { margin-bottom:22px; }
.h2-menor { font-size:1.25rem; }
/* 14 foco visivel de teclado */
a:focus-visible, button:focus-visible, summary:focus-visible { outline:3px solid var(--destaque); outline-offset:2px; }
/* 2 contraste WCAG: CTA WhatsApp (1.98:1 -> 9:1) */
.btn-zap { color:#08210F; }
.zap { color:#08210F; }
/* 3 cauda dourada do h1 legivel no claro (1.70:1 -> 4.6:1) */
.hero h1 .gradiente { background-image:linear-gradient(135deg, var(--primaria), #B45309); }
/* 12 faixa da turma 10.4px -> 11.5px */
.turma .faixa { font-size:0.72rem; }
/* 21 areas de toque 44px */
.footer-col a { display:flex; align-items:center; min-height:44px; margin-bottom:0; }
.footer-redes a { width:44px; height:44px; display:flex; align-items:center; justify-content:center; }
.chip { padding:12px 18px; }
/* 10/11 contraste claro: texto-suave e estrelas (no dark, vars originais ja passam) */
@media (prefers-color-scheme: light), (prefers-color-scheme: no-preference) {
  .metodo-nota, .incluso .sub { color:#475569; }
  .depo .estrelas { color:#B45309; }
}
