/* ============================================================
   HAVA NETZE BEMACHOL 2026 · área aberta
   Identidade oficial do 55º HNB / 37º Atid / 1º Show de Talentos.
   Âncoras: azul (primária HNB) · vinho (base comum às duas marcas)
   · dourado (destaque, UM elemento por bloco).
   Combinações aprovadas: azul+off-white (geral), vinho+dourado
   (competição/premiação), near-black+azul (shows noturnos).
   Display: Bebas Neue (só caixa alta) · Texto: Montserrat.
   ============================================================ */
:root{
  --paper:#F5F1EC;          /* off-white oficial */
  --paper-2:#EAE1D5;
  --ink:#1A1A1A;            /* near-black oficial */
  --ink-soft:#3D3833;
  --muted:#6E665E;
  --line:#DCD2C3;
  --blue:#0078C8;           /* azul HNB */
  --blue-deep:#284898;      /* azul escuro — apoio/degradê */
  --wine:#880828;           /* vinho */
  --gold:#F8C000;           /* dourado */
  --orange:#E06010;         /* laranja Atid */
  --display:'Bebas Neue','Oswald',Impact,sans-serif;
  --body:'Montserrat','Helvetica Neue',Helvetica,Arial,sans-serif;
  --radius:18px;
  --max:1240px;
  --shadow-s:0 2px 10px rgba(26,26,26,.06);
  --shadow-m:0 14px 40px rgba(26,26,26,.12);
  --shadow-l:0 30px 70px rgba(26,26,26,.16);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--body);background:var(--paper);color:var(--ink);
  overflow-x:hidden;line-height:1.7;font-weight:400;
}
::selection{background:var(--gold);color:var(--ink)}
main,header,footer,nav{position:relative;z-index:2}
section{scroll-margin-top:92px}
img{max-width:100%}

/* ---------- tipografia ---------- */
.kicker{
  font-family:var(--display);font-size:.95rem;letter-spacing:.34em;text-transform:uppercase;
  color:var(--wine);display:inline-flex;align-items:center;gap:.8rem;line-height:1;
}
.kicker::before{content:"";width:34px;height:2px;background:var(--gold)}
h2.section-title{
  font-family:var(--display);font-weight:400;line-height:1;text-transform:uppercase;
  font-size:clamp(2.5rem,5.6vw,4.4rem);margin:1.1rem 0 1.2rem;letter-spacing:.01em;
}
h2 .accent{color:var(--blue)}
.lead{color:var(--muted);font-size:1.02rem;max-width:64ch;font-weight:400}
/* marca-texto dourado — o destaque único permitido por bloco. O
   box-decoration-break mantém o arredondamento quando a frase quebra. */
.destaque{
  background:var(--gold);color:var(--ink);font-weight:700;
  padding:.08em .3em;border-radius:3px;
  -webkit-box-decoration-break:clone;box-decoration-break:clone;
}
.hebrew{direction:rtl;font-weight:500;font-family:'Heebo',var(--body)}

/* ---------- nav ---------- */
/* Sobre o hero azul a nav é branca; ao rolar vira off-white com texto escuro
   — e o logo troca da versão branca para a colorida (regra de contraste). */
nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:.85rem clamp(1.2rem,4vw,3rem);
  transition:background .4s,box-shadow .4s,backdrop-filter .4s;
}
nav.scrolled{background:rgba(245,241,236,.94);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line)}
.logo{display:flex;align-items:center;gap:.8rem;text-decoration:none;color:#fff}
nav.scrolled .logo{color:var(--ink)}
.logo-mark{height:46px;width:auto;display:block;transition:transform .5s cubic-bezier(.3,1.5,.4,1)}
.logo:hover .logo-mark{transform:scale(1.06) rotate(-3deg)}
.logo-mark.on-light{display:none}
nav.scrolled .logo-mark.on-dark{display:none}
nav.scrolled .logo-mark.on-light{display:block}
.logo-text{line-height:1.05}
.logo-text b{font-family:var(--display);font-size:1.24rem;font-weight:400;display:block;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap}
.logo-text small{font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;opacity:.75;white-space:nowrap;display:block}
nav.scrolled .logo-text small{color:var(--wine);opacity:1}
.nav-links{display:flex;gap:clamp(.8rem,1.5vw,1.5rem);align-items:center;list-style:none}
.nav-links a{color:rgba(255,255,255,.9);text-decoration:none;font-size:.8rem;font-weight:500;transition:color .25s;position:relative;white-space:nowrap}
nav.scrolled .nav-links a{color:var(--ink-soft)}
.nav-links a:not(.btn):hover{color:var(--gold)}
nav.scrolled .nav-links a:not(.btn):hover{color:var(--blue)}
.nav-links a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:2px;background:var(--gold);transition:width .3s}
.nav-links a:not(.btn):hover::after{width:100%}
.nav-links .btn-ghost{color:#fff;border-color:rgba(255,255,255,.5)}
nav.scrolled .nav-links .btn-ghost{color:var(--ink);border-color:var(--line)}
.hamburger{display:none;background:none;border:0;cursor:pointer;flex-direction:column;gap:5px;padding:6px;z-index:60}
.hamburger span{width:26px;height:2px;background:#fff;transition:.3s}
nav.scrolled .hamburger span,.hamburger.open span{background:var(--ink)}

/* ---------- botões ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.6rem;justify-content:center;
  font-family:var(--display);font-size:1rem;font-weight:400;letter-spacing:.14em;text-transform:uppercase;
  padding:.95rem 1.9rem;border-radius:4px;text-decoration:none;cursor:pointer;border:0;line-height:1.1;
  transition:transform .25s,box-shadow .25s,background .25s,color .25s,border-color .25s;
  will-change:transform;position:relative;
}
.btn:active{transform:scale(.97)}
.btn-gold{background:var(--gold);color:var(--ink);box-shadow:0 6px 18px rgba(248,192,0,.32)}
.btn-gold:hover{background:var(--wine);color:#fff;box-shadow:0 10px 26px rgba(136,8,40,.3)}
.btn-blue{background:var(--blue);color:#fff;box-shadow:0 6px 18px rgba(0,120,200,.26)}
.btn-blue:hover{background:var(--blue-deep);box-shadow:0 10px 26px rgba(40,72,152,.34)}
.btn-wine{background:var(--wine);color:#fff;box-shadow:0 6px 18px rgba(136,8,40,.26)}
.btn-wine:hover{background:var(--ink)}
.btn-paper{background:var(--paper);color:var(--blue);box-shadow:0 8px 22px rgba(0,0,0,.16)}
.btn-paper:hover{background:#fff;color:var(--blue-deep)}
/* contorno claro, para usar sobre bloco de cor (vinho, azul, near-black) */
.btn-clara{background:rgba(255,255,255,.1);color:#fff;border:1.5px solid rgba(255,255,255,.4)}
.btn-clara:hover{background:rgba(255,255,255,.2);border-color:#fff}
.btn-ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line)}
.btn-ghost:hover{border-color:var(--wine);color:var(--wine)}
.btn-sm{padding:.62rem 1.25rem;font-size:.84rem}
.btn .arrow{transition:transform .25s}
.btn:hover .arrow{transform:translateX(4px)}

/* ---------- primeiro frame: hero + faixa fecham uma tela ----------
   A faixa vinho é o último item da coluna, então encosta na base do
   frame; o hero absorve a sobra. Sem calc() da altura da faixa, que
   mudaria a cada ajuste de padding ou da borda dourada. */
.first-frame{min-height:100svh;display:flex;flex-direction:column}

/* ---------- hero: bloco de cor cheio, azul + off-white ---------- */
.hero{
  flex:1 1 auto;min-height:0;
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  text-align:center;padding:6rem clamp(1.2rem,5vw,4rem) 2.5rem;position:relative;overflow:hidden;
  background:radial-gradient(circle at 50% 42%,var(--blue) 0%,var(--blue) 45%,var(--blue-deep) 100%);
  color:var(--paper);
}
.hero-sun{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(128vmin,1060px);height:min(128vmin,1060px);pointer-events:none;opacity:.9;
}
.hero-content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center}
.hero-icone{width:clamp(62px,8.5vw,96px);margin-bottom:.85rem;filter:drop-shadow(0 8px 24px rgba(0,0,0,.22))}
.hero-badge{
  display:inline-flex;align-items:center;gap:.7rem;border:1.5px solid rgba(255,255,255,.45);
  border-radius:999px;padding:.42rem 1.15rem;font-family:var(--display);font-size:.9rem;
  letter-spacing:.22em;text-transform:uppercase;margin-bottom:1.15rem;line-height:1;
}
.hero-badge .b-dot{width:6px;height:6px;border-radius:50%;background:var(--gold)}
.hero-hebrew{
  font-size:clamp(1.05rem,1.9vw,1.4rem);color:rgba(255,255,255,.82);letter-spacing:.08em;
  margin-bottom:.7rem;
}
.hero h1{
  font-family:var(--display);font-weight:400;text-transform:uppercase;
  font-size:clamp(3rem,8.8vw,7.2rem);line-height:.92;letter-spacing:.012em;
}
.hero h1 .word{display:block}
.hero h1 .char{display:inline-block;transition:transform .35s cubic-bezier(.3,1.7,.4,1),color .35s;cursor:default}
.hero h1 .char:hover{transform:translateY(-9px);color:var(--gold)}
/* o letter-spacing final joga o bloco para a direita: compensa com margem */
.hero h1 .l3{
  font-size:.34em;color:rgba(255,255,255,.7);letter-spacing:.5em;margin-top:.8rem;
  margin-right:-.5em;
}
.hero-sub{
  margin-top:1.35rem;display:flex;flex-wrap:wrap;gap:.7rem 1.6rem;align-items:center;justify-content:center;
  color:rgba(255,255,255,.78);font-size:.95rem;
}
.hero-sub b{color:#fff;font-weight:600}
/* único destaque dourado do bloco: a data */
.hero-sub .data{color:var(--gold);font-weight:700;letter-spacing:.02em}
.hero-sub .dot{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.5)}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- faixa-cartaz (marquee) em vinho ---------- */
.marquee{
  overflow:hidden;padding:.8rem 0;background:var(--wine);color:var(--paper);
  border-bottom:4px solid var(--gold);
}
.marquee-track{display:flex;gap:3rem;width:max-content;animation:scroll 34s linear infinite;white-space:nowrap}
.marquee-track span{
  font-family:var(--display);font-size:1.05rem;font-weight:400;letter-spacing:.26em;
  text-transform:uppercase;display:flex;align-items:center;gap:3rem;line-height:1;
}
.marquee-track .star{color:var(--gold)}
@keyframes scroll{to{transform:translateX(-50%)}}

/* ---------- countdown ---------- */
/* padding igual em cima e embaixo: o contador fica numa faixa clara com o
   mesmo ar até a faixa vinho e até o bloco da Programação */
.countdown{
  display:flex;gap:clamp(.8rem,3vw,2.4rem);justify-content:center;flex-wrap:wrap;
  margin:0 auto;padding:3.6rem 1rem;
}
.cd-cell{text-align:center;min-width:96px;position:relative;padding:0 clamp(.4rem,2vw,1.4rem)}
.cd-cell+.cd-cell::before{
  content:"";position:absolute;left:calc(clamp(.4rem,2vw,1.4rem)*-.5 - 1px);top:12%;bottom:18%;width:1px;
  background:linear-gradient(transparent,var(--gold),transparent);
}
.cd-num{
  font-family:var(--display);font-weight:400;font-size:clamp(3rem,6.4vw,5rem);
  color:var(--blue);font-variant-numeric:tabular-nums;line-height:.95;
}
.cd-label{font-size:.6rem;letter-spacing:.34em;text-transform:uppercase;color:var(--wine);margin-top:.35rem;font-weight:700}

/* ---------- seções ---------- */
section{padding:clamp(4.5rem,9vw,8rem) clamp(1.2rem,5vw,4rem)}
.wrap{max-width:var(--max);margin:0 auto}
.section-alt{background:var(--paper-2)}
.tilt{transform-style:preserve-3d;will-change:transform;transition:box-shadow .3s}

/* "O Festival" é quem segue o contador: padding menor no topo para os dois
   respiros não se somarem (o contador já tem o seu). */
#festival{padding-top:clamp(3rem,5vw,4.5rem)}

/* Programação e Ingressos ocupam um frame: uma tela, conteúdo centrado. O
   padding fica pequeno e simétrico porque é só o mínimo — em tela baixa a
   seção cresce em vez de cortar. */
#programacao,#ingressos{
  min-height:100svh;display:flex;align-items:center;
  padding-top:clamp(2.5rem,5vw,4.5rem);padding-bottom:clamp(2.5rem,5vw,4.5rem);
  /* sendo o frame exatamente uma tela, o scroll-margin global (92px, para a
     nav não cobrir o kicker) faria o menu parar depois do topo da seção. O
     próprio padding já mantém o conteúdo longe da nav. */
  scroll-margin-top:0;
}
/* A Ingressos é a menor das duas — título e uma linha de "em breve" —, e uma
   tela inteira em volta disso virava vazio: 183px de conteúdo em 900px de
   frame. Fica com pouco mais da metade da tela, o gesto de frame sem o vão.
   Quando os blocos de preço voltarem (docs/arquivo/blocos-ingressos.html),
   dá para devolver o 100svh. */
