/* Layout: páginas em coluna única com faixas largas; Natal clássico e acolhedor — creme no fundo, verde pinho, vermelho nas ações, dourado em filetes e estrelas, ramos de pinheiro e laço de veludo só nas bordas.
   Tema único claro: a logo de Natal tem fundo branco e foi feita para papel creme. */
:root {
  color-scheme: light;
  --papel: #FAF6EE;      /* fundo creme */
  --papel-2: #F5EEE0;    /* creme mais quente para faixas */
  --papel-luz: #FFFDF8;  /* brilho suave no topo da capa */
  --cartao: #FFFEFB;     /* superfícies */
  --tinta: #171717;      /* texto */
  --suave: #56645B;      /* texto secundário */
  --linha: #E8DFCD;      /* divisórias */
  --pinho: #143F28;      /* verde da marca */
  --pinho-claro: #E4EDE6;
  --vermelho: #A50D18;  /* único tom de vermelho do site */   /* vermelho natalino */
  --vermelho-escuro: #A50D18;
  --vermelho-claro: #F7E3E1;
  --ouro: #AB7A2F;       /* dourado para detalhes */
  --ouro-vivo: #C9A04A;
  --ouro-linha: rgba(171, 122, 47, .38);
  --ouro-claro: #F3E9D2;
  --faixa: #143F28;      /* faixas verde-escuras */
  --sala-a: #F4DCD8; --sala-c: #DCE9E0; --sala-e: #F1E5C9; --servico: #ECE7DE;
  --f-titulo: "Playfair Display", Georgia, "Times New Roman", serif;
  --f-script: "Great Vibes", "Brush Script MT", cursive;
  --f-texto: "Figtree", "Segoe UI", system-ui, -apple-system, sans-serif;
  --raio: 16px;
  --sombra: 0 1px 2px rgba(20, 63, 40, .05), 0 10px 30px rgba(20, 63, 40, .06);
  --sombra-suspensa: 0 2px 4px rgba(20, 63, 40, .05), 0 16px 36px rgba(20, 63, 40, .10);
  --largura: 1120px;
  --espaco: clamp(44px, 6.5vw, 80px);
  --gutter: 20px;
  --altura-topo: 64px;
  --estrelas: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260' viewBox='0 0 260 260'%3E%3Cg fill='%23C9A04A'%3E%3Cpath transform='translate(38 46)' d='M0-7C.7-1.2 1.2-.7 7 0 1.2.7.7 1.2 0 7-.7 1.2-1.2.7-7 0-1.2-.7-.7-1.2 0-7Z'/%3E%3Cpath transform='translate(176 28) scale(.6)' d='M0-7C.7-1.2 1.2-.7 7 0 1.2.7.7 1.2 0 7-.7 1.2-1.2.7-7 0-1.2-.7-.7-1.2 0-7Z'/%3E%3Cpath transform='translate(214 142) scale(.85)' d='M0-7C.7-1.2 1.2-.7 7 0 1.2.7.7 1.2 0 7-.7 1.2-1.2.7-7 0-1.2-.7-.7-1.2 0-7Z'/%3E%3Cpath transform='translate(98 188) scale(.5)' d='M0-7C.7-1.2 1.2-.7 7 0 1.2.7.7 1.2 0 7-.7 1.2-1.2.7-7 0-1.2-.7-.7-1.2 0-7Z'/%3E%3Ccircle cx='120' cy='92' r='1.2'/%3E%3Ccircle cx='62' cy='130' r='.9'/%3E%3Ccircle cx='238' cy='70' r='1'/%3E%3Ccircle cx='160' cy='232' r='1.1'/%3E%3Ccircle cx='24' cy='214' r='.8'/%3E%3C/g%3E%3C/svg%3E");
}
@media (max-width: 720px) { :root { --altura-topo: 52px; } }

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--papel);
  color: var(--tinta);
  font-family: var(--f-texto);
  font-size: 1.0625rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--vermelho); text-underline-offset: 3px; }
:focus-visible { outline: 2px solid var(--ouro); outline-offset: 3px; border-radius: 6px; }
h1, h2, h3 { font-family: var(--f-titulo); line-height: 1.15; text-wrap: balance; margin: 0; color: var(--pinho); font-weight: 700; }
h1 { letter-spacing: -.015em; }
h2 { font-size: clamp(1.7rem, 3.2vw, 2.4rem); letter-spacing: -.01em; }
h3 { font-size: 1.15rem; }
p { margin: 0; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.faixa { padding-left: max(var(--gutter), env(safe-area-inset-left, 0px)); padding-right: max(var(--gutter), env(safe-area-inset-right, 0px)); }
.miolo { max-width: var(--largura); margin: 0 auto; }
.secao { padding-block: var(--espaco); }
.secao--junta { padding-top: 0; }
.secao--perto { padding-top: calc(var(--espaco) * .55); }
.secao--antes-expor { padding-bottom: calc(var(--espaco) * .45); }

.sobretitulo {
  font-size: .76rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--ouro);
}
.sobretitulo::after { content: ""; display: inline-block; vertical-align: middle; margin-left: 12px; height: 1px; width: 40px; background: currentColor; opacity: .55; }
.script { font-family: var(--f-script); font-weight: 400; color: var(--vermelho); line-height: 1; letter-spacing: 0; }
.cabeca-secao { display: grid; gap: 10px; margin-bottom: 28px; max-width: 44rem; }
.cabeca-secao p { color: var(--suave); }

/* Ornamento: filete dourado com estrela de quatro pontas, como nas artes da feira */
.ornamento { display: flex; align-items: center; gap: 12px; color: var(--ouro); }
.ornamento::before, .ornamento::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, transparent, var(--ouro-linha) 30%, var(--ouro-linha) 70%, transparent); }
.ornamento svg { width: 14px; height: 14px; flex: none; }

