/* Complementos do site em PHP: nada que mude o design system. */
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
a.nw-chip{text-decoration:none;display:inline-flex;align-items:center}
.spons-img{display:block;padding:0}
.spons-img a,.spons-img picture{display:block;width:100%;height:100%}
.spons-img img{width:100%;height:100%;object-fit:cover;display:block}
.spons-img .bn-m,.spons-img .bn-m img{display:none}
@media (max-width:700px){
  .spons:has(.spons-img){aspect-ratio:2/1}
  .spons-img .bn-d,.spons-img .bn-d img{display:none}
  .spons-img .bn-m{display:block}.spons-img .bn-m img{display:block}
}
.nw-voltar{display:inline-block;text-decoration:none}
.nw-texto h2{font:800 clamp(24px,3vw,32px)/1.15 var(--display);color:var(--verde);margin:1.6em 0 .5em}
.erro-global{color:var(--vermelho);font-weight:600;margin-top:8px}

/* ===== Ajustes de novembro/2026: celular, linha do tempo, redes, créditos e movimento ===== */

/* redes sociais em ícones */
.redes{display:flex;gap:12px;flex-wrap:wrap}
.rede{width:48px;height:48px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:1.5px solid currentColor;color:var(--papel);text-decoration:none;transition:transform .25s,background .25s,color .25s,border-color .25s}
.rede svg{width:22px;height:22px}
.rede:hover,.rede:focus-visible{background:var(--ouro);border-color:var(--ouro);color:var(--tinta);transform:translateY(-3px)}
.ct-redes .rede{color:var(--verde)}
.ct-redes .rede:hover,.ct-redes .rede:focus-visible{background:var(--verde);border-color:var(--verde);color:var(--papel)}
.fest-redes .redes{margin-top:4px}

/* crédito de desenvolvimento no rodapé */
.legal{flex-wrap:wrap;gap:8px 20px;align-items:center}
.legal .dev{display:inline-flex;align-items:center;gap:8px;margin-left:auto;text-decoration:none;color:inherit;opacity:.7;font-size:12px;transition:opacity .2s}
.legal .dev:hover,.legal .dev:focus-visible{opacity:1}
.legal .dev img{height:18px;width:auto;display:block}

/* linha do tempo: o ano nunca passa por trás do ponto */
.fest-tempo{--ano:clamp(104px,15vw,176px)}
.fest-tempo li{grid-template-columns:var(--ano) minmax(0,1fr);gap:0}
.fest-tempo li::before{left:calc(var(--ano) - 1px);width:2px}
.fest-tempo li::after{left:calc(var(--ano) - 11px)}
.fest-tempo b{padding-right:32px;font-size:clamp(26px,3.2vw,42px);white-space:nowrap}
.fest-tempo li>div{padding-left:28px}
@media (max-width:560px){
  .fest-tempo li{grid-template-columns:minmax(0,1fr);gap:4px;padding-left:32px}
  .fest-tempo li::before{left:8px}
  .fest-tempo li::after{left:0;top:6px}
  .fest-tempo b{padding:0;font-size:30px}
  .fest-tempo li>div{padding-left:0}
}
/* preenchimento da linha conforme a rolagem */
.fest-tempo.anim li::before{background:linear-gradient(to bottom,var(--ambar) calc(var(--p,0)*100%),var(--contorno) calc(var(--p,0)*100%))}
.fest-tempo.anim li::after{background:var(--papel);box-shadow:0 0 0 2px var(--contorno);transition:background .35s,box-shadow .35s,transform .45s cubic-bezier(.2,1.6,.4,1)}
.fest-tempo.anim li.on::after{background:var(--ambar);box-shadow:0 0 0 2px var(--ambar);transform:scale(1.18)}
.fest-tempo.anim li.atual.on::after{background:var(--vermelho);box-shadow:0 0 0 2px var(--vermelho)}

/* barra de progresso de leitura */
.progresso{position:fixed;z-index:80;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--ambar),var(--vermelho));transform:scaleX(0);transform-origin:left;pointer-events:none}

/* contadores: números alinhados e sem estourar a caixa */
.num b,.ve-numeros b,.pt-numeros b,.fest-nums b{font-variant-numeric:tabular-nums lining-nums;white-space:nowrap;max-width:100%}

/* toque: resposta visual */
.btn{transition:transform .15s,box-shadow .2s,background .2s,color .2s}
.btn:active{transform:scale(.97)}
@media (hover:none){
  .fest-card:active,.card-n:active,.nw-card a:active,.num:active{transform:scale(.985)}
}
@media (prefers-reduced-motion:no-preference){
  @keyframes pgin{from{opacity:0}to{opacity:1}}
  main{animation:pgin .45s ease both}
  .etapas li:not(:last-child)::after{background-size:200% 100%;animation:fluxo 3s linear infinite}
  @keyframes fluxo{to{background-position:-28px 0}}
}

