/* ===== Diego Simonete — páginas internas (Cerimoniais / Institucional) ===== */

/* ---------- HERO EDITORIAL (cerimoniais) ---------- */
.phero{
  position:relative; min-height:100svh;
  display:flex; align-items:center;
  padding:8rem clamp(1.2rem,6vw,5rem) 4rem;
  overflow:hidden;
}
.phero__glow{
  position:absolute; inset:-20% -10% auto -10%; height:130%;
  background:radial-gradient(ellipse at 78% 22%, rgba(201,154,74,.20), transparent 60%),
             radial-gradient(ellipse at 6% 88%, rgba(201,154,74,.12), transparent 55%);
  pointer-events:none;
}
.phero__inner{
  position:relative; z-index:2;
  display:grid; grid-template-columns:1.2fr .8fr; align-items:center; gap:4rem;
  max-width:1320px; margin:0 auto; width:100%;
}
.phero__title{
  font-family:var(--serif); font-weight:600;
  font-size:clamp(2.3rem,4.4vw,3.7rem); line-height:1.06; letter-spacing:.01em;
}
/* ⚠️ Não colocar .reveal neste <em>: o `animation` daqui tem
   especificidade maior e sobrescreve o `animation:reveal`, deixando
   o texto preso em opacity:0 (invisível). Envolver num <span class="reveal">. */
.phero__title em{
  font-style:normal;
  background:linear-gradient(100deg, var(--gold-deep) 20%, var(--gold-bright) 45%, var(--gold-deep) 70%);
  background-size:250% 100%;
  -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:shimmer 6s linear infinite;
}
.phero__sub{
  margin-top:1.5rem; max-width:44ch;
  color:var(--ink-dim); font-size:1.06rem; line-height:1.7;
}
.phero__sub strong{color:var(--ink);}
.phero__actions{display:flex; flex-wrap:wrap; gap:.9rem; margin-top:2.2rem;}

/* pílulas de tipos de evento */
.pills{display:flex; flex-wrap:wrap; gap:.5rem; margin-top:2.4rem;}
.pill{
  font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; font-weight:700;
  padding:.5rem .95rem; border-radius:999px;
  border:1px solid rgba(224,184,105,.3); color:var(--gold-bright);
  background:rgba(201,154,74,.07);
}