#ingressos{min-height:60svh}
/* como item flex, o .wrap encolheria até o conteúdo */
#programacao .wrap,#ingressos .wrap{width:100%}
#programacao .section-title,#ingressos .section-title{margin:.9rem 0 1rem}

/* programação em breve */
.day-tabs{display:flex;gap:.7rem;flex-wrap:wrap;margin:1.4rem 0 1.2rem}
.day-tab{
  font-family:var(--display);font-size:.92rem;font-weight:400;letter-spacing:.16em;text-transform:uppercase;
  padding:.65rem 1.5rem;border-radius:4px;border:1.5px solid var(--line);line-height:1.2;
  background:#fff;color:var(--muted);
}
.day-tab.active{background:var(--blue);border-color:var(--blue);color:#fff}
.soon{
  border:1.5px dashed #CBBEA9;border-radius:var(--radius);
  padding:clamp(1.8rem,3.5vw,2.8rem) 2rem;text-align:center;position:relative;overflow:hidden;
  background:#fff;box-shadow:var(--shadow-s);
}
.soon::before{
  content:"";position:absolute;width:560px;height:560px;border-radius:50%;
  border:1.5px dashed rgba(248,192,0,.55);left:50%;top:50%;transform:translate(-50%,-50%);
  animation:spin 70s linear infinite;
}
.soon-inner{position:relative}
.soon-title{
  font-family:var(--display);font-weight:400;font-size:clamp(2.2rem,4.5vw,3.4rem);
  text-transform:uppercase;letter-spacing:.06em;line-height:1;margin-bottom:.7rem;color:var(--blue);
}
.soon p{color:var(--muted);max-width:52ch;margin:0 auto 1.2rem}
.reg-buttons{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1.4rem}

/* ---------- competição: vinho + dourado ---------- */
.comp{
  background:var(--wine);
  border-radius:var(--radius);
  padding:clamp(2rem,5vw,4rem);position:relative;overflow:hidden;color:#FBF3F4;
  box-shadow:var(--shadow-l);
}
.comp .kicker{color:var(--gold)}
.comp .kicker::before{background:var(--gold)}
.comp::after{
  content:"מחול";position:absolute;right:-1rem;bottom:-3.5rem;font-size:13rem;font-weight:700;
  color:rgba(255,255,255,.06);pointer-events:none;font-family:'Heebo',sans-serif;
}
.comp::before{
  content:"";position:absolute;left:-80px;top:-80px;width:320px;height:320px;border-radius:50%;
  background:radial-gradient(circle,rgba(248,192,0,.2),transparent 70%);
}
.comp .lead{color:rgba(255,255,255,.78)}
.comp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.1rem;margin:2.2rem 0}
.comp-item{
  border-left:3px solid var(--gold);padding:.8rem 0 .8rem 1.1rem;
  transition:background .3s,transform .3s;
}
.comp-item:hover{background:rgba(255,255,255,.08);transform:translateY(-3px)}
.comp-item h4{font-family:var(--display);font-weight:400;font-size:1.25rem;letter-spacing:.06em;text-transform:uppercase;color:#fff}
.comp-item p{color:rgba(255,255,255,.72);font-size:.9rem}
/* O card vinho já tem padding próprio (até 4rem), então o respiro global de
   8rem embaixo dele somava com o de cima da Inscrições: 266px de vão, quase
   um terço de tela vazia. Só esta emenda encolhe; o resto da página mantém
   o ritmo. */
#competicao{padding-bottom:clamp(2.2rem,4.5vw,4rem)}
#inscricao{padding-top:clamp(2.2rem,4.5vw,4rem)}
#inscricao{padding-bottom:clamp(2.2rem,4.5vw,4rem)}

/* inscrição */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.1rem;margin:2.4rem 0;perspective:900px}
.step{
  border:1px solid var(--line);border-radius:var(--radius);padding:1.7rem 1.5rem;
  background:#fff;box-shadow:var(--shadow-s);
}
.step:hover{box-shadow:var(--shadow-m)}
.step-n{
  font-family:var(--display);font-weight:400;font-size:2.8rem;color:var(--blue);line-height:.9;
}
.step h4{font-family:var(--display);font-weight:400;font-size:1.35rem;text-transform:uppercase;letter-spacing:.05em;margin:.6rem 0 .3rem;line-height:1.1}
.step p{color:var(--muted);font-size:.92rem}
/* link do PDF dentro do card de passo */
.step-link{
  display:inline-block;margin-top:.8rem;color:var(--blue);font-weight:600;
  font-size:.86rem;text-decoration:none;border-bottom:1.5px solid var(--gold);
}
.step-link:hover{color:var(--blue-deep)}
/* o "ver o passo a passo" é <button> (abre o pop-up), não link */
button.step-link{background:none;border:0;border-bottom:1.5px solid var(--gold);cursor:pointer;font-family:var(--body)}

