/* ==========================================================================
   Masterclass Seleção do Fornecedor — 2027 (v3, "noite de evento")
   Pele tirada da arte-chave: ameixa escuro + foto, petróleo da logo,
   areia para o CTA. Site de evento: hero com foto, barra de informações,
   faixas com foto de fundo intercaladas com seções claras.
   Títulos de seção no padrão da casa: linha pequena em cima + título grande.
   ========================================================================== */

:root {
  --a950: #1E151D;
  --a900: #2B1F2A;
  --a800: #3A2A38;
  --a700: #4A3747;
  --pet: #5BA4AF;       /* destaque sobre escuro */
  --pet-ink: #2A6E7A;   /* texto/botão sobre claro (AA com branco) */
  --pet-ink-hi: #225C66;
  --areia: #EBCB8B;
  --areia-hi: #F2D9A6;
  --claro: #F6F3F2;
  --branco: #FFFFFF;
  --linha: #E5DEDD;
  --tx: #241B23;
  --tx2: #5E5560;
  --wrap: 1320px;
  --g: clamp(16px, 4vw, 48px);
  --r: 4px;
  --ease: cubic-bezier(.2, .75, .2, 1);
  --top-h: 38px;
  --nav-h: 96px;

  /* ---- FONTES (definitivas, escolha do dono em 07/10/2026): Quicksand nos títulos + Nunito nos textos ----
     Títulos em caixa mista, peso 500; "2027" em 600-700; texto 15px.
     --esc / --esc-num: escala dos títulos de seção e dos números (multiplicam os clamp() de cada bloco) */
  --fonte-titulo: "Quicksand", "Segoe UI", sans-serif;
  --fonte-texto: "Nunito", "Segoe UI", system-ui, sans-serif;
  --peso-h1: 500; --peso-titulo: 500; --peso-sub: 500; --peso-num: 500; --peso-ano: 700;
  --esc: .75; --esc-num: .7;
  --esp-titulo: 0; --lh-titulo: 1.14;
  --caixa-titulo: none;
}

*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: clip; scroll-behavior: smooth; scroll-padding-top: 96px; -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--fonte-texto); font-size: 15px; line-height: 1.7; color: var(--tx); background: var(--branco); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, h3, h4, p, figure, dl, dd { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
button { font: inherit; color: inherit; cursor: pointer; }
:focus-visible { outline: 3px solid var(--areia); outline-offset: 3px; }
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--g); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: 12px; top: -60px; z-index: 300; padding: 10px 16px; background: var(--areia); color: var(--a950); font-weight: 600; }
.skip:focus { top: 10px; }

/* --------------------------------------------------------------------------
   Tipografia comum: títulos e números
   -------------------------------------------------------------------------- */
.h2, .hero h1, .topo h1, .reserve h2, .acontece h2, .chamada h2, .bio h2, .prof-corpo h3, .pres-mes, .pres-foto b,
.c-card h2, .cv-topo h3, .banco-topo b, .gal-cab p, .menu-titulo {
  font-family: var(--fonte-titulo); font-weight: var(--peso-titulo); line-height: var(--lh-titulo);
  letter-spacing: var(--esp-titulo); text-transform: var(--caixa-titulo);
}
.m-tit, .ac-tit, .sub7 h3, .barra-preco .txt b, .marcos b {
  font-family: var(--fonte-titulo); font-weight: var(--peso-sub); letter-spacing: var(--esp-titulo); text-transform: var(--caixa-titulo);
}
.hero h1, .topo h1 { font-weight: var(--peso-h1); }
.contagem b, .numeros b, .preco .valor, .barra-preco .valor, .pres-dia, .m-num, .ac-num, .sub7 .sn, .banco-dados dd {
  font-family: var(--fonte-titulo); font-weight: var(--peso-num); font-variant-numeric: tabular-nums;
}
.m-num, .ac-num, .sub7 .sn { font-weight: var(--peso-sub); }