/* moldura de foto do hero */
.phero__media{position:relative; justify-self:center;}
.pframe{
  position:relative; width:min(470px,100%); aspect-ratio:4/5;
  border-radius:18px; overflow:hidden;
  border:1px solid var(--line);
  background:linear-gradient(155deg,#3a312c,#241d1a);
  box-shadow:0 40px 90px -28px rgba(0,0,0,.6);
}
.pframe img{width:100%; height:100%; object-fit:cover;}
.pframe--tall{aspect-ratio:3/4;}
.pcaption{
  position:absolute; left:0; right:0; bottom:0;
  padding:2.6rem 1.1rem .9rem;
  background:linear-gradient(transparent, rgba(20,16,14,.9));
  font-size:.76rem; color:var(--cream-dim); line-height:1.5;
}
/* variante com mídia larga (card de vídeo 16:9) */
.phero--media-wide .phero__inner{grid-template-columns:1fr 1.05fr;}
.phero--media-wide .phero__title{font-size:clamp(2.4rem,4.8vw,4.1rem);}

/* card de vídeo — o vídeo é 960x540, então nunca passa disso */
.vcard{
  position:relative; width:min(620px,100%); max-width:960px;
  border-radius:18px; overflow:hidden;
  border:1px solid var(--line);
  background:#1c1613;
  box-shadow:0 40px 90px -28px rgba(0,0,0,.65);
}
.vcard__media{position:relative; aspect-ratio:16/9; overflow:hidden;}
.vcard__media video{width:100%; height:100%; object-fit:cover; display:block;}
.vcard__badge{
  position:absolute; top:.9rem; left:.9rem; z-index:2;
  display:inline-flex; align-items:center; gap:.45rem;
  padding:.35rem .75rem; border-radius:999px;
  background:rgba(20,16,14,.72); backdrop-filter:blur(8px);
  border:1px solid rgba(224,184,105,.3);
  font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; font-weight:800; color:var(--gold-bright);
}
.vcard__badge i{
  width:7px; height:7px; border-radius:50%; background:#e0574f;
  animation:pulseDot 1.8s ease-in-out infinite;
}
@keyframes pulseDot{0%,100%{opacity:1;} 50%{opacity:.25;}}
.vcard__cap{
  padding:.9rem 1.1rem 1rem;
  font-size:.76rem; color:var(--ink-faint); line-height:1.55;
  border-top:1px solid var(--line-dark);
}

.phero__ring{
  position:absolute; top:-24px; right:-24px; width:118px; height:118px;
  border:1px solid var(--gold); border-radius:50%; opacity:.4;
  animation:spin 20s linear infinite;
}
.phero__ring::before{content:''; position:absolute; inset:15px; border:1px dashed var(--gold); border-radius:50%;}

/* ---------- SEÇÃO GENÉRICA ---------- */
.sec{padding:7rem clamp(1.2rem,6vw,5rem);}
.sec--alt{background:var(--bg-2);}
.sec--dark{background:var(--dark);}
.sec__inner{max-width:1250px; margin:0 auto;}
.sec__head{max-width:62ch; margin-bottom:3.4rem;}
.sec__head--center{margin-inline:auto; text-align:center;}
.sec__head h2{font-size:clamp(1.9rem,3.6vw,2.8rem); line-height:1.14; margin-bottom:1rem;}
.sec__head p{color:var(--ink-dim); line-height:1.75;}

/* ---------- CARDS DE FORMATO ---------- */
.formats{display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:1.4rem;}
.fcard{
  position:relative; padding:2rem 1.6rem 1.8rem;
  border:1px solid var(--line); border-radius:16px;
  background:linear-gradient(165deg, var(--card-2), var(--card));
  transition:transform .4s var(--ease), border-color .4s, box-shadow .4s;
}
.fcard:hover{transform:translateY(-6px); border-color:rgba(224,184,105,.36); box-shadow:0 26px 50px -28px rgba(0,0,0,.7);}
.fcard__icon{
  width:44px; height:44px; border-radius:12px; margin-bottom:1.1rem;
  display:flex; align-items:center; justify-content:center;
  background:rgba(201,154,74,.12); border:1px solid rgba(224,184,105,.26); color:var(--gold-bright);
}
.fcard h3{font-family:var(--serif); font-size:1.35rem; font-weight:600; margin-bottom:.6rem;}
.fcard p{color:var(--ink-dim); font-size:.93rem; line-height:1.7;}
.fcard__meta{
  margin-top:1.1rem; padding-top:.9rem; border-top:1px solid var(--line-dark);
  font-size:.72rem; letter-spacing:.09em; text-transform:uppercase; color:var(--gold);
}

/* ---------- CARROSSEL DE FOTOS ----------
   Altura fixa e largura livre: cada foto entra inteira,
   na proporção original. Nada é recortado. */
.carousel{position:relative;}
.carousel__viewport{
  overflow-x:auto; overflow-y:hidden;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  margin-inline:calc(clamp(1.2rem,6vw,5rem) * -1);
  padding-inline:clamp(1.2rem,6vw,5rem);
  padding-block:.25rem 1.1rem;
}
.carousel__viewport::-webkit-scrollbar{display:none;}
.carousel__track{display:flex; gap:1rem; width:max-content;}

.carousel__slide{
  position:relative; flex:0 0 auto;
  height:clamp(300px,46vw,500px);
  max-width:calc(100vw - 2.6rem);   /* nunca mais largo que a tela */
  scroll-snap-align:center;
  border-radius:16px; overflow:hidden;
  border:1px solid var(--line); background:#241d1a;
  box-shadow:0 24px 50px -30px rgba(0,0,0,.7);
  display:flex; align-items:center; justify-content:center;
}
.carousel__slide picture{display:contents;}
.carousel__slide img{
  height:100%; width:auto; max-width:100%;
  display:block; object-fit:contain;   /* encaixa inteira, nunca recorta */
}
.carousel__slide figcaption{
  position:absolute; left:0; right:0; bottom:0;
  padding:2.6rem .95rem .9rem;
  background:linear-gradient(transparent, rgba(18,14,12,.94));
  font-size:.76rem; color:var(--cream-dim); line-height:1.45;
}

/* controles */
.carousel__nav{
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem; margin-top:.4rem;
}
.carousel__arrows{display:flex; gap:.55rem;}
.carousel__btn{
  width:44px; height:44px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  border:1px solid rgba(240,233,219,.22); background:rgba(240,233,219,.05);
  color:var(--ink); cursor:pointer;
  transition:background .3s, border-color .3s, transform .3s var(--ease), opacity .3s;
}
.carousel__btn:hover:not(:disabled){background:rgba(201,154,74,.16); border-color:var(--gold); transform:translateY(-2px);}
.carousel__btn:disabled{opacity:.28; cursor:default;}
html.has-custom-cursor .carousel__btn{cursor:none;}

.carousel__dots{display:flex; gap:.45rem; align-items:center;}
.carousel__dot{
  width:7px; height:7px; border-radius:50%; padding:0;
  border:none; background:rgba(240,233,219,.24); cursor:pointer;
  transition:background .3s, width .3s var(--ease);
}
.carousel__dot[aria-current="true"]{background:var(--gold-bright); width:22px; border-radius:99px;}
html.has-custom-cursor .carousel__dot{cursor:none;}

.carousel__hint{font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint);}

