:root{
  --tinta:#101014; --tinta2:#191920;
  --laranja:#E44E2D; --amarelo:#F5AE08; --azul:#00479B;
  --papel:#FFFFFF; --nevoa:#F1EFEC;
  --texto:#101014; --texto-fraco:#5A5A66;
  --claro-fraco:rgba(255,255,255,.66);
  --linha:rgba(255,255,255,.14); --linha-clara:#E2DFDA;
  --raio:14px;
  --faixa:repeating-linear-gradient(115deg,var(--laranja) 0 14px,var(--amarelo) 14px 28px,var(--tinta) 28px 42px);
  --container:1180px;
}
*{box-sizing:border-box}
/* display explicito em .contagem e afins nao pode vencer o hidden do JS */
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--papel); color:var(--texto);
  font-family:'Archivo',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:17px; line-height:1.6; -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:22px}

/* tipografia */
.display{
  font-weight:900; font-variation-settings:'wdth' 118;
  line-height:.92; letter-spacing:-.022em; text-transform:uppercase; margin:0;
}
.mono{font-family:'IBM Plex Mono',ui-monospace,monospace}
.olho{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:12px; letter-spacing:.16em; text-transform:uppercase; font-weight:500;
}
h2.titulo{
  font-weight:800; font-variation-settings:'wdth' 112;
  font-size:clamp(30px,4.4vw,46px); line-height:1.02; letter-spacing:-.02em;
  text-transform:uppercase; margin:0 0 14px;
}
p{margin:0 0 16px}
.lead{font-size:clamp(17px,1.9vw,20px);color:var(--texto-fraco)}
.escuro .lead{color:var(--claro-fraco)}

/* faixa do uniforme: assinatura visual */
.tira{height:12px;background:var(--faixa);border:0}

/* topo */
header.topo{
  position:sticky;top:0;z-index:60;background:rgba(255,255,255,.94);
  backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--linha-clara);
}
.topo .barra{display:flex;align-items:center;gap:18px;height:74px}
.topo img{height:44px;width:auto}
.topo .rotulo{
  font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--texto-fraco);border-left:1px solid var(--linha-clara);
  padding-left:18px;line-height:1.3
}
.topo .btn{margin-left:auto}