/* Títulos de seção: linha pequena (peso normal) + título grande; centralizado */
.rotulo { font-family: var(--fonte-texto); font-weight: 400; font-size: clamp(15px, 1.1vw, 16px); line-height: 1.3; color: var(--pet-ink); }
.h2 { margin-top: 6px; font-size: calc(var(--esc) * clamp(34px, 3.6vw, 50px)); color: var(--a900); }
.cab { margin-bottom: clamp(34px, 4vw, 54px); text-align: center; }
.cab .intro { margin: 14px auto 0; max-width: 620px; color: var(--tx2); font-size: 16px; }
.foto-sec .rotulo, .topo .rotulo, .pres-info .rotulo { color: var(--pet); }
.foto-sec .h2 { color: #fff; }
.foto-sec .intro { color: rgba(255,255,255,.85); }

/* listas com marcador simples */
.marcas, .prof-corpo ul, .ac-corpo ul { list-style: disc; padding-left: 1.15em; }
.marcas li::marker, .prof-corpo li::marker, .ac-corpo li::marker { color: var(--pet-ink); }

/* --------------------------------------------------------------------------
   Botões
   -------------------------------------------------------------------------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 48px; padding: 0 22px; border-radius: var(--r); border: 2px solid transparent; background: transparent; font-family: var(--fonte-texto); font-weight: 600; font-size: 13px; letter-spacing: .07em; text-transform: uppercase; text-decoration: none; white-space: nowrap; transition: background-color .2s, color .2s, border-color .2s; }
.btn svg { width: 16px; height: 16px; flex: none; }
.btn .seta { transition: transform .2s; }
.btn:hover .seta { transform: translateX(3px); }
.btn-areia { background: var(--areia); color: var(--a950); }
.btn-areia:hover { background: var(--areia-hi); }
.btn-linha { border-color: rgba(255,255,255,.55); color: #fff; }
.btn-linha:hover { border-color: #fff; background: #fff; color: var(--a900); }
.btn-pet { background: var(--pet-ink); color: #fff; }
.btn-pet:hover { background: var(--pet-ink-hi); }
.btn-ameixa { background: var(--a900); color: #fff; }
.btn-ameixa:hover { background: var(--a700); }
.btn-out { border-color: var(--a900); color: var(--a900); }
.btn-out:hover { background: var(--a900); color: #fff; }
.btn-grande { min-height: 54px; padding: 0 28px; font-size: 13.5px; }
.botoes { display: flex; flex-wrap: wrap; gap: 12px; }

/* --------------------------------------------------------------------------
   Topbar + cabeçalho (sobre o hero)
   -------------------------------------------------------------------------- */
.topbar { position: relative; z-index: 120; height: var(--top-h); background: #140E13; color: rgba(255,255,255,.78); font-size: 13px; }
.topbar .wrap { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.topbar b { font-weight: 600; color: #fff; }
.topbar .contatos-top { display: flex; gap: 26px; }
.topbar a { display: inline-flex; align-items: center; gap: 7px; text-decoration: none; }
.topbar a:hover { color: #fff; }
.topbar svg { width: 14px; height: 14px; color: var(--pet); }
.site-header { position: absolute; top: var(--top-h); left: 0; right: 0; z-index: 110; height: var(--nav-h); transition: background-color .3s; }
.site-header::after { content: ""; position: absolute; left: var(--g); right: var(--g); bottom: 0; height: 1px; background: rgba(255,255,255,.12); }
.site-header.fixo { position: fixed; top: 0; height: 76px; background: var(--a950); }
.site-header.fixo::after { left: 0; right: 0; background: rgba(255,255,255,.08); }
.site-header .wrap { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.marca img { height: 76px; width: auto; }
.site-header.fixo .marca img { height: 54px; }
.menu { display: flex; align-items: center; gap: 2px; }
.menu a { padding: 10px 15px; font-family: var(--fonte-texto); font-weight: 500; font-size: 14.5px; color: #fff; text-decoration: none; }
.menu a:not(.btn) { position: relative; }
.menu a:not(.btn)::after { content: ""; position: absolute; left: 15px; right: 15px; bottom: 4px; height: 2px; background: var(--pet); transform: scaleX(0); transform-origin: left; transition: transform .25s var(--ease); }
.menu a:not(.btn):hover::after, .menu a[aria-current="page"]::after { transform: scaleX(1); }
.menu .btn { min-height: 44px; margin-left: 16px; padding: 0 20px; font-size: 12.5px; }
.menu a.btn-areia, .menu a.btn-areia:hover { color: var(--a950); }
.menu-btn { display: none; width: 48px; height: 48px; border: 1px solid rgba(255,255,255,.35); border-radius: var(--r); background: transparent; color: #fff; align-items: center; justify-content: center; }
.menu-btn svg { width: 24px; height: 24px; }
.menu-btn .x { display: none; }
body.menu-aberto .menu-btn .x { display: block; }
body.menu-aberto .menu-btn .tres { display: none; }
@media (max-width: 1040px) {
  .menu-btn { display: inline-flex; position: relative; z-index: 2; }
  .menu { position: fixed; inset: 0; z-index: 1; flex-direction: column; justify-content: center; gap: 6px; background: var(--a950); opacity: 0; visibility: hidden; transition: opacity .3s, visibility 0s .3s; }
  .menu a:not(.btn) { font-family: var(--fonte-titulo); font-weight: var(--peso-sub); font-size: calc(var(--esc) * 32px); letter-spacing: var(--esp-titulo); text-transform: var(--caixa-titulo); }
  .menu a:not(.btn)::after { bottom: 6px; }
  .menu .btn { margin: 22px 0 0; min-height: 52px; font-size: 13.5px; }
  body.menu-aberto .menu { opacity: 1; visibility: visible; transition-delay: 0s; }
  body.menu-aberto { overflow: hidden; }
}
@media (max-width: 640px) {
  :root { --nav-h: 80px; --top-h: 34px; }
  .topbar { font-size: 13px; }
  .topbar .um-evento { display: none; }
  .topbar .contatos-top a.so-largo { display: none; }
  .topbar .contatos-top { gap: 18px; }
  .topbar .wrap { justify-content: center; }
  .marca img { height: 54px; }
  .site-header.fixo { height: 68px; }
  .site-header.fixo .marca img { height: 46px; }
}

/* --------------------------------------------------------------------------
   HERO (foto da arte-chave + overlay ameixa)
   -------------------------------------------------------------------------- */
.hero { position: relative; padding: calc(var(--top-h) + var(--nav-h) + clamp(26px, 2.8vw, 44px)) 0 112px; color: #fff; background: var(--a950); overflow: hidden; isolation: isolate; }
.hero-bg { position: absolute; inset: 0; z-index: -2; background: url("../img/hero.jpg") 70% center / cover no-repeat; }
.hero::before { content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(90deg, rgba(30,21,29,.92) 0%, rgba(30,21,29,.8) 34%, rgba(30,21,29,.3) 64%, rgba(30,21,29,0) 100%),
    linear-gradient(0deg, rgba(30,21,29,.8) 0%, rgba(30,21,29,0) 30%); }
.hero .wrap { position: relative; z-index: 1; }
.hero-conteudo { max-width: 760px; }
.hero-data { font-weight: 500; font-size: clamp(14.5px, 1.05vw, 16px); color: var(--pet); }
.hero-data span { color: rgba(255,255,255,.4); margin: 0 6px; }
.hero h1 { margin-top: 10px; font-size: calc(1.02 * clamp(34px, 4.4vw, 58px)); line-height: 1.08; }
.hero h1 small { display: block; margin-bottom: 8px; font-family: var(--fonte-texto); font-weight: 400; font-size: clamp(17px, 1.35vw, 19px); line-height: 1.2; letter-spacing: 0; text-transform: none; color: rgba(255,255,255,.9); }
.hero-sub { margin-top: 14px; font-weight: 600; font-size: clamp(16px, 1.4vw, 18px); line-height: 1.3; color: var(--areia); }
.hero-txt { margin-top: 12px; max-width: 540px; font-size: 15px; line-height: 1.6; color: rgba(255,255,255,.86); }
.hero .botoes { margin-top: 26px; }

/* contagem regressiva do hero: coluna direita, acima do "2027" */
.hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 40px; align-items: start; }
.hero .contagem { flex-wrap: wrap; justify-content: flex-end; max-width: 360px; margin-top: 46px; }
.hero .contagem .contagem-rot { width: 100%; justify-content: flex-end; padding: 0 0 10px; margin: 0; }
.hero .contagem > div:last-child { padding-right: 0; }
.hero .contagem > div:first-of-type { border-left: 0; }
@media (max-width: 1100px) {
  .hero-grid { grid-template-columns: 1fr; gap: 0; }
  .hero .contagem { justify-content: flex-start; max-width: none; margin-top: 28px; }
  .hero .contagem .contagem-rot { justify-content: flex-start; }
  .hero .contagem { width: fit-content; }
  .hero .contagem > div:first-of-type { padding-left: 0; }
}
/* contagem regressiva */
.contagem { display: flex; align-items: stretch; gap: 0; margin-top: 26px; }
.contagem-rot { display: flex; align-items: center; padding-right: 20px; margin-right: 4px; font-size: 13px; line-height: 1.2; color: rgba(255,255,255,.82); }
.contagem > div { min-width: 78px; padding: 0 16px; border-left: 1px solid rgba(255,255,255,.18); text-align: center; }
.contagem b { display: block; font-size: calc(var(--esc-num) * clamp(36px, 3.2vw, 46px)); line-height: 1; color: #fff; }
.contagem span { display: block; margin-top: 6px; font-size: 12.5px; color: rgba(255,255,255,.7); }

/* (o "2027" tem bloco próprio mais abaixo: "2027 — quatro formas de aplicar") */
@media (max-width: 860px) {
  .hero { min-height: 0; }
  .hero::before { background: linear-gradient(90deg, rgba(30,21,29,.9), rgba(30,21,29,.7)), linear-gradient(0deg, rgba(30,21,29,.85), rgba(30,21,29,0) 40%); }
}
@media (max-width: 560px) {
  .hero { padding-top: calc(var(--top-h) + var(--nav-h) + 28px); padding-bottom: 96px; }
  .hero .botoes .btn { width: 100%; }
  .contagem { flex-wrap: wrap; }
  .hero .contagem { width: auto; }
  .contagem-rot { width: 100%; padding: 0 0 10px; }
  .contagem > div { flex: 1; min-width: 0; padding: 0 6px; }
  .contagem > div:first-of-type { border-left: 0; padding-left: 0; }
  .contagem b { font-size: calc(var(--esc-num) * 34px); }
  .contagem span { font-size: 12px; }
}

/* --------------------------------------------------------------------------
   Barra de informações (sobreposta ao pé do hero)
   -------------------------------------------------------------------------- */
.info { position: relative; z-index: 5; margin-top: -78px; }
.info-barra { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(230px, auto); background: var(--a800); }
.info-barra > div { display: flex; flex-direction: column; justify-content: center; padding: 24px 28px; color: #fff; }
.info-barra > div + div { border-left: 1px solid rgba(255,255,255,.12); }
.info-barra small { display: block; font-size: 12.5px; line-height: 1.3; color: rgba(255,255,255,.72); }
.info-barra b { display: block; margin-top: 4px; font-family: var(--fonte-texto); font-weight: 600; font-size: 16px; line-height: 1.15; white-space: nowrap; }
.info-barra .acao { padding: 0; }
.info-barra .acao a { display: flex; align-items: center; justify-content: center; gap: 12px; width: 100%; height: 100%; min-height: 84px; padding: 0 28px; background: var(--areia); color: var(--a950); font-weight: 600; font-size: 13.5px; letter-spacing: .07em; text-transform: uppercase; text-decoration: none; transition: background-color .2s; }
.info-barra .acao a:hover { background: var(--areia-hi); }
.info-barra .acao svg { width: 20px; height: 20px; transition: transform .2s; }
.info-barra .acao a:hover svg { transform: translateX(3px); }
@media (max-width: 1180px) {
  .info-barra { grid-template-columns: 1fr 1fr; }
  .info-barra > div:nth-child(3) { border-left: 0; }
  .info-barra > div:nth-child(-n+4) { border-bottom: 1px solid rgba(255,255,255,.12); }
  .info-barra .acao { grid-column: 1 / -1; border-left: 0 !important; }
  .info-barra .acao a { min-height: 66px; }
}
@media (max-width: 560px) {
  .info { margin-top: -60px; }
  .info-barra > div { padding: 16px 16px; }
  .info-barra b { font-size: 15px; white-space: normal; }
  .info-barra small { font-size: 12px; }
}

/* --------------------------------------------------------------------------
   Seções
   -------------------------------------------------------------------------- */
.sec { position: relative; padding: clamp(80px, 8.5vw, 124px) 0; }
.sec.claro { background: var(--claro); }

/* foto de fundo com overlay ameixa (faixas de impacto) */
.foto-sec { position: relative; color: #fff; background: var(--a950); overflow: hidden; isolation: isolate; }
.foto-sec .fundo { position: absolute; inset: 0; z-index: -2; background-position: center; background-size: cover; background-repeat: no-repeat; }
.foto-sec::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(30,21,29,.8); }

/* Apresentação: texto + 3 fotos simples */
.apres { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(40px, 6vw, 96px); align-items: center; }
.apres .lead { margin-top: 20px; font-size: clamp(16.5px, 1.25vw, 18px); line-height: 1.55; font-weight: 600; color: var(--a900); }
.apres p + p { margin-top: 1em; }
.apres .txt p:not(.lead):not(.rotulo) { color: var(--tx2); }
.colagem { display: grid; grid-template-columns: 1.15fr .85fr; grid-template-rows: 1fr 1fr; gap: 10px; aspect-ratio: 1 / .96; }
.colagem img { width: 100%; height: 100%; object-fit: cover; }
.colagem .c1 { grid-row: 1 / span 2; }
@media (max-width: 980px) { .apres { grid-template-columns: 1fr; } .colagem { max-width: 640px; } }
@media (max-width: 560px) { .colagem { gap: 6px; } }

/* Números: número grande + legenda */
.numeros { padding: clamp(54px, 5.4vw, 76px) 0; background: var(--claro); }
.numeros ul { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; text-align: center; }
.numeros b { display: block; font-size: calc(var(--esc-num) * clamp(52px, 5vw, 76px)); line-height: 1; color: var(--a900); white-space: nowrap; }
.numeros li > span { display: block; margin-top: 8px; font-size: 14.5px; line-height: 1.35; color: var(--tx2); }
@media (max-width: 1000px) { .numeros ul { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 34px; } }
@media (max-width: 560px) { .numeros ul { grid-template-columns: 1fr 1fr; row-gap: 28px; gap: 16px; } .numeros li:last-child { grid-column: 1 / -1; } }

/* Programação (home): lista limpa dos 7 módulos */
.mods { display: grid; grid-template-columns: 1fr 1fr; column-gap: clamp(32px, 4vw, 64px); }
.mods li { border-bottom: 1px solid var(--linha); }
.mods li:nth-child(-n+2) { border-top: 1px solid var(--linha); }
.mods a { display: grid; grid-template-columns: 56px minmax(0, 1fr) 24px; align-items: center; gap: 0 8px; min-height: 80px; padding: 16px 4px; color: var(--a900); text-decoration: none; }
.m-num { font-size: calc(var(--esc-num) * 32px); line-height: 1; color: var(--pet-ink); }
.m-tit { font-size: calc(var(--esc) * 22px); line-height: 1.2; transition: color .2s; }
.m-seta { width: 22px; height: 22px; color: var(--pet-ink); transition: transform .2s; }
.mods a:hover .m-tit { color: var(--pet-ink); }
.mods a:hover .m-seta { transform: translateX(4px); }
.prog-pe { display: flex; flex-direction: column; align-items: center; gap: 20px; margin-top: 44px; text-align: center; }
.prog-pe .botoes { justify-content: center; }
.prog-pe .aviso { max-width: 720px; font-size: 13px; line-height: 1.55; color: var(--tx2); }
@media (max-width: 860px) {
  .mods { grid-template-columns: 1fr; }
  .mods li:nth-child(2) { border-top: 0; }
  .mods a { grid-template-columns: 50px minmax(0, 1fr) 24px; min-height: 76px; padding: 14px 0; }
  .m-num { font-size: calc(var(--esc-num) * 30px); }
  .m-tit { font-size: calc(var(--esc) * 20px); }
}

/* Faixa Reserve (foto de plateia) */
.reserve { padding: clamp(84px, 9vw, 130px) 0; }
.reserve .fundo { background-image: url("../img/plateia.jpg"); background-position: center 30%; }
.reserve::before { background: linear-gradient(90deg, rgba(30,21,29,.9) 0%, rgba(30,21,29,.62) 55%, rgba(43,31,42,.35) 100%); }
.reserve .wrap { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 30px 60px; align-items: end; }
.reserve h2 { margin-top: 8px; font-size: calc(var(--esc) * clamp(36px, 3.8vw, 56px)); }
.reserve h2 span { display: block; color: var(--areia); }
.reserve .quando { margin-top: 14px; font-size: 17px; color: rgba(255,255,255,.85); }
@media (max-width: 860px) { .reserve .wrap { grid-template-columns: 1fr; } .reserve .btn { justify-self: start; } }

/* Professoras (home) */
.profs { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(20px, 3vw, 40px); }
.prof { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); background: #fff; }
.prof-foto { overflow: hidden; background: var(--a900); }
.prof-foto img { width: 100%; height: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 20%; }
.prof-corpo { display: flex; flex-direction: column; padding: clamp(24px, 2.6vw, 38px); }
.prof-corpo h3 { font-size: calc(var(--esc) * clamp(32px, 2.8vw, 42px)); color: var(--a900); }
.prof-corpo .cred { margin-top: 10px; font-weight: 600; font-size: 15px; line-height: 1.45; color: var(--pet-ink); }
.prof-corpo ul { margin-top: 16px; display: grid; gap: 8px; }
.prof-corpo li { font-size: 14.5px; line-height: 1.45; color: var(--tx2); }
.prof-corpo .botoes { margin-top: auto; padding-top: 24px; }
.prof-corpo .btn { min-height: 44px; padding: 0 20px; font-size: 12.5px; }
@media (max-width: 1180px) { .profs { grid-template-columns: 1fr; max-width: 820px; margin: 0 auto; } }
@media (max-width: 600px) { .prof { grid-template-columns: 1fr; } .prof-foto img { aspect-ratio: 1 / 1; } }

/* Público-alvo (foto networking) */
.publico { padding: clamp(84px, 9vw, 130px) 0; }
.publico .fundo { background-image: url("../img/pessoas.jpg"); background-position: center 25%; }
.publico::before { background: linear-gradient(180deg, rgba(30,21,29,.86) 0%, rgba(30,21,29,.78) 100%); }
.alvo { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.alvo li { display: flex; align-items: center; min-height: 104px; padding: 22px 24px; background: #fff; color: var(--a900); font-weight: 600; font-size: 16px; line-height: 1.35; }
@media (max-width: 1000px) { .alvo { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .alvo { grid-template-columns: 1fr; gap: 8px; } .alvo li { min-height: 0; padding: 15px 18px; font-size: 15.5px; } }

/* Investimento */
.invest { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0; }
.preco { display: flex; flex-direction: column; padding: clamp(32px, 4vw, 56px); background: var(--a900); color: #fff; }
.preco-rot { font-size: 16px; color: var(--pet); }
.preco .valor { margin-top: 12px; font-size: clamp(38px, 3.6vw, 52px); line-height: 1; white-space: nowrap; }
.preco .valor small { margin-right: 8px; font-size: .38em; vertical-align: .9em; color: var(--areia); }
.preco .por { margin-top: 8px; font-size: 16px; color: var(--areia); }
.preco dl { display: grid; grid-template-columns: auto 1fr; gap: 10px 22px; margin: 28px 0 32px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.16); font-size: 14.5px; }
.preco dt { font-weight: 600; color: var(--pet); }
.preco dd { color: rgba(255,255,255,.88); }
.preco .btn { margin-top: auto; width: 100%; }
.preco-pag { margin: 0 0 32px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.16); }
.preco-pag-tit { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; font-size: 14.5px; font-weight: 600; color: var(--pet); }
.preco-pag-tit span { font-family: var(--fonte-titulo); font-size: 19px; font-weight: 500; color: #fff; }
.preco dl.preco-pag-dados { display: grid; grid-template-columns: 1fr; gap: 0; margin: 14px 0 0; padding: 0; border: 0; font-size: 14.5px; }
.preco-pag-dados > div { display: grid; grid-template-columns: 112px minmax(0, 1fr) auto; align-items: center; gap: 4px 16px; padding: 9px 0; border-bottom: 1px solid rgba(255,255,255,.1); }
.preco-pag-dados dd { color: #fff; font-size: 16px; overflow-wrap: anywhere; }
.preco-pag-dados .copiar { min-height: 32px; padding: 0 10px; font-size: 12.5px; }
.preco-pag-dados .copiar svg { width: 14px; height: 14px; }
.preco-pag-fav { margin-top: 12px; font-size: 13.5px; line-height: 1.5; color: rgba(255,255,255,.78); }
.preco-pag-fav b { display: block; margin-bottom: 2px; font-weight: 600; color: var(--pet); }
@media (max-width: 420px) { .preco-pag-dados > div { grid-template-columns: minmax(0, 1fr) auto; } .preco-pag-dados dt { grid-column: 1 / -1; } }
.inclui { padding: clamp(32px, 4vw, 56px); background: #fff; border: 1px solid var(--linha); border-left: 0; }
.inclui h3 { font-family: var(--fonte-titulo); font-weight: 500; font-size: 20px; line-height: 1.3; color: var(--a900); }
.marcas { display: grid; gap: 10px; margin-top: 16px; }
.marcas li { font-size: 15px; line-height: 1.45; }
.horas { margin-top: 32px; }
.horas ol { margin-top: 12px; border-top: 1px solid var(--a900); }
.horas li { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--linha); font-size: 14.5px; }
.horas time { font-weight: 600; font-size: 14.5px; color: var(--a900); font-variant-numeric: tabular-nums; }
.horas li.pausa span { color: var(--tx2); }
@media (max-width: 900px) { .invest { grid-template-columns: 1fr; } .inclui { border-left: 1px solid var(--linha); border-top: 0; } }
@media (max-width: 480px) { .preco .valor { font-size: 38px; } .horas li { grid-template-columns: 1fr; gap: 0; } .btn-grande { padding: 0 20px; font-size: 13px; white-space: normal; text-align: center; } }

/* Evento presencial: painel ameixa + foto de Foz */
.presencial { display: grid; grid-template-columns: 1fr 1fr; min-height: 620px; }
.pres-info { display: flex; align-items: center; justify-content: flex-end; padding: clamp(64px, 7vw, 100px) clamp(24px, 6vw, 96px); background: var(--a900); color: #fff; }
.pres-info .dentro { width: 100%; max-width: 540px; }
.pres-dia { margin-top: 14px; font-size: calc(var(--esc-num) * clamp(76px, 8vw, 124px)); line-height: .9; color: var(--areia); }
.pres-mes { margin-top: 8px; font-size: calc(var(--esc) * clamp(28px, 2.7vw, 40px)); }
.pres-cidade { margin-top: 12px; font-weight: 600; font-size: 18px; color: var(--pet); }
.pres-info dl { display: grid; grid-template-columns: auto 1fr; gap: 10px 26px; margin: 28px 0 34px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.14); }
.pres-info dt { font-weight: 600; color: var(--pet); }
.pres-info dd { color: rgba(255,255,255,.85); }
.pres-foto { position: relative; display: flex; align-items: flex-end; padding: clamp(26px, 4vw, 54px); color: #fff; background: var(--a800) url("../img/foz-do-iguacu.jpg") center / cover no-repeat; isolation: isolate; }
.pres-foto::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(30,21,29,.82) 0%, rgba(30,21,29,0) 46%), linear-gradient(90deg, rgba(43,31,42,.35), rgba(43,31,42,0) 30%); }
.pres-foto b { display: block; font-size: calc(var(--esc) * clamp(34px, 3.2vw, 48px)); }
.pres-foto span { display: block; margin-top: 6px; font-size: 15px; color: rgba(255,255,255,.88); }
@media (max-width: 900px) { .presencial { grid-template-columns: 1fr; } .pres-info { justify-content: flex-start; } .pres-foto { min-height: 360px; } }

/* Galeria de fotos de eventos (faixa clara) */
.galeria { padding: 52px 0 0; background: #fff; }
.galeria .gal-cab { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 30px; margin-bottom: 22px; }
.galeria .gal-cab p { font-weight: var(--peso-sub); font-size: calc(var(--esc) * 26px); color: var(--a900); }
.galeria .gal-cab span { font-size: 14.5px; color: var(--tx2); }
.gal-fotos { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 4px; }
.gal-fotos img { width: 100%; height: clamp(180px, 17vw, 300px); object-fit: cover; }
@media (max-width: 860px) { .gal-fotos { grid-template-columns: repeat(3, minmax(0, 1fr)); } .gal-fotos img { height: 30vw; } }

/* --------------------------------------------------------------------------
   Topo das páginas internas (foto da arte-chave + "2027")
   -------------------------------------------------------------------------- */
.topo { position: relative; padding: calc(var(--top-h) + var(--nav-h) + clamp(40px, 5vw, 70px)) 0 clamp(70px, 7vw, 104px); color: #fff; background: var(--a950); overflow: hidden; isolation: isolate; }
.topo .hero-bg { background-position: 80% 40%; }
.topo::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(30,21,29,.95) 0%, rgba(30,21,29,.84) 45%, rgba(30,21,29,.4) 100%); }
.topo .wrap { position: relative; z-index: 1; }
.migalha { display: flex; flex-wrap: wrap; gap: 8px; font-size: 13px; color: rgba(255,255,255,.65); }
.migalha a { text-decoration: none; }
.migalha a:hover { color: #fff; text-decoration: underline; }
.topo .rotulo { margin-top: 20px; }
.topo h1 { margin-top: 6px; max-width: 18ch; font-size: calc(var(--esc) * clamp(42px, 4.6vw, 68px)); }
.topo p.sub { margin-top: 14px; max-width: 600px; font-size: clamp(15px, 1.1vw, 16.5px); color: rgba(255,255,255,.86); }
.topo .botoes { margin-top: 28px; }
@media (max-width: 560px) { .topo { padding-bottom: 60px; } }

/* ==========================================================================
   "2027" — quatro formas de aplicar (html[data-ano], gravado pelo montar.py;
   teste com ?ano=a|b|c|d via assets/ano-teste.js). Sempre chapado, cores da paleta.
   Marcação comum: .ano-ed ("Edição") + .ano-n > span "20" + span "27".
     A  .fita      fita areia pendurada do topo da página, na lateral direita, ponta em "V"
     B  .ano       "20" sobre "27", enorme, à direita; contagem vira aba sobre a barra
     C  .canhoto   canhoto de ingresso areia no fim da barra de informações (home)
        .topo .ano  o mesmo canhoto no pé do topo das internas
     D  .ano-tag   selo areia "2027" encaixado no fim do título (H1)
   ========================================================================== */
.fita, .canhoto, .ano, .ano-tag { display: none; }
.fita, .canhoto, .ano { font-family: var(--fonte-titulo); font-weight: var(--peso-ano); line-height: 1; pointer-events: none; user-select: none; }
.ano-n { font-variant-numeric: lining-nums; }
.ano-ed { font-family: var(--fonte-texto); font-weight: 600; letter-spacing: 0; }

/* ---------- A — FITA / MARCADOR ---------- */
html[data-ano="a"] {
  --fita-w: clamp(46px, 6.4vw, 100px);      /* largura da fita */
  --fita-x: clamp(8px, 1.5vw, 24px);        /* distância da borda direita */
  --fita-v: calc(var(--fita-w) * .34);      /* profundidade do "V" */
  /* folga à direita para o conteúdo não passar por baixo da fita (só o que falta além da margem do container) */
  --fita-livre: max(var(--g), calc(var(--fita-w) + var(--fita-x) + 24px - max(0px, (100% - var(--wrap)) / 2)));
}
html[data-ano="a"] .fita {
  display: flex; flex-direction: column; align-items: center; justify-content: flex-end;
  position: absolute; top: 0; right: var(--fita-x); z-index: 121; width: var(--fita-w);
  height: calc(var(--top-h) + var(--nav-h) + clamp(250px, 23vw, 330px));
  padding-bottom: calc(var(--fita-v) + var(--fita-w) * .2);
  background: var(--areia); color: var(--a950);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 50% calc(100% - var(--fita-v)), 0 100%);
}
html[data-ano="a"] .fita-int { height: calc(var(--top-h) + var(--nav-h) + clamp(220px, 19vw, 280px)); }
html[data-ano="a"] .fita .ano-ed { order: 2; margin-top: calc(var(--fita-w) * .14); font-size: calc(var(--fita-w) * .155); line-height: 1.1; }
html[data-ano="a"] .fita .ano-n { writing-mode: vertical-rl; transform: rotate(180deg); font-size: calc(.8 * var(--fita-w) * 1.18); line-height: 1; letter-spacing: .01em; }
html[data-ano="a"] .site-header.fixo { z-index: 130; }   /* o cabeçalho fixo passa por cima da fita ao rolar */
html[data-ano="a"] body.menu-aberto .fita { visibility: hidden; }
html[data-ano="a"] .topbar .wrap, html[data-ano="a"] .site-header .wrap { padding-right: var(--fita-livre); }
html[data-ano="a"] .site-header::after { right: var(--fita-livre); }
@media (min-width: 561px) { html[data-ano="a"] .hero .wrap, html[data-ano="a"] .topo .wrap, html[data-ano="a"] .info .wrap { padding-right: var(--fita-livre); } }
/* menu de celular: o botão encosta na fita (folga curta); no cabeçalho fixo a fita fica por baixo, então o botão volta à margem normal */
@media (max-width: 1040px) {
  html[data-ano="a"] .site-header .wrap { padding-right: calc(var(--fita-w) + var(--fita-x) + 10px); }
  html[data-ano="a"] .site-header::after { right: calc(var(--fita-w) + var(--fita-x) + 10px); }
  html[data-ano="a"] .site-header.fixo .wrap { padding-right: var(--g); }
  html[data-ano="a"] .site-header.fixo::after { right: 0; }
}
/* celular: quando o cabeçalho fixo chega (classe .chega, posta pelo site.js por ~1,2 s),
   o botão nasce onde fica ao lado da fita e dispara para a margem direita */
@media (max-width: 1040px) {
  html[data-ano="a"] .site-header { --btn-desl: calc(var(--fita-w) + var(--fita-x) + 10px - var(--g)); }
  html[data-ano="a"] .site-header.fixo.chega { animation: cab-desce .42s cubic-bezier(.2, .8, .2, 1) both; }
  html[data-ano="a"] .site-header.fixo.chega .marca { animation: marca-entra .5s .12s cubic-bezier(.2, .8, .2, 1) both; }
  html[data-ano="a"] .site-header.fixo.chega .menu-btn { z-index: 3; animation: btn-dispara 1.15s both; }
  html[data-ano="a"] .site-header.fixo.chega .menu-btn::after {
    content: ""; position: absolute; top: calc(50% - 1px); right: calc(100% + 6px); width: 0; height: 2px;
    border-radius: 2px; background: linear-gradient(90deg, rgba(235,203,139,0), var(--areia));
    box-shadow: 10px -10px 0 rgba(235,203,139,.45), 10px 10px 0 rgba(235,203,139,.45);
    animation: btn-rastro 1.15s both; pointer-events: none;
  }
}
@keyframes cab-desce { from { transform: translateY(-100%); } to { transform: none; } }
@keyframes marca-entra { from { opacity: 0; transform: translateX(-14px); } to { opacity: 1; transform: none; } }
@keyframes btn-dispara {
  0%, 42% { transform: translateX(calc(-1 * var(--btn-desl))); border-color: rgba(255,255,255,.35); box-shadow: 0 0 0 0 rgba(235,203,139,0); animation-timing-function: cubic-bezier(.6, 0, .2, 1); }
  62%     { transform: translateX(calc(-.35 * var(--btn-desl))) skewX(-12deg); border-color: var(--areia); color: var(--areia); }
  76%     { transform: translateX(7px) skewX(5deg); border-color: var(--areia); color: var(--areia); box-shadow: 0 0 0 0 rgba(235,203,139,.6); animation-timing-function: ease-out; }
  86%     { transform: translateX(-3px) skewX(-1deg); }
  100%    { transform: none; border-color: rgba(255,255,255,.35); color: #fff; box-shadow: 0 0 0 14px rgba(235,203,139,0); }
}
@keyframes btn-rastro {
  0%, 44% { width: 0; opacity: 0; }
  62%     { width: 46px; opacity: 1; }
  82%     { width: 0; opacity: 0; transform: translateX(10px); }
  100%    { width: 0; opacity: 0; }
}
/* entre 1041 e 1199 o menu completo divide espaço com a fita: compacta um pouco */
@media (min-width: 1041px) and (max-width: 1199px) {
  html[data-ano="a"] .marca img { height: 62px; }
  html[data-ano="a"] .menu a { padding-left: 10px; padding-right: 10px; }
  html[data-ano="a"] .menu a:not(.btn)::after { left: 10px; right: 10px; }
  html[data-ano="a"] .menu .btn { margin-left: 8px; padding: 0 18px; }
}
@media (max-width: 560px) {
  html[data-ano="a"] .fita, html[data-ano="a"] .fita-int { height: calc(var(--top-h) + var(--nav-h) + 140px); }
  html[data-ano="a"] .fita .ano-ed { display: none; }
  html[data-ano="a"] body:has(.site-header.fixo) .fita { visibility: hidden; transition: visibility 0s .42s; }   /* some só depois que o cabeçalho fixo terminou de descer por cima: a ponta não espia por baixo dele */
  /* no celular a fita só cruza o começo do conteúdo: abre espaço só nessas linhas */
  html[data-ano="a"] .hero-data, html[data-ano="a"] .hero h1,
  html[data-ano="a"] .topo .migalha, html[data-ano="a"] .topo .rotulo { padding-right: calc(var(--fita-w) + var(--fita-x) + 12px - var(--g)); }
}

/* ---------- B — EMPILHADO "20 / 27" ---------- */
html[data-ano="b"] .ano { display: block; position: absolute; z-index: 0; right: -.05em; color: var(--areia); text-align: right; letter-spacing: -.02em; line-height: .8; }
html[data-ano="b"] .ano .ano-ed { display: none; }
html[data-ano="b"] .ano-n span { display: block; }
html[data-ano="b"] .ano-n span + span { margin-top: -.04em; }
html[data-ano="b"] .hero .ano { bottom: calc(78px + .02em); font-size: calc(.8 * clamp(170px, 18.5vw, 270px)); }
/* desktop: a contagem sai da coluna direita e vira uma aba presa no alto da barra de informações */
@media (min-width: 1101px) {
  html[data-ano="b"] .hero { padding-top: calc(var(--top-h) + var(--nav-h) + clamp(10px, .8vw, 14px)); padding-bottom: 134px; }
  html[data-ano="b"] .hero .wrap { position: static; }
  html[data-ano="b"] .hero-grid { grid-template-columns: minmax(0, 1fr); }
  html[data-ano="b"] .hero .contagem { position: absolute; z-index: 1; bottom: 78px; left: calc(max(0px, (100% - var(--wrap)) / 2) + var(--g));
    flex-wrap: nowrap; align-items: center; max-width: none; margin: 0; padding: 9px 22px 9px 24px; background: var(--a800); }
  html[data-ano="b"] .hero .contagem .contagem-rot { width: auto; padding: 0 18px 0 0; font-size: 15px; }
  html[data-ano="b"] .hero .contagem > div { display: flex; align-items: baseline; gap: 6px; min-width: 0; padding: 0 14px; border-left: 1px solid rgba(255,255,255,.16); }
  html[data-ano="b"] .hero .contagem > div:first-of-type { border-left: 0; padding-left: 0; }
  html[data-ano="b"] .hero .contagem b { display: inline; font-size: calc(.8 * 28px); }
  html[data-ano="b"] .hero .contagem span { display: inline; margin: 0; font-size: 14px; }
}
@media (max-width: 1100px) {
  html[data-ano="b"] .hero .ano { font-size: calc(.8 * 18vw); }
}
@media (min-width: 561px) and (max-width: 860px) {
  html[data-ano="b"] .topo p.sub { max-width: calc(100% - .8 * 130px * 1.4 - 24px); }
}
@media (max-width: 560px) {
  html[data-ano="b"] .hero { padding-bottom: 76px; }
  html[data-ano="b"] .hero .ano { bottom: calc(76px + .02em); font-size: calc(.8 * 20vw); }
  html[data-ano="b"] .hero .contagem { margin-top: 40px; padding-right: calc(.8 * 20vw * 1.4 + 6px); }
  html[data-ano="b"] .hero .contagem > div { padding: 0 4px; }
}
html[data-ano="b"] .topo .ano { bottom: clamp(30px, 3.6vw, 56px); font-size: calc(.8 * clamp(130px, 14vw, 240px)); }
@media (max-width: 560px) {
  html[data-ano="b"] .topo { padding-bottom: calc(.8 * 60px * 1.52 + 14px); }
  html[data-ano="b"] .topo .ano { bottom: -.05em; font-size: calc(.8 * 60px); }
}

/* ---------- C — CANHOTO DE INGRESSO ---------- */
html[data-ano="c"] .canhoto, html[data-ano="c"] .topo .ano {
  display: flex; flex-direction: column; justify-content: center; position: relative;
  padding: 0 clamp(18px, 2vw, 30px) 0 calc(clamp(18px, 2vw, 30px) + 14px);
  background: var(--areia); color: var(--a950);
  /* recortes de ingresso (cantos esquerdos) + picote */
  -webkit-mask: radial-gradient(circle at 0 0, transparent 13px, #000 13.5px) 0 0 / 100% 51% no-repeat,
                radial-gradient(circle at 0 100%, transparent 13px, #000 13.5px) 0 100% / 100% 51% no-repeat;
          mask: radial-gradient(circle at 0 0, transparent 13px, #000 13.5px) 0 0 / 100% 51% no-repeat,
                radial-gradient(circle at 0 100%, transparent 13px, #000 13.5px) 0 100% / 100% 51% no-repeat;
}
html[data-ano="c"] .canhoto::before, html[data-ano="c"] .topo .ano::before { content: ""; position: absolute; left: 13px; top: 18px; bottom: 18px; border-left: 2px dashed rgba(30,21,29,.32); }
html[data-ano="c"] .canhoto .ano-ed, html[data-ano="c"] .topo .ano .ano-ed { font-size: 15px; line-height: 1.2; }
html[data-ano="c"] .canhoto .ano-n, html[data-ano="c"] .topo .ano .ano-n { margin-top: 2px; font-size: calc(.8 * clamp(64px, 6.6vw, 100px)); line-height: .86; letter-spacing: -.01em; white-space: nowrap; }
/* desktop largo: a barra vai até a borda direita da tela e termina no canhoto */
@media (min-width: 1360px) {
  html[data-ano="c"] .info .wrap { display: flex; align-items: flex-end; gap: 0; max-width: none; padding-right: 0; padding-left: calc(max(0px, (100% - var(--wrap)) / 2) + var(--g)); }
  html[data-ano="c"] .info-barra { flex: 1; min-width: 0; grid-template-columns: repeat(4, minmax(max-content, 1fr)) minmax(220px, auto); }
  html[data-ano="c"] .info-barra > div { padding-left: 22px; padding-right: 22px; }
  html[data-ano="c"] .canhoto { flex: none; height: 152px; margin-left: 8px; }
}
/* abaixo disso: o canhoto fica de pé sobre a barra, colado na borda direita */
@media (max-width: 1359px) {
  html[data-ano="c"] .canhoto { position: absolute; right: 0; bottom: 100%; height: clamp(84px, 11vw, 132px); }
  html[data-ano="c"] .canhoto .ano-n { font-size: calc(.8 * clamp(50px, 6.6vw, 88px)); }
}
@media (max-width: 560px) {
  html[data-ano="c"] .hero { padding-bottom: 166px; }
  html[data-ano="c"] .canhoto, html[data-ano="c"] .topo .ano { padding-right: 16px; }
  html[data-ano="c"] .canhoto .ano-ed, html[data-ano="c"] .topo .ano .ano-ed { font-size: 13px; }
}
html[data-ano="c"] .topo .ano { position: absolute; right: 0; bottom: 0; height: clamp(84px, 10vw, 140px); }
@media (max-width: 860px) { html[data-ano="c"] .topo { padding-bottom: calc(clamp(84px, 10vw, 140px) + 24px); } }
html[data-ano="c"] .topo .ano .ano-n { font-size: calc(.8 * clamp(50px, 6.4vw, 96px)); }

/* ---------- D — SELO NO TÍTULO ---------- */
/* (o espaço antes do selo vem da marcação: na quebra de linha o selo começa alinhado) */
@media (min-width: 861px) { html[data-ano="d"] .hero-conteudo { max-width: 940px; } html[data-ano="d"] .hero-sub, html[data-ano="d"] .hero-txt { max-width: 640px; } }
html[data-ano="d"] .ano-tag { display: inline-block; padding: .12em .2em .08em; background: var(--areia); color: var(--a950); font-weight: var(--peso-ano); font-size: .72em; line-height: 1; letter-spacing: .01em; vertical-align: .07em; white-space: nowrap; }

/* --------------------------------------------------------------------------
   Programação (página)
   -------------------------------------------------------------------------- */
.agenda-g { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 6vw, 100px); align-items: start; }
.agenda-g .txt p:not(.rotulo) { margin-top: 16px; color: var(--tx2); }
.dias { display: grid; gap: 8px; margin-top: 24px; }
.dias li { display: flex; align-items: baseline; gap: 14px; padding: 13px 18px; background: var(--claro); }
.dias b { font-weight: 600; font-size: 15px; color: var(--pet-ink); }
.dias span { font-weight: 500; color: var(--a900); }
.grade { border-top: 2px solid var(--a900); }
.grade li { display: grid; grid-template-columns: 180px minmax(0, 1fr) auto; align-items: center; gap: 18px; padding: 16px 4px; border-bottom: 1px solid var(--linha); }
.grade time { font-weight: 600; font-size: 15.5px; color: var(--a900); font-variant-numeric: tabular-nums; }
.grade b { font-size: 15.5px; font-weight: 500; color: var(--a900); }
.grade em { font-style: normal; font-size: 13px; color: var(--pet-ink); }
.grade li.pausa time, .grade li.pausa b { color: var(--tx2); }
@media (max-width: 900px) { .agenda-g { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .grade li { grid-template-columns: 1fr; gap: 2px; } .grade em:empty { display: none; } }

.ac-topo { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.ac-resumo { font-size: 15px; color: var(--tx2); }
.ac-acoes { display: flex; flex-wrap: wrap; gap: 10px; }
.ac-acoes .btn { min-height: 40px; padding: 0 16px; font-size: 12.5px; }
.acordeao { display: grid; gap: 8px; }
.acordeao details { background: #fff; border: 1px solid var(--linha); scroll-margin-top: 96px; }
.acordeao summary { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto 32px; align-items: center; gap: 18px; padding: 0 24px; min-height: 78px; cursor: pointer; list-style: none; }
.acordeao summary::-webkit-details-marker { display: none; }
.acordeao summary:hover .ac-tit { color: var(--pet-ink); }
.ac-num { font-size: calc(var(--esc-num) * 34px); line-height: 1; color: var(--pet-ink); }
.ac-tit { padding: 14px 0; font-size: calc(var(--esc) * clamp(21px, 1.7vw, 24px)); line-height: 1.2; color: var(--a900); transition: color .2s; }
.ac-tit small { display: block; margin-bottom: 2px; font-family: var(--fonte-texto); font-weight: 400; font-size: 12.5px; letter-spacing: 0; text-transform: none; color: var(--tx2); }
.ac-qtd { font-size: 13px; color: var(--tx2); white-space: nowrap; }
.ac-tog { position: relative; justify-self: end; width: 24px; height: 24px; }
.ac-tog::before, .ac-tog::after { content: ""; position: absolute; left: 50%; top: 50%; width: 16px; height: 2px; margin: -1px 0 0 -8px; background: var(--a900); transition: transform .25s var(--ease); }
.ac-tog::after { transform: rotate(90deg); }
.acordeao details[open] { border-color: #CFC5C4; }
.acordeao details[open] > summary { border-bottom: 1px solid var(--linha); }
.acordeao details[open] .ac-tog::after { transform: rotate(0); }
.ac-corpo { padding: 16px 30px 28px 106px; }
.ac-corpo > ul { display: grid; grid-template-columns: 1fr 1fr; gap: 0 48px; }
.ac-corpo li { padding: 8px 0; font-size: 15px; line-height: 1.45; }
.sub7 { display: grid; gap: 26px; }
.sub7 > li { padding: 0; display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 16px; }
.sub7 .sn { font-size: calc(var(--esc-num) * 30px); line-height: 1.1; color: var(--pet-ink); }
.sub7 h3 { padding-bottom: 8px; border-bottom: 1px solid var(--linha); font-size: calc(var(--esc) * 22px); line-height: 1.25; color: var(--a900); }
.sub7 ul { display: grid; grid-template-columns: 1fr 1fr; gap: 0 36px; margin-top: 4px; }
@media (max-width: 860px) {
  .acordeao summary { grid-template-columns: 44px minmax(0, 1fr) 26px; gap: 2px 12px; padding: 0 14px; min-height: 80px; }
  .ac-num { grid-row: 1 / span 2; font-size: calc(var(--esc-num) * 30px); }
  .ac-tit { grid-column: 2; padding: 14px 0 0; }
  .ac-qtd { grid-column: 2; grid-row: 2; padding-bottom: 14px; font-size: 12.5px; }
  .ac-tog { grid-column: 3; grid-row: 1 / span 2; }
  .ac-corpo { padding: 8px 18px 20px 34px; }
  .ac-corpo > ul, .sub7 ul { grid-template-columns: 1fr; }
  .sub7 > li { grid-template-columns: 1fr; gap: 6px; }
  .ac-topo { justify-content: flex-start; }
}

/* faixa clara de chamada (páginas internas) */
.chamada { padding: clamp(56px, 6vw, 84px) 0; background: #fff; border-top: 1px solid var(--linha); }
.chamada .wrap { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px 60px; align-items: center; }
.chamada h2 { font-size: calc(var(--esc) * clamp(30px, 2.8vw, 42px)); color: var(--a900); }
.chamada h2 span { color: var(--pet-ink); }
.chamada p { margin-top: 10px; font-size: 16px; color: var(--tx2); }
@media (max-width: 860px) { .chamada .wrap { grid-template-columns: 1fr; } .chamada .btn { justify-self: start; } }
.sec.claro + .chamada { border-top: 0; }

.aviso-box { margin-top: 34px; padding: 20px 24px; background: var(--claro); font-size: 14px; line-height: 1.6; color: var(--tx2); }
.aviso-box strong { display: block; margin-bottom: 4px; font-weight: 600; font-size: 15px; color: var(--a900); }
.sec.claro .aviso-box { background: #fff; }

/* --------------------------------------------------------------------------
   Professoras (página)
   -------------------------------------------------------------------------- */
.bio { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 6vw, 96px); align-items: start; }
.bio.inv { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.bio.inv .bio-foto { order: 2; }
.bio-foto img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 20%; }
.bio h2 { margin-top: 6px; font-size: calc(var(--esc) * clamp(40px, 4vw, 58px)); color: var(--a900); }
.bio .cred { margin-top: 12px; font-size: 16.5px; font-weight: 600; line-height: 1.45; color: var(--pet-ink); }
.bio-txt { margin-top: 22px; }
.bio-txt p { color: var(--tx2); font-size: 15px; line-height: 1.75; }
.bio-txt p + p { margin-top: 1em; }
.marcos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 28px; }
.marcos li { padding: 15px 18px; background: var(--claro); font-size: 14px; line-height: 1.45; color: var(--tx2); }
.sec.claro .marcos li { background: #fff; }
.marcos b { display: block; margin-bottom: 4px; font-size: calc(var(--esc) * 24px); line-height: 1.1; color: var(--a900); }
@media (max-width: 900px) { .bio, .bio.inv { grid-template-columns: 1fr; } .bio.inv .bio-foto { order: 0; } .bio-foto { max-width: 440px; } }
@media (max-width: 520px) { .marcos { grid-template-columns: 1fr; } }

/* modal do currículo */
dialog.curriculo { width: min(760px, calc(100% - 32px)); max-height: calc(100vh - 48px); padding: 0; border: 0; color: var(--tx); box-shadow: 0 30px 80px -30px rgba(0,0,0,.6); }
dialog.curriculo[open] { display: flex; flex-direction: column; }
dialog.curriculo::backdrop { background: rgba(30,21,29,.82); }
.cv-topo { display: flex; align-items: center; gap: 18px; padding: 22px 26px; background: var(--a900); color: #fff; }
.cv-topo img { width: 68px; height: 68px; border-radius: 50%; object-fit: cover; }
.cv-topo h3 { font-size: calc(var(--esc) * 30px); }
.cv-topo p { font-size: 14px; color: rgba(255,255,255,.78); }
.cv-fechar { margin-left: auto; flex: none; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255,255,255,.1); color: #fff; font-size: 26px; line-height: 1; }
.cv-fechar:hover { background: var(--areia); color: var(--a950); }
.cv-corpo { padding: 24px 28px 30px; overflow: auto; }
.cv-corpo p { color: var(--tx2); line-height: 1.7; }
.cv-corpo p + p { margin-top: .8em; }
.cv-corpo .btn { margin-top: 22px; min-height: 44px; font-size: 12.5px; }

/* --------------------------------------------------------------------------
   Inscrição (página)
   -------------------------------------------------------------------------- */
.acontece { padding: clamp(84px, 9vw, 124px) 0; text-align: center; }
.acontece .fundo { background-image: url("../img/plateia.jpg"); background-position: center 30%; }
.acontece::before { background: rgba(30,21,29,.84); }
.acontece h2 { font-size: calc(var(--esc) * clamp(34px, 3.6vw, 52px)); }
.acontece h2 span { display: block; }
.acontece .quando { margin-top: 12px; font-size: 17px; color: rgba(255,255,255,.85); }
.contagem.grande { justify-content: center; margin-top: 40px; gap: 10px; }
.contagem.grande > div { min-width: 150px; padding: 22px 12px 18px; border: 0; background: var(--a800); }
.contagem.grande b { font-size: calc(var(--esc-num) * clamp(52px, 5.4vw, 80px)); }
.contagem.grande span { font-size: 13px; }
.acontece .btn { margin-top: 40px; }
@media (max-width: 640px) { .contagem.grande { flex-wrap: nowrap; gap: 6px; } .contagem.grande > div { flex: 1; min-width: 0; padding: 14px 4px 10px; } .contagem.grande b { font-size: calc(var(--esc-num) * 36px); } .contagem.grande span { font-size: 12.5px; } }

.pagamento { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 6vw, 96px); align-items: start; }
.pag-texto { margin-top: 16px; font-size: 15.5px; line-height: 1.65; color: var(--tx2); }
.pag-texto strong { color: var(--a900); }
.banco { background: var(--a900); color: #fff; }
.banco-topo { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 20px; padding: 24px 28px; border-bottom: 1px solid rgba(255,255,255,.12); }
.banco-topo small { font-size: 14px; color: rgba(255,255,255,.72); }
.banco-topo b { font-size: calc(var(--esc) * 32px); }
.banco-dados { display: grid; }
.banco-dados .linha { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px 18px; padding: 18px 28px; border-bottom: 1px solid rgba(255,255,255,.12); }
.banco-dados dt { font-size: 13px; color: rgba(255,255,255,.68); }
.banco-dados dd { margin-top: 4px; font-size: clamp(20px, 1.8vw, 24px); line-height: 1; overflow-wrap: anywhere; }
.banco-fav { padding: 18px 28px; font-size: 14px; line-height: 1.5; color: rgba(255,255,255,.84); }
.banco-fav b { display: block; margin-bottom: 4px; font-size: 14px; font-weight: 600; color: var(--pet); }
.copiar { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px; border: 1px solid rgba(255,255,255,.3); border-radius: var(--r); background: transparent; color: #fff; font-weight: 600; font-size: 13px; white-space: nowrap; transition: background-color .2s, border-color .2s, color .2s; }
.copiar svg { width: 16px; height: 16px; }
.copiar:hover { background: #fff; color: var(--a900); border-color: #fff; }
.copiar.ok { background: var(--pet); border-color: var(--pet); color: var(--a950); }
.copiar-todos { display: flex; width: calc(100% - 56px); margin: 0 28px 26px; min-height: 52px; justify-content: center; background: var(--areia); border-color: var(--areia); color: var(--a950); font-weight: 600; font-size: 13.5px; }
.copiar-todos:hover { background: var(--areia-hi); border-color: var(--areia-hi); color: var(--a950); }
@media (max-width: 900px) { .pagamento { grid-template-columns: 1fr; } }
@media (max-width: 420px) { .banco-dados .linha { grid-template-columns: 1fr; } .copiar { justify-self: start; } .banco-topo, .banco-dados .linha, .banco-fav { padding-left: 20px; padding-right: 20px; } .copiar-todos { width: calc(100% - 40px); margin: 0 20px 22px; white-space: normal; } }

/* --------------------------------------------------------------------------
   Contato (página)
   -------------------------------------------------------------------------- */
.contatos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.c-card { display: flex; flex-direction: column; padding: 32px 30px 30px; background: #fff; border: 1px solid var(--linha); }
.c-card h2 { font-size: calc(var(--esc) * 28px); color: var(--a900); }
.c-card p { margin-top: 10px; font-size: 14.5px; color: var(--tx2); }
.c-links { display: grid; gap: 8px; margin-top: auto; padding-top: 24px; }
.c-links a { display: block; padding: 13px 16px; background: var(--claro); font-weight: 600; font-size: 16px; line-height: 1.3; color: var(--a900); text-decoration: none; overflow-wrap: anywhere; transition: background-color .2s, color .2s; }
.c-links a small { display: block; margin-bottom: 2px; font-size: 12.5px; font-weight: 400; color: var(--tx2); }
.c-links a:hover { background: var(--a900); color: #fff; }
.c-links a:hover small { color: rgba(255,255,255,.75); }
@media (max-width: 980px) { .contatos { grid-template-columns: 1fr; max-width: 620px; margin: 0 auto; } }

/* --------------------------------------------------------------------------
   Rodapé
   -------------------------------------------------------------------------- */
.rodape { position: relative; padding: clamp(64px, 7vw, 92px) 0 0; background: #181117; color: rgba(255,255,255,.76); isolation: isolate; overflow: hidden; }
.rodape::before { content: ""; position: absolute; inset: 0; z-index: -1; background: url("../img/textura.jpg") center top / cover no-repeat; opacity: .16; }
.rodape-grid { display: grid; grid-template-columns: 1.45fr 1fr 1fr 1.3fr; gap: 40px; }
.rodape h3 { margin-bottom: 14px; font-weight: 600; font-size: 15.5px; color: #fff; }
.rodape ul { display: grid; gap: 10px; }
.rodape li, .rodape a { font-size: 14px; }
.rodape a { text-decoration: none; }
.rodape a:hover { color: var(--areia); }
.rodape .logo-rod { height: 74px; width: auto; }
.rodape .evento-info { margin-top: 20px; font-size: 14px; line-height: 1.6; }
.rodape .evento-info b { color: #fff; font-weight: 600; }
.redes { display: flex; gap: 10px; margin-top: 22px; }
.redes a { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; border: 1px solid rgba(255,255,255,.2); }
.redes a:hover { background: var(--areia); border-color: var(--areia); color: var(--a950); }
.redes svg { width: 18px; height: 18px; }
.np { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px; margin-top: 56px; padding: 28px 0 calc(28px + var(--barra-h, 0px)); border-top: 1px solid rgba(255,255,255,.1); }
.np img { height: 58px; width: auto; }
.np p { font-size: 12.5px; color: rgba(255,255,255,.55); }
@media (max-width: 980px) { .rodape-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .rodape-grid { grid-template-columns: 1fr; } }

/* barra fixa de inscrição */
.barra-preco { position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; background: var(--a950); border-top: 1px solid rgba(255,255,255,.1); color: #fff; transform: translateY(110%); transition: transform .35s var(--ease); }
.barra-preco.on { transform: none; }
.barra-preco .wrap { display: flex; align-items: center; gap: 24px; min-height: 78px; }
.barra-preco .mini { height: 46px; width: auto; flex: none; }
.barra-preco .txt { flex: 1; min-width: 0; }
.barra-preco .txt b { display: block; font-size: calc(var(--esc) * 21px); line-height: 1.2; }
.barra-preco .txt span { font-size: 13px; color: rgba(255,255,255,.72); }
.barra-preco .valor { font-size: calc(var(--esc-num) * 34px); white-space: nowrap; color: var(--areia); }
.barra-preco .valor small { margin-right: 4px; font-family: var(--fonte-texto); font-size: 13px; font-weight: 600; color: rgba(255,255,255,.72); }
.barra-preco .btn { min-height: 50px; }
@media (max-width: 760px) {
  .barra-preco .mini, .barra-preco .txt span { display: none; }
  .barra-preco .txt b { font-size: calc(var(--esc) * 16px); }
  .barra-preco .valor { font-size: calc(var(--esc-num) * 26px); }
  .barra-preco .wrap { gap: 12px; min-height: 66px; }
  .barra-preco .btn { min-height: 42px; padding: 0 14px; font-size: 12px; }
}
@media (max-width: 420px) { .barra-preco .txt { display: none; } .barra-preco .wrap { justify-content: space-between; } }

/* WhatsApp discreto */
.wpp { position: fixed; right: 16px; bottom: 16px; z-index: 95; width: 50px; height: 50px; border-radius: 50%; display: grid; place-items: center; background: #25D366; color: #fff; box-shadow: 0 6px 14px -8px rgba(0,0,0,.5); transition: bottom .35s var(--ease); }
.wpp svg { width: 26px; height: 26px; }
body.com-barra .wpp { bottom: 92px; }
@media (max-width: 760px) { body.com-barra .wpp { bottom: 78px; } .wpp { width: 46px; height: 46px; } }

/* entrada suave ao rolar */
.surge { opacity: 0; transform: translateY(14px); transition: opacity .6s var(--ease), transform .6s var(--ease); }
.surge.visto { opacity: 1; transform: none; }
.no-js .surge { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .surge { opacity: 1; transform: none; }
}

/* metodologia (página de programação) */
.metodo-txt .lead { font-size: clamp(16.5px, 1.25vw, 18px); line-height: 1.55; font-weight: 600; color: var(--a900); }
.metodo-txt p + p { margin-top: 1em; color: var(--tx2); }

/* telas estreitas: botões quebram linha e ocupam a largura */
@media (max-width: 480px) {
  .btn { white-space: normal; text-align: center; padding-left: 20px; padding-right: 20px; }
  .prog-pe .botoes, .prog-pe .botoes .btn, .reserve .btn, .chamada .btn, .topo .botoes .btn { width: 100%; }
}