@media (max-width:700px){
  .carousel__hint{display:none;}
  /* altura menor no celular para que as fotos largas caibam
     inteiras na tela em vez de sobrar barra lateral */
  .carousel__slide{height:clamp(240px,56vw,400px);}
}

/* ---------- PROVA / DESTAQUES COM FOTO ---------- */
.proofs{display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:1.6rem;}
.proof{
  border:1px solid var(--line); border-radius:16px; overflow:hidden;
  background:var(--card);
  transition:transform .4s var(--ease), border-color .4s;
}
.proof:hover{transform:translateY(-5px); border-color:rgba(224,184,105,.3);}
.proof__img{position:relative; aspect-ratio:16/9; overflow:hidden; background:#1c1613;}
.proof__img img{width:100%; height:100%; object-fit:cover;}
.proof__body{padding:1.4rem 1.4rem 1.6rem;}
.proof__tag{
  display:inline-block; font-size:.66rem; letter-spacing:.14em; text-transform:uppercase;
  font-weight:800; color:var(--gold-bright); margin-bottom:.6rem;
}
.proof__body h3{font-family:var(--serif); font-size:1.2rem; font-weight:600; margin-bottom:.5rem; line-height:1.3;}
.proof__body p{color:var(--ink-dim); font-size:.9rem; line-height:1.65;}

/* ---------- LISTA DE ENTREGAS / CHECKLIST ---------- */
.checks{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1rem 2rem; list-style:none;}
.checks li{
  display:flex; gap:.8rem; align-items:flex-start;
  padding:1rem 0; border-bottom:1px solid var(--line-dark);
  color:var(--ink-dim); font-size:.95rem; line-height:1.6;
}
.checks li strong{display:block; color:var(--ink); font-weight:700; margin-bottom:.15rem; font-size:.98rem;}
.checks svg{flex:0 0 auto; margin-top:.15rem; color:var(--gold-bright);}

/* ---------- PASSO A PASSO ---------- */
.steps{counter-reset:st; display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:1.6rem;}
.step{position:relative; padding-top:2.6rem;}
.step::before{
  counter-increment:st; content:counter(st,decimal-leading-zero);
  position:absolute; top:0; left:0;
  font-family:var(--serif); font-size:1.9rem; color:var(--gold); opacity:.55; font-weight:700;
}
.step h3{font-size:1.05rem; font-weight:700; margin-bottom:.45rem;}
.step p{color:var(--ink-dim); font-size:.9rem; line-height:1.65;}

/* ---------- FAIXA DE NÚMEROS ---------- */
.numbers{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  border:1px solid var(--line); border-radius:16px; overflow:hidden; background:var(--card);
}
.numbers > div{padding:1.7rem 1rem; text-align:center; border-right:1px solid var(--line);}
.numbers > div:last-child{border-right:none;}
.numbers strong{display:block; font-family:var(--serif); font-size:2rem; color:var(--gold-bright); font-weight:700; line-height:1;}
.numbers span{display:block; margin-top:.5rem; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint);}