/* Textura de estrelinhas douradas, bem leve */
.com-estrelas { position: relative; isolation: isolate; }
.com-estrelas::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image: var(--estrelas); background-size: 260px 260px; opacity: .2;
  -webkit-mask-image: radial-gradient(ellipse 70% 80% at 85% 35%, #000 0%, rgba(0,0,0,.35) 55%, transparent 85%);
          mask-image: radial-gradient(ellipse 70% 80% at 85% 35%, #000 0%, rgba(0,0,0,.35) 55%, transparent 85%);
}

/* ---------- Cabeçalho ---------- */
body::before { content: ""; position: fixed; inset: 0 0 auto; height: var(--sat); z-index: 30; background: var(--papel); }
.topo {
  position: sticky; top: var(--sat); z-index: 20;
  background: color-mix(in srgb, var(--papel) 92%, transparent);
  backdrop-filter: blur(12px) saturate(1.2); -webkit-backdrop-filter: blur(12px) saturate(1.2);
  border-bottom: 1px solid var(--linha);
}
.topo .miolo { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: var(--altura-topo); }
.marca { display: flex; align-items: center; text-decoration: none; border-radius: 8px; }
.marca img { height: 48px; width: auto; mix-blend-mode: multiply; }
.menu { display: flex; gap: 4px; }
.menu a {
  text-decoration: none; color: var(--tinta); font-weight: 600; font-size: .93rem;
  padding: 8px 15px; border-radius: 999px; transition: background .2s ease, color .2s ease;
}
.menu a:hover { background: var(--pinho-claro); }
.menu a[aria-current="page"] { background: var(--pinho); color: var(--papel); }
.botao-menu { display: none; }
@media (max-width: 720px) {
  .marca img { height: 36px; }
  .botao-menu {
    display: grid; place-content: center; gap: 4px; width: 44px; height: 44px; margin-right: -6px; border-radius: 50%;
    border: 0; background: transparent; cursor: pointer; padding: 0;
  }
  .botao-menu span { display: block; width: 20px; height: 1.5px; border-radius: 2px; background: var(--pinho); transition: transform .25s ease, opacity .2s ease, width .25s ease; }
  .botao-menu span:nth-child(2) { width: 14px; justify-self: end; }
  .botao-menu[aria-expanded="true"] span:nth-child(1) { transform: translateY(5.5px) rotate(45deg); }
  .botao-menu[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .botao-menu[aria-expanded="true"] span:nth-child(3) { transform: translateY(-5.5px) rotate(-45deg); }
  .menu {
    display: none; position: absolute; left: 0; right: 0; top: 100%; flex-direction: column; gap: 2px;
    background: var(--papel); border-bottom: 1px solid var(--linha); box-shadow: 0 16px 30px rgba(20, 63, 40, .10);
    padding: 8px max(var(--gutter), env(safe-area-inset-right, 0px)) 14px max(var(--gutter), env(safe-area-inset-left, 0px));
  }
  body.menu-aberto .menu { display: flex; }
  .menu a { font-size: 1.02rem; padding: 0 14px; min-height: 48px; display: flex; align-items: center; border-radius: 12px; }
  .menu a[aria-current="page"] { background: var(--pinho-claro); color: var(--pinho); box-shadow: inset 3px 0 0 var(--ouro); }
}

/* ---------- Botões ---------- */
.botoes { display: flex; flex-wrap: wrap; gap: 12px; }
.botao {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px; text-decoration: none;
  font-family: var(--f-texto); font-weight: 700; font-size: .97rem; letter-spacing: .01em;
  padding: 13px 24px; min-height: 48px; border-radius: 999px; border: 1.5px solid transparent; cursor: pointer;
  transition: transform .2s ease, background .2s ease, box-shadow .2s ease, border-color .2s ease, color .2s ease;
}
.botao:hover { transform: translateY(-1px); }
.botao svg { width: 18px; height: 18px; flex: none; stroke-width: 1.75; }
.botao--cheio { background: var(--vermelho); color: #fff; box-shadow: 0 6px 18px rgba(165, 13, 24, .22); }
.botao--cheio:hover { background: var(--vermelho-escuro); box-shadow: 0 10px 24px rgba(165, 13, 24, .28); }
/* Botão principal da capa: vermelho veludo com filete dourado interno */
.botao--festivo {
  background: linear-gradient(180deg, #A50D18 0%, var(--vermelho) 55%, #A50D18 100%);
  box-shadow: inset 0 0 0 1px rgba(255, 220, 160, .35), inset 0 1px 0 rgba(255, 255, 255, .18), 0 8px 22px rgba(165, 13, 24, .26);
}
.botao--festivo:hover { background: linear-gradient(180deg, #A50D18 0%, var(--vermelho-escuro) 100%); }
.botao--linha { border-color: var(--pinho); color: var(--pinho); background: transparent; }
.botao--linha:hover { background: var(--pinho-claro); }
.botao--linha svg { transition: transform .2s ease; }
.botao--linha:hover svg:last-child { transform: translateX(3px); }

/* ---------- Capa: noite de Natal ---------- */
.capa {
  position: relative; isolation: isolate; overflow: hidden; color: #F4EDDD; text-align: center;
  background:
    radial-gradient(60% 55% at 50% 40%, rgba(226, 192, 122, .10), transparent 70%),
    radial-gradient(120% 90% at 50% 0%, #16523A 0%, #143F28 55%, #0B2C1F 100%);
  padding-block: clamp(84px, 7vw, 104px) clamp(108px, 9vw, 128px);
}
/* poucas luzes desfocadas, só nas laterais */
.capa::before {
  content: ""; position: absolute; inset: 0; z-index: -2; pointer-events: none; opacity: .2; filter: blur(2px);
  background:
    radial-gradient(circle at 8% 62%, rgba(255, 214, 140, .5) 0 3px, transparent 8px),
    radial-gradient(circle at 15% 84%, rgba(255, 214, 140, .4) 0 4px, transparent 9px),
    radial-gradient(circle at 88% 70%, rgba(255, 214, 140, .45) 0 3px, transparent 8px),
    radial-gradient(circle at 94% 44%, rgba(255, 214, 140, .35) 0 2px, transparent 6px);
}
.neve { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; }
.capa .miolo { position: relative; z-index: 1; }
.capa-texto { display: grid; justify-items: center; max-width: 40rem; margin: 0 auto; min-width: 0; }
.selo { display: flex; align-items: center; justify-content: center; gap: 10px; font-size: .7rem; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: #E2C07A; opacity: .9; margin-bottom: 10px; }
.selo svg { width: 9px; height: 9px; flex: none; color: #E2C07A; opacity: .9; }
.capa-titulo { display: grid; justify-items: center; margin: 0; font-size: inherit; }
.capa-logo { display: block; width: min(100%, 520px); height: auto; filter: drop-shadow(0 12px 22px rgba(0, 0, 0, .32)); }
.capa-titulo .script { display: block; font-size: clamp(2.4rem, 4.6vw, 3.4rem); margin-top: 2px; line-height: 1.1; color: #E2C07A; font-weight: 400; }
.capa .descricao { font-size: 1.06rem; line-height: 1.6; color: rgba(244, 237, 221, .78); max-width: 30rem; margin-top: 14px; }
.quando { list-style: none; margin: 20px 0 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 28px; }
.quando li { display: flex; align-items: center; gap: 8px; font-weight: 600; font-size: .98rem; color: #F4EDDD; }
.quando svg { width: 16px; height: 16px; flex: none; color: #E2C07A; stroke-width: 1.5; }
.capa .botoes { margin-top: 28px; display: grid; justify-items: center; gap: 12px; }
.capa .botao--festivo {
  min-width: 260px; min-height: 52px; font-size: 1rem;
  background: linear-gradient(180deg, #A50D18, var(--vermelho));
  box-shadow: inset 0 0 0 1px rgba(255, 220, 160, .28), 0 6px 16px rgba(0, 0, 0, .22);
}
.capa .botao--festivo:hover { background: linear-gradient(180deg, #A50D18, var(--vermelho-escuro)); }
.link-seta {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 6px;
  color: #F4EDDD; font-weight: 600; font-size: .95rem; text-decoration: none; border-bottom: 1px solid transparent;
}
.link-seta span, .link-seta { text-underline-offset: 5px; }
.link-seta:hover { text-decoration: underline; text-decoration-color: rgba(226, 192, 122, .7); }
.link-seta svg { width: 15px; height: 15px; color: #E2C07A; transition: transform .2s ease; }
.link-seta:hover svg { transform: translateX(3px); }

/* Bolas de Natal só nas bordas de cima */
.enfeites { position: absolute; inset: 0 0 auto 0; z-index: 2; pointer-events: none; }
.pendente {
  position: absolute; top: 0; left: var(--x); width: var(--tam); margin-left: calc(var(--tam) / -2);
  transform-origin: 50% 0; animation: balancar 5.5s ease-in-out infinite alternate; animation-delay: calc(var(--atraso) * -1);
}
.pendente::before { content: ""; display: block; width: 1px; height: var(--fio); margin: 0 auto; background: linear-gradient(#9C7A2E, #D8BC78); }
.pendente img { display: block; width: 100%; height: auto; margin-top: -1px; filter: drop-shadow(0 6px 8px rgba(0, 0, 0, .3)); }
@keyframes balancar { from { transform: rotate(-2.5deg); } to { transform: rotate(2.5deg); } }

@media (prefers-reduced-motion: no-preference) {
  .capa-texto > * { animation: subir .8s cubic-bezier(.2, .7, .2, 1) both; }
  .capa-texto > :nth-child(2) { animation-delay: .06s; }
  .capa-texto > :nth-child(3) { animation-delay: .12s; }
  .capa-texto > :nth-child(4) { animation-delay: .18s; }
  .capa-texto > :nth-child(5) { animation-delay: .24s; }
}
@keyframes subir { from { transform: translateY(14px); opacity: 0; } to { transform: none; opacity: 1; } }

@media (max-width: 900px) { .pendente--largo { display: none; } }
@media (max-width: 560px) {
  .capa { padding-block: 64px 100px; }
  .selo { font-size: .62rem; letter-spacing: .2em; gap: 8px; margin-bottom: 6px; }
  .capa-logo { width: min(88%, 330px); }
  .capa-titulo .script { font-size: clamp(2rem, 9vw, 2.4rem); margin-top: 0; }
  .capa .descricao { font-size: .96rem; margin-top: 10px; max-width: 21rem; }
  .quando { gap: 6px 18px; margin-top: 16px; }
  .quando li { font-size: .93rem; }
  .quando li:first-child { flex-basis: 100%; justify-content: center; }
  .capa .botoes { width: 100%; margin-top: 22px; gap: 4px; }
  .capa .botao--festivo { width: 100%; min-width: 0; max-width: 340px; }
  .pendente { width: calc(var(--tam) * .7); margin-left: calc(var(--tam) * -.35); }
  .pendente::before { height: calc(var(--fio) * .4); }
  .pendente { width: calc(var(--tam) * .62); margin-left: calc(var(--tam) * -.31); }
}

/* ---------- Contagem regressiva ---------- */
.contagem-faixa { position: relative; z-index: 3; margin-top: -76px; }
.contagem-cartao {
  position: relative; max-width: 600px; margin: 0 auto; text-align: center;
  background: #FFFDF8; border: 1px solid var(--ouro-linha); border-radius: 20px;
  box-shadow: 0 18px 40px rgba(10, 42, 30, .18); padding: 30px clamp(14px, 3vw, 24px) 18px;
}
.contagem-cartao::before {
  content: ""; position: absolute; left: 50%; top: -17px; width: 38px; height: 37px; transform: translateX(-50%);
  background: url(img/laco.svg) center / contain no-repeat; filter: drop-shadow(0 3px 4px rgba(0, 0, 0, .15));
}
.contagem-rotulo { font-size: .7rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--ouro); }
.contagem-numeros { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(6px, 1.6vw, 12px); margin-top: 12px; }
.contagem-numeros div { display: grid; gap: 6px; padding: 14px 4px 12px; border-radius: 14px; background: var(--papel); border: 1px solid var(--linha); }
.contagem-numeros strong { font: 700 clamp(1.9rem, 6.4vw, 2.8rem) / 1 var(--f-titulo); color: var(--pinho); font-variant-numeric: lining-nums tabular-nums; }
.contagem-numeros span { font-size: .64rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--suave); }
.contagem--fim .contagem-rotulo { font: italic 400 1.3rem / 1.4 var(--f-titulo); letter-spacing: 0; text-transform: none; color: var(--pinho); padding-block: 6px; }
@media (max-width: 560px) {
  .contagem-cartao { padding: 26px 12px 14px; border-radius: 18px; }
  .contagem-numeros { gap: 6px; }
  .contagem-numeros div { padding: 11px 2px 9px; gap: 5px; border-radius: 12px; }
  .contagem-numeros span { font-size: .56rem; letter-spacing: .08em; }
}

/* ---------- O que você encontra: bolas com ícone ---------- */
.secao--destaques { padding-block: clamp(40px, 5vw, 64px) clamp(24px, 4vw, 40px); }
.destaques { list-style: none; margin: 0 auto; padding: 0; max-width: 900px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; position: relative; }
.destaques::before { content: ""; position: absolute; left: 6%; right: 6%; top: 0; height: 1.5px; background: linear-gradient(90deg, transparent, var(--ouro-vivo) 12%, var(--ouro-vivo) 88%, transparent); opacity: .7; }
.destaque { display: grid; justify-items: center; gap: 12px; text-align: center; position: relative; padding-top: var(--fio, 24px); }
.destaque::before { content: ""; position: absolute; top: 0; left: 50%; width: 1.5px; height: calc(var(--fio, 24px) + 2px); background: linear-gradient(#B08935, #E8CF8E); }
.bola-icone {
  width: 96px; aspect-ratio: 100 / 112; display: grid; place-items: center; padding-top: 29%; color: var(--icone, #fff);
  background: var(--bola) center / contain no-repeat; filter: drop-shadow(0 10px 12px rgba(20, 63, 40, .22));
  transform-origin: 50% 0; transition: transform .3s ease;
}
.bola-icone svg { width: 32px; height: 32px; stroke-width: 1.5; }
.destaque:hover .bola-icone { animation: balancar-rapido 1.4s ease-in-out; }
@keyframes balancar-rapido { 0%, 100% { transform: rotate(0); } 25% { transform: rotate(6deg); } 60% { transform: rotate(-4deg); } 85% { transform: rotate(2deg); } }
.destaque-nome { font: 700 1.2rem / 1.2 var(--f-titulo); color: var(--pinho); }
@media (max-width: 560px) {
  .destaques { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 12px; }
  .destaques::before, .destaque::before { display: none; }
  .destaque { padding-top: 0; gap: 8px; }
  .bola-icone { width: 84px; }
  .bola-icone svg { width: 28px; height: 28px; }
  .destaque-nome { font-size: 1.1rem; }
}

/* ---------- Sobre (com a foto do calendário) ---------- */
.secao--sobre { padding-top: clamp(32px, 4vw, 56px); }
.sobre { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(32px, 6vw, 80px); align-items: center; }
.sobre-foto { margin: 0; position: relative; justify-self: center; width: min(100%, 420px); }
.sobre-foto img { width: 100%; height: auto; border-radius: 18px; box-shadow: var(--sombra-suspensa); }
.sobre-foto::before { content: ""; position: absolute; inset: 14px -14px -14px 14px; border: 1px solid var(--ouro-linha); border-radius: 20px; z-index: -1; }
.sobre-foto { isolation: isolate; }
.sobre-conteudo { display: grid; gap: 14px; justify-items: start; }
.sobre-conteudo h2 { max-width: 30rem; }
.sobre-texto { display: grid; gap: 14px; max-width: 36rem; }
.sobre-texto p { line-height: 1.75; color: #2B3831; }
.lema { margin-top: 8px; display: grid; gap: 10px; width: min(100%, 30rem); }
.lema p { font-family: var(--f-titulo); font-style: italic; font-size: clamp(1.2rem, 2.2vw, 1.45rem); line-height: 1.35; color: var(--pinho); text-align: center; }
@media (max-width: 860px) {
  .sobre { grid-template-columns: 1fr; gap: 36px; }
  .sobre-foto { order: 2; width: min(78%, 340px); }
  .sobre-conteudo { justify-items: center; text-align: center; }
}
@media (max-width: 560px) {
  .sobre-conteudo h2 { font-size: clamp(1.55rem, 6.8vw, 1.9rem); line-height: 1.2; }
  .sobre-texto { text-align: left; gap: 12px; }
  .sobre-texto p { font-size: .98rem; line-height: 1.72; }
  .sobre-foto::before { inset: 10px -10px -10px 10px; }
}

/* ---------- Divisória com bolinhas ---------- */
.divisoria { display: flex; justify-content: center; gap: 20px; width: min(260px, 70%); margin: 0 auto calc(var(--espaco) * .45); border-top: 1.5px solid var(--ouro-linha); }
.divisoria span { display: block; width: 26px; transform-origin: 50% 0; animation: balancar 4s ease-in-out infinite alternate; }
.divisoria span:nth-child(2) { width: 32px; animation-delay: -1.3s; }
.divisoria span:nth-child(3) { animation-delay: -2.4s; }
.divisoria span::before { content: ""; display: block; width: 1.5px; height: var(--fio); margin: 0 auto; background: var(--ouro-linha); }
.divisoria img { display: block; width: 100%; height: auto; }

/* ---------- Aparecer ao rolar ---------- */
.anima .aparecer { transition: opacity .8s cubic-bezier(.2, .7, .2, 1), transform .8s cubic-bezier(.2, .7, .2, 1); transition-delay: calc(var(--ordem, 0) * 90ms); }
.anima .aparecer:not(.visivel) { opacity: 0; transform: translateY(28px); }

/* ---------- Ingressos ---------- */
.faixa-escura { background: var(--faixa); color: #F2ECDF; }
.faixa-escura::before { opacity: .08; -webkit-mask-image: linear-gradient(90deg, transparent, #000 60%); mask-image: linear-gradient(90deg, transparent, #000 60%); }
.faixa-escura h2 { color: #F7F1E4; }
.faixa-escura .sobretitulo { color: #E2C07A; }
.ingressos-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(28px, 6vw, 72px); align-items: center; }
.ingressos-layout .cabeca-secao { margin-bottom: 22px; }
.ingressos-layout .cabeca-secao p { color: #C9D3CC; }
.ingressos-layout .cabeca-secao a { color: #F1D9A0; font-weight: 700; }
.ingressos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.ingresso {
  display: grid; gap: 4px; align-content: start; padding: 22px 22px 20px; border-radius: 16px;
  background: rgba(255, 255, 255, .045); border: 1px solid rgba(226, 192, 122, .32);
}
.ingresso .tipo { min-height: 2.7em; font-size: .74rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #E2C07A; }
.ingresso .valor { font-family: var(--f-titulo); font-size: clamp(2.2rem, 4vw, 2.7rem); font-weight: 700; line-height: 1.1; color: #F7F1E4; margin-top: 4px; }
.ingresso .obs { color: #C9D3CC; font-size: .9rem; padding-top: 10px; margin-top: 8px; border-top: 1px solid rgba(226, 192, 122, .22); }
.faixa-escura .botao--linha { border-color: rgba(242, 236, 223, .6); color: #F2ECDF; }
.faixa-escura .botao--linha:hover { background: rgba(242, 236, 223, .08); border-color: #F2ECDF; }
.faixa-escura .botao--cheio { color: #fff; }
@media (max-width: 860px) { .ingressos-layout { grid-template-columns: 1fr; } }
@media (max-width: 380px) { .ingressos { grid-template-columns: 1fr; } }

/* ---------- Planeje sua visita ---------- */
.atalhos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.atalho {
  text-decoration: none; color: var(--tinta); background: var(--cartao); border: 1px solid var(--linha);
  border-radius: var(--raio); padding: 18px 20px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 16px; align-items: center;
  transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.atalho:hover { border-color: var(--ouro-linha); transform: translateY(-2px); box-shadow: var(--sombra-suspensa); }
.atalho h3 { font-size: 1.12rem; }
.atalho p { color: var(--suave); font-size: .92rem; grid-column: 1; }
.atalho .seta { grid-column: 2; grid-row: 1 / span 2; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--ouro-linha); display: grid; place-items: center; color: var(--ouro); transition: background .25s ease, color .25s ease, transform .25s ease; }
.atalho .seta svg { width: 16px; height: 16px; stroke-width: 1.75; }
.atalho:hover .seta { background: var(--pinho); color: var(--papel); border-color: var(--pinho); }
@media (max-width: 860px) { .atalhos { grid-template-columns: 1fr; } }

/* ---------- Quero ser expositor ---------- */
.expor { background: linear-gradient(180deg, var(--papel) 0%, var(--papel-2) 38%, var(--ouro-claro) 100%); padding-top: calc(var(--espaco) * .35); }
.expor .ornamento { max-width: 260px; margin: 0 auto calc(var(--espaco) * .45); }
.ornamento--laco img { width: 46px; height: auto; flex: none; }
.expor-caixa { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px 56px; align-items: center; }
.expor .cabeca-secao { margin-bottom: 0; }
.botao--whats { background: var(--pinho); color: var(--papel); padding: 15px 28px; font-size: 1rem; box-shadow: 0 8px 22px rgba(20, 63, 40, .22); }
.botao--whats:hover { box-shadow: 0 12px 28px rgba(20, 63, 40, .3); }
@media (max-width: 760px) { .expor-caixa { grid-template-columns: 1fr; } .botao--whats { width: 100%; } }

/* ---------- Topo das páginas internas ---------- */
.pagina-topo { padding-bottom: 28px; }
.pagina-topo .cabeca-secao { margin-bottom: 0; }
.secao--conteudo { padding-top: 8px; }

/* ---------- Rodapé ---------- */
.rodape { background: var(--faixa); color: #E9E2D2; padding-block: 44px; }
.rodape::before { opacity: .1; -webkit-mask-image: none; mask-image: none; }
.rodape .miolo { display: flex; flex-wrap: wrap; gap: 24px; justify-content: space-between; align-items: center; }
.rodape a { color: #F1D9A0; }
.rodape p { font-size: .94rem; line-height: 1.75; }
.rodape .script { color: #F1D9A0; font-size: 2.1rem; line-height: 1.2; }

/* ---------- Planeje: contador e agenda ---------- */
.planeje-topo { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 14px 32px; margin-bottom: 26px; }
.planeje-topo .cabeca-secao { margin-bottom: 0; }
.contagem { font-size: .95rem; color: var(--suave); }
.contagem:empty { display: none; }
.contagem strong { font-family: var(--f-titulo); font-size: 1.15rem; color: var(--vermelho); }

/* ---------- Salvar na agenda ---------- */
.salvar-agenda { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; font-size: .9rem; color: var(--suave); }
.salvar-agenda a {
  display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--pinho); text-decoration: none;
  padding: 0 14px; min-height: 38px; border-radius: 999px; border: 1px solid var(--linha); background: var(--cartao); transition: border-color .2s ease;
}
@media (max-width: 600px) {
  .salvar-agenda { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; width: 100%; }
  .salvar-agenda > span { grid-column: 1 / -1; font-size: .8rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
  .salvar-agenda a { min-height: 44px; justify-content: center; }
}
.salvar-agenda a:hover { border-color: var(--ouro); }
.salvar-agenda svg { width: 15px; height: 15px; stroke-width: 1.6; }

/* ---------- Programação: linha do tempo ---------- */
.miolo--estreito { max-width: 820px; }
.linha-tempo { --col-hora: 7.5rem; --col-no: 44px; --gap: 22px; list-style: none; margin: 0; padding: 0; display: grid; }
.momento {
  position: relative; display: grid; grid-template-columns: var(--col-hora) var(--col-no) minmax(0, 1fr);
  column-gap: var(--gap); align-items: center; padding-block: 10px;
}
.momento::before {
  content: ""; position: absolute; top: 0; bottom: 0; width: 1px; background: var(--ouro-linha);
  left: calc(var(--col-hora) + var(--gap) + var(--col-no) / 2);
}
.momento:first-child::before { top: 50%; }
.momento:last-child::before { bottom: 50%; }
.momento-hora { text-align: right; display: grid; line-height: 1.2; }
.momento-hora strong { font-family: var(--f-titulo); font-weight: 700; font-size: 1.45rem; color: var(--vermelho); font-variant-numeric: tabular-nums; }
.momento-hora span { font-size: .85rem; color: var(--suave); margin-top: 2px; }
.momento-no {
  position: relative; z-index: 1; width: var(--col-no); height: var(--col-no); border-radius: 50%;
  display: grid; place-items: center; background: var(--papel); border: 1px solid var(--ouro-linha); color: var(--pinho);
  transition: background .25s ease, border-color .25s ease;
}
.momento-no svg { width: 19px; height: 19px; stroke-width: 1.4; }
.momento[data-tipo="show"] .momento-no { color: var(--vermelho); }
.momento[data-tipo="sorteio"] .momento-no { color: var(--ouro); }
.momento-texto {
  padding: 14px 18px; border-radius: 14px; border: 1px solid transparent;
  transition: background .25s ease, border-color .25s ease;
}
.momento:hover .momento-texto { background: var(--cartao); border-color: var(--linha); }
.momento:hover .momento-no { border-color: var(--ouro); }
.momento .tag { font-size: .7rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--suave); display: flex; align-items: center; gap: 8px; }
.momento[data-tipo="musica"] .tag { color: var(--pinho); }
.momento[data-tipo="show"] .tag { color: var(--vermelho); }
.momento[data-tipo="sorteio"] .tag { color: var(--ouro); }
.momento h3 { font-family: var(--f-texto); font-size: 1.08rem; font-weight: 700; color: var(--tinta); margin-top: 3px; line-height: 1.35; }
.momento .ao-vivo { display: none; }
.momento.agora .momento-texto { background: var(--ouro-claro); border-color: var(--ouro-linha); }
.momento.agora .ao-vivo { display: inline-block; background: var(--vermelho); color: #fff; font-size: .66rem; letter-spacing: .1em; padding: 2px 8px; border-radius: 999px; }
.programa-rodape { display: grid; justify-items: center; gap: 18px; margin-top: 36px; padding-top: 28px; border-top: 1px solid var(--linha); text-align: center; }
.programa-rodape .botoes { justify-content: center; }

@media (max-width: 600px) {
  .linha-tempo { --col-no: 38px; --gap: 14px; }
  .momento { grid-template-columns: var(--col-no) minmax(0, 1fr); grid-template-areas: "no hora" "no texto"; align-items: start; padding-block: 12px; }
  .momento::before { left: calc(var(--col-no) / 2); }
  .momento:first-child::before { top: 30px; }
  .momento:last-child::before { bottom: auto; height: 30px; }
  .momento-no { grid-area: no; margin-top: 2px; }
  .momento-no svg { width: 17px; height: 17px; }
  .momento-hora { grid-area: hora; text-align: left; display: flex; align-items: baseline; gap: 8px; }
  .momento-hora strong { font-size: 1.3rem; }
  .momento-hora span { margin-top: 0; }
  .momento-texto { grid-area: texto; padding: 2px 0 0; border: 0; }
  .momento:hover .momento-texto { background: none; }
  .momento.agora .momento-texto { padding: 8px 12px; margin-top: 6px; border: 1px solid var(--ouro-linha); }
  .programa-rodape { justify-items: stretch; text-align: left; }
  .programa-rodape .botoes { display: grid; }
}

/* ---------- Local ---------- */
.endereco-bloco { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px 24px; align-items: center; background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); padding: clamp(20px, 3.5vw, 28px); margin-bottom: 28px; box-shadow: var(--sombra); }
.endereco-bloco h2 { font-size: clamp(1.6rem, 3vw, 2rem); }
.endereco-bloco p { color: var(--suave); }
@media (max-width: 720px) { .endereco-bloco { grid-template-columns: 1fr; } }
.chegadas { display: grid; gap: 0; }
.chegada { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(20px, 4vw, 44px); align-items: center; padding-block: 28px; border-top: 1px solid var(--linha); }
.chegada-texto { display: grid; gap: 12px; }
.chegada-texto h3 { display: flex; align-items: center; gap: 12px; font-size: 1.5rem; }
.chegada-texto h3 svg { width: 30px; height: 30px; color: var(--ouro); stroke-width: 1.4; }
.linhas { display: flex; flex-wrap: wrap; gap: 8px; }
.linha-tp { font-weight: 700; background: var(--pinho-claro); color: var(--pinho); padding: 6px 12px; border-radius: 8px; }
.alerta { background: var(--vermelho-claro); border-radius: 12px; padding: 14px 16px; display: grid; gap: 4px; }
.alerta strong { color: var(--vermelho); text-transform: uppercase; letter-spacing: .1em; font-size: .78rem; }
.alerta .gps { font-family: var(--f-titulo); font-size: 1.3rem; font-weight: 700; color: var(--tinta); }
.fotos { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.fotos img { width: 100%; aspect-ratio: 4 / 3.4; object-fit: cover; border-radius: 12px; }
@media (max-width: 820px) { .chegada { grid-template-columns: 1fr; } }

/* ---------- Expositores ---------- */
.vistas { display: none; }
.mapa-layout { display: grid; grid-template-columns: minmax(0, 450px) minmax(0, 1fr); gap: clamp(24px, 4vw, 48px); align-items: start; }
.mapa-caixa {
  position: sticky; top: calc(var(--sat) + var(--altura-topo) + 20px);
  background: var(--cartao); border: 1px solid var(--linha); border-radius: 18px; padding: 14px 14px 12px; box-shadow: var(--sombra);
}
.mapa-topo { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 2px 2px 10px; }
.legenda { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: .8rem; color: var(--suave); }
.legenda span { display: inline-flex; align-items: center; gap: 6px; }
.legenda i { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
.ampliar {
  display: inline-flex; align-items: center; gap: 6px; flex: none; font: inherit; font-size: .82rem; font-weight: 700; color: var(--pinho);
  background: transparent; border: 1px solid var(--linha); border-radius: 999px; padding: 6px 12px; min-height: 36px; cursor: pointer; transition: border-color .2s ease;
}
.ampliar:hover { border-color: var(--ouro); }
.ampliar svg { width: 15px; height: 15px; }
.aviso-filtro { font-size: .84rem; color: var(--suave); background: var(--ouro-claro); border-radius: 10px; padding: 8px 12px; margin-bottom: 8px; }
.link-botao { font: inherit; font-weight: 700; color: var(--vermelho); background: none; border: 0; padding: 0; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.mapa-area { display: grid; place-items: center; }
.mapa-area > svg { display: block; width: 100%; height: auto; max-height: calc(100vh - 260px); min-height: 300px; }

/* Painel da seleção (abaixo do mapa) */
.selecao { border-top: 1px solid var(--linha); margin-top: 10px; padding-top: 12px; min-height: 64px; }
.sel-dica { display: flex; align-items: center; gap: 10px; font-size: .88rem; color: var(--suave); line-height: 1.45; }
.sel-dica svg { width: 22px; height: 22px; flex: none; color: var(--ouro); }
.sel-cartao { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: start; }
.sel-info { display: grid; gap: 1px; min-width: 0; }
.sel-info strong { font-size: 1.04rem; line-height: 1.3; }
.sel-info .resp { color: var(--suave); font-size: .84rem; }
.sel-info .oferta { font-size: .9rem; }
.sel-letra { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; font: 700 1.4rem var(--f-titulo); color: var(--vermelho); border: 1px solid var(--ouro-linha); }
.sel-fechar { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--linha); background: transparent; color: var(--suave); cursor: pointer; margin: -4px -4px 0 0; }
.sel-fechar:hover { border-color: var(--ouro); color: var(--tinta); }
.sel-fechar svg { width: 16px; height: 16px; }
.sel-acoes { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; padding-left: 58px; }

/* Desenho do mapa */
.predio { fill: var(--cartao); stroke: var(--tinta); stroke-width: 3; stroke-linejoin: round; }
.servico { fill: var(--servico); stroke: var(--linha); stroke-width: 1; }
.servico-txt { fill: var(--suave); font: 600 9px var(--f-texto); letter-spacing: .08em; text-transform: uppercase; }
.sala { cursor: pointer; }
.sala polygon { stroke: var(--tinta); stroke-width: 1.6; stroke-linejoin: round; transition: stroke-width .15s ease, opacity .2s ease; }
.sala[data-sala="D"] polygon, .sala[data-sala="E"] polygon { fill: var(--sala-a); }
.sala[data-sala="B"] polygon, .sala[data-sala="C"] polygon { fill: var(--sala-c); }
.sala[data-sala="A"] polygon { fill: var(--sala-e); }
.sala .letra { font: 700 34px var(--f-titulo); fill: var(--vermelho); opacity: .85; pointer-events: none; }
.sala:hover polygon, .sala:focus-visible polygon { stroke-width: 3; }
.sala.ativa polygon { stroke: var(--vermelho); stroke-width: 3.5; }
.mapa-area > svg:has(.sala.ativa) .sala:not(.ativa) polygon, .ma-area > svg:has(.sala.ativa) .sala:not(.ativa) polygon { opacity: .55; }
.sala:focus { outline: none; }
.tenda rect { fill: none; stroke: var(--ouro); stroke-width: 2; stroke-dasharray: 5 3; }
.tenda text { fill: var(--ouro); font: 700 9.5px var(--f-texto); letter-spacing: .06em; text-transform: uppercase; }

/* Busca e filtros */
.filtros { display: grid; gap: 12px; margin-bottom: 18px; }
.busca { position: relative; display: block; }
.busca input {
  width: 100%; font: inherit; font-size: 1rem; height: 50px; padding: 0 18px 0 46px; border-radius: 999px; border: 1px solid var(--linha);
  background: var(--cartao); color: var(--tinta); transition: border-color .2s ease, box-shadow .2s ease;
}
.busca input::placeholder { color: var(--suave); opacity: .8; }
.busca input:focus { border-color: var(--ouro); outline: none; box-shadow: 0 0 0 3px var(--ouro-claro); }
.busca svg { position: absolute; left: 17px; top: 50%; transform: translateY(-50%); width: 18px; height: 18px; color: var(--suave); stroke-width: 1.6; pointer-events: none; }
.filtro-linha { display: flex; align-items: center; gap: 12px; min-width: 0; }
.rotulo-filtro { flex: none; width: 2.6rem; font-size: .68rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--suave); }
.chips { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.chip {
  font: inherit; font-size: .88rem; font-weight: 600; cursor: pointer; padding: 0 15px; min-height: 38px; min-width: 40px; border-radius: 999px;
  border: 1px solid var(--linha); background: var(--cartao); color: var(--tinta); white-space: nowrap;
  transition: border-color .2s ease, background .2s ease, color .2s ease;
}
.chip:hover { border-color: var(--ouro-linha); }
.chip[aria-pressed="true"] { background: var(--pinho); border-color: var(--pinho); color: var(--papel); }
.dica { color: var(--suave); font-size: .9rem; margin-bottom: 14px; }
.dica--fim { margin: 6px 0 0; }

/* Lista */
.grupo-sala { display: grid; gap: 12px; margin-bottom: 26px; }
.grupo-sala header { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; border-bottom: 1px solid var(--linha); padding-bottom: 8px; }
.grupo-sala header h3 { font-size: 1.35rem; }
.grupo-sala header span { color: var(--suave); font-size: .88rem; }
.lista-expo { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.lista-expo > li { display: flex; }
.expo {
  flex: 1; display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: 1fr auto; gap: 14px; align-items: start;
  background: var(--cartao); border: 1px solid var(--linha); border-radius: 16px; padding: 16px;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.expo:hover { border-color: var(--ouro-linha); box-shadow: var(--sombra); }
.expo.ativo { border-color: var(--pinho); box-shadow: 0 0 0 3px var(--pinho-claro); }
.numero {
  width: 46px; height: 46px; display: grid; place-items: center; overflow: hidden; flex: none;
  font-family: var(--f-titulo); font-weight: 700; font-size: 1.2rem;
  background: var(--pinho-claro); color: var(--pinho);
  clip-path: polygon(9px 0, 100% 0, 100% 100%, 9px 100%, 0 calc(100% - 9px), 0 9px);
}
[data-cat="gastronomia"] > .numero { background: var(--vermelho-claro); color: var(--vermelho); }
[data-cat="servicos"] > .numero { background: var(--ouro-claro); color: var(--ouro); }
.numero img { width: 100%; height: 100%; object-fit: cover; }
.expo-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.expo-estande { font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--suave); }
.expo-info h4 { margin: 0; font-size: 1.06rem; font-weight: 700; line-height: 1.3; color: var(--tinta); }
.expo-info .resp { color: var(--suave); font-size: .85rem; }
.expo-info .oferta { font-size: .93rem; line-height: 1.45; margin-top: 2px; }
.expo-info .insta { font-size: .88rem; font-weight: 600; overflow-wrap: anywhere; }
.expo-acoes { grid-column: 1 / -1; align-self: end; display: flex; flex-wrap: wrap; gap: 6px; padding-top: 4px; border-top: 1px solid var(--linha); margin-top: 2px; padding-top: 12px; }
.expo-acoes .acao { flex: 1 1 auto; }
.acao {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; font: inherit; font-size: .82rem; font-weight: 700; cursor: pointer;
  padding: 0 12px; min-height: 36px; border-radius: 999px; border: 1px solid var(--linha); background: transparent; color: var(--pinho);
  transition: border-color .2s ease, background .2s ease;
}
.acao:hover { border-color: var(--ouro); background: var(--papel); }
.acao svg { width: 15px; height: 15px; flex: none; stroke-width: 1.6; }
.link-copiar { margin-top: 8px; width: 100%; font: inherit; font-size: .85rem; padding: 10px; border-radius: 10px; border: 1px solid var(--ouro); background: var(--papel); color: var(--tinta); }
.vazio { color: var(--suave); padding: 24px 0; }

/* Mapa ampliado */
.mapa-ampliado { position: fixed; inset: 0; z-index: 40; background: var(--papel); display: grid; grid-template-rows: auto minmax(0, 1fr) auto; padding-top: var(--sat); }
.mapa-ampliado[hidden] { display: none; }
.ma-topo { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-block: 8px; border-bottom: 1px solid var(--linha); background: var(--cartao); }
.ma-topo strong { font-family: var(--f-titulo); color: var(--pinho); font-size: 1.05rem; white-space: nowrap; }
@media (max-width: 420px) { .ma-topo strong { display: none; } }
.zoom { display: flex; align-items: center; gap: 4px; }
.zoom button, .ma-fechar {
  min-width: 44px; min-height: 44px; border-radius: 999px; border: 1px solid var(--linha); background: var(--cartao); color: var(--pinho);
  font: 700 1.2rem var(--f-texto); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
}
.zoom span { min-width: 3.4rem; text-align: center; font-size: .82rem; color: var(--suave); font-variant-numeric: tabular-nums; }
.ma-fechar { font-size: .9rem; padding: 0 14px; }
.ma-fechar svg { width: 16px; height: 16px; }
.ma-area { overflow: auto; padding: 16px; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; }
.ma-area > svg { display: block; height: auto; margin: 0 auto; max-width: none; }
.selecao--ampliado { margin: 0; background: var(--cartao); padding: 12px max(16px, env(safe-area-inset-right, 0px)) calc(12px + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px)); }
body.sem-rolagem { overflow: hidden; }

/* Tablet: duas colunas mais estreitas */
@media (max-width: 1023px) and (min-width: 760px) {
  .mapa-layout { grid-template-columns: minmax(0, 320px) minmax(0, 1fr); }
  .lista-expo { grid-template-columns: 1fr; }
}

/* Celular: Mapa | Lista */
@media (max-width: 759px) {
  .vistas {
    display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: 999px; background: var(--cartao); border: 1px solid var(--linha);
    position: sticky; top: calc(var(--sat) + var(--altura-topo) + 8px); z-index: 15; margin-bottom: 14px; box-shadow: var(--sombra);
  }
  .vistas button {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; border-radius: 999px; border: 0;
    font: inherit; font-weight: 700; font-size: .95rem; background: transparent; color: var(--tinta); cursor: pointer; transition: background .2s ease, color .2s ease;
  }
  .vistas button svg { width: 17px; height: 17px; }
  .vistas button[aria-selected="true"] { background: var(--pinho); color: var(--papel); }
  .vistas-n { font-size: .75rem; min-width: 1.6rem; padding: 1px 6px; border-radius: 999px; background: var(--ouro-claro); color: var(--tinta); }
  .vistas button[aria-selected="true"] .vistas-n { background: rgba(255, 255, 255, .2); color: inherit; }

  .mapa-layout { grid-template-columns: 1fr; }
  .mapa-layout[data-vista="mapa"] .lista-coluna, .mapa-layout[data-vista="lista"] .mapa-caixa { display: none; }
  .mapa-caixa { position: static; padding: 10px; border-radius: 16px; }
  .mapa-topo { padding: 0 0 8px; }
  .mapa-area > svg { width: 100%; height: min(calc(100svh - 300px), 178vw); min-height: 380px; max-height: none; }
  .ampliar { min-height: 40px; }

  .sel-acoes { padding-left: 0; }
  .sel-acoes .acao { flex: 1; min-height: 44px; }

  .filtros { gap: 10px; }
  .filtro-linha { gap: 8px; }
  .rotulo-filtro { width: auto; }
  .chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding: 2px 2px 4px; margin: -2px -2px -4px; scroll-snap-type: x proximity; }
  .chips::-webkit-scrollbar { display: none; }
  .chip { min-height: 44px; min-width: 44px; scroll-snap-align: start; }
  .lista-expo { grid-template-columns: 1fr; gap: 10px; }
  .expo { padding: 14px; gap: 12px; }
  .acao { min-height: 44px; flex: 1; }
}

/* ---------- Barra fixa de ingresso (celular) ---------- */
.barra-ingresso { display: none; }
@media (max-width: 720px) {
  body { padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)); }
  .barra-ingresso {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 25;
    padding-top: 8px; padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px));
    padding-left: max(var(--gutter), env(safe-area-inset-left, 0px)); padding-right: max(var(--gutter), env(safe-area-inset-right, 0px));
    background: color-mix(in srgb, var(--cartao) 94%, transparent); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
    border-top: 1px solid var(--ouro-linha); box-shadow: 0 -8px 24px rgba(20, 63, 40, .10);
    transition: transform .3s ease;
  }
  .barra-ingresso.escondida { transform: translateY(110%); }
  .barra-ingresso > div { display: grid; line-height: 1.25; min-width: 0; }
  .barra-ingresso strong { color: var(--pinho); font-size: .95rem; }
  .barra-ingresso > div > span { color: var(--suave); font-size: .8rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .barra-ingresso .botao { padding: 0 20px; min-height: 46px; font-size: .93rem; flex: none; background: linear-gradient(180deg, #A50D18, var(--vermelho) 55%, #A50D18); box-shadow: inset 0 0 0 1px rgba(255, 220, 160, .3), 0 4px 12px rgba(165, 13, 24, .22); }
}

/* ---------- Entradas suaves ao rolar (só onde o navegador suporta) ---------- */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .revelar { animation: revelar linear both; animation-timeline: view(); animation-range: entry 0% entry 40%; }
  }
}
@keyframes revelar { from { transform: translateY(18px); } to { transform: none; } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* Ingressos no celular: título, valores e depois os botões */
@media (max-width: 860px) {
  .ingressos-layout { gap: 0; }
  .ingressos-layout > div:first-child { display: contents; }
  .ingressos-layout .cabeca-secao { order: 1; }
  .ingressos-layout #ingressos { order: 2; margin-bottom: 22px; }
  .ingressos-layout .botoes { order: 3; }
}
@media (max-width: 560px) {
  .ingressos-layout .botoes { display: grid; }
  .ingressos-layout .botoes .botao { width: 100%; }
}

/* Algarismos alinhados em horários e preços (a Playfair usa números antigos por padrão) */
.momento-hora strong, .ingresso .valor, .contagem strong, .numero, .sel-info, .vistas-n { font-variant-numeric: lining-nums tabular-nums; }


/* ---------- Mapa: marcadores, legenda e balão do expositor ---------- */
.mapa-area { position: relative; }
.legenda { gap: 2px 4px; }
.legenda button {
  display: inline-flex; align-items: center; gap: 6px; font: inherit; font-size: .8rem; color: var(--suave); cursor: pointer;
  background: transparent; border: 1px solid transparent; border-radius: 999px; padding: 0 9px; min-height: 32px; transition: background .2s ease, border-color .2s ease;
}
.legenda button:hover { border-color: var(--linha); }
.legenda button[aria-pressed="true"] { background: var(--papel); border-color: var(--ouro); color: var(--tinta); font-weight: 700; }
.legenda i { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }

.estande { cursor: pointer; transform-box: fill-box; transform-origin: center; transition: transform .2s cubic-bezier(.3, 1.4, .5, 1), opacity .2s ease; }
.estande .marca { fill: var(--pinho); stroke: #FFFEFB; stroke-width: 2.2; }
.estande[data-cat="gastronomia"] .marca { fill: var(--vermelho); }
.estande[data-cat="servicos"] .marca { fill: var(--ouro); }
.estande .pulso { fill: none; stroke: var(--pinho); stroke-width: 2; opacity: 0; transform-box: fill-box; transform-origin: center; }
.estande[data-cat="gastronomia"] .pulso { stroke: var(--vermelho); }
.estande[data-cat="servicos"] .pulso { stroke: var(--ouro); }
.estande text { fill: #FFFEFB; font: 700 12px var(--f-texto); pointer-events: none; text-anchor: middle; dominant-baseline: central; }
.estande:hover, .estande.previa, .estande:focus-visible, .estande.realce { transform: scale(1.22); }
.estande.ativo { transform: scale(1.3); }
.estande.ativo .marca { stroke: #E2C07A; stroke-width: 3; }
.estande.ativo .pulso, .estande.realce .pulso { animation: pulsar 1.6s ease-out infinite; }
@keyframes pulsar { from { transform: scale(1); opacity: .7; } to { transform: scale(2.3); opacity: 0; } }
.estande:focus { outline: none; }
.estande.apagado { opacity: .15; pointer-events: none; }

.balao {
  position: absolute; z-index: 6; width: min(290px, calc(100% - 12px)); text-align: left;
  background: var(--cartao); border: 1px solid var(--ouro-linha); border-radius: 18px; padding: 14px 14px 12px;
  box-shadow: 0 18px 44px rgba(20, 63, 40, .24), 0 2px 6px rgba(20, 63, 40, .08);
}
.balao[hidden] { display: none; }
@media (prefers-reduced-motion: no-preference) { .balao:not([hidden]) { animation: balao-abre .18s ease-out; } }
@keyframes balao-abre { from { opacity: 0; transform: translateY(6px) scale(.97); } to { opacity: 1; transform: none; } }
.balao-seta { position: absolute; left: var(--seta, 50%); width: 14px; height: 14px; background: var(--cartao); transform: translateX(-50%) rotate(45deg); }
.balao[data-lado="cima"] .balao-seta { bottom: -8px; border-right: 1px solid var(--ouro-linha); border-bottom: 1px solid var(--ouro-linha); }
.balao[data-lado="baixo"] .balao-seta { top: -8px; border-left: 1px solid var(--ouro-linha); border-top: 1px solid var(--ouro-linha); }
.balao-fechar {
  position: absolute; top: 8px; right: 8px; width: 34px; height: 34px; border-radius: 50%; border: 0; background: transparent; color: var(--suave);
  display: grid; place-items: center; cursor: pointer;
}
.balao-fechar:hover { background: var(--papel); color: var(--tinta); }
.balao-fechar svg { width: 16px; height: 16px; }
.balao:not(.fixo) .balao-fechar { display: none; }
.balao-topo { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: center; padding-right: 30px; }
.balao-logo {
  width: 58px; height: 58px; border-radius: 50%; overflow: hidden; display: grid; place-items: center; flex: none;
  font: 700 1.3rem var(--f-titulo); color: #FFF8EA; letter-spacing: .02em;
  background: radial-gradient(circle at 34% 28%, #E2464E, #A50D18 55%, #6E0A12);
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .35), 0 0 0 3px #FFFEFB, 0 0 0 4px var(--ouro-linha), 0 6px 14px rgba(20, 63, 40, .2);
}
.balao-logo[data-cat="produtos"] { background: radial-gradient(circle at 34% 28%, #4E9A6E, #1D5A3B 55%, #0A2619); color: #F3DC98; }
.balao-logo[data-cat="servicos"] { background: radial-gradient(circle at 34% 28%, #FFF1C2, #D4A94C 55%, #7A561A); color: #3A2906; }
.balao-logo img { width: 100%; height: 100%; object-fit: cover; }
.balao-nome { min-width: 0; display: grid; gap: 1px; }
.balao-nome strong { font: 700 1.1rem / 1.25 var(--f-titulo); color: var(--pinho); }
.balao-nome .resp { color: var(--suave); font-size: .84rem; }
.balao-oferta { margin-top: 10px; font-size: .93rem; line-height: 1.45; color: var(--tinta); }
.balao-tag { display: inline-block; margin-top: 8px; font-size: .66rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; padding: 3px 9px; border-radius: 999px; background: var(--vermelho-claro); color: var(--vermelho); }
.balao-tag[data-cat="produtos"] { background: var(--pinho-claro); color: var(--pinho); }
.balao-tag[data-cat="servicos"] { background: var(--ouro-claro); color: #7A561A; }
.balao-acoes { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--linha); }
.balao-acoes .acao { flex: 1 1 auto; }
.balao:not(.fixo) .balao-acoes { display: none; }
.balao:not(.fixo) { pointer-events: none; }
.balao:not(.fixo)::after { content: "Clique para fixar"; display: block; margin-top: 10px; font-size: .74rem; color: var(--suave); }
@media (max-width: 759px) {
  .balao-acoes .acao { min-height: 42px; }
  .balao-fechar { width: 40px; height: 40px; top: 4px; right: 4px; }
}

.balao { scroll-margin-top: calc(var(--altura-topo) + 90px); scroll-margin-bottom: 90px; }

/* ---------- Logos, descrição em lista e fotos dos expositores ---------- */
.balao-logo.tem-logo, .balao-logo.tem-logo[data-cat] { background: #FFFEFB; padding: 0; }
.balao-logo.tem-logo img { object-fit: contain; }
.numero--logo { position: relative; overflow: visible; clip-path: none; background: transparent !important; width: 54px; height: 54px; }
.numero--logo img { width: 100%; height: 100%; object-fit: contain; border-radius: 50%; background: #FFFEFB; box-shadow: 0 0 0 1px var(--linha), 0 4px 10px rgba(20, 63, 40, .12); }
.numero--logo b {
  position: absolute; right: -6px; bottom: -4px; min-width: 22px; height: 22px; padding: 0 5px; border-radius: 999px;
  display: grid; place-items: center; font: 700 .72rem/1 var(--f-texto); color: #FFFEFB; background: var(--pinho); box-shadow: 0 0 0 2px var(--cartao);
}
[data-cat="gastronomia"] > .numero--logo b { background: var(--vermelho); }
[data-cat="servicos"] > .numero--logo b { background: var(--ouro); }
.oferta-lista { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 3px; }
.oferta-lista li { position: relative; padding-left: 14px; font-size: .92rem; line-height: 1.4; }
.oferta-lista li::before { content: ""; position: absolute; left: 2px; top: .55em; width: 5px; height: 5px; border-radius: 50%; background: var(--ouro-vivo); }
.balao-oferta.oferta-lista { margin-top: 10px; }
.mini-fotos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-top: 10px; }
.mini-foto { padding: 0; border: 0; background: var(--papel-2); border-radius: 10px; overflow: hidden; aspect-ratio: 1; cursor: zoom-in; position: relative; }
.mini-foto img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s ease; }
.mini-foto:hover img { transform: scale(1.06); }
.mini-foto:focus-visible { outline: 2px solid var(--ouro); outline-offset: 2px; }
.balao:not(.fixo) .mini-fotos { display: none; }
.balao .mini-fotos { margin-top: 12px; }

/* Visor de fotos em tela cheia */
.visor {
  position: fixed; inset: 0; z-index: 60; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 8px;
  background: rgba(8, 26, 19, .92); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  padding: calc(var(--sat) + 56px) max(12px, env(safe-area-inset-right, 0px)) calc(env(safe-area-inset-bottom, 0px) + 24px) max(12px, env(safe-area-inset-left, 0px));
}
.visor[hidden] { display: none; }
.visor-quadro { margin: 0; display: grid; justify-items: center; gap: 12px; min-width: 0; grid-column: 2; }
.visor-quadro img { max-width: 100%; max-height: calc(100svh - 160px); width: auto; height: auto; border-radius: 14px; box-shadow: 0 20px 60px rgba(0, 0, 0, .45); }
.visor-quadro figcaption { color: #F4EDDD; font-size: .9rem; text-align: center; }
.visor-seta, .visor-fechar {
  width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(244, 237, 221, .3); background: rgba(255, 255, 255, .08);
  color: #F4EDDD; display: grid; place-items: center; cursor: pointer; transition: background .2s ease;
}
.visor-seta:hover, .visor-fechar:hover { background: rgba(255, 255, 255, .18); }
.visor-seta svg, .visor-fechar svg { width: 20px; height: 20px; }
.visor-seta[hidden] { visibility: hidden; display: grid; }
.visor-fechar { position: absolute; top: calc(var(--sat) + 10px); right: max(12px, env(safe-area-inset-right, 0px)); }
@media (max-width: 560px) {
  .visor { grid-template-columns: minmax(0, 1fr); padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 84px); }
  .visor-quadro { grid-column: 1; }
  .visor-seta { position: absolute; bottom: calc(env(safe-area-inset-bottom, 0px) + 22px); }
  .visor-seta--ant { left: calc(50% - 56px); }
  .visor-seta--prox { right: calc(50% - 56px); }
}
.mini-mais { position: absolute; inset: 0; display: grid; place-items: center; font: 700 1.05rem var(--f-texto); color: #FFFEFB; background: rgba(20, 63, 40, .55); pointer-events: none; }
.visor-quadro img { border-radius: 0; box-shadow: none; filter: drop-shadow(0 20px 40px rgba(0, 0, 0, .45)); }

/* ---------- Parceiros ---------- */
.parceiros-marca { cursor: pointer; transform-box: fill-box; transform-origin: center; transition: transform .2s cubic-bezier(.3, 1.4, .5, 1); }
.parceiros-marca .marca { fill: #FFFDF6; stroke: var(--ouro); stroke-width: 2; }
.parceiros-marca .estrela { fill: var(--ouro); }
.parceiros-marca .pulso { fill: none; stroke: var(--ouro); stroke-width: 2; opacity: 0; transform-box: fill-box; transform-origin: center; animation: pulsar 2.4s ease-out infinite; }
.parceiros-marca .parceiros-rotulo { font: 700 9px var(--f-texto); letter-spacing: .1em; text-transform: uppercase; fill: var(--ouro); text-anchor: middle; pointer-events: none; }
.parceiros-marca:hover, .parceiros-marca:focus-visible, .parceiros-marca.ativo { transform: scale(1.15); }
.parceiros-marca.ativo .marca { stroke-width: 3; }
.parceiros-marca:focus { outline: none; }
@media (prefers-reduced-motion: reduce) { .parceiros-marca .pulso { animation: none; } }
.balao-logo--parceiros { background: radial-gradient(circle at 34% 28%, #FFF1C2, #D4A94C 55%, #7A561A) !important; color: #FFFDF6; }
.balao-logo--parceiros svg { width: 26px; height: 26px; }
.balao-parceiros { list-style: none; margin: 12px 0 0; padding: 2px 4px 2px 0; display: grid; gap: 6px; max-height: 210px; overflow-y: auto; overscroll-behavior: contain; }
.balao-parceiros li { display: grid; gap: 0; font-size: .86rem; line-height: 1.3; padding-bottom: 6px; border-bottom: 1px dashed var(--linha); }
.balao-parceiros li:last-child { border-bottom: 0; }
.balao-parceiros strong { font-weight: 700; color: var(--tinta); }
.balao-parceiros span { color: var(--suave); font-size: .82rem; }

.parceiros { margin-top: 10px; padding-top: 22px; border-top: 1px solid var(--ouro-linha); display: grid; gap: 12px; scroll-margin-top: calc(var(--altura-topo) + 80px); }
.parceiros[hidden] { display: none; }
.parceiros header { display: grid; gap: 2px; }
.parceiros header h3 { font-size: 1.4rem; }
.parceiros header span { color: var(--suave); font-size: .88rem; }
.lista-parceiros { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.parceiro { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: center; background: var(--cartao); border: 1px solid var(--linha); border-radius: 14px; padding: 10px 12px; }
.parceiro-ini { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; font: 700 .85rem var(--f-titulo); color: #7A561A; background: var(--ouro-claro); box-shadow: inset 0 0 0 1px var(--ouro-linha); }
.parceiro-info { display: grid; gap: 1px; min-width: 0; }
.parceiro-info strong { font-size: .95rem; line-height: 1.25; }
.parceiro-info span { color: var(--suave); font-size: .84rem; line-height: 1.3; }
.parceiro-info .insta { font-size: .82rem; font-weight: 600; overflow-wrap: anywhere; }
.parceiro-foto { width: 46px; height: 46px; padding: 0; border: 0; border-radius: 10px; overflow: hidden; cursor: zoom-in; background: var(--papel-2); }
.parceiro-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 1023px) { .lista-parceiros { grid-template-columns: 1fr; } }
.legenda-estrela { border-radius: 0 !important; background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-8 -8 16 16'%3E%3Cpath fill='%23AB7A2F' d='M0-7C.7-1.2 1.2-.7 7 0 1.2.7.7 1.2 0 7-.7 1.2-1.2.7-7 0-1.2-.7-.7-1.2 0-7Z'/%3E%3C/svg%3E"); width: 12px !important; height: 12px !important; }

/* Estandes desenhados como na planta original (retângulos junto às paredes) */
.estande--ret .marca { stroke-width: 1.6; }
.estande--ret text { font-size: 11px; }
.estande--ret:hover, .estande--ret.previa, .estande--ret:focus-visible, .estande--ret.realce { transform: scale(1.18); }
.estande--ret.ativo { transform: scale(1.25); }
.estande--ret.ativo .marca { stroke: #E2C07A; stroke-width: 2.6; }
.estande-vazio { fill: #FFFEFB; stroke: var(--suave); stroke-width: 1; stroke-dasharray: 3 2; opacity: .55; }

/* ---------- Mapa: desenho limpo da planta (vetor) ---------- */
.mapa-layout { grid-template-columns: 1fr !important; gap: 28px; }
.mapa-layout > * { min-width: 0; }
.mapa-caixa { position: relative !important; max-width: none !important; }
.mapa-area { display: block; border-radius: 14px; background: #FBF8F1; padding: clamp(6px, 1.4vw, 14px); }
.mapa-area > svg { display: block; width: 100%; height: auto; max-height: none; min-height: 0; margin: 0 auto; }

.predio { fill: #FFFDF8; stroke: rgba(20, 63, 40, .28); stroke-width: 2; stroke-linejoin: round; }
.area { stroke: none; }
.area--servico { fill: #EFEBE2; }
.area--fechado { fill: #F3F0EA; }
.area-rotulo { font: 600 10px var(--f-texto); letter-spacing: .14em; text-transform: uppercase; fill: #9A9C90; text-anchor: middle; dominant-baseline: central; pointer-events: none; }
.area-rotulo--fora { fill: var(--ouro); opacity: .8; }

.sala { cursor: pointer; }
.sala polygon { stroke: #FFFDF8; stroke-width: 4; stroke-linejoin: round; transition: filter .2s ease, opacity .25s ease, stroke .2s ease; }
.sala--externa polygon { stroke: rgba(20, 63, 40, .32); stroke-width: 1.6; stroke-dasharray: 6 5; }
.sala:hover polygon, .sala:focus-visible polygon { filter: brightness(.96); }
.sala.ativa polygon { stroke: var(--vermelho); stroke-width: 2.4; stroke-dasharray: none; }
.mapa-area > svg:has(.sala.ativa) .sala:not(.ativa) polygon, .ma-area > svg:has(.sala.ativa) .sala:not(.ativa) polygon { opacity: .45; }
.sala:focus { outline: none; }
.sala-rotulo { pointer-events: none; }
.sala-letra { font: 600 30px var(--f-titulo); fill: var(--vermelho); text-anchor: middle; dominant-baseline: central; opacity: .9; }
.sala-nome { font: 700 8.5px var(--f-texto); letter-spacing: .16em; text-transform: uppercase; fill: var(--pinho); opacity: .6; text-anchor: middle; dominant-baseline: central; }

.mesa-bilhar { fill: rgba(20, 63, 40, .14); pointer-events: none; }
.sofa { fill: rgba(165, 13, 24, .12); pointer-events: none; }
.palco { fill: rgba(201, 160, 74, .16); stroke: rgba(171, 122, 47, .55); stroke-width: 1.4; pointer-events: none; }
.palco-rotulo { font: 700 9px var(--f-texto); letter-spacing: .16em; text-transform: uppercase; fill: var(--ouro); text-anchor: middle; dominant-baseline: central; pointer-events: none; }
.balcao { fill: none; stroke: rgba(120, 92, 52, .28); stroke-width: 9; stroke-linecap: round; pointer-events: none; }
.tenda-area { fill: rgba(201, 160, 74, .07); stroke: rgba(171, 122, 47, .5); stroke-width: 1.2; stroke-dasharray: 4 4; pointer-events: none; }
.tenda-rotulo { font: 700 9px var(--f-texto); letter-spacing: .14em; text-transform: uppercase; fill: var(--ouro); text-anchor: middle; dominant-baseline: central; pointer-events: none; }

/* Estandes: pastilhas com número */
.estande--ret .marca { stroke: #FFFEFB; stroke-width: 1.6; }
.estande .estande-num { fill: #FFFEFB; font: 700 11.5px var(--f-texto); text-anchor: middle; dominant-baseline: central; pointer-events: none; }
.estande--ret:hover, .estande--ret.previa, .estande--ret:focus-visible, .estande--ret.realce { transform: scale(1.16); }
.estande--ret.ativo { transform: scale(1.22); }
.estande--ret.ativo .marca { stroke: #E2C07A; stroke-width: 2.6; }
.estande.apagado { opacity: .14; }

/* Parceiros e destaques */
.ponto-marca { cursor: pointer; transform-box: fill-box; transform-origin: center; transition: transform .2s cubic-bezier(.3, 1.4, .5, 1); }
.ponto-marca .marca { fill: #FFFDF6; stroke: var(--ouro); stroke-width: 1.8; }
.ponto-marca .estrela { fill: var(--ouro); }
.ponto-marca .icone-linha { fill: none; stroke: var(--vermelho); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ponto-marca .pulso { fill: none; stroke: var(--ouro); stroke-width: 2; opacity: 0; transform-box: fill-box; transform-origin: center; animation: pulsar 2.4s ease-out infinite; }
.ponto-marca .ponto-rotulo { font: 700 9px var(--f-texto); letter-spacing: .12em; text-transform: uppercase; fill: var(--ouro); text-anchor: middle; dominant-baseline: central; pointer-events: none; paint-order: stroke; stroke: #FFFDF8; stroke-width: 3px; }
.ponto-marca:hover, .ponto-marca:focus-visible, .ponto-marca.ativo { transform: scale(1.12); }
.ponto-marca.ativo .marca { stroke-width: 3; }
.ponto-marca:focus { outline: none; }
@media (prefers-reduced-motion: reduce) { .ponto-marca .pulso { animation: none; } }
.balao-logo--destaque { background: radial-gradient(circle at 34% 28%, #E2464E, #A50D18 55%, #6E0A12) !important; }

/* Lista */
.lista-expo { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1023px) { .lista-expo { grid-template-columns: repeat(2, minmax(0, 1fr)); } .lista-parceiros { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .lista-expo, .lista-parceiros { grid-template-columns: 1fr; } }

/* Celular: planta em pé, maior e sem rolar para os lados */
@media (max-width: 759px) {
  .mapa-caixa { padding: 8px; }
  .mapa-area { padding: 4px 2px; }
  .mapa-area > svg { width: 100%; height: auto !important; min-height: 0 !important; max-height: none !important; }
  .mapa--retrato .sala-letra { font-size: 34px; }
  .mapa--retrato .sala-nome { font-size: 10px; }
  .mapa--retrato .estande-num { font-size: 13px; }
  .mapa--retrato .area-rotulo, .mapa--retrato .tenda-rotulo, .mapa--retrato .palco-rotulo { font-size: 10.5px; }
  .mapa--retrato .ponto-rotulo { font-size: 10.5px; }
}
.mapa--retrato .area-rotulo--fora { text-anchor: start; }

/* ---------- Capa mais compacta: a contagem aparece já na primeira tela ---------- */
.capa { padding-block: clamp(36px, 3.2vw, 52px) clamp(100px, 8vw, 112px); }
.capa-logo { width: min(100%, 360px); }
.capa-titulo .script { font-size: clamp(2.1rem, 3.6vw, 2.8rem); }
.capa .descricao { margin-top: 10px; }
.quando { margin-top: 14px; }
.capa .botoes { margin-top: 20px; gap: 6px; }
@media (max-width: 560px) {
  .capa { padding-block: 26px 92px; }
  .selo { margin-bottom: 2px; }
  .capa-logo { width: min(72%, 262px); }
  .capa-titulo .script { font-size: clamp(1.75rem, 8vw, 2.05rem); }
  .capa .descricao { font-size: .9rem; line-height: 1.5; margin-top: 6px; max-width: 19.5rem; }
  .quando { margin-top: 10px; gap: 4px 16px; }
  .quando li { font-size: .88rem; }
  .capa .botoes { margin-top: 14px; gap: 0; }
  .capa .botao--festivo { min-height: 48px; }
  .link-seta { min-height: 40px; font-size: .9rem; }
}

/* Correção: a caixa do mapa não é mais "grudenta", então não precisa de deslocamento */
.mapa-caixa { top: auto !important; }
.mapa-janela { position: relative; }
.zoom-mapa { display: none; }
.so-celular { display: none; }
.estande .alvo { fill: transparent; stroke: none; pointer-events: all; }
.balao-sala, .balao-logo--sala { display: none; }

/* =====================================================================
   CELULAR (até 759px) — tudo abaixo vale só para telas pequenas
   ===================================================================== */
@media (max-width: 759px) {
  :root { --altura-topo: 48px; --barra: 52px; }
  .so-desktop { display: none !important; }
  .so-celular { display: revert; }

  /* 1. Cabeçalho mais baixo */
  .marca img { height: 31px; }
  .topo .miolo { gap: 10px; }

  /* 2. Título e descrição compactos */
  .pagina-topo { padding-top: 18px; padding-bottom: 12px; }
  .pagina-topo .sobretitulo { font-size: .64rem; margin-bottom: -2px; }
  .pagina-topo .cabeca-secao { gap: 4px; }
  .pagina-topo h2 { font-size: clamp(1.55rem, 7vw, 1.8rem); line-height: 1.15; }
  .pagina-topo .cabeca-secao p.so-celular { font-size: .9rem; line-height: 1.5; max-width: 22rem; }
  .secao--conteudo { padding-top: 0; padding-bottom: 28px; }

  /* 3. Mapa | Lista mais compacto */
  .vistas { padding: 3px; gap: 3px; margin-bottom: 10px; top: calc(var(--sat) + var(--altura-topo) + 6px); box-shadow: 0 4px 14px rgba(20, 63, 40, .08); }
  .vistas button { min-height: 38px; font-size: .88rem; gap: 6px; }
  .vistas button svg { width: 15px; height: 15px; }
  .vistas-n { font-size: .7rem; padding: 0 6px; }

  /* 4. Mapa logo abaixo dos controles, numa janela que se move com o dedo */
  .mapa-caixa { padding: 6px; border-radius: 16px; box-shadow: none; }
  .mapa-topo { padding: 2px 2px 6px; }
  .legenda { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; gap: 2px; margin-right: -6px; }
  .legenda::-webkit-scrollbar { display: none; }
  .legenda button { font-size: .74rem; min-height: 30px; padding: 0 8px; white-space: nowrap; flex: none; }
  .ampliar { display: none; }
  .aviso-filtro { font-size: .78rem; padding: 6px 10px; margin-bottom: 6px; }
  .mapa-area {
    padding: 0; border-radius: 12px; overflow: auto; overscroll-behavior: auto; touch-action: pan-x pan-y;
    height: clamp(340px, calc(100svh - var(--altura-topo) - var(--barra) - 140px - env(safe-area-inset-bottom, 0px)), 900px);
    -webkit-overflow-scrolling: touch; scrollbar-width: none;
  }
  .mapa-area::-webkit-scrollbar { display: none; }
  .mapa-area > svg { width: 100%; max-width: none; height: auto !important; margin: 0; }
  .zoom-mapa {
    display: grid; position: absolute; right: 8px; top: 8px; z-index: 4; overflow: hidden;
    background: rgba(255, 254, 251, .94); border: 1px solid var(--linha); border-radius: 12px; box-shadow: 0 4px 12px rgba(20, 63, 40, .10);
  }
  .zoom-mapa button { width: 38px; height: 38px; display: grid; place-items: center; border: 0; background: transparent; color: var(--pinho); font: 600 1.25rem/1 var(--f-texto); cursor: pointer; }
  .zoom-mapa button + button { border-top: 1px solid var(--linha); }
  .zoom-mapa button svg { width: 16px; height: 16px; }
  .zoom-mapa button:active { background: var(--papel); }
  .mapa--retrato .estande-num { font-size: 14px; font-weight: 800; }
  .mapa--retrato .estande--ret .marca { stroke-width: 2; }
  .selecao { margin-top: 6px; padding-top: 8px; min-height: 0; border-top: 0; }
  .sel-dica { font-size: .78rem; gap: 8px; }
  .sel-dica svg { width: 18px; height: 18px; }

  /* Ficha do expositor: sobe da parte de baixo da tela */
  .balao, .balao.fixo {
    position: fixed !important; left: 10px !important; right: 10px; top: auto !important; width: auto;
    bottom: calc(var(--barra) + env(safe-area-inset-bottom, 0px) + 8px); z-index: 26;
    max-height: min(58svh, 470px); overflow-y: auto; overscroll-behavior: contain;
    border-radius: 18px; padding: 14px 14px 12px; box-shadow: 0 -6px 30px rgba(20, 63, 40, .18), 0 2px 6px rgba(20, 63, 40, .08);
  }
  .balao .balao-seta { display: none; }
  .balao::before { content: ""; display: block; width: 36px; height: 4px; border-radius: 4px; background: var(--linha); margin: -6px auto 10px; }
  .balao-logo { width: 48px; height: 48px; }
  .balao-logo--sala { display: grid; place-items: center; background: var(--papel) !important; color: var(--vermelho) !important; border: 1px solid var(--ouro-linha); font: 600 1.6rem var(--f-titulo); }
  .balao-sala { display: grid; list-style: none; margin: 10px 0 0; padding: 0; border-top: 1px solid var(--linha); }
  .balao-sala li + li { border-top: 1px solid var(--linha); }
  .balao-sala button { width: 100%; display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 10px; align-items: center; text-align: left; padding: 9px 2px; background: none; border: 0; font: inherit; color: var(--tinta); cursor: pointer; }
  .balao-sala .num { width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center; font: 800 .82rem var(--f-texto); color: #FFFEFB; background: var(--pinho); font-variant-numeric: lining-nums tabular-nums; }
  .balao-sala [data-cat="gastronomia"] .num { background: var(--vermelho); }
  .balao-sala [data-cat="servicos"] .num { background: var(--ouro); }
  .balao-sala .num--destaque { background: #FFFDF6; color: var(--vermelho); border: 1px solid var(--ouro); }
  .balao-sala .num--destaque svg { width: 15px; height: 15px; }
  .balao-sala strong { display: block; font-size: .92rem; line-height: 1.25; }
  .balao-sala small { display: block; font-size: .78rem; color: var(--suave); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

  /* 5. Busca e filtros */
  .filtros { gap: 8px; margin-bottom: 12px; }
  .busca input { height: 44px; font-size: .95rem; padding-left: 42px; border-color: var(--linha); background: var(--cartao); }
  .busca svg { left: 15px; width: 16px; height: 16px; }
  .filtro-linha { gap: 8px; }
  .rotulo-filtro { font-size: .6rem; letter-spacing: .14em; width: 3.1rem; }
  .chips {
    gap: 6px; padding: 2px 16px 2px 2px; margin: -2px -16px -2px -2px;
    -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 22px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 22px), transparent);
  }
  .chip { min-height: 34px; min-width: 38px; padding: 0 13px; font-size: .82rem; }
  .dica { font-size: .8rem; margin-bottom: 8px; }

  /* 6. Cartões compactos */
  .grupo-sala { gap: 8px; margin-bottom: 18px; }
  .grupo-sala header { padding-bottom: 6px; gap: 8px; }
  .grupo-sala header h3 { font-size: 1.15rem; }
  .grupo-sala header span { font-size: .78rem; }
  .lista-expo { gap: 8px; }
  .expo { grid-template-columns: 40px minmax(0, 1fr); gap: 4px 12px; padding: 12px; border-radius: 14px; box-shadow: none; }
  .expo.ativo { box-shadow: 0 0 0 2px var(--pinho-claro); }
  .expo .numero { width: 40px; height: 40px; font-size: 1.05rem; clip-path: none; border-radius: 10px; }
  .expo-estande { font-size: .62rem; letter-spacing: .12em; }
  .expo-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 6px; font-size: .62rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--suave); }
  .expo-meta .cat { display: inline-flex; align-items: center; gap: 4px; }
  .expo-meta .cat::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--pinho); }
  .expo[data-cat="gastronomia"] .expo-meta .cat { color: var(--vermelho); }
  .expo[data-cat="gastronomia"] .expo-meta .cat::before { background: var(--vermelho); }
  .expo[data-cat="servicos"] .expo-meta .cat { color: #7A561A; }
  .expo[data-cat="servicos"] .expo-meta .cat::before { background: var(--ouro); }
  .expo[data-cat="produtos"] .expo-meta .cat { color: var(--pinho); }
  .expo-info h4 { font-family: var(--f-titulo); font-size: 1.08rem; line-height: 1.25; color: var(--pinho); margin-top: 1px; }
  .expo-info .resp { font-size: .8rem; }
  .expo-info .oferta { font-size: .86rem; line-height: 1.4; }
  .expo-info .insta { font-size: .82rem; }
  .expo-acoes { grid-column: 2; border-top: 0; margin-top: 4px; padding-top: 0; justify-content: flex-start; }
  .expo-acoes .acao, .acao { flex: none; min-height: 36px; font-size: .8rem; padding: 0 14px; }
  .expo-acoes .acao { border-color: var(--pinho-claro); background: var(--pinho-claro); }

  /* 7. Barra de ingresso mais baixa */
  body { padding-bottom: calc(var(--barra) + env(safe-area-inset-bottom, 0px)); }
  .barra-ingresso { padding-top: 6px; padding-bottom: calc(6px + env(safe-area-inset-bottom, 0px)); gap: 10px; box-shadow: 0 -4px 16px rgba(20, 63, 40, .07); border-top-color: var(--linha); }
  .barra-ingresso > div { line-height: 1.2; }
  .barra-ingresso strong { font-size: .84rem; }
  .barra-ingresso > div > span { font-size: .72rem; }
  .barra-ingresso .botao { min-height: 40px; padding: 0 16px; font-size: .84rem; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(255, 220, 160, .25); }

  /* 8. Rodapé e espaçamentos gerais */
  .rodape { padding-block: 28px 24px; }
}
@media (max-width: 759px) and (min-width: 721px) { .barra-ingresso { display: none; } body { padding-bottom: 0; } .balao, .balao.fixo { bottom: 10px; } }
@media (max-width: 759px) {
  .legenda { gap: 0; -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 18px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 18px), transparent); }
  .legenda button { font-size: .72rem; padding: 0 7px; gap: 5px; }
  .legenda i { width: 8px; height: 8px; }
  /* produtos em linha, separados por pontos, para o cartão ficar curto */
  .expo .oferta-lista { display: block; margin-top: 2px; }
  .expo .oferta-lista li { display: inline; padding: 0; font-size: .86rem; }
  .expo .oferta-lista li::before { display: none; }
  .expo .oferta-lista li + li::before { content: " · "; display: inline; position: static; width: auto; height: auto; background: none; color: var(--ouro); font-weight: 700; }
  .expo .mini-fotos { margin-top: 6px; }
}
@media (max-width: 759px) { .chip { flex: none; } }
@media (max-width: 759px) {
  .balao, .balao.fixo { max-height: min(52svh, 440px); }
  .balao .mini-fotos { gap: 6px; }
  .balao .mini-fotos button, .balao .mini-fotos img { aspect-ratio: 4 / 3; height: auto; }
  .balao .balao-oferta.oferta-lista { display: block; margin-top: 8px; }
  .balao .balao-oferta.oferta-lista li { display: inline; padding: 0; font-size: .9rem; }
  .balao .balao-oferta.oferta-lista li::before { display: none; }
  .balao .balao-oferta.oferta-lista li + li::before { content: " · "; display: inline; position: static; width: auto; height: auto; background: none; color: var(--ouro); font-weight: 700; }
  .balao-acoes { margin-top: 10px; padding-top: 10px; }
  .balao-acoes .acao { flex: 1 1 auto; }
}
@media (max-width: 759px) { .com-folha .mapa-area { padding-bottom: min(46svh, 400px); } }
/* Recepção (bloco sólido, como no mapa oficial) e palco em quarto de círculo */
.bloco { fill: var(--pinho); opacity: .82; pointer-events: none; }
.bloco-rotulo { font: 700 10px var(--f-texto); letter-spacing: .14em; text-transform: uppercase; fill: var(--pinho); text-anchor: middle; dominant-baseline: central; pointer-events: none; }
.mapa--retrato .bloco-rotulo { font-size: 11px; }

/* Parceiros: sem lugar fixo, um selo discreto sobre a planta */
.parceiros-flutuante {
  position: absolute; left: 12px; bottom: 12px; z-index: 4; display: inline-flex; align-items: center; gap: 8px;
  font: inherit; font-size: .8rem; color: var(--suave); cursor: pointer; text-align: left;
  background: rgba(255, 254, 251, .94); border: 1px solid var(--ouro-linha); border-radius: 999px; padding: 6px 14px 6px 8px; min-height: 36px;
  box-shadow: 0 4px 12px rgba(20, 63, 40, .08); transition: border-color .2s ease, box-shadow .2s ease;
}
.parceiros-flutuante svg { width: 22px; height: 22px; flex: none; padding: 4px; border-radius: 50%; color: var(--ouro); background: #FFFDF6; border: 1px solid var(--ouro); }
.parceiros-flutuante strong { color: var(--pinho); font-weight: 700; }
.parceiros-flutuante:hover, .parceiros-flutuante.ativo { border-color: var(--ouro); box-shadow: 0 0 0 3px var(--ouro-claro); }
@media (prefers-reduced-motion: no-preference) {
  .parceiros-flutuante svg { animation: brilho-parceiros 2.6s ease-in-out infinite; }
}
@keyframes brilho-parceiros { 0%, 100% { box-shadow: 0 0 0 0 rgba(201, 160, 74, .0); } 50% { box-shadow: 0 0 0 5px rgba(201, 160, 74, .22); } }
.bloco { opacity: .9; }
.bloco-rotulo { fill: #FFFDF6; font-size: 9.5px; letter-spacing: .12em; }
@media (max-width: 759px) {
  .parceiros-flutuante { left: 8px; bottom: 8px; font-size: .74rem; padding: 4px 12px 4px 6px; min-height: 34px; }
  .com-folha .parceiros-flutuante { display: none; }
  .mapa--retrato .bloco-rotulo { font-size: 10px; }
}
@media (min-width: 760px) { .parceiros-flutuante { top: 14px; bottom: auto; left: 14px; } }
/* Parceiros: selo sobre a planta no computador; no celular fica na legenda, sem cobrir estandes */
@media (min-width: 760px) { .legenda [data-abrir-parceiros] { display: none; } }
@media (max-width: 759px) { .parceiros-flutuante { display: none !important; } }

/* =====================================================================
   Refinamento da página inicial (identidade da feira: creme, verde, vermelho e dourado)
   ===================================================================== */
/* Contagem: sem laço, borda e sombra delicadas */
.contagem-cartao::before { display: none; }
.contagem-cartao { padding-top: 22px; box-shadow: 0 10px 30px rgba(10, 42, 30, .12); border-color: rgba(171, 122, 47, .28); }
.contagem-numeros div { border-color: rgba(20, 63, 40, .08); }

/* Lema no estilo do cartaz: caixa alta espaçada, com as palavras-chave em negrito */
.lema {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 2px 8px; width: min(100%, 30rem); margin-top: 6px; padding-top: 16px;
  border-top: 1px solid var(--ouro-linha); font: 500 .8rem / 1.6 var(--f-texto); letter-spacing: .2em; text-transform: uppercase; color: var(--pinho); text-align: center;
}
.lema strong { font-weight: 800; }

/* Foto do calendário: só cantos arredondados e sombra sutil */
.sobre-foto::before { display: none; }
.sobre-foto img { box-shadow: 0 10px 28px rgba(20, 63, 40, .12); }

/* Ingressos: contato discreto abaixo do botão */
.ingressos-contato { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin-top: 4px; font-size: .86rem; color: #C9D3CC; }
.ingressos-contato a { color: #F1D9A0; text-decoration: none; border-bottom: 1px solid rgba(241, 217, 160, .35); }
.ingressos-contato a:hover { border-bottom-color: #F1D9A0; }
.ingressos-contato .insta-link { display: inline-flex; align-items: center; gap: 5px; }
.ingressos-contato svg { width: 14px; height: 14px; flex: none; }
.ingressos-contato > span[aria-hidden] { color: rgba(226, 192, 122, .6); }
.ingresso { border-color: rgba(226, 192, 122, .24); }

/* ---------- Celular ---------- */
@media (max-width: 560px) {
  :root { --espaco: 40px; }
  .cabeca-secao { gap: 6px; margin-bottom: 18px; }
  .cabeca-secao h2 { font-size: clamp(1.4rem, 6.4vw, 1.6rem); line-height: 1.2; }
  .cabeca-secao p { font-size: .92rem; line-height: 1.55; }
  .sobretitulo { font-size: .62rem; }

  /* 1. Capa */
  .capa { padding-block: 18px 82px; }
  .capa .enfeites { display: none; }
  .selo { margin-bottom: 0; font-size: .6rem; }
  .capa-logo { width: min(64%, 236px); filter: drop-shadow(0 8px 14px rgba(0, 0, 0, .28)); }
  .capa-titulo .script { font-size: clamp(1.6rem, 7.4vw, 1.85rem); margin-top: -2px; }
  .capa .descricao { font-size: .86rem; line-height: 1.45; margin-top: 4px; max-width: 18rem; color: rgba(244, 237, 221, .74); }
  .quando { margin-top: 10px; gap: 4px 14px; flex-wrap: wrap; }
  .quando li, .quando li:first-child { flex-basis: auto; font-size: .84rem; gap: 6px; }
  .quando svg { width: 14px; height: 14px; }
  .capa .botoes { margin-top: 14px; gap: 0; }
  .capa .botao--festivo { min-height: 46px; font-size: .95rem; max-width: 320px; box-shadow: inset 0 0 0 1px rgba(255, 220, 160, .22), 0 4px 12px rgba(0, 0, 0, .18); }
  .link-seta { min-height: 38px; font-size: .84rem; font-weight: 500; color: rgba(244, 237, 221, .72); }
  .link-seta svg { width: 13px; height: 13px; }

  /* 2. Contagem */
  .contagem-faixa { margin-top: -62px; }
  .contagem-cartao { padding: 14px 10px 10px; border-radius: 16px; box-shadow: 0 8px 22px rgba(10, 42, 30, .1); }
  .contagem-rotulo { font-size: .6rem; letter-spacing: .2em; }
  .contagem-numeros { margin-top: 8px; gap: 6px; }
  .contagem-numeros div { padding: 8px 2px 7px; gap: 3px; border-radius: 10px; }
  .contagem-numeros strong { font-size: 1.6rem; }
  .contagem-numeros span { font-size: .52rem; }

  /* 3. Bolas: 20% menores */
  .secao--destaques { padding-block: 28px 4px; }
  .destaques { gap: 14px 12px; }
  .destaque { gap: 4px; }
  .bola-icone { width: 67px; filter: drop-shadow(0 6px 8px rgba(20, 63, 40, .18)); }
  .bola-icone svg { width: 22px; height: 22px; stroke-width: 1.3; }
  .destaque-nome { font-size: .96rem; }

  /* 4/5. Sobre e calendário */
  .secao--sobre { padding-top: 28px; padding-bottom: 36px; }
  .sobre { gap: 22px; }
  .sobre-conteudo { gap: 8px; }
  .sobre-conteudo h2 { font-size: clamp(1.4rem, 6.4vw, 1.6rem); }
  .sobre-texto { text-align: center; }
  .sobre-texto p { font-size: .95rem; line-height: 1.65; }
  .lema { font-size: .68rem; letter-spacing: .16em; padding-top: 12px; margin-top: 4px; }
  .sobre-foto { width: min(60%, 230px); }
  .sobre-foto img { border-radius: 14px; }

  /* 6. Ingressos */
  .ingressos-layout .cabeca-secao { margin-bottom: 16px; }
  .ingressos { gap: 10px; }
  .ingresso { padding: 14px 14px 12px; border-radius: 14px; gap: 2px; }
  .ingresso .tipo { min-height: 0; font-size: .64rem; letter-spacing: .14em; }
  .ingresso .valor { font-size: 1.9rem; margin-top: 2px; }
  .ingresso .obs { font-size: .8rem; padding-top: 6px; margin-top: 6px; }
  .ingressos-layout #ingressos { margin-bottom: 16px; }
  .ingressos-layout .botoes { justify-items: center; gap: 10px; }
  .ingressos-layout .botoes .botao { min-height: 46px; }
  .ingressos-contato { justify-content: center; font-size: .8rem; text-align: center; }

  /* 7. Planeje sua visita */
  .atalhos { gap: 8px; }
  .atalho { padding: 12px 14px; gap: 2px 12px; border-radius: 14px; }
  .atalho h3 { font-size: 1rem; }
  .atalho p { font-size: .82rem; line-height: 1.45; }
  .atalho .seta { width: 30px; height: 30px; }
  .atalho .seta svg { width: 13px; height: 13px; }

  /* 8. Para empreendedores */
  .expor { padding-top: 8px; }
  .divisoria { display: none; }
  .expor-caixa { gap: 16px; }
  .botao--whats { min-height: 46px; box-shadow: 0 4px 12px rgba(20, 63, 40, .14); }

  /* 9. Rodapé */
  .rodape { padding-block: 26px 22px; }
  .rodape .miolo { gap: 12px; }
  .rodape p { font-size: .84rem; line-height: 1.6; }
  .rodape .script { font-size: 1.7rem; }

  /* 10. Barra de ingresso */
  :root { --barra: 50px; }
  .barra-ingresso .botao { min-height: 38px; padding: 0 14px; font-size: .82rem; }
}
@media (max-width: 560px) {
  .bola-icone { padding-top: 24%; }
  .bola-icone svg { width: 24px; height: 24px; }
}
@media (min-width: 861px) { .sobre-foto { width: min(100%, 360px); } }

/* =====================================================================
   Primeira tela: logo, edição, tema, informações e contagem — tudo no verde
   ===================================================================== */
.capa {
  padding-block: clamp(34px, 3.4vw, 52px) clamp(44px, 4.6vw, 64px);
  border-bottom-left-radius: 50% clamp(22px, 3.6vw, 44px); border-bottom-right-radius: 50% clamp(22px, 3.6vw, 44px);
  box-shadow: 0 3px 0 rgba(201, 160, 74, .55);
}
.capa-titulo .selo { display: flex; align-items: center; justify-content: center; gap: 12px; margin: 8px 0 0; opacity: 1; }
.capa-titulo .selo::before, .capa-titulo .selo::after { content: ""; width: 38px; height: 1px; background: linear-gradient(90deg, transparent, rgba(226, 192, 122, .8)); }
.capa-titulo .selo::after { transform: scaleX(-1); }
.capa-titulo .script { margin-top: 0; }

/* Contagem: último elemento da primeira tela, integrada ao verde */
.capa .contagem-cartao { max-width: 520px; margin: clamp(24px, 3vw, 34px) auto 0; padding: 0; background: none; border: 0; border-radius: 0; box-shadow: none; }
.capa .contagem-rotulo { display: flex; align-items: center; justify-content: center; gap: 12px; color: #E2C07A; }
.capa .contagem-rotulo::before, .capa .contagem-rotulo::after { content: ""; width: 34px; height: 1px; background: linear-gradient(90deg, transparent, rgba(226, 192, 122, .7)); }
.capa .contagem-rotulo::after { transform: scaleX(-1); }
.capa .contagem-numeros { margin-top: 12px; gap: clamp(8px, 1.6vw, 12px); }
.capa .contagem-numeros div { background: rgba(255, 255, 255, .04); border: 1px solid rgba(226, 192, 122, .3); border-radius: 12px; padding: 14px 4px 11px; gap: 6px; }
.capa .contagem-numeros strong { color: #F7F1E4; font-size: clamp(1.8rem, 4.4vw, 2.5rem); font-weight: 600; }
.capa .contagem-numeros span { color: rgba(226, 192, 122, .9); }
.capa .contagem--fim .contagem-rotulo { color: #F7F1E4; }
.capa .contagem--fim .contagem-rotulo::before, .capa .contagem--fim .contagem-rotulo::after { display: none; }

/* Seção seguinte respira depois da curva */
.secao--sobre { padding-top: clamp(48px, 6vw, 80px); }

/* ---------- "O que você vai encontrar": bolas penduradas numa guirlanda com laço ---------- */
.secao--destaques { padding-block: clamp(20px, 3vw, 40px) clamp(44px, 6vw, 72px); }
.destaques-topo { display: grid; justify-items: center; gap: 8px; text-align: center; margin-bottom: 18px; }
.sobretitulo--centro::before { content: ""; display: inline-block; vertical-align: middle; margin-right: 12px; height: 1px; width: 40px; background: currentColor; opacity: .55; }
.guirlanda { position: relative; max-width: 900px; height: 34px; margin: 0 auto -17px; display: grid; place-items: center; z-index: 1; }
.guirlanda::before { content: ""; position: absolute; left: 6%; right: 6%; top: 50%; height: 1.5px; background: linear-gradient(90deg, transparent, var(--ouro-vivo) 12%, var(--ouro-vivo) 88%, transparent); opacity: .7; }
.guirlanda img { position: relative; width: 40px; height: auto; filter: drop-shadow(0 2px 3px rgba(0, 0, 0, .15)); }
.destaques::before { display: none; }

@media (max-width: 560px) {
  .capa { padding-block: 14px 30px; }
  .capa-logo { width: min(60%, 224px); }
  .capa-titulo .selo { margin-top: 4px; font-size: .58rem; letter-spacing: .18em; gap: 8px; }
  .capa-titulo .selo::before, .capa-titulo .selo::after { width: 22px; }
  .capa-titulo .script { font-size: clamp(1.5rem, 6.8vw, 1.75rem); }
  .capa .descricao { margin-top: 2px; }
  .capa .contagem-cartao { margin-top: 14px; }
  .capa .contagem-rotulo { font-size: .58rem; gap: 10px; }
  .capa .contagem-numeros { margin-top: 8px; gap: 6px; }
  .capa .contagem-numeros div { padding: 9px 2px 7px; gap: 3px; border-radius: 10px; }
  .capa .contagem-numeros strong { font-size: 1.5rem; }
  .capa .contagem-numeros span { font-size: .5rem; letter-spacing: .12em; }
  .secao--sobre { padding-top: 40px; }
  .secao--destaques { padding-block: 8px 40px; }
  .destaques-topo { margin-bottom: 10px; }
  .destaques-topo h2 { font-size: clamp(1.35rem, 6vw, 1.55rem); }
  .guirlanda { height: 28px; margin-bottom: 4px; }
  .guirlanda img { width: 32px; }
  .destaques { gap: 16px 12px; }
}
.capa-titulo .selo { margin-bottom: 4px; }
.capa-titulo .script { line-height: 1.25; }
@media (max-width: 860px) {
  .sobre-conteudo .sobretitulo::before { content: ""; display: inline-block; vertical-align: middle; margin-right: 12px; height: 1px; width: 40px; background: currentColor; opacity: .55; }
}

/* =====================================================================
   Página inicial — capa creme, contagem numa faixa verde
   Paleta: creme #F7F1E6 · verde #143F28 · vermelho #A50D18 · dourado #CAA565
   ===================================================================== */
:root { --capa-creme: #F7F1E6; --capa-verde: #143F28; --capa-vermelho: #A50D18; --capa-ouro: #CAA565; }

/* Menu: creme, textos verdes, página ativa com fio dourado discreto */
.topo { background: color-mix(in srgb, var(--capa-creme) 94%, transparent); border-bottom-color: rgba(202, 165, 101, .35); }
.menu { gap: 6px; }
.menu a { color: var(--capa-verde); font-weight: 600; padding: 8px 14px; border-radius: 8px; position: relative; background: none; }
.menu a:hover { background: rgba(18, 63, 48, .06); }
.menu a[aria-current="page"] { background: none; color: var(--capa-verde); }
.menu a[aria-current="page"]::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 2px; height: 1.5px; border-radius: 2px; background: var(--capa-ouro); }
@media (max-width: 720px) {
  .menu { gap: 0; background: var(--capa-creme); }
  .menu a[aria-current="page"] { background: rgba(18, 63, 48, .05); box-shadow: inset 2px 0 0 var(--capa-ouro); }
  .menu a[aria-current="page"]::after { display: none; }
}

/* Capa */
.capa {
  background: var(--capa-creme); color: var(--capa-verde);
  padding: clamp(48px, 6vw, 80px) 0 0; border-radius: 0; box-shadow: none;
}
.capa::before {
  /* só um brilho dourado bem leve atrás da logo */
  opacity: 1; filter: none;
  background: radial-gradient(48% 42% at 50% 30%, rgba(202, 165, 101, .14), transparent 70%);
}
.capa > .miolo { padding-bottom: clamp(44px, 5.5vw, 72px); }
.capa-texto { max-width: 46rem; }
.capa-titulo { gap: 0; }
.capa-logo { width: min(100%, 340px); filter: none; }
.capa-titulo .selo { margin: clamp(20px, 2.4vw, 28px) 0 0; font-size: .7rem; font-weight: 600; letter-spacing: .26em; color: #9A7A3F; }
.capa-titulo .selo::before, .capa-titulo .selo::after { width: 40px; background: linear-gradient(90deg, transparent, var(--capa-ouro)); }
.capa-tema {
  display: block; margin-top: 10px; font-family: var(--f-titulo); font-weight: 500; font-style: italic;
  font-size: clamp(2rem, 4vw, 2.9rem); line-height: 1.15; color: var(--capa-verde); letter-spacing: -.005em; text-wrap: balance;
}
.capa .descricao { margin-top: 14px; font-size: 1.05rem; line-height: 1.6; color: #4C5A51; max-width: 30rem; }
.capa .quando { margin-top: clamp(26px, 3vw, 34px); gap: 10px 32px; }
.capa .quando li { color: var(--capa-verde); font-weight: 600; font-size: .96rem; }
.capa .quando svg { color: var(--capa-ouro); width: 17px; height: 17px; }
.capa .botoes { margin-top: clamp(28px, 3.2vw, 36px); }
.capa .botao--festivo {
  min-width: 0; min-height: 50px; padding: 0 30px; border-radius: 999px; font-size: .98rem;
  background: var(--capa-vermelho); box-shadow: 0 6px 16px rgba(190, 23, 38, .18);
  transition: background .25s ease, transform .25s ease, box-shadow .25s ease;
}
.capa .botao--festivo:hover { background: #A50D18; transform: translateY(-1px); box-shadow: 0 10px 22px rgba(190, 23, 38, .24); }

/* Faixa verde da contagem: último elemento da primeira seção */
.contagem-faixa-verde {
  position: relative; background: var(--capa-verde); color: #F7F1E6;
  padding-block: clamp(26px, 3.2vw, 38px); border-top: 1px solid rgba(202, 165, 101, .45);
}
.contagem-faixa-verde::before {
  content: ""; position: absolute; left: 50%; top: -6px; width: 11px; height: 11px; transform: translateX(-50%) rotate(45deg);
  background: var(--capa-creme); border: 1px solid var(--capa-ouro);
}
.capa .contagem-cartao { max-width: 520px; margin: 0 auto; }
.capa .contagem-rotulo { color: var(--capa-ouro); font-size: .68rem; letter-spacing: .24em; }
.capa .contagem-rotulo::before, .capa .contagem-rotulo::after { background: linear-gradient(90deg, transparent, rgba(202, 165, 101, .75)); }
.capa .contagem-numeros { margin-top: 16px; gap: clamp(12px, 2.4vw, 22px); grid-template-columns: repeat(4, minmax(0, 96px)); justify-content: center; }
.capa .contagem-numeros div { background: transparent; border: 1px solid rgba(202, 165, 101, .38); border-radius: 12px; padding: 12px 4px 10px; gap: 6px; }
.capa .contagem-numeros strong { color: #F7F1E6; font-size: clamp(1.7rem, 3.6vw, 2.2rem); font-weight: 500; }
.capa .contagem-numeros span { color: var(--capa-ouro); font-size: .6rem; letter-spacing: .16em; }
.capa .contagem--fim .contagem-rotulo { color: #F7F1E6; }

/* A seção seguinte volta ao creme */
.secao--sobre { padding-top: clamp(48px, 6vw, 80px); }

@media (max-width: 560px) {
  .capa { padding-top: 34px; }
  .capa > .miolo { padding-bottom: 36px; }
  .capa-logo { width: min(66%, 236px); }
  .capa-titulo .selo { margin-top: 18px; font-size: .58rem; letter-spacing: .18em; gap: 8px; }
  .capa-titulo .selo::before, .capa-titulo .selo::after { width: 20px; }
  .capa-tema { font-size: clamp(1.7rem, 7.6vw, 2rem); margin-top: 6px; }
  .capa .descricao { font-size: .94rem; margin-top: 10px; max-width: 19rem; color: #4C5A51; }
  .capa .quando { margin-top: 20px; gap: 8px 18px; }
  .capa .quando li, .capa .quando li:first-child { font-size: .88rem; }
  .capa .quando li:first-child { flex-basis: 100%; justify-content: center; }
  .capa .botoes { margin-top: 24px; }
  .capa .botao--festivo { min-height: 48px; width: auto; padding: 0 28px; max-width: none; }
  .contagem-faixa-verde { padding-block: 22px 24px; }
  .capa .contagem-numeros { margin-top: 12px; gap: 10px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .capa .contagem-numeros div { padding: 9px 2px 7px; }
  .capa .contagem-numeros strong { font-size: 1.45rem; }
  .capa .contagem-numeros span { font-size: .5rem; letter-spacing: .1em; }
}
.capa > .miolo { padding-inline: max(var(--gutter), env(safe-area-inset-left, 0px)) max(var(--gutter), env(safe-area-inset-right, 0px)); }
.capa .contagem-faixa-verde .miolo { padding: 0 max(var(--gutter), env(safe-area-inset-right, 0px)) 0 max(var(--gutter), env(safe-area-inset-left, 0px)); }
.capa-titulo .selo { font-family: var(--f-texto); }
/* "6ª edição · Feira empreendedora" acima da logo */
.capa-titulo .selo { margin: 0 0 clamp(18px, 2.2vw, 24px); }
.capa-logo + .capa-tema { margin-top: clamp(16px, 2vw, 22px); }
@media (max-width: 560px) {
  .capa-titulo .selo { margin: 0 0 16px; }
  .capa-logo + .capa-tema { margin-top: 12px; }
}

/* =====================================================================
   Refinamento mobile da página inicial
   Creme #F7F2E8 · Verde #143F28 · Dourado #AB7A2F · Vermelho #A50D18
   ===================================================================== */
:root { --capa-creme: #F7F2E8; --capa-verde: #143F28; --capa-vermelho: #A50D18; --capa-ouro: #AB7A2F; }
.capa-titulo .selo { color: var(--capa-ouro); }
.capa .botao--festivo { box-shadow: 0 3px 10px rgba(201, 21, 45, .14); }
.capa .botao--festivo:hover { background: #A50D18; box-shadow: 0 6px 14px rgba(201, 21, 45, .18); }
/* sem o losango sobre a faixa da contagem */
.contagem-faixa-verde::before { display: none; }
.contagem-faixa-verde { border-top: 0; }
.capa .contagem-numeros div { border: 1px solid rgba(171, 122, 47, .26); }
.capa .contagem-numeros strong { font-weight: 600; }

@media (max-width: 560px) {
  /* Primeira tela mais compacta e harmoniosa */
  .capa { padding-top: 22px; }
  .capa > .miolo { padding-bottom: 30px; }
  .capa-titulo .selo { margin: 0 0 12px; font-size: .58rem; letter-spacing: .2em; }
  .capa-logo { width: min(64%, 232px); }
  .capa-logo + .capa-tema { margin-top: 12px; }
  .capa-tema { font-size: clamp(1.65rem, 7.4vw, 1.95rem); line-height: 1.15; }
  .capa .descricao { margin-top: 8px; font-size: .92rem; line-height: 1.5; max-width: 18.5rem; }

  /* Informações: ícones finos e alinhados */
  .capa .quando { margin-top: 18px; display: grid; justify-content: center; justify-items: center; gap: 8px; }
  .capa .quando li, .capa .quando li:first-child { flex-basis: auto; font-size: .87rem; font-weight: 600; gap: 7px; line-height: 1.2; }
  .capa .quando svg { width: 14px; height: 14px; stroke-width: 1.3; }
  .capa .quando li:nth-child(2), .capa .quando li:nth-child(3) { display: inline-flex; }
  .capa .quando { grid-template-columns: auto auto; column-gap: 20px; }
  .capa .quando li:first-child { grid-column: 1 / -1; }
  .capa .botoes { margin-top: 22px; }
  .capa .botao--festivo { min-height: 46px; padding: 0 26px; font-size: .94rem; }

  /* Contagem */
  .contagem-faixa-verde { padding-block: 20px 22px; }
  .capa .contagem-rotulo { font-size: .58rem; letter-spacing: .22em; }
  .capa .contagem-numeros { margin-top: 12px; gap: clamp(6px, 2.4vw, 10px); max-width: 340px; margin-inline: auto; }
  .capa .contagem-numeros div { padding: 10px 2px 8px; gap: 4px; border-radius: 10px; }
  .capa .contagem-numeros strong { font-size: clamp(1.55rem, 7vw, 1.8rem); color: #FBF6EC; }
  .capa .contagem-numeros span { font-size: .5rem; letter-spacing: .12em; }

  /* Sobre a feira */
  .secao--sobre { padding-top: 34px; padding-bottom: 34px; }
  .sobre { gap: 22px; }
  .sobre-conteudo { gap: 10px; }
  .sobre-conteudo .sobretitulo { font-size: .6rem; letter-spacing: .22em; }
  .sobre-conteudo h2 { font-size: clamp(1.4rem, 6.2vw, 1.6rem); line-height: 1.22; max-width: 19rem; margin-inline: auto; }
  .sobre-texto { max-width: 21rem; margin-inline: auto; }
  .sobre-texto p { font-size: .95rem; line-height: 1.7; color: #33433A; }
  .lema { margin-top: 6px; padding-top: 12px; max-width: 19rem; margin-inline: auto; font-size: .64rem; letter-spacing: .18em; }
  .sobre-foto { width: min(56%, 220px); }
}

/* Capa: dois botões — ingresso (principal) e mapa (secundário) */
.capa .botoes { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.capa .botao--mapa {
  min-height: 50px; padding: 0 26px; border-radius: 999px; font-size: .98rem; font-weight: 700; gap: 8px;
  color: var(--capa-verde); background: transparent; border: 1.5px solid var(--capa-verde); box-shadow: none;
  transition: background .25s ease, color .25s ease, transform .25s ease;
}
.capa .botao--mapa svg { width: 17px; height: 17px; }
.capa .botao--mapa:hover { background: var(--capa-verde); color: #F7F2E8; transform: translateY(-1px); }
@media (max-width: 560px) {
  .capa .botoes { display: grid; justify-items: stretch; gap: 10px; width: min(100%, 300px); margin-inline: auto; }
  .capa .botao--festivo, .capa .botao--mapa { width: 100%; min-height: 46px; padding: 0 20px; font-size: .94rem; }
}
.area--zona-recepcao { fill: #F3ECDD; }

/* =====================================================================
   Mapa sobre a imagem oficial da planta
   ===================================================================== */
.mapa-dica-planta { display: none; }
.mapa--img .planta-img { pointer-events: none; }
.mapa--img .sala polygon { fill: transparent; stroke: none; filter: none; transition: fill .2s ease; }
.mapa--img .sala:hover polygon, .mapa--img .sala:focus-visible polygon { fill: rgba(171, 122, 47, .10); }
.mapa--img .sala.ativa polygon { fill: rgba(171, 122, 47, .14); stroke: var(--capa-ouro); stroke-width: 3; stroke-dasharray: 10 6; }
.mapa-area > svg.mapa--img:has(.sala.ativa) .sala:not(.ativa) polygon, .ma-area > svg.mapa--img:has(.sala.ativa) .sala:not(.ativa) polygon { opacity: 1; fill: rgba(247, 242, 232, .55); }
.mapa--img .estande--img .marca { fill: transparent; stroke: transparent; stroke-width: 3; filter: none; }
.mapa--img .estande--img .pulso { stroke: var(--capa-ouro); stroke-width: 3; }
.mapa--img .estande--img:hover .marca, .mapa--img .estande--img.previa .marca, .mapa--img .estande--img:focus-visible .marca, .mapa--img .estande--img.realce .marca { stroke: var(--capa-ouro); fill: rgba(255, 255, 255, .12); }
.mapa--img .estande--img.ativo .marca { stroke: var(--capa-verde); stroke-width: 4; fill: rgba(255, 255, 255, .1); }
.mapa--img .estande--img:hover, .mapa--img .estande--img.previa, .mapa--img .estande--img:focus-visible, .mapa--img .estande--img.realce { transform: scale(1.1); }
.mapa--img .estande--img.ativo { transform: scale(1.12); }
.mapa--img .estande--img.apagado { opacity: 1; }
.mapa--img .estande--img.apagado .marca { fill: rgba(247, 242, 232, .78); stroke: none; }
.mapa--img .ponto-marca .marca { fill: transparent; stroke: transparent; stroke-width: 3; }
.mapa--img .ponto-marca .pulso { stroke: var(--capa-ouro); }
.mapa--img .ponto-marca:hover .marca, .mapa--img .ponto-marca.ativo .marca { stroke: var(--capa-ouro); fill: rgba(171, 122, 47, .08); }
.mapa--img .ponto-marca:hover, .mapa--img .ponto-marca.ativo { transform: none; }
.mapa-area > svg.mapa--img { background: #FFFFFF; }
.mapa-area:has(> svg.mapa--img) { background: #FFFFFF; }

@media (max-width: 759px) {
  /* celular: planta deitada, aberta ampliada e movida com o dedo */
  .mapa-area:has(> svg.mapa--img) { height: auto !important; overflow-x: auto; overflow-y: hidden; }
  .com-folha .mapa-area:has(> svg.mapa--img) { padding-bottom: 0; }
  .mapa-dica-planta { display: block; text-align: center; font-size: .74rem; color: var(--suave); margin-top: 6px; }
}

/* Planta oficial: cada estande pintado conforme o que oferece */
.mapa--img .estande--img .marca { fill: var(--vermelho); stroke: var(--vermelho); stroke-width: 3; rx: 6; filter: none; }
.mapa--img .estande--img[data-cat="produtos"] .marca { fill: var(--capa-verde); stroke: var(--capa-verde); }
.mapa--img .estande--img[data-cat="servicos"] .marca { fill: var(--capa-ouro); stroke: var(--capa-ouro); }
.mapa--img .estande-num--img { font: 600 25px var(--f-titulo); fill: #FFFDF6; font-variant-numeric: lining-nums; }
.mapa--img .estande--img:hover .marca, .mapa--img .estande--img.previa .marca, .mapa--img .estande--img:focus-visible .marca, .mapa--img .estande--img.realce .marca { stroke: #FFFDF6; stroke-width: 3; fill-opacity: 1; }
.mapa--img .estande--img:hover .marca, .mapa--img .estande--img.previa .marca, .mapa--img .estande--img:focus-visible .marca { fill: var(--vermelho); }
.mapa--img .estande--img[data-cat="produtos"]:hover .marca, .mapa--img .estande--img[data-cat="produtos"].previa .marca { fill: var(--capa-verde); }
.mapa--img .estande--img[data-cat="servicos"]:hover .marca, .mapa--img .estande--img[data-cat="servicos"].previa .marca { fill: var(--capa-ouro); }
.mapa--img .estande--img.ativo .marca { stroke: #E2C07A; stroke-width: 4; }
.mapa--img .estande--img .alvo { fill: transparent; }
.mapa--img .estande--img.apagado { opacity: 1; }
.mapa--img .estande--img.apagado .marca { fill: #E9E3D6; stroke: #E9E3D6; }
.mapa--img .estande--img.apagado .estande-num--img { fill: #B9B2A3; }
.mapa--retrato .estande-num--img, .mapa-area .estande-num--img { font-size: 25px; }

/* =====================================================================
   Cabeçalho verde (diferencia do conteúdo) e capa mais natalina
   ===================================================================== */
.topo { background: var(--capa-verde); border-bottom: 1px solid rgba(171, 122, 47, .55); backdrop-filter: none; -webkit-backdrop-filter: none; }
body::before { background: var(--capa-verde); }
.marca { background: #FBF7EE; border-radius: 10px; padding: 3px 10px; box-shadow: 0 1px 0 rgba(171, 122, 47, .6); }
.marca img { mix-blend-mode: normal; height: 42px; }
.menu a { color: #F3ECDD; }
.menu a:hover { background: rgba(255, 255, 255, .08); color: #FFFFFF; }
.menu a[aria-current="page"] { color: #FFFFFF; }
.menu a[aria-current="page"]::after { background: #D9B46A; }
.botao-menu span { background: #F3ECDD; }
@media (max-width: 720px) {
  .marca img { height: 30px; }
  .marca { padding: 2px 8px; border-radius: 8px; }
  .menu { background: var(--capa-verde); border-bottom-color: rgba(171, 122, 47, .55); }
  .menu a { color: #F3ECDD; }
  .menu a[aria-current="page"] { background: rgba(255, 255, 255, .07); color: #FFFFFF; box-shadow: inset 2px 0 0 #D9B46A; }
}

/* Varal de luzinhas logo abaixo do cabeçalho */
.capa .luzinhas { position: absolute; left: 0; top: 0; width: 100%; height: 58px; z-index: 0; pointer-events: none; overflow: visible; }
.luzinhas .brilho { opacity: .16; filter: blur(4px); }
@media (prefers-reduced-motion: no-preference) {
  .luzinhas .lampada .brilho { animation: piscar 2.6s ease-in-out infinite; animation-delay: var(--d); }
}
@keyframes piscar { 0%, 100% { opacity: .1; } 50% { opacity: .42; } }
.capa { padding-top: clamp(76px, 7.4vw, 96px); }

/* Duas bolas penduradas nas laterais (computador) */
.capa-enfeite { position: absolute; top: 0; z-index: 0; width: 46px; pointer-events: none; transform-origin: 50% 0; }
.capa-enfeite::before { content: ""; display: block; width: 1px; height: var(--fio, 120px); margin: 0 auto; background: linear-gradient(#8A6A2F, #D9B46A); }
.capa-enfeite img { display: block; width: 100%; height: auto; margin-top: -2px; filter: drop-shadow(0 6px 8px rgba(20, 63, 40, .18)); }
.capa-enfeite--esq { left: 8%; --fio: 150px; }
.capa-enfeite--dir { right: 8%; --fio: 110px; width: 38px; }
@media (prefers-reduced-motion: no-preference) { .capa-enfeite { animation: balancar 5.5s ease-in-out infinite alternate; } .capa-enfeite--dir { animation-delay: -2s; } }
@media (max-width: 900px) { .capa-enfeite { display: none; } }

/* Estrelinhas douradas discretas no fundo da capa */
.capa::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: .55;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-8 -8 16 16'%3E%3Cpath fill='%23C9A15A' d='M0-7C.7-1.2 1.2-.7 7 0 1.2.7.7 1.2 0 7-.7 1.2-1.2.7-7 0-1.2-.7-.7-1.2 0-7Z'/%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-8 -8 16 16'%3E%3Cpath fill='%23C9A15A' d='M0-7C.7-1.2 1.2-.7 7 0 1.2.7.7 1.2 0 7-.7 1.2-1.2.7-7 0-1.2-.7-.7-1.2 0-7Z'/%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-8 -8 16 16'%3E%3Cpath fill='%23C9A15A' d='M0-7C.7-1.2 1.2-.7 7 0 1.2.7.7 1.2 0 7-.7 1.2-1.2.7-7 0-1.2-.7-.7-1.2 0-7Z'/%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-8 -8 16 16'%3E%3Cpath fill='%23C9A15A' d='M0-7C.7-1.2 1.2-.7 7 0 1.2.7.7 1.2 0 7-.7 1.2-1.2.7-7 0-1.2-.7-.7-1.2 0-7Z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: 14px, 9px, 11px, 8px;
  background-position: 16% 46%, 84% 34%, 80% 62%, 22% 70%;
}
@media (max-width: 560px) {
  .capa { padding-top: 58px; }
  .capa .luzinhas { height: 46px; }
  .capa::after { background-size: 10px, 7px, 8px, 6px; background-position: 7% 40%, 93% 30%, 92% 55%, 8% 62%; }
}
/* faixa da contagem com uma linha festiva vermelha e dourada no topo */
.contagem-faixa-verde { border-top: 0; box-shadow: inset 0 3px 0 #A50D18, inset 0 4px 0 #D9B46A; }
.mapa-area { place-items: normal; justify-items: normal; } .mapa-area > svg { justify-self: auto; }
/* Entrada do público (pela Recepção) */
.entrada-marca { pointer-events: none; }
.entrada-fundo { fill: var(--capa-verde); stroke: #D9B46A; stroke-width: 2; }
.entrada-icone { fill: none; stroke: #D9B46A; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.entrada-texto { font: 700 14px var(--f-texto); letter-spacing: .14em; fill: #FBF7EE; text-anchor: middle; dominant-baseline: central; }

/* =====================================================================
   Página inicial — campanha de Natal (estrelas douradas, ramos e brilho)
   ===================================================================== */
.capa .luzinhas, .capa-enfeite { display: none; }
.capa {
  padding-top: clamp(56px, 6vw, 84px);
  background:
    radial-gradient(38% 46% at 50% 34%, rgba(226, 186, 104, .30), rgba(226, 186, 104, 0) 70%),
    radial-gradient(70% 60% at 50% 0%, #FCF6EA 0%, rgba(252, 246, 234, 0) 70%),
    linear-gradient(180deg, #F8F1E3 0%, #F4EAD6 100%);
}
.capa::before { background: none; }
.capa::after { display: none; }

/* céu de estrelas douradas */
.capa-ceu { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.ceu-estrela, .halo-estrela { position: absolute; width: var(--t); height: var(--t); margin: calc(var(--t) / -2) 0 0 calc(var(--t) / -2); opacity: var(--o); }
.ceu-estrela svg, .halo-estrela svg { display: block; width: 100%; height: 100%; fill: #C9A050; filter: drop-shadow(0 0 3px rgba(226, 186, 104, .65)); }
@media (prefers-reduced-motion: no-preference) {
  .ceu-estrela--brilha { animation: cintilar var(--dur, 4s) ease-in-out infinite; animation-delay: var(--d, 0s); }
}
@keyframes cintilar { 0%, 100% { opacity: calc(var(--o) * .35); transform: scale(.75) rotate(0deg); } 50% { opacity: var(--o); transform: scale(1.1) rotate(12deg); } }

/* ramos de pinheiro dourados nos cantos */
.capa-ramo { position: absolute; top: 0; z-index: 0; width: clamp(150px, 16vw, 230px); pointer-events: none; }
.capa-ramo svg { display: block; width: 100%; height: auto; overflow: visible; }
.capa-ramo--esq { left: 0; }
.capa-ramo--dir { right: 0; transform: scaleX(-1); }
.ramo-haste { fill: none; stroke: #A9823C; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ramo-agulha { stroke: #1F5A40; stroke-width: 2.2; stroke-linecap: round; opacity: .9; }
.ramo-baga { fill: #A50D18; }
.ramo-brilho { fill: #fff; opacity: .7; }
.ramo-estrela { fill: #D4AA55; }

/* logo como grande destaque, com halo e estrelinhas */
.capa-logo-moldura { position: relative; display: inline-block; }
.capa-logo-moldura::before {
  content: ""; position: absolute; inset: -22% -14%; z-index: -1; border-radius: 50%;
  background: radial-gradient(closest-side, rgba(255, 250, 238, .95), rgba(240, 214, 160, .35) 60%, rgba(240, 214, 160, 0));
}
.capa-logo { width: min(100%, 400px); filter: drop-shadow(0 10px 18px rgba(120, 80, 20, .16)); }
.halo-estrela { z-index: 1; }

/* título e informações */
.capa-titulo .selo { color: #AB7A2F; }
.capa-tema { font-size: clamp(2.1rem, 4.2vw, 3.1rem); margin-top: 18px; color: var(--capa-verde); }
.capa-tema::after {
  content: ""; display: block; width: 120px; height: 12px; margin: 10px auto 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 12'%3E%3Cpath d='M0 6h48M72 6h48' stroke='%23C9A050' stroke-width='1'/%3E%3Cpath fill='%23C9A050' d='M60 0c.6 4 1 4.6 6 6-5 1.4-5.4 2-6 6-.6-4-1-4.6-6-6 5-1.4 5.4-2 6-6z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.capa .quando { background: rgba(255, 252, 245, .7); border: 1px solid rgba(201, 160, 80, .35); border-radius: 999px; padding: 10px 24px; display: inline-flex; }
.capa .quando li + li { padding-left: 22px; border-left: 1px solid rgba(201, 160, 80, .4); }
.capa .botoes { margin-top: clamp(24px, 3vw, 32px); }

/* transição suave para a contagem */
.contagem-faixa-verde { box-shadow: none; padding-top: clamp(30px, 3.4vw, 40px); background: radial-gradient(60% 120% at 50% 0%, #1C5236 0%, #143F28 60%, #0E3125 100%); }
.contagem-onda { position: absolute; left: 0; right: 0; top: -38px; width: 100%; height: 40px; display: block; }
.onda-fundo { fill: #1C5236; }
.onda-fio { fill: none; stroke: #C9A050; stroke-width: 1.2; vector-effect: non-scaling-stroke; }
.contagem-estrela-centro { position: absolute; left: 50%; top: -52px; width: 26px; height: 26px; transform: translateX(-50%); z-index: 2; }
.contagem-estrela-centro svg { width: 100%; height: 100%; fill: #D4AA55; filter: drop-shadow(0 0 6px rgba(226, 186, 104, .8)); }
.contagem-ceu { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.contagem-ceu span { position: absolute; width: 3px; height: 3px; border-radius: 50%; background: #E9C981; box-shadow: 0 0 6px 2px rgba(233, 201, 129, .45); opacity: .7; }
@media (prefers-reduced-motion: no-preference) {
  .contagem-ceu span { animation: cintilar-ponto 3.6s ease-in-out infinite; }
  .contagem-ceu span:nth-child(2n) { animation-delay: -1.4s; } .contagem-ceu span:nth-child(3n) { animation-delay: -2.4s; }
}
@keyframes cintilar-ponto { 0%, 100% { opacity: .2; } 50% { opacity: .9; } }
.capa .contagem-cartao { position: relative; z-index: 1; }
.capa .contagem-numeros div {
  background: linear-gradient(180deg, rgba(255, 255, 255, .07), rgba(255, 255, 255, .02));
  border: 1px solid rgba(212, 170, 85, .45); border-radius: 14px; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08);
}
.capa .contagem-numeros strong { color: #FBF3E1; }

/* celular */
@media (max-width: 760px) {
  .ceu-estrela:not(.ceu-estrela--m) { display: none; }
  .ceu-estrela { --t: 8px !important; }
  .capa-ramo { width: 112px; }
  .capa-ramo--esq { left: -14px; } .capa-ramo--dir { right: -14px; }
  .halo-estrela:nth-child(n+5) { display: none; }
}
@media (max-width: 560px) {
  .capa { padding-top: 52px; }
  .capa-logo { width: min(68%, 250px); }
  .capa-tema { font-size: clamp(1.7rem, 7.6vw, 2rem); margin-top: 12px; }
  .capa-tema::after { width: 96px; margin-top: 6px; }
  .capa .quando { display: grid; border-radius: 16px; padding: 10px 16px; gap: 6px 14px; grid-template-columns: auto auto; }
  .capa .quando li:first-child { grid-column: 1 / -1; }
  .capa .quando li + li { border-left: 0; padding-left: 0; }
  .contagem-onda { top: -22px; height: 24px; }
  .contagem-estrela-centro { top: -34px; width: 20px; height: 20px; }
}
.capa-logo-moldura { display: block; width: min(100%, 400px); margin-inline: auto; }
.capa-logo-moldura .capa-logo { width: 100%; }
.contagem-faixa-verde { background: linear-gradient(180deg, #1C5236 0%, #134330 45%, #10331F 100%); }
@media (max-width: 560px) { .capa-logo-moldura { width: min(68%, 250px); } }
@media (max-width: 560px) { .contagem-ceu span:nth-child(2), .contagem-ceu span:nth-child(5) { display: none; } .contagem-ceu span { top: 14% !important; } }
@media (max-width: 380px) { .capa-ramo { width: 92px; } }

/* =====================================================================
   Capa — "cartão de Natal": moldura dourada, constelação sobre a logo
   ===================================================================== */
.capa-ramo, .contagem-onda, .contagem-estrela-centro, .contagem-ceu { display: none !important; }
.capa {
  padding-top: clamp(26px, 3vw, 40px);
  background:
    radial-gradient(34% 40% at 50% 30%, rgba(230, 192, 112, .34), rgba(230, 192, 112, 0) 72%),
    radial-gradient(120% 70% at 50% 100%, rgba(232, 214, 178, .45), rgba(232, 214, 178, 0) 60%),
    #F8F1E4;
}
.capa > .miolo { position: relative; padding-top: clamp(34px, 4vw, 52px); padding-bottom: clamp(46px, 5vw, 64px); }

/* moldura de convite: duas linhas douradas finas e estrelas nos cantos */
.capa-moldura { position: absolute; inset: 0 max(0px, calc(var(--gutter) - 2px)) 22px; pointer-events: none; border: 1px solid rgba(171, 122, 47, .55); border-radius: 26px; }
.capa-moldura::before { content: ""; position: absolute; inset: 6px; border: 1px solid rgba(171, 122, 47, .25); border-radius: 21px; }
.canto { position: absolute; width: 18px; height: 18px; padding: 3px; background: #F8F1E4; border-radius: 50%; }
.canto svg { display: block; width: 100%; height: 100%; fill: #AB7A2F; }
.canto--se { left: 18px; top: -9px; } .canto--sd { right: 18px; top: -9px; }
.canto--ie { left: 18px; bottom: -9px; } .canto--id { right: 18px; bottom: -9px; }

/* céu: poucas estrelas, simétricas */
.capa-ceu .ceu-estrela svg, .halo-estrela svg { fill: #C59A48; filter: drop-shadow(0 0 4px rgba(230, 192, 112, .7)); }

/* edição: itálico serifado, sem caixa alta */
.capa-titulo .selo {
  font-family: var(--f-titulo); font-style: italic; font-weight: 400; text-transform: none; letter-spacing: .01em;
  font-size: clamp(1rem, 1.5vw, 1.15rem); color: #9A7535; margin: 0 0 clamp(14px, 2vw, 22px); gap: 14px;
}
.capa-titulo .selo::before, .capa-titulo .selo::after { width: 56px; background: linear-gradient(90deg, rgba(171, 122, 47, 0), rgba(171, 122, 47, .8)); }

/* logo no centro de uma constelação */
.capa-logo-moldura { width: min(100%, 430px); }
.capa-logo-moldura::before { inset: -26% -18%; background: radial-gradient(closest-side, rgba(255, 251, 240, 1), rgba(244, 222, 170, .45) 58%, rgba(244, 222, 170, 0)); }
.capa-logo { filter: drop-shadow(0 12px 20px rgba(110, 72, 18, .14)); }

/* título em caligrafia, ecoando o "elas & eles" da logo */
.capa-tema {
  font-family: "Great Vibes", "Playfair Display", cursive; font-style: normal; font-weight: 400;
  font-size: clamp(3rem, 6vw, 4.6rem); line-height: 1; letter-spacing: 0; color: #143F28;
  margin-top: clamp(10px, 1.6vw, 18px); text-shadow: 0 1px 0 rgba(255, 255, 255, .6);
}
.capa-tema::after { display: none; }
.capa .descricao { margin-top: 10px; font-size: 1.06rem; line-height: 1.6; color: #4A5A50; max-width: 28rem; }

/* bloco de data, horário e local como um cartão de convite */
.capa .quando.quando--convite {
  display: grid; grid-template-columns: repeat(3, minmax(0, auto)); justify-content: center; gap: 0;
  margin: clamp(24px, 3vw, 32px) auto 0; padding: 14px 6px; width: auto; max-width: 660px;
  background: linear-gradient(180deg, rgba(255, 253, 248, .95), rgba(252, 246, 234, .9));
  border: 1px solid rgba(171, 122, 47, .45); border-radius: 18px;
  box-shadow: 0 1px 0 rgba(255, 255, 255, .8) inset, 0 10px 26px rgba(110, 72, 18, .08);
}
.capa .quando--convite li {
  display: grid; grid-template-columns: auto auto; grid-template-rows: auto auto; column-gap: 10px; row-gap: 1px; align-items: center; justify-content: center;
  padding: 2px 26px; border: 0; text-align: left;
}
.capa .quando--convite li + li { border-left: 1px solid rgba(171, 122, 47, .3); padding-left: 26px; }
.capa .quando--convite li svg {
  grid-row: 1 / span 2; width: 34px; height: 34px; padding: 8px; box-sizing: border-box; border-radius: 50%;
  border: 1px solid rgba(171, 122, 47, .5); color: #AB7A2F; stroke-width: 1.4; background: #FFFCF4;
}
.quando-rotulo { font-size: .74rem; font-weight: 600; color: #AB7A2F; letter-spacing: .02em; line-height: 1.2; }
.quando-valor { font-size: .98rem; font-weight: 700; color: #143F28; line-height: 1.25; white-space: nowrap; }

/* botões */
.capa .botoes { margin-top: clamp(22px, 2.8vw, 30px); gap: 14px; }
.capa .botao--festivo {
  min-height: 52px; padding: 0 30px; font-size: 1rem; letter-spacing: .01em;
  background: linear-gradient(180deg, #A50D18, #A50D18); box-shadow: inset 0 0 0 1px rgba(255, 222, 160, .35), 0 8px 18px rgba(184, 18, 42, .22);
}
.capa .botao--festivo:hover { background: linear-gradient(180deg, #A50D18, #A50D18); transform: translateY(-1px); }
.capa .botao--mapa { min-height: 52px; padding: 0 26px; border: 1px solid rgba(20, 63, 40, .75); background: rgba(255, 253, 248, .6); }

/* divisa: uma estrela dourada sobre o fio que abre a faixa verde */
.capa-divisa { position: relative; height: 0; z-index: 2; display: flex; justify-content: center; }
.capa-divisa > span { display: none; }
.capa-divisa svg { width: 30px; height: 30px; margin-top: -15px; padding: 6px; box-sizing: content-box; border-radius: 50%; background: #143F28; border: 1px solid #C59A48; fill: #E2BD72; }
.contagem-faixa-verde { border-top: 1px solid #C59A48; padding-top: clamp(36px, 4vw, 46px); background: linear-gradient(180deg, #164A37 0%, #143F28 55%, #10331F 100%); box-shadow: none; }

@media (max-width: 760px) {
  .canto--ie, .canto--id { display: none; }
}
@media (max-width: 560px) {
  .capa { padding-top: 14px; }
  .capa > .miolo { padding-top: 26px; padding-bottom: 36px; }
  .capa-moldura { inset: 0 8px 16px; border-radius: 20px; }
  .capa-moldura::before { inset: 5px; border-radius: 16px; }
  .canto { width: 14px; height: 14px; } .canto--se { left: 14px; top: -8px; } .canto--sd { right: 14px; top: -8px; }
  .capa-titulo .selo { font-size: .92rem; margin-bottom: 10px; gap: 10px; }
  .capa-titulo .selo::before, .capa-titulo .selo::after { width: 28px; }
  .capa-logo-moldura { width: min(66%, 246px); }
  .capa-tema { font-size: clamp(2.5rem, 11vw, 2.9rem); margin-top: 8px; }
  .capa .descricao { font-size: .93rem; margin-top: 4px; max-width: 18.5rem; }
  .capa .quando.quando--convite { grid-template-columns: 1fr 1fr; margin-top: 18px; padding: 10px 4px; max-width: 320px; border-radius: 16px; }
  .capa .quando--convite li { padding: 6px 10px; column-gap: 8px; }
  .capa .quando--convite li:first-child { grid-column: 1 / -1; justify-content: center; border-bottom: 1px solid rgba(171, 122, 47, .25); padding-bottom: 10px; margin: 0 12px 4px; }
  .capa .quando--convite li + li { border-left: 0; padding-left: 10px; }
  .capa .quando--convite li:nth-child(3) { border-left: 1px solid rgba(171, 122, 47, .3); }
  .capa .quando--convite li svg { width: 28px; height: 28px; padding: 6px; }
  .quando-rotulo { font-size: .66rem; }
  .quando-valor { font-size: .88rem; }
  .capa .botoes { margin-top: 18px; gap: 10px; }
  .capa .botao--festivo, .capa .botao--mapa { min-height: 48px; }
  .capa-divisa svg { width: 22px; height: 22px; margin-top: -12px; padding: 5px; }
  .contagem-faixa-verde { padding-top: 26px; }
}
.capa .quando.quando--convite { grid-template-columns: repeat(3, auto); }
.capa .quando.quando--convite > li { display: grid; flex-basis: auto; }
.capa .quando.quando--convite > li svg { margin: 0; }
@media (max-width: 560px) {
  .capa .quando.quando--convite { grid-template-columns: auto auto; }
  .capa .quando.quando--convite > li, .capa .quando.quando--convite > li:nth-child(2), .capa .quando.quando--convite > li:nth-child(3) { display: grid; justify-content: start; }
  .capa .quando.quando--convite > li:first-child { justify-content: center; }
  .capa .quando.quando--convite > li:nth-child(2) { padding-left: 14px; }
  .capa .quando.quando--convite > li:nth-child(3) { padding-left: 12px; }
  .capa-tema { font-size: clamp(2.05rem, 9.4vw, 2.5rem); white-space: nowrap; }
  .capa > .miolo { padding-top: 22px; padding-bottom: 30px; }
  .capa-logo-moldura { width: min(62%, 236px); }
}
@media (max-width: 380px) {
  .capa .quando--convite li svg { display: none; }
  .capa .quando.quando--convite > li { grid-template-columns: auto; }
}
@media (min-width: 561px) {
  .capa .quando.quando--convite { max-width: none; width: fit-content; padding: 14px 10px; }
  .capa .quando.quando--convite > li { padding: 2px 28px; }
}

/* =====================================================================
   Capa limpa: creme claro uniforme, estrelas douradas ao redor de logo e título
   ===================================================================== */
.capa { background: #FBF7EF !important; }
.capa::before, .capa::after { display: none !important; background: none !important; }
.capa-logo-moldura::before { display: none !important; }
.capa-logo { filter: none !important; }
.capa-moldura, .capa-ceu { display: none !important; }
.capa { padding-top: clamp(40px, 4.6vw, 64px); }
.capa > .miolo { padding-top: 0; padding-bottom: clamp(52px, 5.6vw, 72px); }

/* constelação: estrelas posicionadas em volta do bloco logo + título */
.capa-titulo { position: relative; }
.capa-constelacao { position: absolute; left: 50%; top: 9%; width: min(78%, 520px); height: 78%; transform: translateX(-50%); pointer-events: none; }
.capa-constelacao .halo-estrela svg { fill: #C39A4E; filter: none; }
.capa-constelacao .ceu-estrela--brilha svg { filter: drop-shadow(0 0 3px rgba(214, 176, 98, .55)); }

/* textos */
.capa-titulo .selo { margin-bottom: clamp(18px, 2.2vw, 26px); }
.capa-logo-moldura { position: relative; z-index: 1; }
.capa-tema { position: relative; z-index: 1; text-shadow: none; margin-top: clamp(14px, 1.8vw, 20px); font-size: clamp(2.8rem, 5.4vw, 4.2rem); }
.capa .descricao { margin-top: 12px; }

/* data, horário e local: leve, sem caixa */
.capa .quando.quando--convite {
  background: none; border: 0; box-shadow: none; border-radius: 0; padding: 0;
  margin-top: clamp(26px, 3vw, 34px); width: auto; max-width: none;
}
.capa .quando.quando--convite > li { padding: 0 28px; }
.capa .quando--convite li + li { border-left: 1px solid rgba(171, 122, 47, .35); }
.capa .quando--convite li svg { border: 0; background: none; padding: 0; width: 20px; height: 20px; color: #AB7A2F; stroke-width: 1.5; }
.quando-rotulo { color: #9A7A43; }

/* botões: acabamento discreto */
.capa .botoes { margin-top: clamp(28px, 3.2vw, 36px); gap: 12px; }
.capa .botao--festivo { background: #A50D18; box-shadow: none; border: 0; }
.capa .botao--festivo:hover { background: #A50D18; box-shadow: 0 6px 16px rgba(196, 23, 48, .18); transform: translateY(-1px); }
.capa .botao--mapa { background: transparent; border: 1px solid rgba(20, 63, 40, .55); }
.capa .botao--mapa:hover { background: #143F28; color: #FBF7EF; border-color: #143F28; }

/* contagem: verde-escuro original, sem medalhão */
.capa-divisa { display: none; }
.contagem-faixa-verde { background: #143F28 !important; border-top: 0; padding-top: clamp(28px, 3.2vw, 38px); }

@media (max-width: 560px) {
  .capa { padding-top: 26px; }
  .capa > .miolo { padding-bottom: 34px; }
  .capa-constelacao { width: 92%; top: 8%; height: 80%; }
  .capa-constelacao .halo-estrela { --t: 8px; }
  .capa-constelacao .halo-estrela:nth-child(1), .capa-constelacao .halo-estrela:nth-child(8) { --t: 12px; }
  .capa-constelacao .halo-estrela:nth-child(2), .capa-constelacao .halo-estrela:nth-child(7), .capa-constelacao .halo-estrela:nth-child(11) { display: none; }
  .capa-titulo .selo { margin-bottom: 14px; }
  .capa-logo-moldura { width: min(64%, 240px); }
  .capa-tema { font-size: clamp(1.85rem, 8.4vw, 2.2rem); margin-top: 12px; }
  .capa .descricao { margin-top: 8px; }
  .capa .quando.quando--convite { margin-top: 22px; padding: 0; max-width: 330px; gap: 12px 0; }
  .capa .quando.quando--convite > li:first-child { border-bottom: 0; padding-bottom: 0; margin: 0; }
  .capa .quando.quando--convite > li:nth-child(2) { padding-left: 0; padding-right: 18px; justify-content: end; }
  .capa .quando.quando--convite > li:nth-child(3) { padding-left: 18px; border-left: 1px solid rgba(171, 122, 47, .35); }
  .capa .quando--convite li svg { width: 18px; height: 18px; }
  .capa .botoes { margin-top: 24px; gap: 10px; }
  .contagem-faixa-verde { padding-top: 22px; }
}
@media (max-width: 560px) {
  .capa-constelacao { width: 64%; top: 10%; height: 74%; }
  .capa-constelacao .halo-estrela:nth-child(n) { display: block; }
  .capa-constelacao .halo-estrela:nth-child(2), .capa-constelacao .halo-estrela:nth-child(7) { display: none; }
  .capa .quando.quando--convite { grid-template-columns: 1fr 1fr; width: 100%; max-width: 320px; }
  .capa .quando.quando--convite > li:first-child { justify-content: center; }
  .capa .quando.quando--convite > li:nth-child(2) { border-left: 0; justify-content: end; padding: 0 16px 0 0; }
  .capa .quando.quando--convite > li:nth-child(3) { justify-content: start; padding: 0 0 0 16px; }
}

/* =====================================================================
   Mais Natal: bolas penduradas por fios dourados, laço de presente e céu estrelado na contagem
   ===================================================================== */
.capa-bolas { position: absolute; inset: 0 0 auto; height: 0; z-index: 2; pointer-events: none; }
.capa-bola { position: absolute; top: 0; left: var(--x); width: var(--tam); margin-left: calc(var(--tam) / -2); transform-origin: 50% 0; }
.capa-bola::before { content: ""; display: block; width: 1px; height: var(--fio); margin: 0 auto; background: linear-gradient(#9C7A3A, #CFAE6A); }
.capa-bola img { display: block; width: 100%; height: auto; margin-top: -1px; filter: drop-shadow(0 6px 6px rgba(20, 63, 40, .14)); }
@media (prefers-reduced-motion: no-preference) {
  .capa-bola { animation: balancar 6s ease-in-out infinite alternate; animation-delay: calc(var(--atraso) * -1); }
}

/* laço vermelho "amarrando" a faixa verde, como um presente */
.contagem-faixa-verde { border-top: 2px solid #A50D18 !important; }
.contagem-faixa-verde::after { content: ""; position: absolute; left: 0; right: 0; top: 2px; height: 1px; background: rgba(214, 176, 98, .7); }
.contagem-laco { position: absolute; left: 50%; top: -30px; width: 56px; transform: translateX(-50%); z-index: 3; pointer-events: none; }
.contagem-laco img { display: block; width: 100%; height: auto; filter: drop-shadow(0 3px 4px rgba(0, 0, 0, .18)); }
.capa .contagem-cartao { padding-top: 14px; }

/* céu de estrelinhas douradas, bem discreto, no verde */
.contagem-faixa-verde {
  background-color: #143F28 !important;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='120'%3E%3Cg fill='%23D6B062'%3E%3Cpath opacity='.55' d='M24 20c.5 3.4.9 3.9 4.3 4.3-3.4.4-3.8.9-4.3 4.3-.5-3.4-.9-3.9-4.3-4.3 3.4-.4 3.8-.9 4.3-4.3z'/%3E%3Cpath opacity='.35' d='M150 70c.3 2.2.6 2.5 2.8 2.8-2.2.3-2.5.6-2.8 2.8-.3-2.2-.6-2.5-2.8-2.8 2.2-.3 2.5-.6 2.8-2.8z'/%3E%3Ccircle opacity='.4' cx='96' cy='34' r='1'/%3E%3Ccircle opacity='.3' cx='198' cy='22' r='1.2'/%3E%3Ccircle opacity='.35' cx='62' cy='96' r='1'/%3E%3Ccircle opacity='.25' cx='182' cy='104' r='.9'/%3E%3C/g%3E%3C/svg%3E") !important;
  background-size: 220px 120px !important;
}

@media (max-width: 760px) {
  .capa-bola--extra { display: none; }
  .capa-bola { --tam: 26px !important; }
  .capa-bola--esq:first-child { left: 5%; }
  .capa-bola--dir:last-child { left: 95%; }
}
@media (max-width: 560px) {
  .capa-bola:nth-child(1) { --fio: 46px !important; }
  .capa-bola:nth-child(2) { --fio: 80px !important; --tam: 20px !important; left: 11%; }
  .capa-bola:nth-child(5) { --fio: 86px !important; --tam: 20px !important; left: 89%; }
  .capa-bola:nth-child(6) { --fio: 52px !important; }
  .contagem-laco { width: 44px; top: -24px; }
  .capa .contagem-cartao { padding-top: 12px; }
}
@media (max-width: 560px) {
  .capa-bola:nth-child(1) { left: 4%; } .capa-bola:nth-child(6) { left: 96%; }
  .capa-bola:nth-child(2) { left: 9%; } .capa-bola:nth-child(5) { left: 91%; }
  .capa-titulo .selo::before, .capa-titulo .selo::after { width: 20px; }
}

/* =====================================================================
   Refino final da capa (identidade do cartaz oficial)
   ===================================================================== */
.capa-bolas, .contagem-laco { display: none !important; }
.capa { background: #FBF7EF !important; }

/* estrelas no estilo da logo: brilhos dourados de 4 pontas + pequenas estrelas */
.capa-constelacao .halo-estrela { display: none !important; }
.estrela-logo { position: absolute; width: var(--t); height: var(--t); margin: calc(var(--t) / -2) 0 0 calc(var(--t) / -2); }
.estrela-logo svg { display: block; width: 100%; height: 100%; overflow: visible; }
.estrela-logo--5 { opacity: .8; }
@media (prefers-reduced-motion: no-preference) {
  .estrela-logo--brilha { animation: estrela-brilho 5s ease-in-out infinite; animation-delay: calc(var(--d) * -1); }
}
@keyframes estrela-brilho { 0%, 100% { transform: scale(.82); opacity: .7; } 50% { transform: scale(1.06); opacity: 1; } }

/* bloco de data como no cartaz: dia grande em vermelho | mês, local e horário */
.quando-cartaz { display: inline-grid; grid-template-columns: auto auto; align-items: center; gap: 0 22px; margin: clamp(24px, 3vw, 32px) auto 0; text-align: left; }
.cartaz-dia {
  margin: 0; padding-right: 22px; border-right: 1.5px solid rgba(20, 63, 40, .35);
  font-family: var(--f-titulo); font-weight: 400; font-size: clamp(4rem, 6vw, 5rem); line-height: .9; color: #A50D18;
  font-variant-numeric: lining-nums;
}
.cartaz-info { display: grid; gap: 6px; justify-items: start; }
.cartaz-mes { margin: 0; font-weight: 800; font-size: clamp(1.4rem, 2.2vw, 1.75rem); line-height: 1; letter-spacing: -.01em; color: #143F28; text-transform: capitalize; }
.cartaz-semana { display: inline-block; margin-left: 6px; font-weight: 500; font-size: .5em; letter-spacing: .02em; color: #6B7A70; text-transform: none; vertical-align: middle; }
.cartaz-local, .cartaz-hora { margin: 0; display: inline-flex; align-items: center; gap: 7px; font-weight: 700; font-size: .98rem; color: #143F28; }
.cartaz-local { background: #A50D18; color: #FFF9EE; padding: 3px 12px 3px 9px; border-radius: 6px; letter-spacing: .03em; }
.cartaz-local svg, .cartaz-hora svg { width: 15px; height: 15px; stroke-width: 1.6; flex: none; }
.cartaz-local svg { color: #F3D9A0; }
.cartaz-hora svg { color: #AB7A2F; }
.capa .botoes { margin-top: clamp(26px, 3vw, 34px); }

/* transição única e fina para a contagem */
.contagem-faixa-verde { border-top: 0 !important; background-image: none !important; background-color: #143F28 !important; }
.contagem-faixa-verde::after { top: 0 !important; height: 1px !important; background: #C9A35A !important; }

/* cartões da contagem com bordas douradas refinadas */
.capa .contagem-numeros div {
  background: transparent !important; border: 1px solid rgba(201, 163, 90, .55) !important; border-radius: 12px !important;
  box-shadow: inset 0 0 0 3px #143F28, inset 0 0 0 4px rgba(201, 163, 90, .18) !important;
}

@media (max-width: 560px) {
  .capa-tema { font-size: clamp(1.6rem, 7.3vw, 1.95rem) !important; }
  .capa-constelacao { width: 70%; }
  .estrela-logo { --t: 9px !important; }
  .estrela-logo:nth-child(2), .estrela-logo:nth-child(8) { --t: 15px !important; }
  .estrela-logo:nth-child(10) { --t: 13px !important; }
  .estrela-logo:nth-child(4), .estrela-logo:nth-child(11) { display: none; }
  .quando-cartaz { margin-top: 20px; gap: 0 16px; }
  .cartaz-dia { font-size: 3.6rem; padding-right: 16px; }
  .cartaz-mes { font-size: 1.3rem; }
  .cartaz-local, .cartaz-hora { font-size: .88rem; }
  .capa .botoes { margin-top: 22px; }
}

/* =====================================================================
   Data/horário/local com ícones, árvore de Natal lateral e neve suave
   ===================================================================== */
.quando-cartaz { display: none; }
.capa .neve { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; display: block; }
.capa > .miolo { z-index: 2; }
.contagem-faixa-verde { position: relative; z-index: 0; }

/* árvore decorativa na lateral esquerda */
.capa-arvore { position: absolute; left: clamp(16px, 5vw, 90px); bottom: 0; z-index: 0; width: clamp(150px, 15vw, 210px); pointer-events: none; }
.capa-arvore svg { display: block; width: 100%; height: auto; }
.capa-arvore::after { content: ""; position: absolute; left: -20%; right: -20%; bottom: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(201, 163, 90, .6), transparent); }
@media (prefers-reduced-motion: no-preference) {
  .arvore-luz { animation: arvore-piscar 3.2s ease-in-out infinite; animation-delay: calc(var(--d) * -1); }
}
@keyframes arvore-piscar { 0%, 100% { opacity: .35; } 50% { opacity: 1; } }

/* a árvore fica no chão da área creme, logo acima da faixa da contagem */
.capa { position: relative; }
.capa-arvore { bottom: auto; top: auto; }
.capa > .miolo { position: relative; }
.capa-arvore { left: 0; bottom: 0; }
.capa-arvore svg { margin-bottom: -2px; }
@media (max-width: 1100px) { .capa-arvore { width: 140px; left: -4px; } }
@media (max-width: 900px) { .capa-arvore { width: 108px; } }
@media (max-width: 560px) {
  .capa-arvore { width: 74px; left: -10px; opacity: .95; }
  .capa-arvore::after { display: none; }
}

/* =====================================================================
   CAPA — visual de campanha (ramos, estrelas, presentes e placa "Natal")
   ===================================================================== */
.capa { padding: 0 !important; background: #FBF7EF !important; }
.capa-cena { position: relative; overflow: hidden; padding: clamp(30px, 3.4vw, 46px) 0 clamp(56px, 6vw, 80px); }
.capa-cena > .miolo { position: relative; z-index: 2; padding-top: 0 !important; padding-bottom: 0 !important; }
.capa-decor { position: absolute; top: 0; bottom: 0; z-index: 0; width: auto; aspect-ratio: 330 / 1154; background: no-repeat top / 100% 100%; pointer-events: none; }
.capa-decor--esq { left: 0; background-image: url(img/natal-esq.webp); }
.capa-decor--dir { right: 0; background-image: url(img/natal-dir.webp); }
.capa .neve { z-index: 1; }
.capa-arvore, .capa-constelacao, .capa-divisa { display: none !important; }

/* título */
.capa-texto { max-width: 44rem; }
.capa-titulo .selo { display: grid; justify-items: center; gap: 0; margin: 0 0 6px !important; font-size: clamp(1.05rem, 1.5vw, 1.2rem) !important; color: #AB7A2F !important; }
.capa-titulo .selo::before, .capa-titulo .selo::after { display: none !important; }
.capa-titulo .selo > span:first-child { display: flex; align-items: center; gap: 14px; }
.capa-titulo .selo > span:first-child::before, .capa-titulo .selo > span:first-child::after { content: ""; width: 54px; height: 1px; background: rgba(171, 122, 47, .7); }
.selo-sub { display: block; }
.capa-logo { width: min(100%, 360px) !important; filter: none !important; margin-top: 4px; }
.capa-tema { display: block; margin: clamp(-6px, -.4vw, -2px) auto 0 !important; width: min(100%, 520px); font-size: 0 !important; line-height: 0 !important; }
.capa-tema img { display: block; width: 100%; height: auto; filter: drop-shadow(0 10px 16px rgba(120, 20, 24, .18)); }
.capa .descricao { font-family: var(--f-titulo); font-style: normal; font-weight: 400; font-size: clamp(1.1rem, 1.6vw, 1.3rem) !important; line-height: 1.45; color: #4C4A3E !important; max-width: 30rem; margin: 14px auto 0 !important; }
.capa-ornamento { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 12px auto 0; }
.capa-ornamento i { width: 64px; height: 1px; background: rgba(171, 122, 47, .7); }
.capa-ornamento svg { width: 14px; height: 14px; fill: #C39A4E; }

/* data, horário e local */
.capa .quando.quando--convite { margin-top: 18px !important; }

/* botões */
.capa .botoes { margin-top: clamp(22px, 2.6vw, 30px) !important; display: grid !important; justify-items: center; gap: 12px !important; }
.capa .botao--festivo, .capa .botao--mapa { width: min(100%, 420px); min-height: 56px !important; justify-content: center; position: relative; padding: 0 52px !important; border-radius: 999px !important; }
.capa .botao--festivo {
  font-family: var(--f-titulo) !important; font-weight: 500 !important; font-size: 1.12rem !important; letter-spacing: .01em;
  background: linear-gradient(180deg, #A50D18 0%, #A50D18 60%, #A50D18 100%) !important; color: #FFF7EA !important;
  border: 2px solid #D9B46A !important; box-shadow: 0 6px 16px rgba(140, 13, 26, .2) !important;
}
.capa .botao--festivo:hover { filter: brightness(1.06); transform: translateY(-1px); }
.capa .botao--mapa { width: min(100%, 380px); min-height: 52px !important; font-size: 1.02rem !important; background: #FFFCF5 !important; border: 1.5px solid #143F28 !important; color: #143F28 !important; }
.capa .botao--mapa:hover { background: #143F28 !important; color: #FFFCF5 !important; }
.capa .botoes .botao > svg:first-child { position: absolute; left: 24px; width: 20px; height: 20px; }
.capa .botoes .seta-botao { position: absolute; right: 22px; width: 16px; height: 16px; }

/* faixa da contagem com moldura ornamental dourada */
.capa .contagem-faixa-verde { position: relative; margin-top: -10px; padding: 34px 0 clamp(26px, 3vw, 34px) !important; background: #143F28 !important; border: 0 !important; z-index: 3; }
.capa .contagem-faixa-verde::after { display: none !important; }
.contagem-moldura { position: absolute; left: 0; top: -22px; width: 100%; height: 44px; display: block; }
.cm-fundo { fill: #143F28; }
.cm-fio { fill: none; stroke: #D3AF66; stroke-width: 1.6; vector-effect: non-scaling-stroke; }
.cm-fio--fino { stroke-width: .8; opacity: .7; }
.capa .contagem-rotulo { font-family: var(--f-titulo); font-size: .8rem !important; letter-spacing: .28em !important; color: #D9B46A !important; }
.capa .contagem-rotulo::before, .capa .contagem-rotulo::after {
  width: 54px !important; height: 10px !important; background: none !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 54 10'%3E%3Cpath d='M0 5h40' stroke='%23D9B46A' stroke-width='1'/%3E%3Cpath fill='%23D9B46A' d='M47 0c.5 3.3.9 3.7 4.3 4.3-3.4.6-3.8 1-4.3 4.3-.5-3.3-.9-3.7-4.3-4.3 3.4-.6 3.8-1 4.3-4.3z'/%3E%3C/svg%3E") !important;
  background-size: 100% 100% !important;
}
.capa .contagem-rotulo::before { transform: scaleX(-1); }
.capa .contagem-numeros { gap: clamp(10px, 2vw, 16px) !important; max-width: 560px; margin-inline: auto !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
.capa .contagem-numeros div {
  border: 1.5px solid #C9A35A !important; border-radius: 14px !important; background: rgba(255, 255, 255, .02) !important;
  box-shadow: inset 0 0 0 4px #143F28, inset 0 0 0 5px rgba(201, 163, 90, .55) !important; padding: 14px 4px 12px !important;
}
.capa .contagem-numeros strong { font-family: var(--f-titulo) !important; font-weight: 600 !important; font-size: clamp(2rem, 4vw, 2.6rem) !important; color: #FBF3E1 !important; }
.capa .contagem-numeros span { color: #E2CC9A !important; font-size: .62rem !important; letter-spacing: .16em !important; }

/* cabeçalho: botão de menu redondo no celular */
@media (max-width: 720px) {
  .botao-menu { background: #CFE0D5; border-radius: 50%; width: 42px; height: 42px; margin-right: 0; }
  .botao-menu span { background: #143F28 !important; }
}

@media (max-width: 560px) {
  .capa-cena { padding: 22px 0 44px; }
  .capa-titulo .selo { font-size: 1rem !important; }
  .capa-titulo .selo > span:first-child::before, .capa-titulo .selo > span:first-child::after { width: 40px; }
  .capa-logo { width: min(62%, 230px) !important; }
  .capa-tema { width: min(100%, 340px); margin-top: -2px !important; }
  .capa .descricao { font-size: 1.06rem !important; max-width: 19rem; margin-top: 10px !important; }
  .capa-ornamento { margin-top: 10px; }
  .capa-ornamento i { width: 44px; }
  .capa .quando.quando--convite { grid-template-columns: repeat(3, auto) !important; max-width: 360px !important; gap: 0 !important; margin-top: 14px !important; }
  .capa .quando.quando--convite > li, .capa .quando.quando--convite > li:first-child, .capa .quando.quando--convite > li:nth-child(2), .capa .quando.quando--convite > li:nth-child(3) {
    grid-column: auto !important; display: grid !important; grid-template-columns: auto auto !important; justify-content: center !important; column-gap: 6px; padding: 0 8px !important; margin: 0 !important; border: 0 !important;
  }
  .capa .quando.quando--convite > li + li { border-left: 1px solid rgba(171, 122, 47, .4) !important; }
  .capa .quando--convite li svg { display: block !important; width: 18px !important; height: 18px !important; align-self: start; margin-top: 2px; }
  .quando-rotulo { font-size: .66rem !important; }
  .quando-valor { font-size: .78rem !important; white-space: normal !important; line-height: 1.2; }
  .capa .quando--convite li:first-child .quando-valor { max-width: 7.6em; }
  .capa .botoes { gap: 10px !important; margin-top: 18px !important; }
  .capa .botao--festivo { min-height: 52px !important; font-size: 1.05rem !important; width: min(100%, 320px); }
  .capa .botao--mapa { min-height: 46px !important; font-size: .96rem !important; width: min(100%, 300px); }
  .capa .contagem-faixa-verde { padding-top: 30px !important; }
  .contagem-moldura { top: -16px; height: 32px; }
  .capa .contagem-numeros { gap: 8px !important; }
  .capa .contagem-numeros div { padding: 10px 2px 8px !important; border-radius: 12px !important; }
  .capa .contagem-numeros strong { font-size: 1.7rem !important; }
  .capa .contagem-numeros span { font-size: .5rem !important; letter-spacing: .1em !important; }
  .capa .contagem-rotulo { font-size: .66rem !important; letter-spacing: .2em !important; }
}
@media (max-width: 380px) { .quando-valor { font-size: .74rem !important; } .capa .quando--convite li svg { display: none !important; } .capa .quando.quando--convite > li { grid-template-columns: auto !important; } }
/* ajustes da capa-campanha */
.capa .quando--convite li { align-items: start !important; }
.capa .quando--convite li svg { grid-row: 1 / span 2; align-self: center; }
@media (min-width: 761px) {
  .capa-logo { width: min(100%, 320px) !important; }
  .capa-tema { width: min(100%, 470px); }
  .capa .descricao { max-width: 36rem; }
  .capa .botoes { display: flex !important; justify-content: center; flex-wrap: wrap; }
  .capa .botao--festivo { width: 330px; }
  .capa .botao--mapa { width: 300px; min-height: 56px !important; }
}
@media (max-width: 560px) {
  .capa .quando--convite li svg { grid-row: 1 / span 2; align-self: start; }
  .capa .quando.quando--convite { align-items: start; }
  .capa .quando--convite li:first-child .quando-valor { max-width: 8.6em; }
  .capa .descricao { font-weight: 400 !important; }
}
@media (max-width: 560px) {
  .capa .quando.quando--convite { grid-template-columns: 1.35fr 1fr 1.15fr !important; width: 100%; max-width: 370px !important; }
  .capa .quando.quando--convite > li { justify-content: start !important; padding: 0 6px 0 8px !important; }
  .capa .quando--convite li:first-child .quando-valor { max-width: none; }
}
@media (max-width: 560px) {
  .capa .quando.quando--convite { grid-template-columns: 1.55fr .95fr 1.1fr !important; width: 100% !important; max-width: 100% !important; }
  .capa .quando.quando--convite > li:nth-child(n) { column-gap: 5px !important; padding: 0 4px 0 7px !important; }
  .capa .quando.quando--convite > li:nth-child(n+2) { border-left: 1px solid rgba(171, 122, 47, .4) !important; }
  .capa .quando.quando--convite > li:first-child { padding-left: 0 !important; }
}
.capa-cena > .miolo, .capa .contagem-faixa-verde > .miolo { padding-left: max(var(--gutter), env(safe-area-inset-left, 0px)) !important; padding-right: max(var(--gutter), env(safe-area-inset-right, 0px)) !important; }
@media (max-width: 560px) { :root { --gutter: 14px; } }
@media (max-width: 380px) {
  .capa .quando.quando--convite > li:nth-child(n) { grid-template-columns: auto auto !important; column-gap: 4px !important; padding: 0 3px 0 5px !important; }
  .capa .quando.quando--convite > li:first-child { padding-left: 0 !important; }
  .capa .quando.quando--convite > li:nth-child(n) svg { display: block !important; width: 15px !important; height: 15px !important; }
  .capa .quando.quando--convite .quando-valor { font-size: .72rem !important; }
  .capa .quando.quando--convite { grid-template-columns: 1.6fr .9fr 1.1fr !important; }
}
@media (max-width: 380px) {
  .capa-cena { padding-top: 14px !important; padding-bottom: 38px !important; }
  .capa-logo { width: min(56%, 200px) !important; }
  .capa-tema { width: min(100%, 300px) !important; }
  .capa .descricao { font-size: 1rem !important; margin-top: 6px !important; }
  .capa-ornamento { margin-top: 6px !important; }
}

/* Refino: placa menor, decoração mais leve, mais respiro */
.capa-decor { opacity: .92; }
.capa-tema { width: min(100%, 340px) !important; margin-top: 4px !important; }
.capa-tema img { filter: drop-shadow(0 6px 10px rgba(120, 20, 24, .12)) !important; }
.capa-logo { width: min(100%, 340px) !important; }
.capa .descricao { margin-top: 16px !important; font-size: clamp(1.05rem, 1.4vw, 1.2rem) !important; }
.capa .quando.quando--convite { margin-top: 20px !important; }
@media (max-width: 560px) {
  .capa-logo { width: min(64%, 240px) !important; }
  .capa-tema { width: min(72%, 250px) !important; }
  .capa .descricao { font-size: 1rem !important; margin-top: 12px !important; }
}
@media (max-width: 380px) {
  .capa-logo { width: min(60%, 214px) !important; }
  .capa-tema { width: min(70%, 230px) !important; }
}

/* =====================================================================
   Capa: título em texto, informações elegantes e contagem na primeira tela
   ===================================================================== */
.capa-tema.capa-tema--texto {
  width: auto !important; font-size: clamp(2rem, 3.4vw, 2.75rem) !important; line-height: 1.1 !important;
  font-family: var(--f-titulo) !important; font-style: italic !important; font-weight: 400 !important;
  color: #A50D18 !important; letter-spacing: .005em; margin: 10px auto 0 !important; text-shadow: none !important;
  display: flex !important; align-items: center; justify-content: center; gap: 14px;
}
.capa-tema--texto::before, .capa-tema--texto::after {
  content: ""; display: block !important; flex: none; width: 13px; height: 13px; margin: 0 !important;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-10 -10 20 20'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%23F6DB93'/%3E%3Cstop offset='1' stop-color='%23AB7A2F'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath fill='url(%23g)' d='M0-10C.9-2.2 2.2-.9 10 0 2.2.9.9 2.2 0 10-.9 2.2-2.2.9-10 0-2.2-.9-.9-2.2 0-10Z'/%3E%3C/svg%3E") center / contain no-repeat !important;
}
.capa .descricao { margin-top: 10px !important; }
.capa-ornamento { display: none !important; }

/* informações do evento: ícones em círculos dourados, sem rótulos, separadores delicados */
.evento-info {
  list-style: none; margin: 22px auto 0; padding: 12px 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px 0;
  border-top: 1px solid rgba(171, 122, 47, .35); border-bottom: 1px solid rgba(171, 122, 47, .35); width: fit-content; max-width: 100%;
}
.evento-info li { display: inline-flex; align-items: center; gap: 9px; padding: 0 20px; font-weight: 600; font-size: 1rem; color: #143F28; line-height: 1.2; }
.evento-info li + li { border-left: 1px solid rgba(171, 122, 47, .4); }
.evento-icone { flex: none; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: #F4E8CC; color: #9A7230; }
.evento-icone svg { width: 15px; height: 15px; stroke-width: 1.7; }

/* contagem visível já na primeira tela */
.capa-cena { padding-top: clamp(18px, 2.2vw, 28px) !important; padding-bottom: clamp(40px, 4vw, 52px) !important; }
.capa-titulo .selo { margin-bottom: 4px !important; }
.capa .botoes { margin-top: 20px !important; }
@media (min-width: 761px) {
  .capa-logo { width: min(100%, 300px) !important; }
  .capa .botao--festivo, .capa .botao--mapa { min-height: 50px !important; }
  .capa .contagem-faixa-verde { padding: 26px 0 22px !important; }
  .capa .contagem-numeros div { padding: 10px 4px 8px !important; }
  .capa .contagem-numeros strong { font-size: 2.1rem !important; }
}
@media (max-width: 560px) {
  .capa-cena { padding-top: 14px !important; padding-bottom: 34px !important; }
  .capa-logo { width: min(58%, 220px) !important; }
  .capa-tema.capa-tema--texto { font-size: 1.62rem !important; gap: 10px; margin-top: 6px !important; }
  .capa-tema--texto::before, .capa-tema--texto::after { width: 10px; height: 10px; }
  .capa .descricao { font-size: .95rem !important; margin-top: 6px !important; max-width: 18rem; }
  .evento-info { margin-top: 14px; padding: 10px 0; gap: 8px 0; width: 100%; max-width: 330px; }
  .evento-info li { font-size: .9rem; padding: 0 12px; gap: 7px; }
  .evento-info .evento-data { flex-basis: 100%; justify-content: center; border-left: 0 !important; padding-bottom: 8px; border-bottom: 1px dashed rgba(171, 122, 47, .3); margin: 0 18px; }
  .evento-info .evento-data + li { border-left: 0; }
  .evento-icone { width: 26px; height: 26px; }
  .evento-icone svg { width: 13px; height: 13px; }
  .capa .botoes { margin-top: 16px !important; gap: 8px !important; }
  .capa .botao--festivo { min-height: 48px !important; }
  .capa .botao--mapa { min-height: 44px !important; }
  .capa .contagem-faixa-verde { padding-top: 24px !important; padding-bottom: 20px !important; }
  .capa .contagem-numeros strong { font-size: 1.55rem !important; }
}
@media (max-width: 380px) {
  .capa-logo { width: min(52%, 190px) !important; }
  .capa-tema.capa-tema--texto { font-size: 1.45rem !important; }
  .evento-info li { font-size: .84rem; padding: 0 9px; }
}

/* =====================================================================
   Revisão geral — padronização, hero compacta e seções coerentes
   ===================================================================== */
:root { --raio-padrao: 14px; --ouro-fio: rgba(171, 122, 47, .45); }
.estrela-ornamento { display: inline-block; width: 10px; height: 10px; }

/* elo entre seções: fio dourado com estrelinha nos sobretítulos */
.sobretitulo::after {
  width: 46px !important; height: 8px !important; opacity: 1 !important; background: none !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 46 8'%3E%3Cpath d='M0 4h34' stroke='%23AB7A2F' stroke-width='1' opacity='.7'/%3E%3Cpath fill='%23AB7A2F' d='M41 0c.4 2.7.8 3 3.5 3.5-2.7.5-3.1.8-3.5 3.5-.4-2.7-.8-3-3.5-3.5 2.7-.5 3.1-.8 3.5-3.5z'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important; background-size: 100% 100% !important;
}
.sobretitulo--centro::before, .sobre-conteudo .sobretitulo::before { transform: scaleX(-1); width: 46px !important; height: 8px !important; opacity: 1 !important;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 46 8'%3E%3Cpath d='M0 4h34' stroke='%23AB7A2F' stroke-width='1' opacity='.7'/%3E%3Cpath fill='%23AB7A2F' d='M41 0c.4 2.7.8 3 3.5 3.5-2.7.5-3.1.8-3.5 3.5-.4-2.7-.8-3-3.5-3.5 2.7-.5 3.1-.8 3.5-3.5z'/%3E%3C/svg%3E") no-repeat center / 100% 100% !important; }
.faixa-escura .sobretitulo::after, .faixa-escura .sobretitulo::before { filter: brightness(1.45); }

/* ---------- HERO ---------- */
/* decoração mais leve perto dos botões */
.capa-decor { -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 52%, rgba(0, 0, 0, .55) 74%, rgba(0, 0, 0, .25) 100%); mask-image: linear-gradient(180deg, #000 0%, #000 52%, rgba(0, 0, 0, .55) 74%, rgba(0, 0, 0, .25) 100%); }
/* título: serifada elegante, sem inclinação */
.capa-tema.capa-tema--texto {
  font-style: normal !important; font-weight: 500 !important; letter-spacing: .01em !important;
  font-size: clamp(1.7rem, 2.6vw, 2.2rem) !important; color: #A50D18 !important; margin-top: 12px !important;
}
.capa .descricao { font-family: var(--f-texto) !important; font-weight: 500 !important; color: #4A5A50 !important; font-size: clamp(.98rem, 1.2vw, 1.08rem) !important; margin-top: 8px !important; }
/* informações: sem linhas, ícones dourados, texto verde */
.evento-info { border: 0 !important; padding: 0 !important; margin-top: 20px !important; gap: 12px 30px !important; }
.evento-info li, .evento-info li + li { border: 0 !important; padding: 0 !important; margin: 0 !important; font-size: 1rem; font-weight: 600; color: #143F28; gap: 8px; }
.evento-icone { width: auto !important; height: auto !important; background: none !important; color: #AB7A2F !important; }
.evento-icone svg { width: 18px !important; height: 18px !important; stroke-width: 1.5 !important; }
.evento-info .evento-data { border-bottom: 0 !important; }
/* botões: vermelho liso sem contorno dourado */
.capa .botao--festivo { border: 0 !important; background: #A50D18 !important; box-shadow: 0 4px 12px rgba(150, 18, 36, .16) !important; font-family: var(--f-texto) !important; font-weight: 700 !important; font-size: 1rem !important; letter-spacing: 0 !important; }
.capa .botao--festivo:hover { background: #A50D18 !important; filter: none; }
.capa .botao--mapa { border: 1.5px solid #143F28 !important; font-weight: 700 !important; }
/* contagem: contorno dourado único e delicado */
.capa .contagem-numeros div { box-shadow: none !important; border: 1px solid rgba(201, 163, 90, .6) !important; border-radius: 12px !important; background: rgba(255, 255, 255, .03) !important; }
.capa .contagem-numeros strong { font-variant-numeric: lining-nums tabular-nums; letter-spacing: .01em; }

@media (max-width: 560px) {
  .capa-decor { width: 30vw !important; -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 40%, rgba(0, 0, 0, .35) 62%, transparent 82%); mask-image: linear-gradient(180deg, #000 0%, #000 40%, rgba(0, 0, 0, .35) 62%, transparent 82%); }
  .capa-tema.capa-tema--texto { font-size: 1.45rem !important; margin-top: 8px !important; gap: 8px; }
  .capa .descricao { font-size: .92rem !important; margin-top: 6px !important; }
  .evento-info { margin-top: 14px !important; gap: 8px 22px !important; max-width: 320px; }
  .evento-info li { font-size: .9rem !important; }
  .evento-info .evento-data { flex-basis: 100%; justify-content: center; margin: 0 !important; }
  .evento-icone svg { width: 16px !important; height: 16px !important; }
  .capa .botoes { margin-top: 16px !important; gap: 8px !important; }
  .capa .botao--festivo { min-height: 44px !important; font-size: .95rem !important; width: min(100%, 300px) !important; }
  .capa .botao--mapa { min-height: 42px !important; font-size: .92rem !important; width: min(100%, 300px) !important; }
  .capa .botoes .botao > svg:first-child { left: 20px; width: 18px; height: 18px; }
}

/* ---------- O que você vai encontrar ---------- */
.secao--destaques { padding-block: clamp(36px, 5vw, 64px) clamp(36px, 5vw, 64px) !important; }
.destaques-topo { margin-bottom: clamp(18px, 2.4vw, 28px) !important; gap: 6px !important; }
.destaques { gap: 22px 16px !important; max-width: 760px !important; }
.destaque { gap: 10px !important; padding-top: 0 !important; }
.destaque::before { display: none !important; }
.enfeite {
  position: relative; display: grid; place-items: center; width: 58px; height: 58px; margin-top: 10px; border-radius: 50%; color: #FBF3E1;
  background: radial-gradient(circle at 34% 30%, rgba(255, 255, 255, .28), rgba(255, 255, 255, 0) 42%), var(--cor-enfeite);
  box-shadow: inset 0 -6px 10px rgba(0, 0, 0, .18), 0 6px 14px rgba(20, 63, 40, .12);
}
.enfeite::before { content: ""; position: absolute; top: -8px; left: 50%; width: 14px; height: 8px; transform: translateX(-50%); border-radius: 3px 3px 1px 1px; background: linear-gradient(90deg, #AB7A2F, #F0D48C, #AB7A2F); }
.enfeite::after { content: ""; position: absolute; top: -15px; left: 50%; width: 8px; height: 8px; transform: translateX(-50%); border: 1.2px solid #AB7A2F; border-radius: 50%; }
.enfeite svg { width: 24px; height: 24px; stroke-width: 1.3; }
.enfeite--vermelho { --cor-enfeite: #A50D18; }
.enfeite--verde { --cor-enfeite: #215C3D; }
.enfeite--dourado { --cor-enfeite: #C39A4E; color: #FFF8E8; }
.destaque-nome { font-family: var(--f-titulo) !important; font-weight: 600 !important; font-size: 1.05rem !important; color: #143F28 !important; }
@media (max-width: 760px) {
  .destaques { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 20px 12px !important; }
  .destaques-topo h2 { font-size: 1.32rem !important; }
  .enfeite { width: 52px; height: 52px; }
  .enfeite svg { width: 21px; height: 21px; }
  .destaque-nome { font-size: .98rem !important; }
}

/* ---------- Ingressos ---------- */
#ingressos-secao { border-top: 1px solid rgba(201, 163, 90, .5); }
.ingressos { gap: 12px !important; }
.ingresso {
  text-align: center; justify-items: center; align-content: center; gap: 4px !important; padding: 20px 14px 18px !important;
  border: 1px solid rgba(201, 163, 90, .45) !important; border-radius: var(--raio-padrao) !important; background: rgba(255, 255, 255, .035) !important;
}
.ingresso .tipo { min-height: 0 !important; font-size: .74rem !important; letter-spacing: .12em !important; color: #E2C07A !important; }
.ingresso .valor { font-size: clamp(2.2rem, 4vw, 2.7rem) !important; color: #FBF3E1 !important; margin: 2px 0 !important; }
.ingresso .obs { border-top: 0 !important; padding-top: 0 !important; margin-top: 0 !important; font-size: .86rem !important; color: #C9D3CC !important; }
.ingresso .obs::before { content: ""; display: block; width: 28px; height: 1px; margin: 4px auto 8px; background: rgba(201, 163, 90, .6); }
#ingressos-secao .botao--festivo { background: #A50D18 !important; box-shadow: 0 4px 12px rgba(0, 0, 0, .18) !important; border: 0 !important; }
.ingressos-contato { gap: 6px 14px !important; }
.ingressos-contato a { border-bottom: 0 !important; text-decoration: underline; text-decoration-color: rgba(241, 217, 160, .45); text-underline-offset: 3px; }
@media (max-width: 860px) {
  .ingressos-layout .cabeca-secao { text-align: center; justify-items: center; }
  .ingressos-layout .cabeca-secao p { max-width: 22rem; }
}
@media (max-width: 560px) {
  .ingressos-layout .cabeca-secao h2 { font-size: 1.45rem !important; }
  .ingresso { padding: 16px 10px 14px !important; }
  .ingresso .tipo { font-size: .66rem !important; }
  .ingresso .valor { font-size: 2rem !important; }
  #ingressos-secao .botao--festivo { min-height: 48px !important; }
}

/* ---------- Barra fixa ---------- */
@media (max-width: 720px) {
  :root { --barra: 48px; }
  .barra-ingresso { padding-top: 5px !important; padding-bottom: calc(5px + env(safe-area-inset-bottom, 0px)) !important; }
  .barra-ingresso .botao { min-height: 38px !important; padding: 0 16px !important; font-size: .84rem !important; background: #A50D18 !important; box-shadow: none !important; }
  .barra-ingresso strong { font-size: .84rem !important; }
}
/* ---------- Padronização ---------- */
.atalho, .expo, .momento, .ingresso { border-radius: var(--raio-padrao) !important; }
.botao { border-radius: 999px; }
@media (max-width: 860px) {
  .ingressos-layout .sobretitulo::before { content: ""; display: inline-block; vertical-align: middle; margin-right: 12px; transform: scaleX(-1); width: 46px; height: 8px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 46 8'%3E%3Cpath d='M0 4h34' stroke='%23AB7A2F' stroke-width='1' opacity='.7'/%3E%3Cpath fill='%23AB7A2F' d='M41 0c.4 2.7.8 3 3.5 3.5-2.7.5-3.1.8-3.5 3.5-.4-2.7-.8-3-3.5-3.5 2.7-.5 3.1-.8 3.5-3.5z'/%3E%3C/svg%3E") no-repeat center / 100% 100%; filter: brightness(1.45); }
}
@media (min-width: 761px) {
  .capa-cena { padding-top: 32px !important; padding-bottom: 54px !important; }
  .capa-logo { width: min(100%, 320px) !important; }
  .evento-info { margin-top: 24px !important; }
  .capa .botoes { margin-top: 26px !important; }
}

/* =====================================================================
   Estilo dos mockups — um único vermelho (#A50D18), verde, dourado e creme
   ===================================================================== */
:root { --ouro-estrela: #C9A050; }

/* HERO: só os ramos de cima nos cantos (sem presentes) */
.capa-decor { -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 34%, transparent 56%) !important; mask-image: linear-gradient(180deg, #000 0%, #000 34%, transparent 56%) !important; opacity: 1 !important; }
@media (max-width: 560px) { .capa-decor { width: 33vw !important; -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 30%, transparent 48%) !important; mask-image: linear-gradient(180deg, #000 0%, #000 30%, transparent 48%) !important; } }

.capa-tema.capa-tema--texto { font-weight: 600 !important; color: var(--vermelho) !important; letter-spacing: 0 !important; }
.capa-ornamento { display: flex !important; margin: 8px auto 0 !important; }
.capa-ornamento i { width: 72px !important; background: rgba(171, 122, 47, .6) !important; }
.capa-ornamento svg { width: 13px !important; height: 13px !important; fill: var(--ouro-estrela) !important; }
.capa .descricao { margin-top: 10px !important; }

/* informações: ícones em círculos creme, divisórias douradas */
.evento-info { gap: 0 !important; margin-top: 20px !important; flex-wrap: nowrap !important; align-items: center !important; }
.evento-info li { padding: 0 22px !important; gap: 10px !important; text-align: left; }
.evento-info li + li { border-left: 1px solid rgba(171, 122, 47, .55) !important; }
.evento-icone { width: 38px !important; height: 38px !important; border-radius: 50% !important; background: #F3E6CB !important; color: #AB7A2F !important; }
.evento-icone svg { width: 18px !important; height: 18px !important; stroke-width: 1.6 !important; }
.evento-texto strong { font-weight: 700; }
.evento-texto span { font-weight: 500; }

/* botões no mesmo vermelho */
.capa .botao--festivo, #ingressos-secao .botao--festivo, .barra-ingresso .botao { background: var(--vermelho) !important; }
.capa .botao--festivo:hover, #ingressos-secao .botao--festivo:hover { background: var(--vermelho) !important; transform: translateY(-1px); box-shadow: 0 8px 18px rgba(165, 13, 24, .25) !important; }

@media (max-width: 560px) {
  .capa-tema.capa-tema--texto { font-size: 1.62rem !important; }
  .evento-info { max-width: 100% !important; width: 100%; justify-content: center; }
  .evento-info .evento-data { flex-basis: auto !important; }
  .evento-info li { padding: 0 8px !important; gap: 6px !important; font-size: .82rem !important; }
  .evento-info li:first-child { padding-left: 0 !important; }
  .evento-info li:last-child { padding-right: 0 !important; }
  .evento-icone { width: 30px !important; height: 30px !important; }
  .evento-icone svg { width: 15px !important; height: 15px !important; }
  .evento-texto { display: grid; line-height: 1.25; }
  .evento-texto span { font-size: .78rem; }
}
@media (max-width: 380px) {
  .evento-info li { font-size: .76rem !important; padding: 0 5px !important; gap: 4px !important; }
  .evento-icone { width: 24px !important; height: 24px !important; }
  .evento-icone svg { width: 13px !important; height: 13px !important; }
  .evento-texto span { font-size: .72rem; }
}

/* sobretítulos centrais com estrela nas duas pontas */
.destaques-topo .sobretitulo, #ingressos-secao .sobretitulo { display: inline-flex; align-items: center; gap: 12px; }

/* O QUE VOCÊ VAI ENCONTRAR: enfeites brilhantes com estrelinhas */
.enfeite { width: 66px !important; height: 66px !important; margin-top: 14px !important; color: #EFCF86 !important;
  background: radial-gradient(circle at 34% 28%, rgba(255, 255, 255, .45), rgba(255, 255, 255, 0) 38%), radial-gradient(circle at 65% 75%, rgba(0, 0, 0, .28), rgba(0, 0, 0, 0) 60%), var(--cor-enfeite) !important;
  box-shadow: 0 8px 16px rgba(20, 63, 40, .14) !important; }
.enfeite--vermelho { --cor-enfeite: var(--vermelho) !important; }
.enfeite--verde { --cor-enfeite: #215C3D !important; }
.enfeite--dourado { --cor-enfeite: #C9A050 !important; color: #FFF8E8 !important; }
.enfeite::before { top: -9px !important; width: 16px !important; height: 9px !important; }
.enfeite::after { top: -17px !important; width: 9px !important; height: 9px !important; }
.enfeite svg { width: 26px !important; height: 26px !important; stroke-width: 1.4 !important; }
.enfeite-brilho { position: absolute; width: 12px; height: 12px; left: -20px; top: 18px; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-10 -10 20 20'%3E%3Cpath fill='%23C9A050' d='M0-10C.9-2.2 2.2-.9 10 0 2.2.9.9 2.2 0 10-.9 2.2-2.2.9-10 0-2.2-.9-.9-2.2 0-10Z'/%3E%3C/svg%3E") center / contain no-repeat; }
.enfeite-brilho--2 { left: auto; right: -20px; top: 4px; width: 13px; height: 13px; }
.enfeite-brilho--3 { left: auto; right: -16px; top: auto; bottom: 2px; width: 9px; height: 9px; }
.enfeite--vermelho:nth-of-type(n) .enfeite-brilho--3 { opacity: .9; }
.destaque:nth-child(2n) .enfeite-brilho { left: -24px; top: 26px; }
.destaque:nth-child(n+3) .enfeite-brilho--3 { display: none; }
.destaque-nome { font-size: 1.12rem !important; font-weight: 700 !important; }
.destaques { gap: 26px 16px !important; }
.secao--destaques { padding-bottom: clamp(56px, 6vw, 80px) !important; }

/* INGRESSOS: mesma moldura dourada da contagem, título centralizado */
#ingressos-secao { position: relative; border-top: 0 !important; padding-top: clamp(40px, 5vw, 64px) !important; }
.secao-moldura { position: absolute; left: 0; top: -22px; width: 100%; height: 44px; z-index: 2; }
#ingressos-secao .cabeca-secao { text-align: center; justify-items: center; }
#ingressos-secao .sobretitulo { font-family: var(--f-titulo); font-weight: 600; letter-spacing: .24em; color: #D9B46A !important; }
#ingressos-secao .sobretitulo::before { content: "" !important; display: inline-block !important; transform: scaleX(-1); width: 46px !important; height: 8px !important; margin: 0 !important;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 46 8'%3E%3Cpath d='M0 4h34' stroke='%23D9B46A' stroke-width='1'/%3E%3Cpath fill='%23D9B46A' d='M41 0c.4 2.7.8 3 3.5 3.5-2.7.5-3.1.8-3.5 3.5-.4-2.7-.8-3-3.5-3.5 2.7-.5 3.1-.8 3.5-3.5z'/%3E%3C/svg%3E") no-repeat center / 100% 100% !important; filter: none !important; }
#ingressos-secao .sobretitulo::after { margin: 0 !important; filter: none !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 46 8'%3E%3Cpath d='M0 4h34' stroke='%23D9B46A' stroke-width='1'/%3E%3Cpath fill='%23D9B46A' d='M41 0c.4 2.7.8 3 3.5 3.5-2.7.5-3.1.8-3.5 3.5-.4-2.7-.8-3-3.5-3.5 2.7-.5 3.1-.8 3.5-3.5z'/%3E%3C/svg%3E") !important; }
#ingressos-secao h2 { color: #FBF3E1; }
@media (min-width: 861px) {
  #ingressos-secao .ingressos-layout { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  #ingressos-secao .ingressos-layout > div:first-child { display: grid; justify-items: center; }
  #ingressos-secao .ingressos { width: min(100%, 560px); }
  #ingressos-secao .botoes { justify-content: center; }
}
@media (max-width: 560px) { .secao-moldura { top: -16px; height: 32px; } #ingressos-secao h2 { font-size: 1.6rem !important; } }

/* BARRA FIXA: creme, botão vermelho com seta */
@media (max-width: 720px) {
  .barra-ingresso { background: #FBF7EF !important; border-top: 1px solid rgba(171, 122, 47, .35) !important; box-shadow: 0 -4px 14px rgba(20, 63, 40, .08) !important; }
  .barra-ingresso strong { color: #143F28 !important; font-weight: 800; }
  .barra-ingresso > div > span { color: #4A5A50 !important; }
  .barra-ingresso .botao { display: inline-flex; align-items: center; gap: 8px; border-radius: 999px !important; }
  .barra-ingresso .seta-botao { width: 15px; height: 15px; }
}
@media (max-width: 560px) {
  .evento-info li:nth-child(n+2) > span:last-child { white-space: nowrap; }
  .evento-info li { padding: 0 7px !important; font-size: .8rem !important; }
  .evento-info .evento-data .evento-texto { max-width: 7.6rem; }
  .evento-texto span { font-size: .76rem; }
}
@media (max-width: 380px) {
  .evento-info li { padding: 0 5px !important; font-size: .74rem !important; }
  .evento-info .evento-data .evento-texto { max-width: 6.6rem; }
  .evento-texto span { font-size: .7rem; }
}
.evento-info li + li { padding: 0 22px !important; }
.evento-info li:last-child { padding-right: 0 !important; }
.evento-info li:first-child { padding-left: 0 !important; }
@media (max-width: 560px) { .evento-info li + li { padding: 0 7px !important; } .evento-info li:last-child { padding-right: 0 !important; } }
@media (max-width: 380px) { .evento-info li + li { padding: 0 5px !important; } .evento-info li:last-child { padding-right: 0 !important; } }
@media (max-width: 560px) {
  .evento-icone { width: 27px !important; height: 27px !important; }
  .evento-info li, .evento-info li + li { gap: 5px !important; }
  .evento-info .evento-data { flex: none; }
  .evento-info .evento-data .evento-texto { min-width: 6.9rem; max-width: 7.2rem; }
  .evento-info li:nth-child(3) > span:last-child { white-space: normal; line-height: 1.2; }
}
@media (max-width: 380px) {
  .evento-info .evento-data .evento-texto { min-width: 6rem; max-width: 6.3rem; }
  .evento-icone { width: 23px !important; height: 23px !important; }
  .evento-icone svg { width: 12px !important; height: 12px !important; }
  .evento-info li, .evento-info li + li { gap: 4px !important; }
}

/* =====================================================================
   1) Data, horário e local — duas linhas limpas
   ===================================================================== */
.evento-info { display: flex !important; flex-wrap: wrap !important; justify-content: center !important; align-items: center !important; gap: 6px 0 !important; margin: 18px auto 0 !important; max-width: 100% !important; width: auto !important; }
.evento-info li, .evento-info li + li { border: 0 !important; padding: 0 !important; margin: 0 !important; gap: 7px !important; font-size: .95rem !important; font-weight: 600 !important; color: #143F28 !important; white-space: nowrap; }
.evento-info .evento-data { flex-basis: 100% !important; justify-content: center; }
.evento-info .evento-data .evento-texto { font-family: var(--f-titulo); font-weight: 600; font-size: 1.12rem; letter-spacing: .005em; min-width: 0 !important; max-width: none !important; display: inline !important; }
.evento-info li:nth-child(3)::before { content: ""; width: 8px; height: 8px; margin: 0 14px 0 6px; flex: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-10 -10 20 20'%3E%3Cpath fill='%23C9A050' d='M0-10C.9-2.2 2.2-.9 10 0 2.2.9.9 2.2 0 10-.9 2.2-2.2.9-10 0-2.2-.9-.9-2.2 0-10Z'/%3E%3C/svg%3E") center / contain no-repeat; }
.evento-icone { width: auto !important; height: auto !important; background: none !important; border-radius: 0 !important; color: #AB7A2F !important; }
.evento-icone svg { width: 16px !important; height: 16px !important; stroke-width: 1.5 !important; }
.evento-info .evento-data .evento-icone svg { width: 17px !important; height: 17px !important; }
@media (max-width: 560px) {
  .evento-info { margin-top: 14px !important; gap: 4px 0 !important; }
  .evento-info .evento-data .evento-texto { font-size: 1.02rem; }
  .evento-info li, .evento-info li + li { font-size: .86rem !important; gap: 6px !important; }
  .evento-info li:nth-child(3) > span:last-child { white-space: nowrap !important; }
  .evento-info li:nth-child(3)::before { margin: 0 10px 0 4px; }
}
@media (max-width: 360px) { .evento-info .evento-data .evento-texto { font-size: .95rem; } .evento-info li, .evento-info li + li { font-size: .8rem !important; } }

/* =====================================================================
   2) "O que você vai encontrar" — cartões discretos com ícones finos
   ===================================================================== */
.destaques { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 14px !important; max-width: 820px !important; }
.destaque {
  display: grid !important; justify-items: center; align-content: center; gap: 12px !important; padding: 22px 12px 20px !important;
  background: #FFFCF6; border: 1px solid rgba(171, 122, 47, .3); border-radius: 14px; text-align: center;
}
.destaque-icone { display: grid; place-items: center; width: 44px; height: 44px; color: #AB7A2F; }
.destaque-icone svg { width: 30px; height: 30px; stroke-width: 1.2; }
.destaque-icone::after { content: ""; display: block; width: 22px; height: 1px; margin-top: 10px; background: rgba(171, 122, 47, .55); }
.destaque-icone { grid-template-rows: auto auto; height: auto; }
.destaque-nome { font-family: var(--f-titulo) !important; font-weight: 600 !important; font-size: 1.08rem !important; color: #143F28 !important; }
.destaque:hover { border-color: rgba(171, 122, 47, .6); }
@media (max-width: 760px) {
  .destaques { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
  .destaque { padding: 18px 10px 16px !important; gap: 10px !important; }
  .destaque-icone svg { width: 27px; height: 27px; }
  .destaque-nome { font-size: 1rem !important; }
}

/* =====================================================================
   3) Mapa — controles numa barra abaixo da planta
   ===================================================================== */
.mapa-ferramentas { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 8px; min-height: 36px; }
.mapa-ferramentas .parceiros-flutuante { position: static !important; display: inline-flex !important; box-shadow: none; margin-right: auto; }
.mapa-ferramentas .mapa-dica-planta { display: none; margin: 0; font-size: .74rem; color: var(--suave); margin-right: auto; }
.mapa-ferramentas .zoom-mapa { display: none !important; }
.mapa-ferramentas .ampliar { display: inline-flex !important; min-height: 34px !important; padding: 0 12px !important; font-size: .8rem !important; }
.mapa-ferramentas .ampliar svg { width: 14px; height: 14px; }
@media (max-width: 759px) {
  .mapa-ferramentas .parceiros-flutuante { display: none !important; }
  .mapa-ferramentas .mapa-dica-planta { display: block !important; }
  .mapa-ferramentas .zoom-mapa {
    display: flex !important; position: static !important; top: auto; right: auto; box-shadow: none !important;
    border: 1px solid var(--linha) !important; border-radius: 999px !important; overflow: hidden; background: var(--cartao) !important;
  }
  .mapa-ferramentas .zoom-mapa button { width: 36px !important; height: 34px !important; font-size: 1.1rem !important; }
  .mapa-ferramentas .zoom-mapa button + button { border-top: 0 !important; border-left: 1px solid var(--linha) !important; }
  .mapa-ferramentas .ampliar span { display: none; }
  .mapa-ferramentas .ampliar { width: 36px; padding: 0 !important; justify-content: center; border-radius: 50% !important; height: 34px; }
  .mapa-janela > .mapa-dica-planta, .mapa-caixa > .mapa-dica-planta { display: none !important; }
}

/* =========================================================
   Usabilidade no celular: letras legíveis, toques maiores,
   copiar endereço e modo "dia da feira"
   ========================================================= */

/* Letras pequenas: mínimo confortável de leitura */
.capa .contagem-numeros span { font-size: .68rem !important; letter-spacing: .08em !important; }
.sobretitulo, .pagina-topo .sobretitulo, .sobre-conteudo .sobretitulo { font-size: .74rem !important; }
.momento .tag { font-size: .76rem; }
.legenda button { font-size: .8rem !important; }
.vistas-n { font-size: .78rem !important; }
.barra-ingresso div > span { font-size: .78rem; }
@media (max-width: 760px) {
  .capa .contagem-rotulo { font-size: .72rem !important; }
  .lema { font-size: .72rem !important; }
  .ingresso .tipo { font-size: .74rem !important; }
  .mapa-dica-planta { font-size: .8rem !important; }
  .sel-dica { font-size: .84rem; }
}
@media (max-width: 380px) {
  .capa .contagem-numeros span { font-size: .64rem !important; letter-spacing: .04em !important; }
}

/* Links de contato e do rodapé: área de toque de 44 px */
.ingressos-contato a { display: inline-flex; align-items: center; min-height: 44px; }
.rodape a { display: inline-block; padding-block: 11px; line-height: 1.3; }
.rodape .miolo > p:last-child { line-height: 1.5; }

/* Copiar endereço */
.copiar {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; justify-self: start;
  min-height: 44px; margin-top: 10px; padding: 0 18px;
  font: 600 .9rem/1 var(--f-texto); color: #143F28;
  background: #FFFCF6; border: 1px solid rgba(171, 122, 47, .45); border-radius: 999px; cursor: pointer;
  transition: border-color .2s, background-color .2s;
}
.copiar svg { width: 17px; height: 17px; color: #AB7A2F; flex: none; }
.copiar:hover { border-color: #AB7A2F; }
.copiar:focus-visible { outline: 2px solid #AB7A2F; outline-offset: 2px; }
.copiar.copiado { background: #EEF3EE; border-color: #143F28; }
.copiar.copiado svg { color: #143F28; }
.alerta .copiar { margin-top: 8px; }
@media (max-width: 720px) { .copiar { width: 100%; } }

/* Dia da feira: contagem só com horas, minutos e segundos */
.contagem--hoje .contagem-numeros > div:first-child { display: none; }
.capa .contagem--hoje .contagem-numeros { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; max-width: 420px; }

/* Dia da feira: o que está acontecendo agora */
.contagem-agora {
  display: grid; gap: 8px; justify-items: center; max-width: 420px; margin: 10px auto 0;
  padding: 12px 18px; text-decoration: none; text-align: center;
  border: 1px solid rgba(217, 180, 106, .45); border-radius: 14px; background: rgba(255, 255, 255, .04);
}
.contagem-agora[hidden] { display: none; }
.ca-linha { display: grid; gap: 2px; }
.ca-rot { font: 700 .7rem/1.2 var(--f-texto); letter-spacing: .18em; text-transform: uppercase; color: #D9B46A; }
.ca-tit { font: 600 1.02rem/1.3 var(--f-titulo); color: #F7F1E6; }
.ca-ver { font: 600 .82rem/1 var(--f-texto); color: #E2CC9A; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(226, 204, 154, .5); padding-top: 2px; }
.capa .contagem--fim .contagem-rotulo { font-size: 1.05rem !important; line-height: 1.4; letter-spacing: 0 !important; text-transform: none; }

/* Programação no dia: já passou / agora / a seguir */
.momento .a-seguir { display: none; }
.momento.seguinte .a-seguir { display: inline-block; border: 1px solid #AB7A2F; color: #8A6524; font-size: .66rem; letter-spacing: .1em; padding: 1px 8px; border-radius: 999px; }
.momento.passou { opacity: .5; }
.momento.passou .momento-texto { filter: saturate(.6); }
@media (max-width: 760px) {
  .zoom-mapa button { min-width: 40px !important; height: 40px !important; }
  .mapa-ferramentas .ampliar { width: 40px !important; height: 40px !important; }
  .legenda button { min-height: 36px !important; }
}
@media (max-width: 420px) {
  .legenda button { font-size: .76rem !important; padding: 0 6px !important; }
  .mapa-dica-planta { text-align: left; }
}
@media (max-width: 420px) { .legenda { gap: 0 !important; justify-content: space-between; } .legenda button { gap: 5px !important; } }
@media (max-width: 420px) { .legenda { -webkit-mask-image: none !important; mask-image: none !important; margin-right: 0 !important; } }
@media (max-width: 370px) { .legenda button { padding: 0 4px !important; font-size: .74rem !important; gap: 4px !important; } }
.ca-hora { font-family: var(--f-texto); font-weight: 700; font-size: .86rem; color: #D9B46A; margin-right: 4px; }
.contagem-numeros[hidden] { display: none !important; }

/* =========================================================
   Data, horário e local numa linha só: 21 nov · 13h às 19h · APA Amsterdam
   ========================================================= */
.info-linha {
  list-style: none; margin: 18px auto 0; padding: 0;
  display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px 0;
}
.info-linha li { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; font: 600 1rem/1.2 var(--f-texto); color: #143F28; }
.info-linha li + li::before {
  content: ""; width: 7px; height: 7px; margin: 0 14px; flex: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-10 -10 20 20'%3E%3Cpath fill='%23C9A050' d='M0-10C.9-2.2 2.2-.9 10 0 2.2.9.9 2.2 0 10-.9 2.2-2.2.9-10 0-2.2-.9-.9-2.2 0-10Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.info-linha .info-data time { font-family: var(--f-titulo); font-weight: 700; font-size: 1.12em; letter-spacing: .01em; }
.info-icone { display: inline-grid; place-items: center; color: #AB7A2F; flex: none; }
.info-icone svg { width: 17px; height: 17px; stroke-width: 1.5; }
@media (max-width: 760px) {
  .info-linha { margin-top: 14px; }
  .info-linha li { font-size: .9rem; gap: 6px; }
  .info-linha li + li::before { margin: 0 10px; width: 6px; height: 6px; }
  .info-icone svg { width: 15px; height: 15px; }
}
@media (max-width: 370px) {
  .info-linha li { font-size: .84rem; gap: 5px; }
  .info-linha li + li::before { margin: 0 7px; }
  .info-icone svg { width: 14px; height: 14px; }
}

/* =========================================================
   Cartões "O que você vai encontrar" clicáveis
   ========================================================= */
.destaque { padding: 0 !important; transition: border-color .2s, box-shadow .2s, transform .2s; }
.destaque-acao {
  appearance: none; background: none; border: 0; margin: 0; font: inherit; color: inherit; cursor: pointer;
  width: 100%; height: 100%; display: grid; justify-items: center; align-content: center; gap: 10px;
  padding: 22px 12px 18px; border-radius: 14px; text-align: center; -webkit-tap-highlight-color: transparent;
}
.destaque-acao:focus-visible { outline: 2px solid #AB7A2F; outline-offset: 3px; }
.destaque:hover { border-color: rgba(171, 122, 47, .65) !important; box-shadow: 0 8px 22px rgba(20, 63, 40, .08); }
.destaque:active { transform: scale(.985); }
.destaque-sub { display: inline-flex; align-items: center; gap: 2px; font: 500 .8rem/1.25 var(--f-texto); color: #6B5A3A; margin-top: -4px; }
.destaque-seta { width: 14px; height: 14px; color: #AB7A2F; flex: none; }
@media (max-width: 760px) {
  .destaque-acao { padding: 18px 8px 14px; gap: 8px; }
  .destaque-sub { font-size: .76rem; }
}

/* =========================================================
   Painel que abre a partir dos cartões (folha no celular, janela no computador)
   ========================================================= */
.painel-fundo {
  position: fixed; inset: 0; z-index: 200; display: flex; align-items: flex-end; justify-content: center;
  background: rgba(10, 30, 22, 0); transition: background-color .25s ease;
}
.painel-fundo[hidden] { display: none; }
.painel-fundo.aberto { background: rgba(10, 30, 22, .5); }
.painel {
  width: 100%; max-width: 560px; max-height: min(86vh, 86dvh); display: flex; flex-direction: column;
  background: #F7F2E8; border-radius: 22px 22px 0 0; box-shadow: 0 -10px 40px rgba(10, 30, 22, .25);
  transform: translateY(100%); transition: transform .26s cubic-bezier(.2, .8, .2, 1); outline: none;
  padding-bottom: env(safe-area-inset-bottom);
}
.painel-fundo.aberto .painel { transform: none; }
@media (min-width: 761px) {
  .painel-fundo { align-items: center; padding: 24px; }
  .painel { border-radius: 20px; max-height: min(82vh, 760px); transform: translateY(24px); opacity: 0; transition: transform .26s ease, opacity .2s ease; }
  .painel-fundo.aberto .painel { opacity: 1; }
  .painel-alca { display: none !important; }
}
@media (prefers-reduced-motion: reduce) { .painel, .painel-fundo { transition: none !important; } }
.painel-topo { position: relative; display: flex; align-items: flex-start; gap: 12px; padding: 22px 20px 14px; border-bottom: 1px solid rgba(171, 122, 47, .25); touch-action: none; }
.painel-alca { position: absolute; top: 8px; left: 50%; width: 40px; height: 4px; margin-left: -20px; border-radius: 4px; background: rgba(20, 63, 40, .2); }
.painel-cabeca { flex: 1; min-width: 0; }
.painel-sobre { margin: 0 0 2px; font: 700 .72rem/1.2 var(--f-texto); letter-spacing: .2em; text-transform: uppercase; color: #AB7A2F; }
.painel-cabeca h2 { margin: 0; font: 700 1.5rem/1.2 var(--f-titulo); color: #143F28; }
.painel-intro { margin: 6px 0 0; font-size: .9rem; line-height: 1.45; color: #5E6B63; }
.painel-intro:empty { display: none; }
.painel-fechar { flex: none; width: 44px; height: 44px; margin: -6px -8px 0 0; display: grid; place-items: center; border: 0; border-radius: 50%; background: #FFFCF6; color: #143F28; cursor: pointer; box-shadow: inset 0 0 0 1px rgba(171, 122, 47, .35); }
.painel-fechar svg { width: 20px; height: 20px; }
.painel-corpo { flex: 1; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 6px 16px 16px; }
.painel-rodape { padding: 12px 16px 16px; border-top: 1px solid rgba(171, 122, 47, .25); background: #F7F2E8; border-radius: 0 0 20px 20px; }
.painel-rodape:empty { display: none; }
.painel-rodape .botao { width: 100%; justify-content: center; }

.pl-grupo { display: flex; align-items: center; gap: 8px; margin: 16px 4px 8px; font: 700 .76rem/1.2 var(--f-texto); letter-spacing: .16em; text-transform: uppercase; color: #143F28; }
.pl-grupo span { font-weight: 600; color: #AB7A2F; letter-spacing: 0; }
.pl-ponto { width: 8px; height: 8px; border-radius: 50%; flex: none; }
.pl-ponto--gastronomia, .pl-num--gastronomia { background: #A50D18; }
.pl-ponto--produtos, .pl-num--produtos { background: #143F28; }
.pl-ponto--servicos, .pl-num--servicos { background: #AB7A2F; }
.pl-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.pl-lista:first-child { margin-top: 10px; }
.pl-item {
  display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 10px 12px;
  background: #FFFCF6; border: 1px solid rgba(171, 122, 47, .25); border-radius: 14px; color: inherit; text-decoration: none;
}
a.pl-item:hover { border-color: rgba(171, 122, 47, .6); }
a.pl-item:focus-visible { outline: 2px solid #AB7A2F; outline-offset: 2px; }
.pl-selo { position: relative; flex: none; width: 44px; height: 44px; display: grid; place-items: center; }
.pl-selo--logo img { width: 44px; height: 44px; border-radius: 12px; object-fit: cover; background: #fff; border: 1px solid rgba(171, 122, 47, .25); }
.pl-selo--redondo img { border-radius: 50%; }
.pl-num { display: grid; place-items: center; min-width: 30px; height: 30px; padding: 0 6px; border-radius: 9px; font: 700 .9rem/1 var(--f-titulo); color: #fff; }
.pl-selo--logo .pl-num { position: absolute; right: -6px; bottom: -6px; min-width: 22px; height: 22px; border-radius: 7px; font-size: .72rem; box-shadow: 0 0 0 2px #FFFCF6; }
.pl-texto { flex: 1; min-width: 0; display: grid; gap: 2px; }
.pl-nome { font: 700 1rem/1.25 var(--f-titulo); color: #143F28; }
.pl-desc { font-size: .85rem; line-height: 1.35; color: #4F5D55; }
.pl-onde { font-size: .76rem; font-weight: 600; letter-spacing: .02em; color: #8A6A2E; }
.pl-seta { width: 18px; height: 18px; flex: none; color: #AB7A2F; }
.pl-chips { display: flex; flex-wrap: wrap; gap: 5px; margin: 3px 0 2px; }
.pl-chips span { font-size: .78rem; line-height: 1.2; padding: 4px 9px; border-radius: 999px; background: #F3E9D2; color: #143F28; }
.pl-insta { display: inline-flex; align-items: center; gap: 5px; justify-self: start; min-height: 32px; font-size: .82rem; font-weight: 600; color: #143F28; text-decoration: underline; text-decoration-color: rgba(171, 122, 47, .5); text-underline-offset: 3px; }
.pl-insta svg { width: 15px; height: 15px; color: #AB7A2F; }
.pl-item--destaque { align-items: flex-start; }
.pl-parceiros { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.pl-parceiros li { display: grid; align-content: start; gap: 2px; padding: 10px 12px; background: #FFFCF6; border: 1px solid rgba(171, 122, 47, .25); border-radius: 12px; }
.pl-parceiros .pl-nome { font-size: .95rem; }
.pl-parceiros .pl-desc { font-size: .8rem; }
.pl-agenda { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 8px; }
.pl-momento { display: flex; align-items: center; gap: 12px; padding: 10px 12px; background: #FFFCF6; border: 1px solid rgba(171, 122, 47, .25); border-radius: 14px; }
.pl-hora { flex: none; width: 3.4rem; font: 700 1rem/1 var(--f-titulo); color: #A50D18; font-variant-numeric: lining-nums tabular-nums; }
.pl-icone { flex: none; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: #F3E9D2; color: #AB7A2F; }
.pl-icone svg { width: 17px; height: 17px; }
.pl-tipo { font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #8A6A2E; }
.pl-momento .pl-nome { font-size: .98rem; }
.ingressos-contato a { gap: .3em; }
.ponto-marca .pulso { display: none !important; animation: none !important; }

/* =========================================================
   Atrações no mapa: logos redondas (DJ, pintura facial, palhaço) e podcast tocável
   ========================================================= */
.mapa--img .ponto-marca .alvo-ponto { fill: transparent; stroke: none; }
.mapa--img .ponto--avatar .av-sombra { fill: rgba(20, 63, 40, .22); }
.mapa--img .ponto--avatar .av-anel { fill: #FFFCF6; stroke: #AB7A2F; stroke-width: 3; }
.mapa--img .ponto--avatar .marca { fill: none !important; stroke: rgba(20, 63, 40, .15) !important; stroke-width: 1 !important; }
.mapa--img .ponto--avatar.ativo .av-anel, .mapa--img .ponto--avatar:hover .av-anel { stroke: #143F28; stroke-width: 4; }
.mapa--img .av-rotulo {
  font: 700 19px var(--f-texto); fill: #143F28; text-anchor: middle; dominant-baseline: central;
  paint-order: stroke; stroke: #FFFCF6; stroke-width: 6px; stroke-linejoin: round; pointer-events: none;
}
.mapa--img .ponto-marca .marca--aro { fill: rgba(255, 252, 246, .25) !important; stroke: #AB7A2F !important; stroke-width: 3.5 !important; }
.mapa--img .ponto-marca.ativo .marca--aro, .mapa--img .ponto-marca:hover .marca--aro { stroke: #143F28 !important; stroke-width: 4 !important; }
.mapa--img .selo-toque circle { fill: #AB7A2F; stroke: #FFFCF6; stroke-width: 2.5; }
.mapa--img .selo-toque path { fill: none; stroke: #FFFCF6; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.mapa--img .ponto-marca:focus-visible .av-anel, .mapa--img .ponto-marca:focus-visible .marca--aro { stroke: #143F28 !important; stroke-width: 5 !important; }
.num--destaque img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block; }
.mapa--img .ponto--botao .av-sombra { fill: rgba(20, 63, 40, .22); }
.mapa--img .ponto--botao .av-anel { fill: #FFFCF6; stroke: #AB7A2F; stroke-width: 3; }
.mapa--img .ponto--botao .marca { fill: #F3E9D2 !important; stroke: none !important; }
.mapa--img .ponto--botao .botao-mic { fill: none; stroke: #143F28; stroke-width: .95; stroke-linecap: round; stroke-linejoin: round; }
.mapa--img .ponto--botao.ativo .av-anel, .mapa--img .ponto--botao:hover .av-anel { stroke: #143F28; stroke-width: 4; }
/* ícones dos botões do mapa (DJ, pintura facial, palhaço, podcast, parceiros) */
.mapa--img .botao-icone { fill: none; stroke: #143F28; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
.mapa--img .botao-icone .ic-cheio { fill: #143F28; stroke: none; }
.mapa--img .botao-icone .ic-vermelho { fill: #A50D18; }
.mapa--img .botao-icone--estrela .ic-cheio { fill: #AB7A2F; }
.mapa--img .ponto--estrela .marca { fill: #FFFCF6 !important; }
.mapa--img .botao-conta { fill: #143F28; stroke: #FFFCF6; stroke-width: 3; }
.mapa--img .botao-conta-n { font: 700 16px var(--f-texto); fill: #FFFCF6; text-anchor: middle; dominant-baseline: central; pointer-events: none; }
.parceiro-onde { display: block; font-size: .74rem; font-weight: 600; color: #8A6A2E; }
.lista-parceiros--balao { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 8px; max-height: none; }
.lista-parceiros--balao { grid-template-columns: 1fr !important; }
.parceiro-ini--logo { padding: 0; overflow: hidden; background: #fff; }
.parceiro-ini--logo img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 50%; }
.pl-plogo { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; margin-bottom: 4px; border: 1px solid rgba(171, 122, 47, .3); background: #fff; }
.parceiro-info { min-width: 0; } .parceiro-info .insta { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* parceiros clicáveis dentro do cartão da estrela */
.parceiro--botao { display: block !important; padding: 0 !important; }
.parceiro-abrir {
  appearance: none; width: 100%; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: center;
  min-height: 60px; padding: 10px 12px; background: none; border: 0; border-radius: 14px; font: inherit; color: inherit; text-align: left; cursor: pointer;
}
.parceiro-abrir:hover { background: rgba(243, 233, 210, .45); }
.parceiro-abrir:focus-visible { outline: 2px solid #AB7A2F; outline-offset: 2px; }
.parceiro-abrir .parceiro-info { display: grid; gap: 1px; min-width: 0; }
.parceiro-seta { width: 18px; height: 18px; color: #AB7A2F; }
.balao-voltar {
  display: inline-flex; align-items: center; gap: 4px; min-height: 36px; margin: -4px 0 6px -6px; padding: 0 10px 0 4px;
  background: none; border: 0; border-radius: 999px; font: 600 .84rem/1 var(--f-texto); color: #143F28; cursor: pointer;
}
.balao-voltar svg { width: 18px; height: 18px; color: #AB7A2F; }
.balao-voltar:hover { background: #F3E9D2; }
.pl-parceiro { display: grid; gap: 2px; justify-items: start; color: inherit; text-decoration: none; }
.pl-parceiro:hover .pl-nome { text-decoration: underline; text-decoration-color: rgba(171, 122, 47, .6); }
/* topo das páginas internas no celular: título inteiro visível, com respiro abaixo do cabeçalho */
html { scroll-padding-top: calc(var(--altura-topo) + 12px); }
@media (max-width: 720px) {
  .pagina-topo { padding-top: 30px !important; }
  .pagina-topo .sobretitulo { margin-bottom: 2px !important; }
}
/* atrações na lista */
.lista-atracoes { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.atracao-item {
  appearance: none; width: 100%; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: center;
  padding: 12px 14px; background: var(--cartao, #FFFCF6); border: 1px solid rgba(171, 122, 47, .3); border-radius: 14px;
  font: inherit; color: inherit; text-align: left; cursor: pointer;
}
.atracao-item:hover { border-color: rgba(171, 122, 47, .6); }
.atracao-item:focus-visible { outline: 2px solid #AB7A2F; outline-offset: 2px; }
.atracao-item img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; border: 1px solid rgba(171, 122, 47, .3); background: #fff; }
.atracao-texto { display: grid; gap: 2px; min-width: 0; }
.atracao-texto strong { font: 700 1rem/1.25 var(--f-titulo); color: #143F28; }
.atracao-texto span { font-size: .86rem; color: #4F5D55; }
.atracao-texto small { font-size: .76rem; font-weight: 600; color: #8A6A2E; }
.atracao-mapa { display: inline-flex; align-items: center; gap: 4px; font-size: .78rem; font-weight: 700; color: #143F28; white-space: nowrap; }
.atracao-mapa svg { width: 15px; height: 15px; color: #AB7A2F; }
@media (max-width: 380px) { .atracao-mapa { font-size: 0; gap: 0; } .atracao-mapa svg { width: 20px; height: 20px; } }
@media (max-width: 370px) { .barra-ingresso div > span { font-size: .72rem; } }
/* celulares bem estreitos (até 350 px): nada ultrapassa a tela */
@media (max-width: 350px) {
  .capa-titulo { max-width: 100%; }
  .capa-tema.capa-tema--texto { font-size: 1.32rem !important; white-space: normal; }
  .info-linha li { font-size: .78rem !important; gap: 4px; }
  .info-linha li + li::before { margin: 0 5px !important; width: 5px; height: 5px; }
  .info-icone svg { width: 13px !important; height: 13px !important; }
  .capa .contagem-rotulo { letter-spacing: .12em !important; gap: 8px !important; }
  .capa .contagem-rotulo::before, .capa .contagem-rotulo::after { width: 20px !important; }
}
html { scroll-behavior: auto !important; }
/* celular: a abertura ocupa exatamente a primeira tela, com a contagem regressiva no fim;
   "Sobre a feira" só aparece quando a pessoa rola */
@media (max-width: 760px) {
  .capa { display: flex !important; flex-direction: column; min-height: calc(100vh - var(--topo-real, 52px)); min-height: calc(100svh - var(--topo-real, 52px)); }
  .capa-cena { flex: 1 1 auto; display: flex; flex-direction: column; justify-content: center; }
  .capa-cena > .miolo { width: 100%; }
  .capa .contagem-faixa-verde { flex: none; }
}
@media (max-width: 760px) and (max-height: 620px) {
  .capa-cena { padding-top: 8px !important; padding-bottom: 26px !important; }
  .capa-logo { width: 150px !important; }
  .capa .descricao { margin-top: 4px !important; font-size: .84rem !important; }
  .capa .botoes { margin-top: 10px !important; gap: 8px !important; }
  .capa .botoes .botao { min-height: 42px !important; }
  .capa .contagem-faixa-verde { padding-top: 20px !important; padding-bottom: 14px !important; }
  .capa .contagem-numeros { margin-top: 8px !important; }
}

/* =========================================================
   Área segura do topo (iPhone e pré-visualização no app):
   o conteúdo começa abaixo dela, então o cabeçalho fixo nunca cobre os títulos
   ========================================================= */
:root { --sat: 0px; --sab: 0px; }
/* a faixa de segurança do topo só é usada quando o site está salvo na tela inicial (modo app);
   no navegador e na pré-visualização o cabeçalho fica colado no topo, sem faixa vazia */
@media (display-mode: standalone) {
  :root { --sat: env(safe-area-inset-top, 0px); }
  body { padding-top: var(--sat); }
}
body::before { height: var(--sat) !important; background: #143F28 !important; }
.topo { top: var(--sat) !important; }
/* celular: abertura compacta, com a contagem regressiva sempre visível na primeira tela */
@media (max-width: 760px) {
  .capa { min-height: min(calc(100vh - var(--topo-real, 52px)), 600px) !important;
          min-height: min(calc(100svh - var(--sat) - var(--topo-real, 52px)), 600px) !important; }
}

/* painel Networking: cartões dos parceiros nunca passam da largura (sem rolagem para o lado) */
.painel-corpo { overflow-x: hidden; }
.pl-parceiros { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.pl-parceiros li { min-width: 0; overflow: hidden; }
.pl-parceiros .pl-nome, .pl-parceiros .pl-desc { overflow-wrap: anywhere; }
.pl-parceiros .pl-insta { display: flex; max-width: 100%; min-width: 0; }
.pl-parceiros .pl-insta, .pl-lista .pl-insta { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pl-insta svg { flex: none; }
@media (max-width: 340px) { .pl-parceiros { grid-template-columns: 1fr !important; } }
/* estande selecionado no mapa: mantém a cor da categoria, com contorno dourado (número sempre legível) */
.mapa--img .estande--img.ativo .marca { fill: var(--vermelho) !important; stroke: #D9B46A !important; stroke-width: 5 !important; }
.mapa--img .estande--img[data-cat="produtos"].ativo .marca { fill: var(--capa-verde) !important; }
.mapa--img .estande--img[data-cat="servicos"].ativo .marca { fill: var(--capa-ouro) !important; }
.mapa--img .estande--img.ativo .estande-num--img { fill: #FFFDF6 !important; }

/* =========================================================
   Rodapé enxuto, com direitos autorais e de imagem
   ========================================================= */
.rodape--limpo { padding-block: 28px calc(28px + var(--barra, 0px)) !important; }
.rodape--limpo .miolo { display: grid !important; justify-items: center; gap: 6px !important; text-align: center; }
.rodape--limpo p { margin: 0; }
.rodape-marca { font: 600 1rem/1.4 var(--f-titulo) !important; color: #F1D9A0; letter-spacing: .01em; }
.rodape-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 6px; }
.rodape-links a { display: inline-flex !important; align-items: center; min-height: 44px; padding: 0 10px !important; font-size: .9rem; font-weight: 600; color: #F7F1E6 !important; text-decoration: underline; text-decoration-color: rgba(241, 217, 160, .45); text-underline-offset: 4px; }
.rodape-links a + a { border-left: 1px solid rgba(241, 217, 160, .25); }
.rodape-direitos { font-size: .8rem !important; color: rgba(247, 241, 230, .8); line-height: 1.5 !important; }
.rodape-aviso { max-width: 36rem; font-size: .74rem !important; line-height: 1.55 !important; color: rgba(247, 241, 230, .6); }
@media (max-width: 760px) {
  .rodape--limpo { padding-block: 24px 22px !important; }
  .rodape-links a { font-size: .86rem; padding: 0 8px !important; }
}

/* "O que você vai encontrar": agora são 3 cartões */
.destaques { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; max-width: 720px !important; }
@media (max-width: 760px) {
  .destaques { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8px !important; }
  .destaque-acao { padding: 16px 6px 12px !important; gap: 7px !important; }
  .destaque-icone svg { width: 25px !important; height: 25px !important; }
  .destaque-nome { font-size: .9rem !important; }
  .destaque-sub { font-size: .68rem !important; line-height: 1.3; flex-wrap: wrap; justify-content: center; }
  .destaque-seta { display: none; }
}

/* legenda: porta */
.legenda-porta { display: inline-flex; align-items: center; gap: 6px; font-size: .8rem; color: var(--suave); padding: 0 6px; white-space: nowrap; }
.legenda-porta i { width: 16px; height: 6px; border-radius: 2px; background: #C9A050; box-shadow: inset 0 0 0 1px #8A6A2E; }
@media (max-width: 760px) {
  .legenda { flex-wrap: wrap !important; overflow: visible !important; justify-content: flex-start !important; gap: 2px 10px !important; -webkit-mask-image: none !important; mask-image: none !important; }
  .legenda button { padding: 0 4px !important; }
  .legenda-porta { padding: 0 4px; font-size: .78rem; }
}
/* rodapé centralizado também no computador */
.rodape--limpo .miolo { grid-template-columns: minmax(0, 1fr) !important; justify-content: center !important; justify-items: center !important; text-align: center !important; }
.rodape--limpo .rodape-aviso { margin-inline: auto !important; }

/* Sobre: foto da organizadora com legenda e botão para edições anteriores */
.sobre-foto--retrato { width: min(100%, 380px); }
.sobre-foto--retrato img { aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 20%; }
.sobre-foto figcaption { position: absolute; left: 14px; bottom: 14px; display: grid; gap: 1px; padding: 9px 14px; border-radius: 12px; background: rgba(255, 252, 246, .94); box-shadow: 0 6px 18px rgba(20, 63, 40, .14); text-align: left; }
.sobre-foto figcaption strong { font: 700 1rem/1.2 var(--f-titulo); color: #143F28; }
.sobre-foto figcaption span { font-size: .78rem; font-weight: 600; letter-spacing: .04em; color: #8A6A2E; }
.sobre-texto p + p { margin-top: 0; }
.botao-edicoes { margin-top: 8px; }
@media (max-width: 720px) {
  .sobre-foto--retrato { width: min(100%, 300px); }
  .sobre-conteudo { justify-items: center; text-align: center; }
  .sobre-texto p { text-align: left; }
}

/* Página de edições anteriores */
.galeria-edicoes { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; margin-bottom: 32px; }
.galeria-vazia { grid-column: 1 / -1; display: grid; justify-items: center; gap: 12px; padding: 48px 20px; text-align: center; background: #FFFCF6; border: 1px dashed rgba(171, 122, 47, .5); border-radius: 18px; }
.galeria-vazia-icone { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 50%; background: #F3E9D2; color: #AB7A2F; }
.galeria-vazia-icone svg { width: 28px; height: 28px; }
.galeria-vazia p { max-width: 26rem; color: #4F5D55; line-height: 1.6; }
.galeria-vazia strong { display: block; font: 700 1.3rem/1.3 var(--f-titulo); color: #143F28; margin-bottom: 4px; }
.botoes--centro { justify-content: center; }
/* galeria das edições anteriores */
.galeria-edicoes:has(.edicao) { display: grid; grid-template-columns: 1fr; gap: 36px; }
.edicao-titulo { display: flex; align-items: center; gap: 14px; margin: 0 0 14px; font: 700 clamp(1.3rem, 2.4vw, 1.6rem)/1.2 var(--f-titulo); color: #143F28; }
.edicao-titulo::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(171, 122, 47, .55), transparent); }
.edicao-fotos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
.edicao-foto { display: block; width: 100%; padding: 0; border: 0; border-radius: 14px; overflow: hidden; cursor: zoom-in; background: #EFE7D6; box-shadow: 0 6px 18px rgba(20, 63, 40, .1); }
.edicao-foto img { display: block; width: 100%; aspect-ratio: 2 / 3; object-fit: cover; transition: transform .35s ease; }
.edicao-foto:hover img { transform: scale(1.03); }
.edicao-foto:focus-visible { outline: 2px solid #AB7A2F; outline-offset: 3px; }
@media (max-width: 560px) { .edicao-fotos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; } .edicao-foto { border-radius: 10px; } }
.galeria-visor { position: fixed; inset: 0; z-index: 300; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 56px 12px 24px; background: rgba(10, 30, 22, .92); }
.galeria-visor[hidden] { display: none; }
.galeria-visor figure { margin: 0; display: grid; justify-items: center; gap: 10px; max-height: 100%; }
.galeria-visor img { max-width: 100%; max-height: calc(100vh - 130px); max-height: calc(100svh - 130px); border-radius: 12px; object-fit: contain; }
.galeria-visor figcaption { color: #F1D9A0; font: 600 .9rem/1.3 var(--f-texto); letter-spacing: .04em; }
.gv-fechar, .gv-nav { width: 44px; height: 44px; display: grid; place-items: center; border: 0; border-radius: 50%; background: rgba(255, 252, 246, .14); color: #FFFCF6; cursor: pointer; }
.gv-fechar { position: absolute; top: 10px; right: 12px; }
.gv-fechar svg, .gv-nav svg { width: 22px; height: 22px; }
.gv-fechar:hover, .gv-nav:hover { background: rgba(255, 252, 246, .26); }
@media (max-width: 560px) { .galeria-visor { grid-template-columns: 1fr; } .gv-nav { position: absolute; bottom: 18px; } .gv-ant { left: 24px; } .gv-prox { right: 24px; } .galeria-visor img { max-height: calc(100svh - 170px); } }
.edicao-desc { margin: -6px 0 14px; color: #4F5D55; font-size: .98rem; }
/* evita foto sozinha na última linha: 6 fotos = 3 por linha no computador */
@media (min-width: 900px) {
  .edicao-fotos:has(> li:nth-child(6):last-child) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
@media (min-width: 900px) {
  .edicao-fotos:has(> li:nth-child(10):last-child) { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
/* edição com fotos na horizontal */
.edicao-fotos--paisagem { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
.edicao-fotos--paisagem .edicao-foto img { aspect-ratio: 3 / 2; }
.edicao-fotos--paisagem > li:last-child:nth-child(3n+1) { grid-column: 1 / -1; }
.edicao-fotos--paisagem > li:last-child:nth-child(3n+1) .edicao-foto img { aspect-ratio: 16 / 7; object-position: 50% 35%; }
@media (max-width: 560px) {
  .edicao-fotos--paisagem { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .edicao-fotos--paisagem > li:last-child:nth-child(3n+1) { grid-column: auto; }
  .edicao-fotos--paisagem > li:last-child:nth-child(2n+1) { grid-column: 1 / -1; }
  .edicao-fotos--paisagem > li:last-child:nth-child(2n+1) .edicao-foto img { aspect-ratio: 16 / 9; }
}
/* vídeo (YouTube Shorts) de uma edição */
.edicao-video { display: grid; justify-items: center; gap: 12px; }
.edicao-video-quadro { width: min(100%, 340px); aspect-ratio: 9 / 16; border-radius: 18px; overflow: hidden; background: #143F28; box-shadow: 0 10px 28px rgba(20, 63, 40, .18); }
.edicao-video-quadro iframe { width: 100%; height: 100%; border: 0; display: block; }
.edicao-video-link { font-weight: 600; color: #143F28; text-decoration: underline; text-decoration-color: rgba(171, 122, 47, .6); text-underline-offset: 4px; min-height: 44px; display: inline-flex; align-items: center; }
/* "Quer expor": dois botões */
.expor-botoes { display: flex; flex-wrap: wrap; gap: 12px; justify-content: flex-end; }
@media (max-width: 760px) { .expor-botoes { justify-content: center; } .expor-botoes .botao { width: 100%; justify-content: center; } }
/* formulário de expositor (dentro do painel) */
.form-expor { display: grid; gap: 14px; padding: 14px 4px 4px; }
.fx-campo { display: grid; gap: 6px; }
.fx-campo span { font-weight: 600; font-size: .92rem; color: #143F28; }
.fx-campo b { color: #A50D18; }
.fx-campo input, .fx-campo textarea, .fx-campo select { width: 100%; font: 400 1rem/1.4 var(--f-texto); color: #1D2B24; padding: 11px 13px; border: 1px solid rgba(171, 122, 47, .45); border-radius: 12px; background: #FFFCF6; }
.fx-campo input:focus, .fx-campo textarea:focus, .fx-campo select:focus { outline: 2px solid #AB7A2F; outline-offset: 1px; border-color: #AB7A2F; }
.fx-campo .fx-invalido { border-color: #A50D18; }
.fx-erro { margin: 0; color: #A50D18; font-size: .88rem; font-weight: 600; }

/* ===== Carrossel das edições anteriores ===== */
.carrossel { position: relative; }
.carrossel .edicao-fotos, .carrossel .edicao-fotos--paisagem {
  display: flex !important; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
  overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding: 4px 2px 14px;
  grid-template-columns: none !important;
}
.carrossel .edicao-fotos::-webkit-scrollbar { display: none; }
.carrossel .edicao-fotos > li { flex: 0 0 calc((100% - 36px) / 4); scroll-snap-align: start; grid-column: auto !important; }
.carrossel .edicao-fotos--paisagem > li { flex: 0 0 calc((100% - 24px) / 3); }
.carrossel .edicao-foto img { aspect-ratio: 3 / 4 !important; }
.carrossel .edicao-fotos--paisagem .edicao-foto img { aspect-ratio: 3 / 2 !important; object-position: 50% 35%; }
.carrossel-seta {
  position: absolute; top: calc(50% - 7px); z-index: 2; width: 44px; height: 44px; margin-top: -22px;
  display: grid; place-items: center; border: 1px solid rgba(171, 122, 47, .45); border-radius: 50%;
  background: rgba(255, 252, 246, .96); color: #143F28; box-shadow: 0 6px 18px rgba(20, 63, 40, .18); cursor: pointer; transition: opacity .2s;
}
.carrossel-seta svg { width: 22px; height: 22px; }
.carrossel-ant { left: -18px; } .carrossel-prox { right: -18px; }
.carrossel-seta:disabled { opacity: 0; pointer-events: none; }
.carrossel--fixo .carrossel-seta { display: none; }
.carrossel-contador { margin: 0; text-align: center; font-size: .8rem; font-weight: 600; letter-spacing: .04em; color: #8A6A2E; min-height: 1.2em; }
@media (max-width: 760px) {
  .carrossel .edicao-fotos > li { flex-basis: 72%; }
  .carrossel .edicao-fotos--paisagem > li { flex-basis: 86%; }
  .carrossel-seta { display: none; }
  .carrossel .edicao-fotos { margin-inline: -16px; padding-inline: 16px; scroll-padding-inline: 16px; }
}
/* dica do mapa na primeira visita */
.mapa-dica-toque {
  position: absolute; left: 50%; bottom: 14px; z-index: 5; transform: translate(-50%, 8px); opacity: 0;
  display: inline-flex; align-items: center; gap: 8px; max-width: calc(100% - 24px); padding: 10px 16px;
  border-radius: 999px; background: rgba(20, 63, 40, .92); color: #FFFCF6; font: 600 .88rem/1.25 var(--f-texto);
  box-shadow: 0 8px 22px rgba(20, 63, 40, .28); pointer-events: auto; cursor: pointer; white-space: nowrap;
  transition: opacity .35s ease, transform .35s ease;
}
.mapa-dica-toque.visivel { opacity: 1; transform: translate(-50%, 0); }
.mapa-dica-toque svg { width: 20px; height: 20px; flex: none; color: #E2C07A; animation: dica-toque 1.6s ease-in-out infinite; }
@keyframes dica-toque { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@media (prefers-reduced-motion: reduce) { .mapa-dica-toque svg { animation: none; } .mapa-dica-toque { transition: none; } }
@media (max-width: 380px) { .mapa-dica-toque { font-size: .8rem; padding: 9px 13px; } }
.mapa-dica-toque { pointer-events: none; }
.sobre-cargo { display: block; margin-top: 6px; font: 600 .82rem/1.3 var(--f-texto); letter-spacing: .16em; text-transform: uppercase; color: #AB7A2F; }
.sobre-foto--retrato img { object-position: 50% 15%; }
@media (max-width: 720px) { .sobre-foto.sobre-foto--retrato { order: 0 !important; width: min(72%, 280px) !important; } }
/* apresentação da organizadora mais compacta */
.sobre-foto.sobre-foto--retrato { width: min(100%, 320px); }
.sobre-mais { display: grid; gap: 14px; }
.sobre-mais[hidden] { display: none; }
.ler-mais { justify-self: start; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0; border: 0; background: none; font: 700 .95rem/1 var(--f-texto); color: #143F28; text-decoration: underline; text-decoration-color: rgba(171, 122, 47, .7); text-underline-offset: 5px; cursor: pointer; }
.ler-mais::after { content: ""; width: 7px; height: 7px; border-right: 2px solid #AB7A2F; border-bottom: 2px solid #AB7A2F; transform: rotate(45deg) translateY(-2px); transition: transform .2s; }
.ler-mais[aria-expanded="true"]::after { transform: rotate(-135deg) translateY(-2px); }
@media (max-width: 720px) {
  .sobre-foto.sobre-foto--retrato { width: min(56%, 210px) !important; }
  .sobre-conteudo h2 { font-size: 1.6rem; }
}
/* rodapé compacto */
.rodape--compacto { padding-block: 16px 18px !important; }
.rodape--compacto .miolo { gap: 4px !important; }
.rodape-linha { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0 18px; }
.rodape--compacto .rodape-marca { font-size: .92rem !important; }
.rodape--compacto .rodape-links a { min-height: 40px; font-size: .84rem; padding: 0 9px !important; }
.rodape--compacto .rodape-aviso { max-width: 58rem; font-size: .68rem !important; line-height: 1.5 !important; color: rgba(247, 241, 230, .58); }
@media (max-width: 760px) {
  .rodape--compacto { padding-block: 14px 16px !important; }
  .rodape-linha { gap: 0; }
  .rodape--compacto .rodape-links a { font-size: .8rem; padding: 0 7px !important; }
  .rodape--compacto .rodape-aviso { font-size: .64rem !important; }
}
/* carrossel com fotos em pé e deitadas na mesma edição: altura fixa, largura natural */
.carrossel .edicao-fotos--misto > li { flex: 0 0 auto !important; }
.carrossel .edicao-fotos--misto .edicao-foto img { width: auto !important; height: 340px; aspect-ratio: auto !important; }
@media (max-width: 760px) { .carrossel .edicao-fotos--misto .edicao-foto img { height: 300px; } }
/* setas do carrossel sempre visíveis, também no celular (o carrossel dá a volta, então nunca ficam desativadas) */
.carrossel-seta:disabled { opacity: 1; pointer-events: auto; }
@media (max-width: 760px) {
  .carrossel-seta { display: grid !important; width: 38px; height: 38px; margin-top: -19px; background: rgba(255, 252, 246, .92); }
  .carrossel-seta svg { width: 19px; height: 19px; }
  .carrossel-ant { left: -6px; } .carrossel-prox { right: -6px; }
}
/* no celular, a foto deitada cabe inteira na tela */
@media (max-width: 760px) { .carrossel .edicao-fotos--misto .edicao-foto img { height: min(300px, 58vw); } }
.carrossel-contador + .edicao-video { margin-top: 14px; }
/* carrosséis das edições: todas as fotos no mesmo tamanho (quadradas) e a foto sempre para no meio */
.carrossel .edicao-fotos > li, .carrossel .edicao-fotos--paisagem > li, .carrossel .edicao-fotos--misto > li {
  flex: 0 0 calc((100% - 24px) / 3) !important; scroll-snap-align: center !important;
}
.carrossel .edicao-fotos .edicao-foto img, .carrossel .edicao-fotos--paisagem .edicao-foto img, .carrossel .edicao-fotos--misto .edicao-foto img {
  width: 100% !important; height: auto !important; aspect-ratio: 1 / 1 !important; object-fit: cover; object-position: 50% 30% !important;
}
@media (max-width: 760px) {
  .carrossel .edicao-fotos, .carrossel .edicao-fotos--paisagem, .carrossel .edicao-fotos--misto {
    margin-inline: -16px !important; padding-inline: 0 !important; scroll-padding-inline: 0 !important;
  }
  /* espaçadores nas pontas (no lugar de padding, que o Safari ignora no fim da rolagem) para a 1ª e a última foto também ficarem no meio */
  .carrossel .edicao-fotos::before, .carrossel .edicao-fotos::after { content: ""; flex: 0 0 calc(11vw - 12px); }
  .carrossel .edicao-fotos > li, .carrossel .edicao-fotos--paisagem > li, .carrossel .edicao-fotos--misto > li { flex: 0 0 78vw !important; }
  .carrossel-ant { left: -4px; } .carrossel-prox { right: -4px; }
}
/* celular: a abertura ocupa a primeira tela inteira, terminando exatamente na contagem regressiva */
@media (max-width: 760px) {
  .capa { min-height: calc(100vh - var(--topo-real, 52px)) !important;
          min-height: calc(100svh - var(--sat) - var(--topo-real, 52px)) !important; }
}
.galeria-edicoes { grid-template-columns: minmax(0, 1fr); } .edicao, .carrossel { min-width: 0; }
/* dica "Clique num número": no canto de baixo à direita, área vazia da planta (não cobre a Área Kids) */
.mapa-dica-toque { left: auto !important; right: 14px; transform: translateY(8px); }
.mapa-dica-toque.visivel { transform: none; }
/* parceiro com tópicos (ex.: Fran Cajina Beauty) */
.parceiro-topicos { list-style: none; margin: 2px 0 0; padding: 0; display: grid; gap: 1px; font-size: .86rem; color: var(--suave, #5b6b62); }
.parceiro-topicos li { position: relative; padding-left: 13px; }
.parceiro-topicos li::before { content: ""; position: absolute; left: 1px; top: .6em; width: 5px; height: 5px; border-radius: 50%; background: #AB7A2F; }
/* parceiro com tópicos no balão do mapa: um item por linha, com marcador dourado */
.balao .balao-oferta.oferta-lista.balao-topicos { display: grid !important; gap: 3px; margin-top: 10px; }
.balao .balao-oferta.oferta-lista.balao-topicos li { display: block !important; position: relative; padding-left: 14px !important; font-size: .92rem; line-height: 1.4; }
.balao .balao-oferta.oferta-lista.balao-topicos li::before, .balao .balao-oferta.oferta-lista.balao-topicos li + li::before {
  content: "" !important; display: block !important; position: absolute !important; left: 2px; top: .55em; width: 5px !important; height: 5px !important; border-radius: 50%; background: var(--ouro-vivo, #AB7A2F) !important;
}
/* paleta oficial Feira de Natal 2026: amarelo #F1BB03 nos detalhes especiais */
:root { --amarelo: #F1BB03; }
.estande.ativo .marca, .estande--ret.ativo .marca, .mapa--img .estande--img.ativo .marca { stroke: var(--amarelo) !important; }
.selo svg, .capa-ornamento svg { color: var(--amarelo) !important; fill: var(--amarelo); }
.mapa-dica-toque svg { color: var(--amarelo) !important; }
/* ícone desenhado das atrações sem logo (ex.: câmera da fotógrafa) */
.balao-logo--destaque .ico-dest { width: 56%; height: 56%; color: #FFFFFF; }
.num--destaque .ico-dest { width: 18px; height: 18px; }
.atracao-ico { flex: none; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: #FFFDF6; border: 1px solid var(--ouro, #AB7A2F); color: var(--ouro, #AB7A2F); }
.atracao-ico .ico-dest { width: 24px; height: 24px; }
.ico-dest .ic-cheio { fill: currentColor; stroke: none; }
/* Parceiros sempre na legenda, ao lado de Gastronomia e Produtos e Serviços (também no computador) */
@media (min-width: 760px) { .legenda [data-abrir-parceiros] { display: inline-flex !important; } }
.parceiros-flutuante, .mapa-ferramentas .parceiros-flutuante { display: none !important; }
/* estande sem expositor (desistência): só o contorno, em branco */
.estande-vago rect { fill: #FFFFFF; stroke: #B9C4BD; stroke-width: 2; stroke-dasharray: 5 4; }
/* várias parceiras na mesma estrela: cada uma em um bloco completo */
.bloco-parceiro + .bloco-parceiro { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--linha, #E8DFCD); }
.bloco-parceiro .balao-acoes { margin-top: 10px; }
/* prévia de parceiras/atrações no mouse: já mostra tudo (fotos e contato) e dá para entrar no balão e clicar */
.balao[data-previa="1"] .mini-fotos { display: grid !important; }
.balao[data-previa="1"] .balao-acoes { display: flex !important; }
.balao[data-previa="1"] { pointer-events: auto; }
.balao[data-previa="1"]::after { content: none; }
.balao > .balao-topo + .bloco-parceiro { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--linha, #E8DFCD); }
.estande-vago .estande-num, .estande-vago .estande-num--vago, .estande-vago text { fill: #8A978F !important; stroke: none !important; pointer-events: none; }
/* estande 16 vago: mesma cor de antes (verde), com o número, mas sem informações */
.estande-vago rect { fill: var(--pinho, #143F28) !important; stroke: none !important; stroke-dasharray: none !important; }
.estande-vago .estande-num, .estande-vago .estande-num--vago, .estande-vago text { fill: #FFFFFF !important; }
.estande-vago text { text-anchor: middle; dominant-baseline: central; }
/* leitura: nenhum texto abaixo de ~11.5px */
.capa .contagem-numeros span { font-size: .72rem !important; }
.expo-estande, .rotulo-filtro { font-size: .72rem !important; }
.rodape--compacto .rodape-aviso, .rodape-aviso { font-size: .72rem !important; }
/* filtro "Parceiros": destaca as estrelas de parceiros e apaga as outras marcas */
#mapa.so-parceiros .ponto-marca:not(.ponto--estrela) { opacity: .25 !important; }
#mapa.so-parceiros .ponto--estrela { opacity: 1 !important; }
/* moldura curva da faixa verde: as laterais encostam exatamente no topo da faixa (sem a tira verde acima do fio dourado) */
.contagem-moldura, .secao-moldura { top: -32px !important; }
@media (max-width: 560px) { .contagem-moldura, .secao-moldura { top: -23px !important; } }