/* ---------- pop-up "Como doar" (<dialog> nativo) ---------- */
.dlg{
  border:1px solid var(--line);border-radius:var(--radius);padding:0;
  max-width:560px;width:calc(100% - 2.4rem);background:#fff;color:var(--ink);
  box-shadow:var(--shadow-l);
  /* o <dialog> se centraliza com margin:auto, e o reset *{margin:0} do topo
     desta folha zera isso — daí ele voltar explícito aqui */
  margin:auto;max-height:calc(100svh - 3rem);overflow-y:auto;
}
.dlg::backdrop{background:rgba(26,26,26,.55);backdrop-filter:blur(6px)}
.dlg-body{padding:clamp(1.6rem,4vw,2.4rem);position:relative}
.dlg h3{
  font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.04em;
  font-size:1.9rem;line-height:1.05;margin-bottom:1.2rem;padding-right:2.5rem;color:var(--wine);
}
.dlg ol{padding-left:1.3rem;margin-bottom:1.2rem}
/* 1rem, não os .94rem do resto da folha: é daqui que alguém copia o CNPJ do
   Pix e os dois e-mails à mão. Texto de corpo abaixo de 16px atrapalha. */
.dlg li{color:var(--muted);font-size:1rem;margin:.5rem 0}
.dlg li b{color:var(--ink)}
.dlg p{color:var(--muted);font-size:1rem}
.dlg a{color:var(--blue)}
.dlg-close{
  position:absolute;top:1rem;right:1rem;background:var(--paper-2);border:1px solid var(--line);
  color:var(--ink);width:36px;height:36px;border-radius:50%;font-size:1rem;cursor:pointer;transition:.25s;
}
.dlg-close:hover{background:var(--wine);color:#fff;transform:rotate(90deg)}

/* ingressos */

/* ---------- parceiros ---------- */
.logo-rail{margin-top:3.2rem}
.rail-group{margin-bottom:2.6rem}
.rail-label{
  font-family:var(--display);font-size:.92rem;letter-spacing:.34em;text-transform:uppercase;
  color:var(--wine);font-weight:400;display:flex;align-items:center;gap:1rem;margin-bottom:1.3rem;line-height:1;
}
.rail-label::after{content:"";flex:1;height:1px;background:var(--line)}
.rail{display:flex;flex-wrap:wrap;gap:.9rem;align-items:stretch}
.plogo{
  display:flex;align-items:center;justify-content:center;gap:.5rem;
  background:#fff;border:1px solid var(--line);border-radius:10px;
  padding:.9rem 1.5rem;min-height:74px;min-width:130px;
  /* Colorido por default: os logos já estão nas versões oficiais (Hebraica
     azul, Darkeinu vinho) e o cinza escondia isso. O realce no mouse over
     continua — agora pela opacidade, elevação e sombra. */
  opacity:.86;transition:filter .35s,opacity .35s,transform .3s,box-shadow .3s;
  text-decoration:none;
}
.plogo:hover{filter:none;opacity:1;transform:translateY(-4px);box-shadow:var(--shadow-m)}
/* 60px e não 46: o lockup do Darkeinu tem desenho, nome e assinatura
   empilhados, e a assinatura vira borrão em 46px */
.plogo img{max-height:60px;max-width:140px;object-fit:contain;display:block}
/* A marca da Hebraica é quase quadrada e o Darkeinu é largo: no mesmo teto
   de altura a Hebraica lia menor. Só a régua de Realização cresce. */
#railRealizacao .plogo img{max-height:84px;max-width:170px}
.plogo .pname{
  font-family:var(--display);font-weight:400;font-size:1rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-soft);text-align:center;line-height:1.15;
}