/* ---------- CTA FINAL ---------- */
.cta{position:relative; padding:8rem clamp(1.2rem,6vw,5rem); text-align:center; overflow:hidden; background:var(--dark);}
.cta__glow{
  position:absolute; bottom:-30%; left:50%; transform:translateX(-50%); width:1000px; height:600px;
  background:radial-gradient(ellipse, rgba(201,154,74,.2), transparent 65%); pointer-events:none;
}
.cta__inner{position:relative; max-width:700px; margin:0 auto;}
.cta h2{font-size:clamp(2rem,4.6vw,3.3rem); line-height:1.12; margin-bottom:1.1rem;}
.cta p{color:var(--cream-dim); margin-bottom:2.2rem; line-height:1.7;}

/* ---------- BOTÕES DE ENTRADA NA HOME ---------- */
.gateways{padding:6rem clamp(1.2rem,6vw,5rem) 7rem; background:var(--bg-2);}
.gateways__inner{max-width:1250px; margin:0 auto;}
.gateways__grid{display:grid; grid-template-columns:1fr 1fr; gap:1.6rem; margin-top:3rem;}
.gate{
  position:relative; display:block; overflow:hidden;
  border-radius:20px; border:1px solid var(--line);
  min-height:340px;
  isolation:isolate;
  transition:transform .5s var(--ease), border-color .5s, box-shadow .5s;
}
.gate:hover{transform:translateY(-7px); border-color:rgba(224,184,105,.45); box-shadow:0 34px 64px -32px rgba(0,0,0,.75);}
.gate img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2;
  transition:transform 1.2s var(--ease);
}
.gate:hover img{transform:scale(1.07);}
.gate::before{
  content:''; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg, rgba(26,21,18,.4) 0%, rgba(26,21,18,.78) 55%, rgba(20,16,14,.96) 100%);
}
.gate__body{position:relative; padding:2.2rem 1.8rem; height:100%; display:flex; flex-direction:column; justify-content:flex-end;}
.gate__tag{
  align-self:flex-start; font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; font-weight:800;
  color:#221703; background:linear-gradient(135deg,var(--gold-bright),var(--gold));
  padding:.35rem .8rem; border-radius:999px; margin-bottom:auto;
}
.gate h3{font-family:var(--serif); font-size:clamp(1.5rem,2.6vw,2rem); font-weight:600; margin-bottom:.5rem; line-height:1.15;}
.gate p{color:var(--cream-dim); font-size:.92rem; line-height:1.6; max-width:38ch;}
.gate__go{
  display:inline-flex; align-items:center; gap:.5rem; margin-top:1.3rem;
  font-size:.84rem; font-weight:700; color:var(--gold-bright);
}
.gate__go svg{transition:transform .4s var(--ease);}
.gate:hover .gate__go svg{transform:translateX(5px);}

@media (max-width:820px){
  .gateways__grid{grid-template-columns:1fr;}
  .gate{min-height:300px;}
}

/* ---------- NAV: voltar ---------- */
.nav__back{display:inline-flex; align-items:center; gap:.4rem;}
.nav__back svg{transition:transform .35s var(--ease);}
.nav__back:hover svg{transform:translateX(-4px);}

/* ---------- RESPONSIVO GERAL ---------- */
@media (max-width:900px){
  .phero__inner{grid-template-columns:1fr; text-align:center; gap:3rem;}
  .phero__sub{margin-inline:auto;}
  .phero__actions, .pills{justify-content:center;}
  .sec__head{margin-inline:auto;}
  .sec{padding:5rem clamp(1.2rem,6vw,5rem);}
  .phero--media-wide .phero__inner{grid-template-columns:1fr;}
  .vcard{margin-inline:auto;}
  .carousel__nav{flex-direction:column-reverse; align-items:center; gap:.9rem;}
}
