/* ───────── HERO ───────── */
.hero {
  position: relative; isolation: isolate; overflow: hidden;
  min-height: 100svh;
  display: grid; place-items: center; align-content: center;
  padding: calc(env(safe-area-inset-top) + 6rem) var(--gutter) 7rem;
  text-align: center;
}
.hero__canvas, .hero__fallback { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; }
/* fallback CSS até o shader assumir (ele inicia no load); some de novo se o contexto WebGL cair */
.hero__canvas { display: none; }
.has-webgl .hero__canvas { display: block; }
.has-webgl .hero__fallback { display: none; }
.hero__beam, .hero__bloom { position: absolute; pointer-events: none; }
/* feixe diagonal que atravessa o título na entrada */
.hero__beam {
  inset: -20% -60%; z-index: 0; opacity: 0;
  background: linear-gradient(105deg,
    transparent 40%, rgb(233 194 122 / 0.25) 45%, rgb(255 244 214 / 0.95) 49.5%,
    rgb(255 255 255 / 1) 50%, rgb(233 194 122 / 0.55) 52%, transparent 60%);
  transform: translateX(-60%);
}
/* luz que cresce quando o título se dissolve ao rolar; fica abaixo do ::after para sumir no creme antes da borda */
.hero__bloom {
  left: 50%; top: 45%; z-index: -1; width: 100vmax; aspect-ratio: 1; translate: -50% -50%; border-radius: 50%;
  background: radial-gradient(closest-side, #fff 0%, #fff8e8 22%, rgb(233 194 122 / 0.6) 45%, rgb(233 194 122 / 0.15) 65%, transparent);
  opacity: 0; transform: scale(0.3);
}
/* camadas em profundidade (--px/--py de -1 a 1, vindos do mouse/toque/inclinação) */
.hero__titlewrap {
  position: relative; z-index: 1;
  transform: perspective(900px) rotateY(calc(var(--px, 0) * 6deg)) rotateX(calc(var(--py, 0) * -5deg))
    translate3d(calc(var(--px, 0) * 10px), calc(var(--py, 0) * 8px), 0);
}
.hero__title { position: relative; }
.scroll-cue { z-index: 1; }
.hero__canvas { translate: calc(var(--px, 0) * -16px) calc(var(--py, 0) * -12px); scale: 1.05; }
@property --lr { syntax: "<length>"; inherits: true; initial-value: 0px; }
/* lanterna: cópia dourada do título, visível só dentro do círculo */
.hero__torch {
  position: absolute; inset: 0; margin: 0; pointer-events: none; color: transparent;
  background: radial-gradient(circle at var(--lx, 50%) var(--ly, 50%), #fff6da 0, #f0c66e 20%, #c8913a 45%, #8a5a14 75%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-mask-image: radial-gradient(circle var(--lr) at var(--lx, 50%) var(--ly, 50%), #000 35%, transparent 100%);
  mask-image: radial-gradient(circle var(--lr) at var(--lx, 50%) var(--ly, 50%), #000 35%, transparent 100%);
  transition: --lr 0.6s var(--ease-out-expo);
}
.hero.is-torch .hero__torch { --lr: 150px; }
.hero__torch em { color: transparent; background: none; animation: none; }
.hero__torch em::before { display: none; }
.hero__torchglow {
  position: absolute; left: 0; top: 0; z-index: 0; width: 24rem; height: 24rem; margin: -12rem 0 0 -12rem;
  border-radius: 50%; pointer-events: none; opacity: 0;
  translate: var(--gx, -999px) var(--gy, -999px);
  background: radial-gradient(closest-side, rgb(255 246 222 / 0.85), rgb(233 194 122 / 0.3) 55%, transparent);
  transition: opacity 0.6s var(--ease-out-expo), translate 0.12s linear;
}
.hero.is-torch .hero__torchglow { opacity: 1; }
/* "paz" viva: halo que respira, brilho que corre e leve balanço */
.hero__title em {
  position: relative; color: transparent;
  background: linear-gradient(100deg, var(--c-gold-deep) 42%, #f2cd86 50%, var(--c-gold-deep) 58%) 0 0 / 300% 100%;
  -webkit-background-clip: text; background-clip: text;
  animation: paz-shine 5s var(--ease-in-out-soft) 3s infinite, paz-sway 6s var(--ease-in-out-soft) 2.6s infinite;
}
.hero__title em::before {
  content: ""; position: absolute; inset: -0.3em -0.4em; z-index: -1; border-radius: 50%;
  background: radial-gradient(closest-side, rgb(233 194 122 / 0.6), transparent 70%);
  animation: breathe 4s var(--ease-in-out-soft) infinite;
}
.no-webgl .hero__canvas { display: none; }
.no-webgl .hero__fallback { display: block; }
.hero::after {
  content: ""; position: absolute; inset: auto 0 0; z-index: -1; height: 35%;
  background: linear-gradient(to bottom, transparent, var(--c-cream));
  pointer-events: none;
}
.hero__title {
  max-width: 13ch;
  font-family: var(--font-display); font-size: var(--fs-3xl); font-weight: 400;
  line-height: 1.02; letter-spacing: -0.015em; text-wrap: balance;
  perspective: 800px;
  /* a máscara do "acender" recorta na caixa do elemento: folga embaixo para g, j e p da última linha */
  padding-bottom: 0.22em; margin-bottom: -0.22em;
}
.hero__title em { font-style: italic; }
.w { display: inline-block; }
.scroll-cue {
  position: absolute; bottom: calc(env(safe-area-inset-bottom) + 1.5rem); left: 50%; translate: -50% 0;
  display: grid; justify-items: center; gap: 0.6rem; min-height: 3rem;
  font-size: var(--fs-xs); letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none;
  color: var(--c-ink-muted);
}
.scroll-cue i { width: 1px; height: 3rem; background: linear-gradient(var(--c-gold), transparent); animation: cue 2.2s var(--ease-in-out-soft) infinite; }

/* ───────── MANIFESTO: uma frase que se ilumina ───────── */
.manifesto { position: relative; overflow-x: clip; overflow-y: visible; padding-block: clamp(5rem, 12vw, 9rem); }
.manifesto__stage {
  position: relative; display: grid; justify-items: center; align-content: center; gap: clamp(1.25rem, 3vw, 2.25rem);
  width: min(100% - 2 * var(--gutter), 72rem); margin-inline: auto; text-align: center;
}
.manifesto__text {
  max-width: 19ch;
  font-family: var(--font-display); font-size: clamp(2.2rem, 1rem + 4.9vw, 5.8rem); font-weight: 400;
  line-height: 1.1; letter-spacing: -0.012em; text-wrap: balance;
}
/* pontuação colada à palavra (não quebra linha antes da vírgula) */
.manifesto .nb { white-space: nowrap; }
/* palavra pesada: riscada por um traço dourado */
.manifesto .neg { position: relative; display: inline-block; color: rgb(27 42 65 / 0.4); white-space: nowrap; }
.manifesto .neg::after {
  content: ""; position: absolute; left: -4%; right: -4%; top: 56%; height: 0.075em; border-radius: 1em;
  background: linear-gradient(90deg, var(--c-gold-light), var(--c-gold));
  transform-origin: left; transform: scaleX(var(--strike, 1));
}
/* palavra leve: acende em dourado com brilho atrás */
.manifesto .pos { position: relative; display: inline-block; font-style: italic; color: var(--c-gold-deep); white-space: nowrap; }
.manifesto .pos::before {
  content: ""; position: absolute; inset: -0.35em -0.45em; z-index: -1; border-radius: 50%;
  background: radial-gradient(closest-side, rgb(233 194 122 / 0.65), transparent 70%);
  opacity: var(--lit, 1); transform: scale(calc(0.6 + var(--lit, 1) * 0.4));
}
.manifesto__foot {
  display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 0.3em 0.7em;
  font-size: var(--fs-sm); font-weight: 600; letter-spacing: 0.06em; color: var(--c-ink-muted);
}
@media (max-width: 40rem) {
  .manifesto__foot { flex-direction: column; align-items: center; }
  .manifesto__foot > [aria-hidden] { display: none; }
}
.manifesto__sun {
  position: absolute; left: 50%; top: 52%; z-index: -1; width: 85vmin; aspect-ratio: 1; translate: -50% -50%;
  border-radius: 50%; pointer-events: none; opacity: 0.55;
  background: radial-gradient(closest-side, rgb(255 246 222 / 0.95), rgb(233 194 122 / 0.35) 50%, transparent);
}
.has-motion .manifesto { padding: 0; }
.has-motion .manifesto__stage { min-height: 100svh; }
/* poeira dourada flutuando (só transform/opacity) */
.dust { position: absolute; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
.dust i {
  position: absolute; left: calc(7% + var(--d) * 6.5%); top: calc(18% + (var(--d) * 37) % 64 * 1%);
  width: calc(5px + var(--d) % 4 * 3px); aspect-ratio: 1; border-radius: 50%;
  background: radial-gradient(circle, #fff6da, rgb(233 194 122 / 0.85) 45%, transparent 70%);
  opacity: 0.7; animation: dust-float calc(7s + var(--d) % 5 * 1.3s) var(--ease-in-out-soft) calc(var(--d) * -0.9s) infinite alternate;
}

/* ───────── REVEAL ───────── */
.reveal {
  position: relative; isolation: isolate; overflow: hidden;
  min-height: 100svh; display: grid; place-items: center;
  padding: 6rem var(--gutter); text-align: center;
}
.reveal::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    radial-gradient(60% 50% at 50% 45%, rgb(233 194 122 / 0.55), transparent 70%),
    conic-gradient(from var(--ray-angle) at 50% 45%,
      transparent 0 8%, rgb(255 251 244 / 0.5) 10%, transparent 12% 22%,
      rgb(255 251 244 / 0.4) 24%, transparent 26% 40%, rgb(255 251 244 / 0.5) 42%,
      transparent 44% 60%, rgb(255 251 244 / 0.35) 62%, transparent 64% 80%,
      rgb(255 251 244 / 0.45) 82%, transparent 84%);
  -webkit-mask-image: radial-gradient(closest-side at 50% 45%, #000, transparent);
  mask-image: radial-gradient(closest-side at 50% 45%, #000, transparent);
}
.reveal__aperture { display: grid; justify-items: center; gap: 1.25rem; max-width: 40rem; }
.reveal__title {
  --wght: 800;
  display: grid;
  font-family: var(--font-display); font-size: clamp(3.5rem, 1.8rem + 9vw, 10rem);
  font-weight: var(--wght); line-height: 0.92; letter-spacing: -0.02em;
  background: linear-gradient(110deg, var(--c-night) 38%, var(--c-gold) 50%, var(--c-night) 62%) 0 0 / 250% 100%;
  -webkit-background-clip: text; background-clip: text; color: transparent;
  /* brilho corre uma vez quando a seção entra (.is-lit via ScrollTrigger) */
}
.reveal.is-lit .reveal__title { animation: shimmer 2.6s var(--ease-in-out-soft) 0.2s 1 both; }
.reveal__title span { white-space: nowrap; }
.reveal__title span:last-child { font-style: italic; font-weight: calc(var(--wght) - 300); }
.reveal__tagline { max-width: 24ch; font-size: var(--fs-lg); color: var(--c-ink-muted); text-wrap: balance; }
/* no celular vira pilha (data / cidades / gratuito), sem "·" solto no fim da linha */
@media (max-width: 40rem) {
  .reveal__meta { flex-direction: column; align-items: center; }
  .reveal__meta > [aria-hidden] { display: none; }
}
.reveal__meta {
  display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 0.3em 0.7em;
  font-size: var(--fs-sm); font-weight: 600; letter-spacing: 0.04em;
}

/* ───────── COUNTDOWN ───────── */
.countdown { display: grid; justify-items: center; gap: 0.75rem; margin-top: 0.5rem; }
.countdown__caption { font-size: var(--fs-xs); font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--c-gold-deep); }
.countdown__units { display: flex; justify-content: center; gap: clamp(0.4rem, 2.5vw, 1rem); perspective: 600px; }
.countdown__unit {
  display: grid; justify-items: center; gap: 0.35rem;
  min-width: 4.1rem; padding: 0.9rem 0.5rem 0.7rem; border-radius: 18px;
  background: linear-gradient(180deg, rgb(255 251 244 / 0.95), rgb(239 228 208 / 0.85));
  box-shadow: inset 0 1px 0 #fff, inset 0 -1px 0 rgb(200 145 58 / 0.25), var(--shadow-warm);
}
.countdown__num {
  font-family: var(--font-display); font-size: clamp(1.75rem, 1.2rem + 3vw, 2.75rem); font-weight: 600;
  line-height: 1; font-variant-numeric: tabular-nums lining-nums;
  transform-origin: 50% 100%; backface-visibility: hidden;
}
.countdown__label { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-ink-muted); }
.countdown__message { max-width: 28ch; font-family: var(--font-display); font-size: var(--fs-lg); text-wrap: balance; }
/* antes do JS montar (ou sem JS) não mostra "00" */
.countdown:not([data-phase]) .countdown__units,
.countdown:not([data-phase]) .countdown__caption { visibility: hidden; }
.countdown[data-phase="live"] .countdown__units,
.countdown[data-phase="ended"] .countdown__units { display: none; }

/* ───────── MARQUEE ───────── */
.marquee {
  overflow: hidden; padding-block: 1.25rem;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
}
.marquee__track { display: flex; gap: 2.5rem; width: max-content; animation: marquee 28s linear infinite; }
.has-motion .marquee__track { animation: none; }
.marquee__track span {
  display: inline-flex; align-items: center; gap: 2.5rem; white-space: nowrap;
  font-family: var(--font-display); font-size: var(--fs-xl); font-style: italic;
}
.marquee__track span::after { content: "✦"; font-size: 0.5em; font-style: normal; color: var(--c-gold); }

/* ───────── VÍDEO ───────── */
.video .container { display: grid; justify-items: center; text-align: center; }
.video .lead { margin-inline: auto; }
.video__frame {
  --video-ratio: 9 / 16;
  position: relative; overflow: hidden;
  width: min(100%, 24rem); max-height: 80svh; aspect-ratio: var(--video-ratio);
  margin-top: 2.5rem; border-radius: 28px;
}
.video__play { position: absolute; inset: 0; width: 100%; padding: 0; border: 0; background: none; cursor: pointer; }
/* o frame corta o que passa da borda: o anel de foco fica do lado de dentro */
.video__play { outline-offset: -6px; }
.video__note { margin-top: 1rem; font-size: var(--fs-sm); color: var(--c-ink-muted); }
.video__play picture, .video__play img { width: 100%; height: 100%; }
.video__play img { object-fit: cover; transition: transform 1.2s var(--ease-out-expo); }
.video__play:hover img { transform: scale(1.04); }
.video__play::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgb(27 42 65 / 0.55), transparent 55%); }
.video__btn {
  position: absolute; left: 50%; top: 50%; translate: -50% -50%; z-index: 1;
  display: grid; place-items: center; width: 5rem; height: 5rem; border-radius: 50%;
  background: rgb(255 251 244 / 0.92); color: var(--c-night); box-shadow: var(--shadow-glow);
}
.video__btn::before, .video__btn::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit;
  border: 1.5px solid rgb(255 251 244 / 0.85); animation: ring 2.6s var(--ease-out-expo) infinite;
}
.video__btn::after { animation-delay: 1.3s; }
.video__btn .icon { width: 1.75rem; height: 1.75rem; translate: 2px 0; }
.video__frame video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; background: #000; }

/* ───────── PASTOR ───────── */
.pastor__grid { display: grid; gap: 3rem; align-items: center; }
@media (min-width: 60rem) { .pastor__grid { grid-template-columns: 1fr 1.1fr; } }
.pastor__media {
  position: relative; display: grid; place-items: end center;
  width: 100%; max-width: 26rem; margin-inline: auto; aspect-ratio: 562 / 783;
}
.pastor__halo {
  position: absolute; inset: 6% 2% 22%; border-radius: 50%;
  background: radial-gradient(circle at 50% 45%, #fff 0%, var(--c-gold-light) 38%, rgb(200 145 58 / 0.35) 62%, transparent 72%);
  animation: halo 6s var(--ease-in-out-soft) infinite;
}
.pastor__halo::after {
  content: ""; position: absolute; inset: -10%; border-radius: 50%;
  background: conic-gradient(from 0deg, transparent 0 80%, var(--c-gold) 100%);
  -webkit-mask: radial-gradient(closest-side, transparent calc(100% - 2px), #000 calc(100% - 1px));
  mask: radial-gradient(closest-side, transparent calc(100% - 2px), #000 calc(100% - 1px));
  animation: spin 14s linear infinite;
}
.pastor__photo { position: relative; z-index: 1; width: 92%; }
.pastor__photo img { width: 100%; }
/* sombra no chão como gradiente estático (drop-shadow em elemento com parallax repintava a cada frame no Safari) */
.pastor__photo::after {
  content: ""; position: absolute; left: 12%; right: 12%; bottom: -4%; z-index: -1; height: 14%;
  border-radius: 50%; background: radial-gradient(closest-side, rgb(120 72 18 / 0.28), transparent);
}
.pastor__media::after {
  content: ""; position: absolute; inset: auto 0 0; z-index: 2; height: 22%;
  background: linear-gradient(transparent, var(--c-sand));
}
.chips { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 2rem; }
.chip {
  display: inline-flex; align-items: center; gap: 0.55em; padding: 0.6rem 1rem;
  border-radius: var(--radius-pill); background: rgb(255 251 244 / 0.75);
  box-shadow: inset 0 0 0 1px rgb(200 145 58 / 0.3);
  font-size: var(--fs-sm); font-weight: 500;
}
.chip::before { content: ""; flex: none; width: 0.45rem; height: 0.45rem; border-radius: 50%; background: var(--grad-gold); }

/* ───────── PROGRAMAÇÃO: linha do tempo do dia ───────── */
.schedule .container { display: grid; justify-items: center; text-align: center; }
.schedule .lead { margin-inline: auto; max-width: 44ch; }
.timeline {
  --line: 6.5rem; /* posição x da linha; a hora ("10h20") cabe à esquerda dela sem encostar na bolinha */
  position: relative; display: grid; gap: 1.25rem;
  width: 100%; max-width: 36rem; margin: 3rem 0 0; padding: 0; list-style: none; text-align: left;
}
.timeline::before, .timeline::after {
  content: ""; position: absolute; left: var(--line); top: 1.2rem; bottom: 1.2rem; width: 2px; border-radius: 2px;
}
.timeline::before { background: rgb(200 145 58 / 0.18); }
/* a linha "acende" com o scroll (scaleY via GSAP); sem motion fica cheia */
.timeline::after {
  background: linear-gradient(var(--c-gold-light), var(--c-gold) 60%, var(--c-night));
  transform-origin: top; transform: scaleY(var(--progress, 1));
}
.timeline__item { position: relative; display: grid; grid-template-columns: calc(var(--line) + 1.5rem) 1fr; align-items: center; }
.timeline__item::before {
  content: ""; position: absolute; left: calc(var(--line) - 7px); top: 50%; z-index: 1;
  width: 16px; height: 16px; margin-top: -8px; border-radius: 50%;
  background: var(--c-ivory); box-shadow: 0 0 0 3px var(--c-gold), 0 0 18px 4px rgb(233 194 122 / 0.7);
}
.timeline__item--night::before { box-shadow: 0 0 0 3px var(--c-night), 0 0 18px 4px rgb(27 42 65 / 0.35); }
.timeline__time {
  grid-column: 1; width: calc(var(--line) - 1.25rem); text-align: right; white-space: nowrap;
  font-family: var(--font-display); font-size: var(--fs-lg); font-weight: 600; font-variant-numeric: tabular-nums;
}
.timeline__body {
  padding: 1.1rem 1.25rem; border-radius: 20px;
  background: linear-gradient(160deg, rgb(255 251 244 / 0.95), rgb(255 251 244 / 0.7));
  box-shadow: inset 0 0 0 1px rgb(200 145 58 / 0.22), var(--shadow-warm);
}
.timeline__item--night .timeline__body {
  background: linear-gradient(160deg, #22344f, var(--c-night)); color: var(--c-ivory);
  box-shadow: inset 0 0 0 1px rgb(233 194 122 / 0.25), 0 16px 40px rgb(27 42 65 / 0.3);
}
.timeline__label {
  display: flex; align-items: center; gap: 0.5em;
  font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-gold-deep);
}
.timeline__item--night .timeline__label { color: var(--c-gold-light); }
.timeline__place { margin-top: 0.3rem; font-size: var(--fs-base); font-weight: 500; line-height: 1.4; }

/* ───────── LOCAL: dois cartões ───────── */
.venues { display: grid; gap: 1rem; margin-top: 3rem; }
@media (min-width: 52rem) { .venues { grid-template-columns: 1fr 1fr; } }
.venue-card {
  display: grid; align-content: start; gap: 0.6rem; padding: 1.75rem 1.5rem; border-radius: var(--radius);
  transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
  transition: transform 0.5s var(--ease-out-expo);
}
.venue-card__city {
  display: inline-flex; align-items: center; gap: 0.45em;
  font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-gold-deep);
}
.venue-card__name { font-family: var(--font-display); font-size: var(--fs-xl); font-weight: 500; line-height: 1.1; letter-spacing: -0.01em; }
.venue-card__address { color: var(--c-ink-muted); }
.venue-card__times { display: inline-flex; align-items: center; gap: 0.5em; font-weight: 600; }
.venue-card__times .icon { color: var(--c-gold-deep); }
.venue-card .cta-row { margin-top: 0.75rem; }

/* ───────── CONVIDAR ───────── */
/* o azul-noite é um painel de cantos arredondados sobre o creme (sem degradê entre as cores);
   com motion ele se abre conforme entra na tela (clip-path via GSAP) */
.invite {
  --panel-gap: clamp(0.75rem, 2.5vw, 2rem);
  isolation: isolate; overflow: hidden; color: var(--c-ivory);
  margin-block: clamp(1rem, 3vw, 2.5rem);
  clip-path: inset(0 var(--panel-gap) round clamp(28px, 4vw, 48px));
}
.invite[data-bg="night"] { background: var(--c-night); }
.invite::before {
  content: ""; position: absolute; left: 50%; top: -30rem; z-index: -1;
  width: 60rem; aspect-ratio: 1; translate: -50% 0;
  background: radial-gradient(closest-side, rgb(200 145 58 / 0.35), transparent);
  animation: breathe 8s var(--ease-in-out-soft) infinite;
}
.invite__grid { display: grid; gap: 3rem; align-items: center; }
@media (min-width: 60rem) { .invite__grid { grid-template-columns: 1.1fr 1fr; } }
.chat {
  display: grid; padding: 1.5rem; border-radius: var(--radius); rotate: -2deg;
  background: linear-gradient(160deg, #0f1a2b, #16243a);
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.06), 0 30px 60px rgb(0 0 0 / 0.35);
}
.chat__bubble {
  justify-self: end; max-width: 92%; padding: 0.9rem 1rem;
  border-radius: 18px 18px 4px 18px; background: #005C4B; color: #E9EDEF;
  font-size: var(--fs-sm); line-height: 1.45; overflow-wrap: anywhere; white-space: pre-line; /* mesmas quebras de linha da mensagem */
  box-shadow: 0 4px 14px rgb(0 0 0 / 0.25);
}
.chat__meta { justify-self: end; margin-top: 0.35rem; font-size: 0.6875rem; color: rgb(233 237 239 / 0.6); }

/* ───────── FAQ ───────── */
.faq__list { display: grid; gap: 0.75rem; margin-top: 2.5rem; }
.faq__item {
  border-radius: 20px; background: rgb(255 251 244 / 0.7);
  box-shadow: inset 0 0 0 1px rgb(200 145 58 / 0.22);
  transition: background var(--dur), box-shadow var(--dur);
}
.faq__item[open] { background: var(--c-ivory); box-shadow: inset 0 0 0 1px rgb(200 145 58 / 0.5), var(--shadow-warm); }
.faq__item summary {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  min-height: 3.5rem; padding: 1rem 1.25rem;
  font-weight: 600; cursor: pointer; list-style: none;
}
.faq__item summary::-webkit-details-marker { display: none; }
.faq__icon {
  position: relative; flex: none; width: 2rem; height: 2rem; border-radius: 50%;
  background: var(--c-sand); transition: rotate var(--dur) var(--ease-out-expo), background var(--dur);
}
.faq__icon::before, .faq__icon::after {
  content: ""; position: absolute; left: 50%; top: 50%; translate: -50% -50%;
  width: 0.8rem; height: 1.5px; border-radius: 2px; background: var(--c-night);
}
.faq__icon::after { rotate: 90deg; }
.faq__item[open] .faq__icon { rotate: 135deg; background: var(--c-gold-light); }
.faq__item::details-content {
  block-size: 0; overflow: hidden;
  transition: block-size var(--dur) var(--ease-out-expo), content-visibility var(--dur) allow-discrete;
}
.faq__item[open]::details-content { block-size: auto; }
.faq__body { padding: 0 1.25rem 1.25rem; color: var(--c-ink-muted); }

/* ───────── FINAL + RODAPÉ ───────── */
.final { isolation: isolate; overflow: hidden; text-align: center; }
.final::before {
  content: ""; position: absolute; inset: 0; z-index: -1; background: var(--grad-dawn);
  /* o amanhecer nasce do fundo da página, sem linha no topo da seção */
  -webkit-mask-image: linear-gradient(transparent, #000 45%); mask-image: linear-gradient(transparent, #000 45%);
}
.final__inner { display: grid; justify-items: center; gap: 1.25rem; }
.final__question { max-width: 28ch; font-family: var(--font-display); font-size: var(--fs-lg); font-style: italic; color: var(--c-ink-muted); }
.final__title {
  font-family: var(--font-display); font-size: var(--fs-3xl); font-weight: 500;
  line-height: 1; letter-spacing: -0.015em;
}
.footer {
  display: grid; justify-items: center; gap: 0.25rem;
  padding: 3rem var(--gutter) calc(7rem + env(safe-area-inset-bottom));
  text-align: center; font-size: var(--fs-sm); color: var(--c-ink-muted);
}
.footer__small { margin-top: 0.5rem; font-size: var(--fs-xs); }

/* ───────── BARRA FIXA ───────── */
.ctabar {
  position: fixed; left: 0.75rem; right: 0.75rem; bottom: calc(0.75rem + env(safe-area-inset-bottom)); z-index: 50;
  display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; padding: 0.5rem; border-radius: 22px;
  /* fundo sólido: backdrop-filter numa barra fixa re-borrava a página a cada frame de scroll */
  background: rgb(27 42 65 / 0.96);
  box-shadow: 0 20px 40px rgb(27 42 65 / 0.35), inset 0 0 0 1px rgb(255 255 255 / 0.08);
  opacity: 0; translate: 0 calc(100% + 2rem);
  transition: translate 0.6s var(--ease-out-expo), opacity 0.4s;
}
.ctabar.is-visible { opacity: 1; translate: 0 0; }
html:not(.js) .ctabar { display: none; }
@media (min-width: 60rem) {
  .ctabar { left: 50%; right: auto; width: 26rem; translate: -50% calc(100% + 2rem); }
  .ctabar.is-visible { translate: -50% 0; }
}
.ctabar__btn {
  position: relative; isolation: isolate; overflow: hidden;
  display: flex; align-items: center; justify-content: center; gap: 0.5em;
  min-height: 3rem; border-radius: 16px;
  font-size: var(--fs-sm); font-weight: 600; text-decoration: none; color: var(--c-ivory);
}
.ctabar__btn--primary { background: var(--grad-gold); color: var(--c-night); }

/* ───────── FOLHA DA AGENDA ───────── */
.sheet__hint { padding: 0.75rem 1rem; border-radius: 14px; background: var(--c-sand); font-size: var(--fs-sm); }
.sheet__options { display: grid; gap: 0.5rem; }
.sheet__option {
  display: flex; align-items: center; gap: 0.75rem; min-height: 3.5rem; padding: 0.75rem 1rem;
  border-radius: 16px; background: var(--c-cream); box-shadow: inset 0 0 0 1px rgb(200 145 58 / 0.25);
  font-weight: 600; text-decoration: none;
}
.sheet__lead { margin-top: -0.5rem; font-size: var(--fs-sm); color: var(--c-ink-muted); }
.sheet__option--session { display: grid; grid-template-columns: 4rem 1fr auto; gap: 0.75rem; }
.sheet__time { font-size: var(--fs-lg); font-weight: 700; font-variant-numeric: lining-nums tabular-nums; }
.sheet__what { display: grid; }
.sheet__what small { font-size: var(--fs-xs); font-weight: 400; color: var(--c-ink-muted); }
.sheet__option--session .icon { color: var(--c-gold-deep); }
.sheet__alt { justify-self: center; margin-top: 0; text-align: center; }
