/* ============================================================
   ESSENCIAL PERMANENTE — Indaiá
   Site de apresentação · estética luxo (escuro + dourado)
   ============================================================ */

/* --- Fontes self-hosted (offline) com fallback de sistema --- */
@font-face{
  font-family:'Cormorant Garamond';font-style:normal;font-weight:400;
  font-display:swap;
  src:local('Cormorant Garamond'),
      url('assets/fonts/cormorant-garamond-400.woff2') format('woff2');
}
@font-face{
  font-family:'Cormorant Garamond';font-style:normal;font-weight:600;
  font-display:swap;
  src:local('Cormorant Garamond SemiBold'),
      url('assets/fonts/cormorant-garamond-600.woff2') format('woff2');
}
@font-face{
  font-family:'Montserrat';font-style:normal;font-weight:300;font-display:swap;
  src:local('Montserrat Light'),url('assets/fonts/montserrat-300.woff2') format('woff2');
}
@font-face{
  font-family:'Montserrat';font-style:normal;font-weight:400;font-display:swap;
  src:local('Montserrat'),url('assets/fonts/montserrat-400.woff2') format('woff2');
}
@font-face{
  font-family:'Montserrat';font-style:normal;font-weight:500;font-display:swap;
  src:local('Montserrat Medium'),url('assets/fonts/montserrat-500.woff2') format('woff2');
}
/* Sora — display/corpo moderno (pegada audiovisual) */
@font-face{ font-family:'Sora';font-style:normal;font-weight:300;font-display:swap;
  src:url('assets/fonts/sora-300.woff2') format('woff2'); }
@font-face{ font-family:'Sora';font-style:normal;font-weight:400;font-display:swap;
  src:url('assets/fonts/sora-400.woff2') format('woff2'); }
@font-face{ font-family:'Sora';font-style:normal;font-weight:600;font-display:swap;
  src:url('assets/fonts/sora-600.woff2') format('woff2'); }
@font-face{ font-family:'Sora';font-style:normal;font-weight:700;font-display:swap;
  src:url('assets/fonts/sora-700.woff2') format('woff2'); }
@font-face{ font-family:'Sora';font-style:normal;font-weight:800;font-display:swap;
  src:url('assets/fonts/sora-800.woff2') format('woff2'); }

/* --- Tokens de design --- */
:root{
  --bg:#08080f;
  --bg-soft:#11111e;
  --gold:#7b5cff;            /* acento principal — violeta elétrico */
  --gold-light:#a78bff;      /* destaque — violeta claro */
  --cyan:#2ad4ff;            /* segundo acento — azul/ciano */
  --text:#f1f0f8;
  --text-dim:rgba(241,240,248,.62);
  --line:rgba(123,92,255,.32);

  --font-display:'Sora','Segoe UI',system-ui,sans-serif;
  --font-body:'Sora','Segoe UI',system-ui,sans-serif;

  --maxw:1080px;
  --pad-x:clamp(1.25rem,5vw,4rem);

  --ease:cubic-bezier(.16,1,.3,1);        /* expo-out — suave e premium */
  --ease-soft:cubic-bezier(.22,.61,.36,1);
}

/* --- Reset --- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
img{max-width:100%;display:block;}

body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  font-weight:300;
  line-height:1.7;
  letter-spacing:.01em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

/* Atmosfera de palco: glows de luz (violeta / ciano / magenta) fixos no fundo */
body::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(48vw 60vw at 12% -8%, rgba(123,92,255,.22), transparent 55%),
    radial-gradient(44vw 56vw at 88% -4%, rgba(42,212,255,.16), transparent 55%),
    radial-gradient(52vw 55vw at 60% 112%, rgba(196,77,255,.12), transparent 55%);
}

/* Tipografia base */
h1,h2,h3{font-family:var(--font-display);font-weight:700;line-height:1.04;letter-spacing:-.01em;}
p{max-width:62ch;}

/* Container utilitário */
.container{
  width:100%;max-width:var(--maxw);
  margin-inline:auto;padding-inline:var(--pad-x);
}