/* botoes */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:'Archivo',sans-serif;font-weight:800;font-variation-settings:'wdth' 108;
  font-size:15px;letter-spacing:.02em;text-transform:uppercase;text-decoration:none;
  padding:15px 26px;border-radius:999px;border:2px solid transparent;cursor:pointer;
  transition:transform .16s ease,background .16s ease,color .16s ease,border-color .16s ease;
}
.btn-laranja{background:var(--laranja);color:#fff}
.btn-laranja:hover{background:#c93f21;transform:translateY(-2px)}
.btn-linha{background:transparent;color:#fff;border-color:var(--linha)}
.btn-linha:hover{border-color:var(--amarelo);color:var(--amarelo)}
.btn-escuro{background:var(--tinta);color:#fff}
.btn-escuro:hover{background:#000;transform:translateY(-2px)}
.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}
.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,button:focus-visible{
  outline:3px solid var(--azul);outline-offset:2px
}

/* hero */
.hero{background:var(--tinta);color:#fff;position:relative;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.12fr .88fr;gap:52px;align-items:center;
  padding-top:76px;padding-bottom:80px}
.hero .olho{color:var(--amarelo);margin-bottom:20px;display:flex;align-items:center;gap:12px}
.hero .olho::after{content:"";flex:1;height:1px;background:var(--linha)}
.hero h1{font-size:clamp(38px,4.9vw,62px);color:#fff}
.hero h1 .amarelo{color:var(--amarelo);font-style:italic}
.hero p.lead{margin:22px 0 30px;max-width:38ch}
.acoes{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.contagem{
  margin-top:34px;padding-top:22px;border-top:1px solid var(--linha);
  display:flex;align-items:baseline;gap:14px;flex-wrap:wrap
}
.contagem .rel{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--claro-fraco)}
.contagem .num{font-size:25px;font-weight:600;color:#fff;font-variant-numeric:tabular-nums}
.contagem .num b{color:var(--amarelo);font-weight:600}
.hero-foto{position:relative}
.hero-foto img{
  width:100%;aspect-ratio:5/4;object-fit:cover;object-position:center 30%;border-radius:var(--raio);
}
.hero-foto::after{
  content:"";position:absolute;left:-14px;bottom:-16px;width:calc(100% + 28px);height:15px;
  background:var(--faixa);transform:rotate(-1.6deg);border-radius:2px
}
.selo{
  position:absolute;top:-16px;left:-16px;background:var(--amarelo);color:var(--tinta);
  border-radius:999px;padding:12px 20px;font-family:'IBM Plex Mono',monospace;font-size:12px;
  font-weight:600;letter-spacing:.1em;text-transform:uppercase;box-shadow:0 10px 30px rgba(0,0,0,.35)
}

/* cronograma */
.cronograma{background:var(--nevoa);padding:74px 0}
.marcos{display:grid;grid-template-columns:repeat(4,1fr);margin-top:44px;position:relative}
.marco{padding:0 22px 4px;border-left:1px solid var(--linha-clara);position:relative}
.marco:first-child{border-left:0;padding-left:0}
.marco::before{
  content:"";position:absolute;top:-19px;left:22px;width:11px;height:11px;border-radius:50%;
  background:var(--tinta);
}
.marco:first-child::before{left:0}
.marco.destaque::before{background:var(--laranja);box-shadow:0 0 0 5px rgba(228,78,45,.2)}
.marcos::before{content:"";position:absolute;top:-14px;left:5px;right:0;height:1px;background:var(--linha-clara)}
.marco .dia{font-family:'IBM Plex Mono',monospace;font-size:40px;font-weight:600;line-height:1;letter-spacing:-.03em}
.marco.destaque .dia{color:var(--laranja)}
.marco .mes{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--texto-fraco);margin-top:6px}
.marco .oque{font-weight:700;margin-top:12px;font-size:16.5px;line-height:1.25}
.marco .hora{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--texto-fraco);margin-top:4px}

/* dia da prova */
.prova{background:var(--papel);padding:78px 0}
.prova .grade{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.horarios{border-top:2px solid var(--tinta);margin:26px 0 0;padding:0}
.horarios .linha{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid var(--linha-clara)}
.horarios dt{font-weight:700}
.horarios dd{margin:0;font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:17px}
.horarios .fecha dd{color:var(--laranja)}
.mapa{border-radius:var(--raio);overflow:hidden;border:1px solid var(--linha-clara)}
.mapa iframe{width:100%;height:290px;border:0;display:block}
.endereco{background:var(--nevoa);padding:24px 26px;border-radius:var(--raio);margin-top:18px}
.endereco .nome{font-weight:800;text-transform:uppercase}
.endereco address{font-style:normal;color:var(--texto-fraco);margin-top:6px}
.aviso{
  margin-top:24px;padding:18px 20px;border-radius:var(--raio);
  background:#FFF6E2;border:1px solid #F2D89B
}
.aviso p{font-size:15.5px;color:#6B4E12;margin:0}
.aviso b{display:block;color:#3F2E06}

/* escola */
.escola{background:var(--tinta);color:#fff;padding:78px 0}
.escola .grade{display:grid;grid-template-columns:.95fr 1.05fr;gap:56px;align-items:center}
.escola img{border-radius:var(--raio);aspect-ratio:4/3;object-fit:cover}
.numeros{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:32px}
.numeros div{border-top:1px solid var(--linha);padding-top:14px}
.numeros .n{font-family:'IBM Plex Mono',monospace;font-size:28px;font-weight:600;color:var(--amarelo);line-height:1}
.numeros .l{font-size:14px;color:var(--claro-fraco);margin-top:8px;line-height:1.35}

/* formulario */
.inscricao{background:var(--nevoa);padding:78px 0 90px}
.cartao{
  background:#fff;border-radius:18px;overflow:hidden;max-width:760px;margin:34px auto 0;
  box-shadow:0 24px 60px rgba(16,16,20,.10);border:1px solid var(--linha-clara)
}
.cartao .tira{height:10px}
.cartao .corpo{padding:38px clamp(20px,4vw,44px) 42px}
fieldset{border:0;padding:0;margin:0 0 34px}
legend{
  font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--laranja);padding:0 0 14px;font-weight:600;width:100%;border-bottom:1px solid var(--linha-clara);
  margin-bottom:22px
}
.campo{margin-bottom:20px}
.dupla{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
label{display:block;font-weight:700;font-size:15px;margin-bottom:7px}
label .opc{font-weight:400;color:var(--texto-fraco);font-size:13.5px}
/* texto de apoio vem depois do campo: assim os labels de uma linha dupla
   ficam sempre na mesma altura */
.dica{font-size:13.5px;color:var(--texto-fraco);margin:7px 0 0}
input[type=text],input[type=email],input[type=tel],input[type=date],select{
  width:100%;padding:14px 16px;font-size:16.5px;font-family:inherit;color:var(--texto);
  background:#fff;border:1.5px solid #CFCBC4;border-radius:10px;transition:border-color .15s ease,box-shadow .15s ease
}
input:focus,select:focus{border-color:var(--azul);box-shadow:0 0 0 3px rgba(0,71,155,.14);outline:0}
input.erro,select.erro{border-color:var(--laranja);background:#FFF7F5}
.msg-erro{display:none;color:#B8341A;font-size:14px;margin-top:6px;font-weight:600}
.campo.invalido .msg-erro{display:block}
.radios{display:flex;gap:12px;flex-wrap:wrap}
.radios label{
  flex:1;min-width:130px;display:flex;align-items:center;gap:10px;margin:0;padding:14px 18px;
  border:1.5px solid #CFCBC4;border-radius:10px;cursor:pointer;font-weight:600;background:#fff
}
.radios label:has(input:checked){border-color:var(--tinta);background:var(--tinta);color:#fff}
.radios input{accent-color:var(--amarelo);width:18px;height:18px}
.aceite{
  display:flex;gap:14px;align-items:flex-start;padding:20px;border:1.5px solid #CFCBC4;
  border-radius:12px;background:#FAF9F7;cursor:pointer
}
.aceite:has(input:checked){border-color:var(--tinta);background:#fff}
.aceite input{width:22px;height:22px;margin-top:2px;accent-color:var(--laranja);flex:0 0 auto;cursor:pointer}
.aceite .texto{font-size:15px;line-height:1.5;font-weight:400}
.aceite .texto b{font-weight:800}
.aceite ul{margin:8px 0 0;padding-left:18px;color:var(--texto-fraco);font-size:14.5px}
.aceite li{margin-bottom:4px}
.aceite a{color:var(--azul);font-weight:600}
.campo.invalido .aceite{border-color:var(--laranja);background:#FFF7F5}
.enviar{width:100%;margin-top:26px;padding:19px 26px;font-size:17px}
.rodape-form{text-align:center;font-size:13.5px;color:var(--texto-fraco);margin:16px 0 0}
.falha{
  display:none;margin-top:18px;padding:16px 18px;border-radius:10px;background:#FFF1EE;
  border:1px solid #F3B7A7;color:#A72E13;font-size:15px;font-weight:600
}

/* comprovante que a família vê depois de enviar (e fotografa) */
.feito{display:none;padding:4px 0}
.comprovante{border:1.5px solid var(--linha-clara);border-radius:14px;padding:26px 26px 22px;background:#fff}
.comprovante .cabeca{display:flex;align-items:center;gap:18px;padding-bottom:20px;border-bottom:2px solid var(--tinta)}
.comprovante .cabeca img{height:56px;width:auto}
.comprovante .olho{color:var(--laranja);margin:0 0 4px}
.comprovante h3{
  font-size:clamp(22px,3.4vw,30px);text-transform:uppercase;font-weight:900;
  font-variation-settings:'wdth' 114;line-height:1.02;letter-spacing:-.02em;margin:0
}
.comprovante .sub{margin:2px 0 0;color:var(--texto-fraco);font-size:15.5px}
.codigo{
  display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  background:var(--tinta);color:#fff;border-radius:12px;padding:16px 22px;margin:20px 0
}
.codigo .rot{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--claro-fraco)}
.codigo strong{font-size:clamp(20px,3vw,26px);letter-spacing:.06em;color:var(--amarelo)}
.olho-prova{color:var(--laranja);margin:30px 0 12px}
.resumo{margin:0;padding:0;border-top:1px solid var(--linha-clara)}
.resumo .linha{display:flex;justify-content:space-between;gap:16px;padding:11px 0;
  border-bottom:1px solid var(--linha-clara);font-size:15.5px}
.resumo dt{color:var(--texto-fraco)}
.resumo dd{margin:0;font-weight:700;text-align:right;font-family:'IBM Plex Mono',monospace;font-size:15px}
.comprovante .pe{margin:22px 0 0;padding-top:16px;border-top:1px solid var(--linha-clara);
  font-size:13.5px;color:var(--texto-fraco);line-height:1.5}
.guarde{
  margin:22px 0 20px;padding:18px 20px;border-radius:12px;background:#FFF6E2;
  border:1px solid #F2D89B;color:#6B4E12;font-size:15.5px;line-height:1.55
}
.guarde b{color:#3F2E06}

/* rodape */
footer{background:var(--tinta);color:var(--claro-fraco);padding:56px 0 40px;font-size:15px}
footer .grade{display:flex;gap:40px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}
footer img{height:52px;width:auto;background:#fff;border-radius:10px;padding:8px}
footer .lema{color:#fff;font-weight:700;margin-top:14px;font-size:16px}
footer a{color:#fff;text-decoration:none;border-bottom:1px solid var(--linha)}
footer a:hover{color:var(--amarelo)}
footer .contatos p{margin:0 0 8px}
footer .legal{margin-top:38px;padding-top:20px;border-top:1px solid var(--linha);font-size:13px}

/* revelacao no scroll */
.rev{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.rev.vis{opacity:1;transform:none}

@media (max-width:900px){
  .hero .wrap{grid-template-columns:1fr;gap:38px;padding-top:52px;padding-bottom:58px}
  .hero-foto{order:-1}
  .prova .grade,.escola .grade{grid-template-columns:1fr;gap:34px}
  .escola img{order:-1}
  .marcos{grid-template-columns:1fr 1fr;gap:30px 0}
  .marcos::before{display:none}
  .marco{border-left:0;padding-left:0;border-top:1px solid var(--linha-clara);padding-top:20px}
  .marco::before{left:0;top:-6px}
  .topo .rotulo{display:none}
  .topo .barra{height:66px}
  .dupla{grid-template-columns:1fr;gap:0}
}
@media (max-width:520px){
  body{font-size:16px}
  .topo .btn{padding:11px 16px;font-size:12.5px;width:auto}
  .cartao .corpo{padding:28px 18px 32px}
  /* botão de ação ocupa a largura toda no celular; o do topo, não */
  .acoes .btn,.enviar{width:100%}
  /* no celular o valor longo não cabe ao lado do rótulo: empilha */
  .resumo .linha{flex-direction:column;gap:2px;padding:10px 0}
  .resumo dt{font-size:13px;letter-spacing:.02em}
  .resumo dd{text-align:left;font-size:16px}
  .comprovante{padding:22px 18px 18px}
  .comprovante .cabeca{gap:14px}
  .comprovante .cabeca img{height:46px}
  .comprovante .olho{font-size:10.5px;letter-spacing:.1em}
  .selo{font-size:10.5px;padding:9px 14px;left:0;top:-13px;letter-spacing:.06em}
  .hero-foto img{aspect-ratio:4/3}
  .hero-foto::after{bottom:-11px;height:11px}
}
/* impressão e "salvar em PDF": sai só o comprovante, em uma página */
@page{margin:16mm}
@media print{
  body{background:#fff}
  body > *{display:none!important}
  body > .inscricao{display:block!important;padding:0;background:#fff}
  .inscricao .wrap{padding:0;max-width:none}
  .inscricao .wrap > div:first-child,#formulario,.feito .acoes,.guarde,
  .cartao > .tira,.rodape-form{display:none!important}
  .cartao{box-shadow:none;border:0;border-radius:0;margin:0;max-width:none}
  .cartao .corpo{padding:0}
  .comprovante{border:0;padding:0}
  .codigo{background:#fff;color:var(--tinta);border:2px solid var(--tinta)}
  .codigo .rot{color:var(--texto-fraco)}
  .codigo strong{color:var(--tinta)}
}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
  .rev{opacity:1;transform:none}
}