/* ===== Celular ===== */
@media (max-width:700px){
  .sec{padding-block:46px}
  .titulo{font-size:clamp(28px,8.2vw,34px)}
  .lead{font-size:17px}
  /* títulos do topo menores, para caber mais conteúdo na primeira tela */
  .hero{padding-top:98px;padding-bottom:72px}
  .hero h1{font-size:clamp(38px,11.5vw,50px);line-height:.95}
  .hero-copy{gap:12px}
  .hero-data .d1{font-size:clamp(34px,10.5vw,44px)}
  .hero-data .d2{font-size:clamp(15px,4.4vw,19px)}
  .hero-local{font-size:16px}
  .conta-m .n{font-size:40px}
  .conta-m{padding:10px 18px 10px 12px}
  .hero-escola{padding:9px 16px}.hero-escola b{font-size:19px}
  .hero-nota{font-size:14px}
  .ed-hero{padding-top:98px;padding-bottom:56px}
  .ed-h1,.fest-hero .ed-h1{font-size:clamp(32px,9.6vw,42px);line-height:1}
  .ed-sub{font-size:15px}
  .fest-lead{font-size:16px}
  .ed-meta dd{font-size:17px}
  /* passos numerados: número ao lado do texto */
  .etapas{grid-template-columns:minmax(0,1fr);row-gap:0;position:relative}
  .etapas li{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:14px;row-gap:2px;padding:0 0 22px;align-items:start}
  .etapas li:not(:last-child)::after{display:block;top:46px;bottom:4px;left:21px;right:auto;width:2px;height:auto;background:repeating-linear-gradient(180deg,var(--ambar) 0 7px,transparent 7px 13px)}
  .num-e{grid-row:1/3;width:44px;height:44px;font-size:22px}
  .etapas b{margin-top:2px;font-size:20px}
  .etapas li>span:last-child{font-size:15px}
  .ve-card,.pt-card{display:grid;grid-template-columns:40px minmax(0,1fr);column-gap:14px;padding:16px 18px;align-items:start}
  .ve-n,.pt-n{grid-row:1/3;margin:0}
  .ve-card h3,.pt-card h3{font-size:19px;margin-bottom:2px}
  .ve-card p,.pt-card p{font-size:15px}
  .ve-cards,.pt-cards{gap:12px}
  .passos li{padding:12px 16px}
  .rg-etapas li{padding:12px 14px}
  .fest-card,.pt-pil,.ve-numeros div,.pt-numeros div{padding:18px}
}
@media (max-width:560px){
  /* Vai à Escola: logo ao lado do texto */
  .esc-ficha{grid-template-columns:auto minmax(0,1fr);gap:14px;padding:16px;align-items:center}
  .esc-ficha>img{width:78px}
  .esc-ficha .ficha-info b{font-size:19px;line-height:1.15}
  .esc-ficha .ficha-info .btn{width:100%;justify-content:center}
  .rod-cols{gap:22px}
  .legal .dev{margin-left:0}
}

/* News: embedded video and photo gallery */
.nw-video{position:relative;aspect-ratio:16/9;margin:0 0 1.4em;border-radius:var(--r-cartao);overflow:hidden;background:#1e2b23}
.nw-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.nw-galeria{margin:var(--s4,32px) 0}
.nw-galeria-t{font:800 clamp(24px,3vw,32px)/1.15 var(--display);color:var(--verde);margin:0 0 .6em}
.nw-galeria .ed-galeria{margin-top:0}
@media (min-width:901px){.nw-galeria .ed-galeria.com-fotos{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* O Festival: long-form text blocks */
.fest-dois{align-items:start}
.fest-prosa{gap:var(--s2)}
.fest-prosa .titulo{margin-bottom:var(--s1)}
.fest-prosa p{font-size:clamp(17px,1.25vw,19px);line-height:1.65;color:var(--cinza);max-width:62ch}
.sec-verde .fest-prosa p{color:#E9E4D3}
.fest-prosa strong{color:var(--verde);font-weight:700}
.sec-verde .fest-prosa strong{color:var(--ouro)}
.fest-prosa-larga p{max-width:72ch}
.fest-destaque{position:sticky;top:110px}
.fest-destaque p{font-size:clamp(22px,2.2vw,30px)}
.fest-big{display:block;font:800 clamp(64px,8vw,112px)/1 var(--display);color:var(--ouro);margin-bottom:8px}
.fest-fecho{border-left:4px solid var(--ambar);padding-left:16px}
.fest-card p+p{margin-top:-4px}
@media (max-width:900px){.fest-destaque{position:static}}

/* Phone: country selector (flag + dial code) before the number */
.tel-grupo{display:flex;align-items:stretch;gap:8px;width:100%}
.tel-grupo input[type=tel]{flex:1;min-width:0;width:100%}
.ddi{position:relative;flex:none;display:inline-flex;align-items:center;gap:6px;min-height:52px;padding:0 26px 0 12px;border:2px solid var(--contorno);border-radius:var(--r-campo);background:var(--papel);color:var(--tinta);font-weight:700;font-size:16px;transition:border-color .2s,box-shadow .2s}
.ddi::after{content:"";position:absolute;right:10px;top:50%;width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-70%) rotate(45deg);opacity:.6}
.ddi-flag{width:24px;height:18px;border-radius:3px;object-fit:cover;box-shadow:0 0 0 1px rgba(0,0,0,.12)}
.campo .ddi select{position:absolute;inset:0;width:100%;height:100%;min-height:0;padding:0;border:0;opacity:0;cursor:pointer;font-size:16px}
.ddi:focus-within{border-color:var(--verde);box-shadow:0 0 0 4px rgba(60,92,70,.15)}
@media (max-width:380px){.ddi{padding:0 22px 0 8px;gap:4px}.ddi-code{font-size:14px}}