/* Divisor dourado ornamental reutilizável */
.ornamento{
  display:flex;align-items:center;justify-content:center;gap:.9rem;
  color:var(--gold);margin:0 auto;
}
.ornamento::before,.ornamento::after{
  content:"";height:1px;width:min(80px,18vw);
  background:linear-gradient(90deg,transparent,var(--gold));
}
.ornamento::after{background:linear-gradient(90deg,var(--gold),transparent);}
.ornamento span{font-size:.85rem;}

/* Estado base do scroll-reveal (JS adiciona .is-visible) */
.reveal{
  opacity:0;transform:translateY(34px);
  transition:opacity 1s var(--ease),transform 1s var(--ease);
  will-change:opacity,transform;
}
.reveal.is-visible{opacity:1;transform:none;}

/* Acessibilidade: respeitar quem desativa animações */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .reveal{opacity:1;transform:none;transition:none;}
}

/* --- Capa (hero) --- */
.capa{
  min-height:100svh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;position:relative;overflow:hidden;
  padding:6rem var(--pad-x) 4rem;
}
/* Fundo da capa: imagem + zoom suave (ken burns) + véu escuro p/ legibilidade */
.capa__fundo{position:absolute;inset:0;z-index:0;}
.capa__fundo::before{
  content:"";position:absolute;inset:0;
  background-image:var(--capa-img);background-size:cover;background-position:center;
  transform:scale(1.06);
  animation:kenburnsCapa 30s var(--ease-soft) infinite alternate;
  will-change:transform;
}
.capa__fundo::after{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(ellipse 78% 70% at 50% 48%, rgba(12,12,14,.62), rgba(12,12,14,.46)),
    linear-gradient(180deg, rgba(12,12,14,.50) 0%, rgba(12,12,14,.42) 45%, rgba(12,12,14,.86) 100%);
}
@keyframes kenburnsCapa{
  from{transform:scale(1.06) translate(0,0)}
  to{transform:scale(1.16) translate(-1.5%,-1%)}
}
.capa__interno{position:relative;z-index:1;}
.capa__logo{
  width:clamp(120px,16vw,190px);height:auto;margin:0 auto 2.5rem;
  opacity:.95;
}
.capa__sup{
  font-family:var(--font-body);font-weight:400;
  text-transform:uppercase;letter-spacing:.55em;
  font-size:clamp(.7rem,1.6vw,.9rem);
  color:var(--gold-light);margin-bottom:1rem;padding-left:.55em;
}
.capa__titulo{
  font-size:clamp(3.8rem,13vw,8rem);
  font-weight:800;letter-spacing:-.02em;line-height:.95;
  background:linear-gradient(100deg,#ffffff 0%,#d7ccff 30%,#8b6dff 58%,#2ad4ff 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  filter:drop-shadow(0 4px 30px rgba(123,92,255,.55));
}
.capa .ornamento{margin:1.6rem auto;}
.capa__sub{
  font-family:var(--font-display);font-style:italic;
  font-size:clamp(1.1rem,3vw,1.6rem);color:var(--text-dim);
}
.capa__rolar{
  position:absolute;bottom:2.2rem;left:50%;transform:translateX(-50%);
  width:26px;height:42px;border:1px solid var(--line);border-radius:14px;
  display:block;
}
.capa__rolar span{
  position:absolute;top:8px;left:50%;transform:translateX(-50%);
  width:3px;height:8px;border-radius:2px;background:var(--gold);
  animation:rolar 1.8s ease-in-out infinite;
}
@keyframes rolar{0%{opacity:0;top:8px}40%{opacity:1}100%{opacity:0;top:22px}}
@media (prefers-reduced-motion:reduce){.capa__rolar span{animation:none;}}

/* --- Abertura --- */
.abertura{padding:clamp(4rem,12vh,9rem) 0;text-align:center;}
.abertura__frase{
  font-family:var(--font-display);
  font-size:clamp(1.5rem,4vw,2.4rem);
  line-height:1.5;color:var(--text);
  max-width:30ch;margin-inline:auto;
}
.abertura__frase em{color:var(--gold-light);font-style:italic;}

/* --- Seções de itens (reutilizável: cerimônia, doces, noivos, convidados) --- */
.secao{padding:clamp(3.5rem,9vh,7rem) 0;border-top:1px solid var(--line);}
.secao__grid{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,5vw,4rem);
  align-items:center;
}
/* Alterna o lado da foto em seções marcadas com --invertida */
.secao--invertida .foto-placeholder,
.secao--invertida .foto{order:-1;}

