/* Galeria Elástica: sanfona de painéis com as cores e fontes da marca (inspirada no Elastic Gallery do 21st.dev). */
.galeria-overlay[data-estilo="elastica"] .galeria-box{width:min(1320px,100%);background:radial-gradient(120% 90% at 50% 0%,color-mix(in srgb,var(--verde) 55%,#07090a),#07090a 70%);border-color:#ffffff1f}
.galeria-overlay[data-estilo="elastica"] .galeria-cabecalho .script{color:var(--ouro);letter-spacing:.2em;text-transform:uppercase;font:600 11px var(--fonte),sans-serif}
.galeria-cartoes.ge{display:flex;flex-direction:column;gap:18px;height:auto;min-height:0;position:relative}
/* min-width:0: no celular os filtros (sem quebra) rolam na própria fileira em vez de alargar a janela */
.galeria-overlay[data-estilo="elastica"] .galeria-box{gap:18px;min-height:0;min-width:0}
.galeria-overlay[data-estilo="elastica"] .galeria-categorias{min-width:0;max-width:100%}
/* Altura acompanha a janela: cabeçalho, filtros e a barra de navegação cabem sem rolar a partir de ~700 px */
.ge-trilho{display:flex;gap:12px;height:clamp(340px,calc(100dvh - 390px),640px)}
.ge-trilho.ge-entrar .ge-painel{animation:ge-entrar .7s cubic-bezier(.25,1,.5,1) both}
.ge-trilho.ge-entrar .ge-painel:nth-child(2){animation-delay:.05s}.ge-trilho.ge-entrar .ge-painel:nth-child(3){animation-delay:.1s}
.ge-trilho.ge-entrar .ge-painel:nth-child(4){animation-delay:.15s}.ge-trilho.ge-entrar .ge-painel:nth-child(5){animation-delay:.2s}
.ge-trilho.ge-entrar .ge-painel:nth-child(6){animation-delay:.25s}
@keyframes ge-entrar{from{opacity:0;transform:translateY(28px) scale(.97)}to{opacity:1;transform:none}}

.ge-painel{position:relative;flex:1 1 0;min-width:0;overflow:hidden;border-radius:22px;border:1px solid #ffffff24;background:#0d1112;isolation:isolate;
  filter:brightness(.5) saturate(.85);transition:flex .7s cubic-bezier(.25,1,.5,1),filter .5s,border-color .5s,box-shadow .5s}
.ge-painel:hover{filter:brightness(.75) saturate(.95)}
.ge-painel.ativo{flex:4 1 0;filter:none;border-color:color-mix(in srgb,var(--ouro) 70%,transparent);box-shadow:0 24px 70px #000a,0 0 0 1px color-mix(in srgb,var(--ouro) 35%,transparent) inset}
.ge-unico .ge-painel{flex:1}
.ge-fundo{position:absolute;inset:0;z-index:-2}
.ge-fundo img,.ge-fundo video{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.12);transition:transform 1.2s cubic-bezier(.25,1,.5,1)}
.ge-painel.ativo .ge-fundo img,.ge-painel.ativo .ge-fundo video{transform:scale(1)}
.ge-painel:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#000d 0%,#0005 38%,transparent 65%);opacity:0;transition:opacity .5s}
.ge-painel.ativo:before{opacity:1}
.ge-seletor{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:pointer;border-radius:inherit}
.ge-seletor:focus-visible{outline:3px solid var(--ouro);outline-offset:-5px}
.ge-painel.ativo .ge-seletor{cursor:zoom-in}

.ge-rotulo{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:14px;color:#fff;pointer-events:none;
  transition:opacity .4s .35s,transform .4s .35s;text-shadow:0 2px 14px #000}
.ge-rotulo b{font:700 12px var(--fonte),sans-serif;letter-spacing:.12em;color:var(--ouro)}
.ge-rotulo span{writing-mode:vertical-rl;transform:rotate(180deg);font:700 clamp(15px,1.4vw,20px) var(--fonte-titulo),serif;text-transform:uppercase;letter-spacing:.14em;white-space:nowrap;max-height:min(46vh,430px);overflow:hidden;text-overflow:ellipsis}
.ge-painel.ativo .ge-rotulo{opacity:0;transform:translateX(-50%) scale(.6);transition:opacity .2s,transform .2s}

.ge-conteudo{position:absolute;left:0;right:0;bottom:0;padding:clamp(20px,3vw,40px);display:flex;flex-direction:column;align-items:flex-start;gap:10px;color:#fff;pointer-events:none;
  opacity:0;transform:translateY(48px);transition:opacity .3s,transform .3s}
.ge-painel.ativo .ge-conteudo{opacity:1;transform:none;transition:opacity .55s .25s,transform .7s .2s cubic-bezier(.25,1,.5,1)}
.ge-tag{padding:6px 13px;border:1px solid #ffffff4d;border-radius:100px;background:#ffffff1a;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  font:600 11px var(--fonte),sans-serif;letter-spacing:.14em;text-transform:uppercase}
.ge-titulo{margin:0;max-width:16ch;font:800 clamp(30px,4.6vw,64px)/.95 var(--fonte-titulo),serif;text-transform:uppercase;letter-spacing:-.01em;text-wrap:balance}
.ge-desc{margin:0;max-width:52ch;font:400 15px/1.45 var(--fonte),sans-serif;opacity:.86}.ge-desc:empty{display:none}
.ge-acao{pointer-events:auto;margin-top:8px;display:inline-flex;align-items:center;gap:10px;padding:11px 14px 11px 18px;border:1px solid #ffffff59;border-radius:100px;background:#0000004d;color:#fff;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font:700 12px var(--fonte),sans-serif;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:background .3s,color .3s,border-color .3s,gap .3s}
.ge-acao svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.ge-acao svg path[d^="M8 5"]{fill:currentColor;stroke:none}
.ge-acao:hover{background:var(--ouro);border-color:var(--ouro);color:var(--verde);gap:14px}
.ge-acao:focus-visible{outline:3px solid var(--ouro);outline-offset:3px}
.ge-player{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000;z-index:3}
.ge-tocando .ge-conteudo,.ge-tocando .ge-seletor{display:none}

.ge-barra{display:flex;align-items:center;gap:16px;color:#fff}.ge-barra[hidden]{display:none}
.ge-contador{font:500 13px var(--fonte),sans-serif;letter-spacing:.12em;opacity:.8;min-width:72px}.ge-contador b{font-size:20px;color:var(--ouro);opacity:1}
.ge-progresso{flex:1;height:2px;background:#ffffff26;border-radius:2px;overflow:hidden}
.ge-progresso i{display:block;height:100%;background:var(--ouro);transform-origin:left;transition:transform .6s cubic-bezier(.25,1,.5,1)}
.ge-redondo{width:48px;height:48px;flex:none;display:grid;place-items:center;border:1px solid #ffffff4d;border-radius:50%;background:#ffffff0f;color:#fff;cursor:pointer;transition:background .3s,border-color .3s,color .3s,transform .3s}
.ge-redondo svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ge-redondo:hover:not(:disabled){background:var(--ouro);border-color:var(--ouro);color:var(--verde);transform:scale(1.06)}
.ge-redondo:disabled{opacity:.3;cursor:default}
.ge-redondo:focus-visible{outline:3px solid var(--ouro);outline-offset:3px}

.ge-zoom{position:fixed;inset:0;z-index:400;display:grid;place-items:center;padding:clamp(16px,4vw,60px);background:#000000eb;backdrop-filter:blur(8px);animation:ge-zoom .35s ease both}
.ge-zoom[hidden]{display:none}
.ge-zoom img{max-width:100%;max-height:calc(100dvh - 140px);object-fit:contain;border-radius:12px;box-shadow:0 30px 90px #000}
.ge-zoom p{position:absolute;left:0;right:0;bottom:22px;margin:0;text-align:center;color:#fff;font:500 15px var(--fonte),sans-serif}
.ge-zoom p b{color:var(--ouro);margin-right:8px;letter-spacing:.1em}
.ge-zoom .ge-redondo{position:absolute;top:50%;transform:translateY(-50%);background:#0009}
.ge-zoom .ge-redondo:hover:not(:disabled){transform:translateY(-50%) scale(1.06)}
.ge-zoom .ge-redondo[aria-label="Foto anterior"]{left:clamp(8px,2vw,28px)}.ge-zoom .ge-redondo[aria-label="Próxima foto"]{right:clamp(8px,2vw,28px)}
.ge-zoom .ge-fechar{top:22px;right:22px;transform:none}.ge-zoom .ge-fechar:hover{transform:scale(1.06)!important}
@keyframes ge-zoom{from{opacity:0}to{opacity:1}}

@media(max-width:720px){
  .ge-trilho{flex-direction:column;gap:8px;height:clamp(380px,calc(100dvh - 340px),560px)}
  .ge-painel{border-radius:16px}
  .ge-rotulo{left:16px;bottom:50%;transform:translateY(50%);flex-direction:row;gap:10px}
  .ge-rotulo span{writing-mode:horizontal-tb;transform:none;font-size:14px;max-width:70vw;max-height:none}
  .ge-painel.ativo .ge-rotulo{transform:translateY(50%) scale(.6)}
  .ge-conteudo{padding:16px;gap:7px}.ge-titulo{font-size:clamp(22px,7vw,32px)}
  .ge-desc{font-size:13px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .ge-acao{margin-top:4px;padding:9px 12px 9px 15px}
  .ge-redondo{width:44px;height:44px}
}
@media(prefers-reduced-motion:reduce){
  .ge-painel,.ge-fundo img,.ge-fundo video,.ge-conteudo,.ge-rotulo,.ge-progresso i,.ge-acao,.ge-redondo{transition:none!important}
  .ge-trilho.ge-entrar .ge-painel,.ge-zoom{animation:none!important}
}