/* ---------- o festival / história (final) ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:start}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.2rem;margin-top:3rem;perspective:900px}
.stat{
  border:1px solid var(--line);border-radius:var(--radius);padding:1.9rem 1.6rem;
  background:#fff;box-shadow:var(--shadow-s);
}
.stat:hover{box-shadow:var(--shadow-m)}
.stat-num{font-family:var(--display);font-size:3.4rem;font-weight:400;color:var(--blue);line-height:.9}
.stat-num em{font-style:normal;font-size:1.4rem;vertical-align:super;color:var(--wine)}
.stat p{color:var(--muted);margin-top:.6rem;font-size:.93rem}
.timeline{position:relative;padding-left:2rem;margin-top:1.6rem}
.timeline::before{content:"";position:absolute;left:6px;top:6px;bottom:6px;width:1px;background:linear-gradient(var(--blue),var(--wine))}
.tl-item{position:relative;padding-bottom:2.1rem;transition:transform .3s}
.tl-item:hover{transform:translateX(6px)}
.tl-item::before{
  content:"";position:absolute;left:-2rem;top:9px;width:13px;height:13px;border-radius:50%;
  background:var(--paper);border:2.5px solid var(--gold);transition:background .3s,transform .3s;
}
.tl-item:hover::before{background:var(--gold);transform:scale(1.25)}
.tl-year{font-family:var(--display);font-weight:400;color:var(--wine);font-size:1.25rem;letter-spacing:.12em;line-height:1.2}
.tl-item h4{font-family:var(--display);font-weight:400;font-size:1.3rem;text-transform:uppercase;letter-spacing:.04em;margin:.1rem 0 .3rem;line-height:1.1}
.tl-item p{color:var(--muted);font-size:.93rem;max-width:46ch}

/* footer */
footer{
  border-top:4px solid var(--gold);padding:4rem clamp(1.2rem,5vw,4rem) 2.2rem;
  background:var(--ink);color:rgba(255,255,255,.72);
}
.foot-grid{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:2.5rem}
.foot-grid a.foot-logo{display:flex;align-items:center;gap:.85rem;text-decoration:none;color:#fff;margin-bottom:1.1rem}
.foot-logo img{height:56px;width:auto;flex-shrink:0}
.foot-logo b{font-family:var(--display);font-size:1.35rem;font-weight:400;letter-spacing:.09em;text-transform:uppercase;display:block;line-height:1.05}
.foot-logo small{font-family:'Heebo',var(--body);font-size:.8rem;color:var(--gold);display:block}
.foot-grid h5{font-family:var(--display);font-size:.95rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:1rem;font-weight:400;line-height:1}
.foot-grid a,.foot-grid p{color:rgba(255,255,255,.66);text-decoration:none;font-size:.9rem;display:block;margin-bottom:.55rem;transition:color .25s}
.foot-grid a:hover{color:var(--gold)}
/* o botão do WhatsApp na coluna Contato: a regra genérica de "a" do rodapé
   força display:block e cor clara, então o .btn precisa recuperar as suas */
.foot-grid .btn{display:inline-flex;color:var(--ink);margin:.35rem 0 .9rem}
.foot-grid .btn:hover{color:#fff}
/* barra de créditos oficial — Hebraica Rio em zona própria, separada da marca */
.foot-credits{max-width:var(--max);margin:3.2rem auto 0;display:flex;justify-content:center}
.foot-credits img{width:100%;max-width:620px;border-radius:12px}
.foot-bottom{max-width:var(--max);margin:2.4rem auto 0;padding-top:1.6rem;border-top:1px solid rgba(255,255,255,.14);
  display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;color:rgba(255,255,255,.55);font-size:.8rem}
.foot-bottom .hebrew{color:var(--gold)}

/* reveal */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}
.reveal[data-d="1"]{transition-delay:.12s}
.reveal[data-d="2"]{transition-delay:.24s}
.reveal[data-d="3"]{transition-delay:.36s}

/* responsive */
@media(max-width:900px){
  .split{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  /* O menu vira um overlay position:fixed dentro da <nav>. Qualquer
     backdrop-filter na nav a transforma em bloco de contenção e prende o
     overlay dentro da barra — era o bug do menu por baixo do conteúdo. No
     mobile a nav rolada fica sem blur (o fundo já é 94% opaco). */
  nav.scrolled{backdrop-filter:none}
  /* fundo travado enquanto o menu está aberto; o -top vem do JS */
  body.menu-open{position:fixed;left:0;right:0;width:100%;overflow:hidden}
  .nav-links{
    position:fixed;inset:0;background:rgba(245,241,236,.98);backdrop-filter:blur(20px);
    /* safe center: em tela muito baixa a lista alinha ao topo em vez de
       vazar por cima do hamburger. */
    flex-direction:column;justify-content:center;justify-content:safe center;gap:2rem;
    /* em tela baixa (celular deitado) a lista rola dentro do próprio overlay */
    overflow-y:auto;padding:5rem 1.5rem;
    transform:translateX(100%);transition:transform .4s cubic-bezier(.6,0,.2,1);
  }
  .nav-links.open{transform:none}
  /* no menu cheio o fundo é claro: os links precisam voltar ao near-black */
  .nav-links.open a{color:var(--ink-soft);font-size:1.25rem}
  .nav-links.open .btn-ghost{color:var(--ink);border-color:var(--line)}
  .hamburger{display:flex}
  .hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .hamburger.open span:nth-child(2){opacity:0}
  .hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .logo-text b{font-size:1.1rem}
  /* o selo dos três eventos cabe numa linha só com tracking menor */
  .hero-badge{font-size:.76rem;letter-spacing:.14em;padding:.4rem .9rem;gap:.5rem}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}