.secao__num{
  font-family:var(--font-body);font-weight:400;
  color:var(--gold);letter-spacing:.4em;font-size:.85rem;margin-bottom:.6rem;
}
.secao__titulo{
  font-size:clamp(2.2rem,6vw,3.4rem);color:var(--text);margin-bottom:1.6rem;
}
.lista-itens{list-style:none;display:flex;flex-direction:column;gap:1rem;}
.lista-itens li{
  display:grid;grid-template-columns:2.4rem 1fr;align-items:baseline;gap:.6rem;
  font-size:clamp(1rem,2.2vw,1.15rem);color:var(--text);
  padding-bottom:1rem;border-bottom:1px solid rgba(243,239,231,.08);
}
.lista-itens li:last-child{border-bottom:none;}
.lista-itens .qtd{
  font-family:var(--font-display);font-weight:600;
  color:var(--gold-light);font-size:1.4rem;line-height:1;text-align:right;
}

/* Placeholder de foto (trocável por .foto depois) */
.foto-placeholder{
  position:relative;min-height:clamp(260px,40vw,440px);
  border:1px solid var(--line);border-radius:2px;
  display:grid;place-items:center;text-align:center;
  background:linear-gradient(135deg,rgba(123,92,255,.08),rgba(123,92,255,0));
  color:var(--text-dim);
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
}
.foto-placeholder::after{
  content:"";position:absolute;inset:10px;border:1px solid var(--line);
  pointer-events:none;
}
/* Versão com foto real (imagens quadradas → moldura 1:1, nada é cortado).
   Moldura via box-shadow (anel nítido, NÃO vaza sob a borda como o border fazia). */
.foto{
  position:relative;overflow:hidden;
  aspect-ratio:1/1;width:100%;border-radius:3px;
  box-shadow:
    0 0 0 1px rgba(123,92,255,.55),
    0 35px 80px -42px rgba(0,0,0,.95);
  transition:box-shadow .6s var(--ease);
}
/* A imagem vive no ::before para poder dar zoom sem afetar a moldura */
.foto::before{
  content:"";position:absolute;inset:0;
  background-image:var(--img);background-size:cover;background-position:center;
  transform:scale(1.12);                       /* oculta: levemente ampliada */
  transition:transform 1.4s var(--ease);
  will-change:transform;
}
/* Ao revelar: a imagem "assenta" (unveil) e depois ganha um Ken Burns sutil.
   (Seletor pela seção: é a <section> que recebe .is-visible ao rolar, não a figure.) */
.secao.is-visible .foto::before{
  animation:fotoIntro 1.4s var(--ease) forwards,
            kenburns 24s var(--ease-soft) 1.6s infinite alternate;
}
/* A foto (o "quadro") também flutua — levitação suave, dessincronizada por seção */
.secao.is-visible .foto{animation:flutua 7.5s ease-in-out infinite;}
#cerimonia.is-visible .foto  {animation-delay:0s;}
#doces.is-visible .foto      {animation-delay:1.1s;}
#noivos.is-visible .foto     {animation-delay:2.2s;}
#convidados.is-visible .foto {animation-delay:.6s;}
/* Ao passar o mouse, o quadro estabiliza e a imagem brilha */
.foto:hover,.foto:hover::before{animation-play-state:paused;}
@keyframes fotoIntro{ from{transform:scale(1.12)} to{transform:scale(1.02)} }
@keyframes kenburns{
  from{transform:scale(1.02) translate(0,0)}
  to{transform:scale(1.1) translate(-1.5%,-1.2%)}
}
/* Hover: realce de luz + moldura mais viva (sem mexer no transform p/ não brigar) */
.foto:hover{
  box-shadow:
    0 0 0 1px rgba(167,139,255,.85),
    0 48px 95px -40px rgba(0,0,0,1);
}
.foto:hover::before{ filter:brightness(1.06) saturate(1.05); }

/* --- Paleta de cores --- */
.secao__num--centro,.secao__titulo--centro{text-align:center;}
.secao__num--centro{letter-spacing:.4em;}
.paleta__intro{
  text-align:center;color:var(--text-dim);margin:0 auto 3rem;max-width:48ch;
}
.paleta__grid{
  list-style:none;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
  gap:clamp(1.5rem,4vw,2.5rem);text-align:center;
}
.paleta__grid li{
  display:flex;flex-direction:column;align-items:center;gap:1rem;
  font-size:.95rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--text-dim);
}
.swatch{
  width:clamp(64px,9vw,92px);aspect-ratio:1;border-radius:50%;
  background:var(--c);
  box-shadow:0 0 0 1px var(--line),0 14px 34px -16px rgba(0,0,0,.7);
}
/* Borda extra para a cor branca não sumir no fundo */
.swatch[style*="--b:1"]{box-shadow:0 0 0 1px var(--gold),0 14px 34px -16px rgba(0,0,0,.7);}

/* --- Regras / como funciona --- */
.regras__lista{
  list-style:none;display:grid;grid-template-columns:repeat(2,1fr);
  gap:clamp(1.5rem,4vw,2.5rem);margin-top:1rem;
}
.regras__lista li{
  border:1px solid var(--line);border-radius:2px;
  padding:clamp(1.5rem,3vw,2.2rem);
  background:linear-gradient(160deg,rgba(123,92,255,.05),transparent);
}
.regras__lista h3{
  color:var(--gold-light);font-size:1.5rem;margin-bottom:.7rem;font-weight:600;
}
.regras__lista p{color:var(--text-dim);max-width:none;}
@media (max-width:720px){.regras__lista{grid-template-columns:1fr;}}

/* --- Valor especial --- */
.valor{text-align:center;}
.valor__cartao{
  max-width:640px;margin-inline:auto;
  padding:clamp(2.5rem,6vw,4.5rem) clamp(1.5rem,5vw,3.5rem);
  border:1px solid var(--gold);border-radius:3px;
  background:
    radial-gradient(120% 120% at 50% 0%,rgba(123,92,255,.14),transparent 60%),
    var(--bg-soft);
  box-shadow:0 40px 100px -50px rgba(123,92,255,.4);
}
.valor__selo{
  text-transform:uppercase;letter-spacing:.4em;font-size:.78rem;
  color:var(--gold-light);margin-bottom:1.6rem;padding-left:.4em;
}
.valor__titulo{
  font-size:clamp(1.6rem,4vw,2.2rem);color:var(--text);
  font-style:italic;font-weight:400;margin-bottom:1.2rem;
}
.valor__preco{
  font-family:var(--font-display);font-weight:600;
  font-size:clamp(3.4rem,12vw,6rem);line-height:1;
  color:var(--gold-light);max-width:none;
}
.valor__preco span{font-size:.45em;vertical-align:super;letter-spacing:.02em;}
.valor .ornamento{margin:1.8rem auto 1.4rem;}
.valor__nota{color:var(--text-dim);margin-inline:auto;}

/* --- Rodapé --- */
.rodape{
  text-align:center;padding:clamp(3rem,8vh,5rem) var(--pad-x);
  border-top:1px solid var(--line);
}
.rodape__logo{width:clamp(90px,12vw,130px);height:auto;margin:0 auto 1.2rem;opacity:.85;}
.rodape__assinatura{
  color:var(--text-dim);font-size:.82rem;letter-spacing:.3em;
  text-transform:uppercase;margin-inline:auto;
}

/* --- Responsivo (mobile) --- */
@media (max-width:760px){
  .secao__grid{grid-template-columns:1fr;}
  /* No mobile, a foto sempre vem depois do texto, mesmo nas invertidas */
  .secao--invertida .foto-placeholder,
  .secao--invertida .foto{order:0;}
  .lista-itens li{grid-template-columns:2rem 1fr;}
}
@media (max-width:420px){
  .capa__sup{letter-spacing:.35em;}
  .lista-itens .qtd{font-size:1.2rem;}
}

/* ============================================================
   REFINAMENTOS DE ANIMAÇÃO (polish profissional)
   ============================================================ */

/* Barra de progresso de leitura (topo, dourada) */
.progresso{
  position:fixed;top:0;left:0;height:2px;width:0;z-index:200;
  background:linear-gradient(90deg,var(--gold),var(--gold-light));
  box-shadow:0 0 12px rgba(123,92,255,.6);
  transition:width .12s linear;
}

/* Entrada orquestrada da capa (no carregamento) */
.capa__logo  {animation:capaIn 1s var(--ease) both .15s;}
.capa__sup   {animation:capaIn 1s var(--ease) both .45s;}
.capa__titulo{animation:capaIn 1.1s var(--ease) both .65s;}
.capa .ornamento{animation:capaIn 1s var(--ease) both .95s;}
.capa__sub   {animation:capaIn 1s var(--ease) both 1.15s;}
.capa__rolar {opacity:0;animation:soFade 1s ease both 1.6s;}
@keyframes capaIn{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes soFade{to{opacity:1}}

/* Cascata nos itens das seções (cada item entra em sequência) */
.secao .lista-itens li{
  opacity:0;transform:translateY(14px);
  transition:opacity .7s var(--ease),transform .7s var(--ease);
}
.secao.is-visible .lista-itens li{opacity:1;transform:none;}
.secao.is-visible .lista-itens li:nth-child(1){transition-delay:.20s}
.secao.is-visible .lista-itens li:nth-child(2){transition-delay:.32s}
.secao.is-visible .lista-itens li:nth-child(3){transition-delay:.44s}
.secao.is-visible .lista-itens li:nth-child(4){transition-delay:.56s}
.secao.is-visible .lista-itens li:nth-child(5){transition-delay:.68s}

/* Cascata nas cores da paleta */
.paleta .paleta__grid li{
  opacity:0;transform:translateY(16px) scale(.96);
  transition:opacity .7s var(--ease),transform .7s var(--ease);
}
.paleta.is-visible .paleta__grid li{opacity:1;transform:none;}
.paleta.is-visible .paleta__grid li:nth-child(1){transition-delay:.15s}
.paleta.is-visible .paleta__grid li:nth-child(2){transition-delay:.27s}
.paleta.is-visible .paleta__grid li:nth-child(3){transition-delay:.39s}
.paleta.is-visible .paleta__grid li:nth-child(4){transition-delay:.51s}
.paleta.is-visible .paleta__grid li:nth-child(5){transition-delay:.63s}
.paleta.is-visible .paleta__grid li:nth-child(6){transition-delay:.75s}
.swatch{transition:transform .5s var(--ease),box-shadow .5s var(--ease);}
.paleta__grid li:hover .swatch{transform:translateY(-6px) scale(1.06);}

/* Cards de regras: entram em cascata (fade) e ficam FLUTUANDO (levitação suave) */
.regras .regras__lista li{
  opacity:0;
  box-shadow:0 22px 46px -32px rgba(0,0,0,.9);
  transition:opacity .8s var(--ease),border-color .45s var(--ease),box-shadow .45s var(--ease);
}
.regras.is-visible .regras__lista li{opacity:1;animation:flutua 7s ease-in-out infinite;}
.regras.is-visible .regras__lista li:nth-child(1){transition-delay:.15s;animation-delay:0s}
.regras.is-visible .regras__lista li:nth-child(2){transition-delay:.27s;animation-delay:1.2s}
.regras.is-visible .regras__lista li:nth-child(3){transition-delay:.39s;animation-delay:2.4s}
.regras.is-visible .regras__lista li:nth-child(4){transition-delay:.51s;animation-delay:.6s}
.regras__lista li:hover{
  border-color:rgba(123,92,255,.78);
  box-shadow:0 42px 72px -34px rgba(0,0,0,.98);
  animation-play-state:paused;            /* pausa a levitação ao passar o mouse */
}
@keyframes flutua{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}

/* Cartão de valor: glow dourado pulsante + levitação (flutua) */
.valor.is-visible .valor__cartao{
  animation:glowPulse 4.5s ease-in-out 1s infinite, flutua 8s ease-in-out infinite;
}
@keyframes glowPulse{
  0%,100%{box-shadow:0 40px 100px -50px rgba(123,92,255,.40)}
  50%    {box-shadow:0 40px 120px -44px rgba(123,92,255,.62)}
}

/* Legibilidade do texto da capa sobre a foto de fundo */
.capa__interno .capa__sup,
.capa__interno .capa__titulo,
.capa__interno .capa__sub{ text-shadow:0 2px 24px rgba(0,0,0,.55); }
.capa__logo{ filter:drop-shadow(0 2px 16px rgba(0,0,0,.5)); }

/* Fotos clicáveis (abrem no lightbox) */
.foto[data-full]{cursor:zoom-in;}

/* Legenda "imagem ilustrativa" na base de cada foto */
.foto-cap{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  margin:0;padding:.8rem .5rem .55rem;text-align:center;
  font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;
  color:rgba(243,239,231,.85);
  background:linear-gradient(0deg,rgba(8,8,10,.74),rgba(8,8,10,0));
  pointer-events:none;
}

/* Nota de escopo — deixa claro que só o floral compõe o pacote */
.nota-escopo{
  max-width:760px;margin:2.6rem auto 0;padding:1.5rem 1.9rem;
  border:1px solid var(--line);border-radius:3px;
  background:linear-gradient(160deg,rgba(123,92,255,.07),transparent);
  color:var(--text-dim);font-size:.96rem;line-height:1.75;text-align:center;
}
.nota-escopo strong{color:var(--gold-light);font-weight:500;}

/* ---- Lightbox: clique na foto abre inteira ---- */
.lightbox{
  position:fixed;inset:0;z-index:1000;
  display:flex;align-items:center;justify-content:center;
  padding:clamp(1rem,4vw,3rem);
  background:rgba(8,8,10,.92);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  opacity:0;visibility:hidden;cursor:zoom-out;
  transition:opacity .4s var(--ease),visibility .4s var(--ease);
}
.lightbox.aberto{opacity:1;visibility:visible;}
.lightbox__img{
  max-width:92vw;max-height:88vh;width:auto;height:auto;
  border-radius:3px;
  box-shadow:0 0 0 1px rgba(123,92,255,.6),0 40px 120px -40px rgba(0,0,0,1);
  transform:scale(.96);transition:transform .45s var(--ease);
}
.lightbox.aberto .lightbox__img{transform:scale(1);}
.lightbox__fechar{
  position:absolute;top:clamp(.8rem,3vw,1.8rem);right:clamp(1rem,3vw,2rem);
  width:48px;height:48px;border:1px solid var(--line);border-radius:50%;
  background:rgba(14,14,16,.6);color:var(--gold-light);
  font-size:1.8rem;line-height:1;cursor:pointer;
  display:grid;place-items:center;
  transition:background .3s,border-color .3s,transform .3s var(--ease);
}
.lightbox__fechar:hover{background:rgba(123,92,255,.22);border-color:var(--gold);transform:rotate(90deg);}

/* Acessibilidade: desliga todo o movimento para quem pede menos animação */
@media (prefers-reduced-motion:reduce){
  .capa__logo,.capa__sup,.capa__titulo,.capa .ornamento,.capa__sub,
  .capa__fundo::before,
  .secao.is-visible .foto::before,
  .secao.is-visible .foto,
  .valor.is-visible .valor__cartao,
  .regras.is-visible .regras__lista li{animation:none !important;}
  .foto::before{transform:scale(1.02) !important;}
  .capa__fundo::before{transform:scale(1.06) !important;}
  .secao .lista-itens li,.paleta .paleta__grid li,.regras .regras__lista li{
    opacity:1 !important;transform:none !important;transition:none !important;
  }
  .progresso{display:none;}
}

/* ============================================================
   AUDIOVISUAL — específicos (badge de duração, detalhe, placeholder)
   ============================================================ */
/* Badge de duração da seção (1 hora / 8 horas) */
.duracao{
  display:inline-flex;align-items:center;gap:.55rem;
  font-family:var(--font-body);font-weight:400;
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold-light);
  border:1px solid var(--line);border-radius:100px;
  padding:.45rem 1.1rem;margin-bottom:1.4rem;
}
.duracao::before{
  content:"";width:6px;height:6px;border-radius:50%;
  background:var(--gold);box-shadow:0 0 8px var(--gold);
}
/* Sub-detalhe de um item (ex: composição do kit de som) */
.lista-itens .detalhe{
  display:block;color:var(--text-dim);font-size:.84em;margin-top:.3rem;font-style:italic;
}
/* Placeholder de foto: quadrado e flutuante enquanto não há imagens reais */
.foto-placeholder{ aspect-ratio:1/1; min-height:0; }
.secao.is-visible .foto-placeholder{ animation:flutua 7.5s ease-in-out infinite; }

/* Cabeçalho centralizado das seções de equipamentos */
.secao__cab{ text-align:center; margin-bottom:clamp(2rem,5vw,3rem); }
.secao__cab .secao__num{ margin-bottom:.8rem; }
.secao__cab .duracao{ margin-bottom:1.2rem; }
.secao__cab .secao__titulo{ margin-bottom:0; }

/* Grid de cards de equipamento (ícones de linha) */
.equip-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(168px,1fr));
  gap:clamp(.9rem,2vw,1.4rem);
}
.equip{
  text-align:center; display:flex; flex-direction:column; align-items:center; gap:.55rem;
  padding:clamp(1.5rem,3vw,2.1rem) 1rem;
  border:1px solid var(--line); border-radius:8px;
  background:linear-gradient(165deg, rgba(123,92,255,.09), rgba(42,212,255,.03) 60%, transparent);
  opacity:0; transform:translateY(20px);
  transition:opacity .7s var(--ease), transform .5s var(--ease),
             border-color .5s var(--ease), box-shadow .5s var(--ease);
}
.secao.is-visible .equip{ opacity:1; transform:none; }
.secao.is-visible .equip:nth-child(1){transition-delay:.10s}
.secao.is-visible .equip:nth-child(2){transition-delay:.18s}
.secao.is-visible .equip:nth-child(3){transition-delay:.26s}
.secao.is-visible .equip:nth-child(4){transition-delay:.34s}
.secao.is-visible .equip:nth-child(5){transition-delay:.42s}
.secao.is-visible .equip:nth-child(6){transition-delay:.50s}
.secao.is-visible .equip:nth-child(7){transition-delay:.58s}
.equip:hover{
  transform:translateY(-6px); transition-delay:0s;
  border-color:rgba(123,92,255,.7);
  box-shadow:0 30px 60px -36px rgba(123,92,255,.6);
}
.equip__icone{ width:44px; height:44px; color:var(--gold-light); display:block; }
.equip__icone svg{ width:100%; height:100%; display:block; filter:drop-shadow(0 0 10px rgba(123,92,255,.45)); }
.equip__qtd{ font-family:var(--font-display); font-weight:700; color:#fff; font-size:1.35rem; line-height:1; }
.equip__nome{ font-size:.98rem; color:var(--text); margin:0; max-width:none; font-weight:500; }
.equip__desc{ font-size:.7rem; letter-spacing:.05em; color:var(--text-dim); margin:0; max-width:none; text-transform:uppercase; }

/* Foto recortada do equipamento (no lugar do ícone) */
.equip__foto{
  width:100%; height:144px; object-fit:contain; display:block; margin-bottom:.35rem;
  filter:drop-shadow(0 12px 24px rgba(0,0,0,.7));
  transition:transform .5s var(--ease);
}
.equip:hover .equip__foto{ transform:scale(1.06); }
/* Subtítulo da seção (ex.: DJ na cerimônia) */
.secao__sub-txt{ color:var(--text-dim); font-size:.98rem; margin:.6rem auto 0; max-width:46ch; }
/* Cerimônia: 2 cards centralizados, não esticados */
.equip-grid--2{ max-width:560px; margin-inline:auto; grid-template-columns:repeat(2,1fr); }
@media (max-width:480px){ .equip-grid--2{ grid-template-columns:1fr; } }

@media (prefers-reduced-motion:reduce){
  .equip{ opacity:1 !important; transform:none !important; transition:none !important; }
}

/* ============================================================
   IMPRESSÃO — o PDF oficial (9:16) é gerado a partir de pdf.html,
   que tem páginas dedicadas. Aqui ficam só ajustes mínimos para
   um eventual Ctrl+P do próprio site, sem interferir no pdf.html.
   ============================================================ */
@media print{
  *{ -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
  .progresso,.lightbox{ display:none !important; }
  .reveal{ opacity:1 !important; transform:none !important; }
  .foto::before,.capa__fundo::before{ animation:none !important; }
}
