/* =========================================================
   BLM Eventos — Página do Evento (v2)
   Tudo escopado em .ep. Cores e fontes vêm de variáveis --ep-* definidas
   pelo renderizador a partir do tema. Layout por container query, para que
   a prévia de 390px no editor seja idêntica ao celular real.
   ========================================================= */

.ep {
  --r-lg: 26px; --r-md: 16px; --r-sm: 12px; --r-btn: 999px;
  --ep-shadow: 0 14px 34px rgba(20, 16, 10, .08);
  --ep-pad: 22px;
  position: relative;
  color: var(--ep-ink);
  background: var(--ep-bg);
  font-family: var(--ep-font-body);
  font-size: 15px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  font-variant-numeric: lining-nums;
  overflow-x: clip;
}
.ep *, .ep *::before, .ep *::after { box-sizing: border-box; }
.ep img { display: block; max-width: 100%; }
.ep h1, .ep h2, .ep p, .ep figure, .ep blockquote, .ep ol { margin: 0; }
.ep [hidden] { display: none !important; }
.ep[data-radius="soft"] { --r-lg: 16px; --r-md: 12px; --r-sm: 8px; }
.ep[data-radius="sharp"] { --r-lg: 4px; --r-md: 3px; --r-sm: 2px; }
.ep[data-button="rounded"] { --r-btn: 12px; }
.ep[data-button="square"] { --r-btn: 3px; }
.ep[data-surface="dark"] { --ep-shadow: 0 16px 40px rgba(0, 0, 0, .45); }

.ep-ico { width: 1.1em; height: 1.1em; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

/* A coluna do convite é o container de referência: no desktop ela fica igual ao celular, centralizada. */
.ep-page { max-width: 560px; margin-inline: auto; background: var(--ep-bg); container-type: inline-size; }
.ep-opening { container-type: inline-size; }
.ep-s { position: relative; padding: 30px var(--ep-pad); }
.ep-s + .ep-s { padding-top: 14px; }

/* ---------- tipografia ---------- */
.ep-head { display: grid; justify-items: center; gap: 6px; margin-bottom: 18px; text-align: center; }
.ep-eyebrow { color: var(--ep-accent); font-family: var(--ep-font-heading); font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.ep-h2 { font-family: var(--ep-font-heading); font-size: 26px; font-weight: 700; line-height: 1.15; text-wrap: balance; }
.ep-divider { width: 150px; color: var(--ep-accent); opacity: .85; }
.ep-divider svg { display: block; width: 100%; height: auto; }
.ep-lead { max-width: 34em; margin-inline: auto; text-align: center; font-size: 16px; color: var(--ep-ink); }
.ep-body { max-width: 34em; margin-inline: auto; color: var(--ep-muted); }
.ep-center { text-align: center; }
.ep-note { margin-top: 10px; color: var(--ep-muted); font-size: 14px; }

/* nome de destaque: depende do par de fontes */
.ep-display { font-family: var(--ep-font-display); font-weight: 400; line-height: 1; font-size: 15cqw; text-wrap: balance; }
.ep[data-display="romantico"] .ep-display, .ep[data-display="noite"] .ep-display { font-size: 19cqw; line-height: .95; }
.ep[data-display="moderno"] .ep-display, .ep[data-display="impacto"] .ep-display, .ep[data-display="limpo"] .ep-display { font-weight: 900; text-transform: uppercase; letter-spacing: -.02em; font-size: 11cqw; line-height: .95; }
.ep[data-display="impacto"] .ep-display { font-weight: 400; font-size: 16cqw; letter-spacing: .01em; }
.ep[data-display="aventura"] .ep-display, .ep[data-display="divertido"] .ep-display { font-weight: 800; font-size: 16cqw; }
.ep-kicker { font-family: var(--ep-font-heading); font-size: 12px; font-weight: 700; letter-spacing: .3em; text-transform: uppercase; }

/* ---------- cartões ---------- */
.ep-card { border: 1px solid var(--ep-line); border-radius: var(--r-md); background: var(--ep-surface); box-shadow: var(--ep-shadow); }
.ep[data-card="outline"] .ep-card { background: transparent; box-shadow: none; }
.ep[data-card="solid"] .ep-card { border-color: transparent; box-shadow: none; }
.ep[data-card="glass"] .ep-card {
  background: color-mix(in srgb, var(--ep-surface) 72%, transparent);
  border-color: color-mix(in srgb, var(--ep-accent) 28%, transparent);
  backdrop-filter: blur(10px);
}

/* ---------- botões ---------- */
.ep-btn {
  min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 12px 20px; border: 1px solid transparent; border-radius: var(--r-btn);
  font: 700 15px/1 var(--ep-font-body); text-decoration: none; cursor: pointer;
  transition: transform .15s ease, filter .15s ease;
}
.ep-btn:hover { filter: brightness(1.05); transform: translateY(-1px); }
.ep-btn:focus-visible, .ep-opt input:focus-visible + span, .ep-field input:focus-visible, .ep-field textarea:focus-visible { outline: 3px solid color-mix(in srgb, var(--ep-primary) 45%, transparent); outline-offset: 2px; }
.ep-btn:disabled { opacity: .6; cursor: progress; transform: none; }
.ep-btn-primary { color: var(--ep-primary-ink); background: var(--ep-primary); box-shadow: 0 10px 24px color-mix(in srgb, var(--ep-primary) 30%, transparent); }
.ep-btn-ghost { color: var(--ep-ink); background: var(--ep-surface); border-color: var(--ep-line); }
.ep-btn-block { width: 100%; }
.ep-btn-sm { min-height: 40px; padding: 9px 14px; font-size: 13px; }
.ep-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.ep-actions.ep-center { justify-content: center; }
.ep-actions-stack { flex-direction: column; }
.ep-actions-stack .ep-btn { width: 100%; }
.ep-link { margin: 14px auto 0; display: block; padding: 6px; border: 0; background: none; color: var(--ep-muted); font: 600 13px var(--ep-font-body); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

/* =========================================================
   CAPA
   ========================================================= */
.ep-s-hero { padding: 0 0 8px; text-align: center; }
.ep-s-hero + .ep-s { padding-top: 26px; }
.ep-hero-body { position: relative; display: grid; justify-items: center; gap: 8px; padding: 0 var(--ep-pad); }
.ep-hero-sub { color: var(--ep-muted); font-family: var(--ep-font-heading); font-size: 17px; font-style: italic; }

/* foto com degradê para a cor da página */
.ep-hero-media { position: relative; aspect-ratio: 4 / 4.6; overflow: hidden; background: var(--ep-soft); }
.ep-hero-media img { width: 100%; height: 100%; object-fit: cover; }
.ep-hero-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, color-mix(in srgb, var(--ep-bg) 0%, transparent) 40%, var(--ep-bg) 97%); }
.ep-hero--photo .ep-hero-body { margin-top: -30cqw; }
.ep-hero--photo .ep-kicker { color: var(--ep-accent); }
.ep-hero--photo .ep-display { color: var(--ep-ink); }
.ep[data-surface="dark"] .ep-hero--photo .ep-display { color: var(--ep-accent); text-shadow: 0 4px 30px color-mix(in srgb, var(--ep-accent) 35%, transparent); }
.ep-corner { position: absolute; top: -8cqw; width: 26cqw; color: var(--ep-accent); opacity: .7; pointer-events: none; }
.ep-corner-l { left: 2cqw; transform: scaleX(-1) rotate(-8deg); }
.ep-corner-r { right: 2cqw; transform: rotate(-8deg); }

/* faixa (corporativo) */
.ep-hero-banner { position: relative; min-height: 112cqw; display: flex; align-items: flex-end; background-color: var(--ep-primary); background-size: cover; background-position: center; text-align: left; }
.ep-hero-banner::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, color-mix(in srgb, var(--ep-primary) 35%, #04101c) 0%, color-mix(in srgb, var(--ep-primary) 20%, transparent) 40%, color-mix(in srgb, var(--ep-primary) 60%, #04101c) 100%); }
.ep-hero-banner-inner { position: relative; display: grid; gap: 10px; padding: 0 var(--ep-pad) 64px; color: var(--ep-hero-ink); }
.ep-hero-banner .ep-kicker { color: var(--ep-accent); }
.ep-hero-banner .ep-hero-sub { color: color-mix(in srgb, var(--ep-hero-ink) 82%, transparent); font-style: normal; font-family: var(--ep-font-body); font-size: 16px; max-width: 26em; }
.ep-hero-banner + .ep-hero-body { margin-top: -40px; }

/* ilustrada (infantil) */
.ep-hero-ill { position: relative; aspect-ratio: 1 / 1.08; overflow: hidden; }
.ep-hero-art { position: absolute; inset: 0; background-size: cover; background-position: center 30%; }
.ep-hero-ill::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(0, 0, 0, .28), transparent 45%); }
.ep-hero-ill-title { position: relative; z-index: 2; display: grid; justify-items: center; gap: 2px; padding: 8cqw var(--ep-pad) 0; color: #fff; }
.ep-hero-ill-title .ep-kicker { font-family: var(--ep-font-display); font-size: 6.5cqw; font-weight: 700; letter-spacing: 0; text-transform: none; text-shadow: 0 2px 10px rgba(0, 0, 0, .35); }
.ep-hero-ill-title .ep-display { color: #fff; -webkit-text-stroke: 1.6cqw var(--ep-primary); paint-order: stroke fill; text-shadow: 0 6px 18px rgba(0, 0, 0, .25); }
.ep-badge { margin-top: 6px; padding: 6px 16px; border-radius: 999px; color: var(--ep-accent-ink); background: var(--ep-accent); font-family: var(--ep-font-display); font-size: 5.4cqw; font-weight: 800; box-shadow: 0 6px 16px rgba(0, 0, 0, .18); }
.ep-wave { position: absolute; z-index: 3; left: 0; right: 0; bottom: -1px; width: 100%; height: 12cqw; fill: var(--ep-bg); }
.ep-hero-avatar { position: relative; z-index: 4; width: 40cqw; aspect-ratio: 1; margin: -22cqw auto 10px; overflow: hidden; border: 5px solid var(--ep-surface); border-radius: 50%; box-shadow: var(--ep-shadow); }
.ep-hero-avatar img { width: 100%; height: 100%; object-fit: cover; }

/* arte do convite (cartão 9:16 dos convites antigos) */
.ep-poster { width: 100%; max-width: 480px; margin: 0 auto; aspect-ratio: 9 / 16; container-type: inline-size; }
.ep-poster .tpl-canvas { width: 100%; height: 100%; }
.ep-hero--poster .ep-hero-body { margin-top: 4px; }

/* chips de data / hora / local */
.ep-chips { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 16px; text-align: left; }
.ep-chip-place { grid-column: 1 / -1; }
.ep-chip { min-width: 0; display: flex; align-items: center; gap: 8px; padding: 10px; border: 1px solid var(--ep-line); border-radius: var(--r-sm); background: var(--ep-surface); box-shadow: var(--ep-shadow); }
.ep-chip .ep-ico { color: var(--ep-primary); font-size: 18px; }
.ep[data-surface="dark"] .ep-chip .ep-ico { color: var(--ep-accent); }
.ep-chip span { min-width: 0; display: grid; line-height: 1.2; }
.ep-chip strong { overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.ep-chip small { overflow: hidden; color: var(--ep-muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.ep-chip-date b { color: var(--ep-primary); font-family: var(--ep-font-heading); font-size: 26px; line-height: 1; font-variant-numeric: lining-nums tabular-nums; }
.ep[data-surface="dark"] .ep-chip-date b { color: var(--ep-accent); }
.ep[data-card="glass"] .ep-chip { background: color-mix(in srgb, var(--ep-surface) 72%, transparent); border-color: color-mix(in srgb, var(--ep-accent) 28%, transparent); backdrop-filter: blur(10px); }

/* =========================================================
   SEÇÕES
   ========================================================= */
.ep-info { display: grid; gap: 4px; padding: 6px 16px 14px; }
.ep-row { display: flex; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--ep-line); }
.ep-row:last-of-type { border-bottom: 0; }
.ep-row > .ep-ico { margin-top: 2px; color: var(--ep-primary); font-size: 20px; }
.ep-row span { display: grid; }
.ep-row small { color: var(--ep-muted); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.ep-row em { color: var(--ep-muted); font-size: 14px; font-style: normal; }

.ep-countdown { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.ep-count-box { display: grid; justify-items: center; padding: 12px 4px; border: 1px solid var(--ep-line); border-radius: var(--r-sm); background: var(--ep-surface); }
.ep-count-box b { font-family: var(--ep-font-heading); font-size: 30px; line-height: 1; font-variant-numeric: lining-nums tabular-nums; color: var(--ep-ink); }
.ep-count-box small { margin-top: 4px; color: var(--ep-muted); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.ep-count-ended { padding: 16px; border-radius: var(--r-md); background: var(--ep-soft); text-align: center; font-weight: 600; }

.ep-highlights { display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: 10px; }
.ep-hl { display: grid; justify-items: center; gap: 8px; text-align: center; }
.ep-hl-ico { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 50%; color: var(--ep-primary); background: var(--ep-soft); border: 1px solid var(--ep-line); font-size: 24px; }
.ep[data-surface="dark"] .ep-hl-ico { color: var(--ep-accent); }
.ep-hl strong { font-size: 13px; line-height: 1.25; }
.ep-hl small { color: var(--ep-muted); font-size: 12px; }

.ep-feature { position: relative; overflow: hidden; border-radius: var(--r-lg); box-shadow: var(--ep-shadow); }
.ep-feature img { width: 100%; aspect-ratio: 4 / 3.2; object-fit: cover; }
.ep-feature figcaption { position: absolute; inset: auto 0 0; display: grid; gap: 4px; padding: 40px 20px 18px; color: #fff; background: linear-gradient(180deg, transparent, rgba(0, 0, 0, .62)); }
.ep-feature-title { font-family: var(--ep-font-display); font-size: 11cqw; line-height: 1; }
.ep-feature small { font-size: 13px; opacity: .9; }

.ep-gallery { display: flex; gap: 10px; margin-inline: calc(var(--ep-pad) * -1); padding-inline: var(--ep-pad); overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--ep-pad); scrollbar-width: none; }
.ep-gallery::-webkit-scrollbar { display: none; }
.ep-gallery-item { flex: 0 0 70%; padding: 0; border: 0; border-radius: var(--r-md); overflow: hidden; background: var(--ep-soft); scroll-snap-align: start; cursor: zoom-in; }
.ep-gallery-item img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.ep-dots { display: flex; justify-content: center; gap: 6px; margin-top: 12px; }
.ep-dots i { width: 7px; height: 7px; border-radius: 50%; background: var(--ep-line); transition: width .2s ease, background .2s ease; }
.ep-dots i.on { width: 20px; border-radius: 4px; background: var(--ep-primary); }

.ep-lightbox { width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; padding: 0; border: 0; background: rgba(0, 0, 0, .94); }
.ep-lightbox::backdrop { background: rgba(0, 0, 0, .9); }
.ep-lightbox-track { height: 100%; display: flex; overflow-x: auto; scroll-snap-type: x mandatory; }
.ep-lightbox-track img { flex: 0 0 100%; width: 100%; height: 100%; object-fit: contain; scroll-snap-align: start; }
.ep-lightbox-close { position: fixed; top: 16px; right: 16px; width: 44px; height: 44px; display: grid; place-items: center; border: 0; border-radius: 50%; color: #fff; background: rgba(255, 255, 255, .16); font-size: 20px; cursor: pointer; }

.ep-agenda { position: relative; display: grid; gap: 2px; padding: 0; list-style: none; }
.ep-agenda li { position: relative; display: grid; grid-template-columns: 58px 1fr; gap: 16px; padding: 10px 0; }
.ep-agenda li::before { content: ""; position: absolute; left: 66px; top: 0; bottom: 0; width: 2px; background: var(--ep-line); }
.ep-agenda li::after { content: ""; position: absolute; left: 62px; top: 16px; width: 10px; height: 10px; border: 2px solid var(--ep-primary); border-radius: 50%; background: var(--ep-bg); }
.ep-agenda time { color: var(--ep-primary); font-weight: 800; font-variant-numeric: lining-nums tabular-nums; }
.ep-agenda span { display: grid; padding-left: 8px; font-weight: 600; }
.ep-agenda small { color: var(--ep-muted); font-weight: 400; }

.ep-quote { display: grid; justify-items: center; gap: 12px; padding: 8px 6px; text-align: center; }
.ep-quote-mark { color: var(--ep-accent); font-size: 34px; }
.ep-quote p { font-family: var(--ep-font-heading); font-size: 22px; font-style: italic; line-height: 1.35; text-wrap: balance; }
.ep-quote cite { color: var(--ep-accent); font-family: var(--ep-font-display); font-size: 9cqw; font-style: normal; }

.ep-location { overflow: hidden; }
.ep-location-photo { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.ep-location-body { display: grid; gap: 4px; padding: 16px; }
.ep-location-body strong { font-family: var(--ep-font-heading); font-size: 19px; }
.ep-location-body span, .ep-location-body small { color: var(--ep-muted); }
.ep-location .ep-actions .ep-btn { flex: 1 1 auto; }

.ep-pix { display: flex; align-items: center; gap: 12px; padding: 14px; }
.ep-pix-ico { width: 42px; height: 42px; flex: 0 0 42px; display: grid; place-items: center; border-radius: 12px; color: #fff; background: #32bcad; font-size: 20px; }
.ep-pix-body { flex: 1; min-width: 0; display: grid; }
.ep-pix-body small { color: var(--ep-muted); font-size: 12px; }
.ep-pix-body strong { overflow-wrap: anywhere; font-size: 14px; }

/* ---------- RSVP ---------- */
.ep-rsvp { display: grid; gap: 14px; }
.ep-opts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.ep-opts-2 { grid-template-columns: 1fr 1fr; }
.ep-opt input { position: absolute; opacity: 0; pointer-events: none; }
.ep-opt span {
  min-height: 70px; height: 100%; display: grid; justify-items: center; align-content: center; gap: 6px; padding: 10px 6px;
  border: 1.5px solid var(--ep-line); border-radius: var(--r-sm); background: var(--ep-surface);
  font-size: 13px; font-weight: 700; line-height: 1.2; text-align: center; cursor: pointer; transition: all .15s ease;
}
.ep-opt .ep-ico { font-size: 20px; }
.ep-opt-confirmado input:checked + span { color: var(--ep-primary-ink); background: var(--ep-primary); border-color: var(--ep-primary); }
.ep-opt-nao_vai input:checked + span { color: #b4233d; background: #fdecef; border-color: #f2b8c2; }
.ep-opt-talvez input:checked + span { color: var(--ep-ink); background: color-mix(in srgb, var(--ep-accent) 22%, var(--ep-surface)); border-color: var(--ep-accent); }
.ep-field { display: grid; gap: 6px; }
.ep-field > span { font-size: 13px; font-weight: 700; }
.ep-field em { color: var(--ep-muted); font-style: normal; font-weight: 500; }
.ep-field small { color: var(--ep-muted); font-size: 12px; }
.ep-field input, .ep-field textarea {
  width: 100%; padding: 13px 14px; border: 1px solid var(--ep-line); border-radius: var(--r-sm);
  color: var(--ep-ink); background: var(--ep-surface); font: 500 16px var(--ep-font-body); resize: vertical;
}
.ep-field input::placeholder, .ep-field textarea::placeholder { color: color-mix(in srgb, var(--ep-muted) 75%, transparent); }
.ep-stepper { width: fit-content; display: flex; align-items: center; gap: 18px; padding: 5px; border: 1px solid var(--ep-line); border-radius: 999px; background: var(--ep-surface); }
.ep-stepper button { width: 38px; height: 38px; display: grid; place-items: center; border: 0; border-radius: 50%; color: var(--ep-primary); background: var(--ep-soft); font-size: 18px; cursor: pointer; }
.ep-stepper output { min-width: 18px; text-align: center; font-size: 18px; font-weight: 800; font-variant-numeric: lining-nums tabular-nums; }
.ep-form-msg:empty { display: none; }
.ep-form-msg { color: #b4233d; font-size: 13px; font-weight: 600; text-align: center; }
.ep-closed { display: grid; justify-items: center; gap: 6px; padding: 22px; text-align: center; }
.ep-closed .ep-ico { color: var(--ep-primary); font-size: 28px; }
.ep-closed span { color: var(--ep-muted); }

/* tela de sucesso */
.ep-success { display: grid; justify-items: center; gap: 12px; text-align: center; }
.ep-success-art { width: calc(100% + var(--ep-pad) * 2); margin-inline: calc(var(--ep-pad) * -1); margin-top: -14px; aspect-ratio: 16 / 8; background-size: cover; background-position: center 35%; -webkit-mask-image: linear-gradient(180deg, #000 60%, transparent); mask-image: linear-gradient(180deg, #000 60%, transparent); }
.ep-success-art + .ep-success-ico { margin-top: -46px; }
.ep-success-ico { width: 72px; height: 72px; display: grid; place-items: center; border: 5px solid var(--ep-bg); border-radius: 50%; color: var(--ep-primary-ink); background: var(--ep-primary); font-size: 34px; box-shadow: var(--ep-shadow); animation: ep-pop .45s cubic-bezier(.2, 1.4, .4, 1); }
.ep-success[data-status="nao_vai"] .ep-success-ico { color: #b4233d; background: #fdecef; }
.ep-success[data-status="talvez"] .ep-success-ico { color: var(--ep-accent-ink); background: var(--ep-accent); }
.ep-success .ep-h2 { color: var(--ep-primary); }
.ep[data-surface="dark"] .ep-success .ep-h2 { color: var(--ep-accent); }
.ep-success-card { width: 100%; display: grid; gap: 2px; padding: 14px 16px; text-align: left; }
.ep-success-card .ep-eyebrow { margin-bottom: 6px; color: var(--ep-ink); letter-spacing: .06em; text-transform: none; font-size: 14px; }
.ep-kv { display: grid; grid-template-columns: 118px 1fr; gap: 10px; padding: 7px 0; font-size: 14px; }
.ep-kv span { display: flex; align-items: center; gap: 8px; color: var(--ep-muted); }
.ep-kv .ep-ico { color: var(--ep-primary); }
.ep-success-photos { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.ep-success-photos img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--r-md); }
@keyframes ep-pop { from { transform: scale(.4); opacity: 0; } to { transform: scale(1); opacity: 1; } }

/* ---------- mural ---------- */
.ep-recados { display: grid; gap: 12px; margin-bottom: 16px; }
.ep-recado { overflow: hidden; }
.ep-recado img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.ep-recado p { padding: 14px 16px 6px; font-family: var(--ep-font-heading); font-size: 17px; line-height: 1.45; }
.ep-recado footer { display: flex; align-items: center; gap: 8px; padding: 0 16px 14px; color: var(--ep-muted); font-size: 13px; font-weight: 700; }
.ep-avatar { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; color: var(--ep-primary-ink); background: var(--ep-primary); font-size: 12px; }
.ep-recado-form { display: grid; gap: 12px; padding: 16px; }
.ep-recado-actions { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; }
.ep-file { position: relative; overflow: hidden; }
.ep-file input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.ep-hp { position: absolute; left: -9999px; width: 1px; height: 1px; }
.ep-sent { display: grid; justify-items: center; gap: 6px; padding: 10px; text-align: center; }
.ep-sent .ep-ico { color: var(--ep-primary); font-size: 28px; }
.ep-sent span { color: var(--ep-muted); font-size: 14px; }

/* ---------- rodapé ---------- */
.ep-s-footer { display: grid; justify-items: center; gap: 14px; padding-bottom: 90px; text-align: center; }
.ep-signature { color: var(--ep-accent); font-family: var(--ep-font-display); font-size: 11cqw; line-height: 1.1; }
.ep[data-display="moderno"] .ep-signature, .ep[data-display="limpo"] .ep-signature { font-size: 18px; font-weight: 700; }
.ep-made { color: var(--ep-muted); font-size: 12px; text-decoration: none; }
.ep-made b { color: var(--ep-ink); }

/* ---------- barra fixa de confirmação ---------- */
.ep-cta { position: sticky; z-index: 10; bottom: 0; height: 78px; margin-top: -78px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px)); background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--ep-bg) 92%, transparent) 40%); transition: transform .25s ease, opacity .25s ease; }
.ep-cta .ep-btn { max-width: 520px; margin-inline: auto; display: flex; }
.ep-cta.is-hidden { transform: translateY(110%); opacity: 0; pointer-events: none; }

/* ---------- prévia do editor ---------- */
.ep[data-mode="preview"] .ep-cta { display: none; }
.ep[data-mode="preview"] .ep-s { cursor: pointer; transition: outline-color .15s ease; outline: 2px dashed transparent; outline-offset: -5px; }
.ep[data-mode="preview"] .ep-s:hover { outline-color: color-mix(in srgb, var(--ep-primary) 55%, transparent); }
.ep[data-mode="preview"] .ep-s.is-focused { outline: 2px solid var(--ep-primary); }
.ep[data-mode="preview"] .ep-s:hover::before, .ep[data-mode="preview"] .ep-s.is-focused::before {
  content: attr(data-label); position: absolute; z-index: 6; top: 9px; left: 9px; padding: 4px 9px; border-radius: 999px;
  color: var(--ep-primary-ink); background: var(--ep-primary); font: 700 11px/1.2 var(--ep-font-body);
}
.ep[data-mode="preview"] input, .ep[data-mode="preview"] textarea { pointer-events: none; }
.ep-s.is-locked > :not(.ep-lock) { filter: blur(1.5px) saturate(.6); opacity: .55; }
.ep-lock { position: absolute; z-index: 5; inset: 0; display: grid; place-items: center; align-content: center; gap: 6px; color: var(--ep-ink); }
.ep-lock span { padding: 8px 14px; border-radius: 999px; background: var(--ep-surface); box-shadow: var(--ep-shadow); font-size: 13px; font-weight: 800; }
.ep-lock .ep-ico { width: 40px; height: 40px; padding: 9px; border-radius: 50%; color: var(--ep-primary-ink); background: var(--ep-primary); }

/* ---------- abertura com envelope ---------- */
.ep-opening {
  position: absolute; z-index: 30; top: 0; left: 0; right: 0; height: var(--ep-vh, 100svh);
  display: grid; place-items: center; align-content: center; gap: 22px; padding: 24px;
  background: radial-gradient(60cqw 60cqw at 50% 40%, color-mix(in srgb, var(--ep-accent) 18%, transparent), transparent 70%), var(--ep-bg);
}
.ep-opening-top { color: var(--ep-accent); font-family: var(--ep-font-heading); font-size: 13px; font-weight: 700; letter-spacing: .25em; text-transform: uppercase; }
.ep-opening-hint { color: var(--ep-muted); font-size: 13px; animation: ep-blink 1.8s ease-in-out infinite; }
.ep-envelope { position: relative; width: min(78cqw, 380px); aspect-ratio: 1.45; padding: 0; border: 0; background: none; cursor: pointer; perspective: 1000px; }
.ep-envelope > span { position: absolute; display: block; }
.ep-env-back { inset: 0; border-radius: 6px; background: color-mix(in srgb, var(--ep-surface) 78%, var(--ep-primary)); box-shadow: 0 24px 50px rgba(0, 0, 0, .22); }
.ep-env-letter { z-index: 1; left: 6%; right: 6%; top: 7%; bottom: 8%; display: grid; place-items: center; padding: 8px; border-radius: 4px; color: var(--ep-ink); background: var(--ep-surface); transition: transform .8s cubic-bezier(.3, .7, .2, 1) .45s; }
.ep-env-letter .ep-display { font-size: 9cqw; text-align: center; }
.ep-env-front { z-index: 2; inset: 0; border-radius: 6px; clip-path: polygon(0 0, 50% 54%, 100% 0, 100% 100%, 0 100%); background: color-mix(in srgb, var(--ep-surface) 88%, var(--ep-primary)); }
.ep-env-flap { z-index: 3; left: 0; right: 0; top: 0; height: 58%; clip-path: polygon(0 0, 100% 0, 50% 100%); background: color-mix(in srgb, var(--ep-surface) 70%, var(--ep-primary)); transform-origin: top; transition: transform .55s ease, z-index 0s .3s; }
.ep-env-seal { z-index: 4; left: 50%; top: 52%; width: 18cqw; max-width: 82px; aspect-ratio: 1; display: grid !important; place-items: center; border-radius: 50%; color: var(--ep-primary-ink); background: var(--ep-primary); box-shadow: 0 6px 14px rgba(0, 0, 0, .25), inset 0 0 0 4px color-mix(in srgb, var(--ep-primary-ink) 25%, transparent); font-family: var(--ep-font-display); font-size: 6cqw; transform: translate(-50%, -50%); transition: opacity .25s ease, transform .25s ease; }
.ep-opening.is-opening .ep-env-seal { opacity: 0; transform: translate(-50%, -50%) scale(.6); }
.ep-opening.is-opening .ep-env-flap { z-index: 0; transform: rotateX(180deg); }
.ep-opening.is-opening .ep-env-letter { z-index: 2; transform: translateY(-58%); }
.ep-opening.is-opening { animation: ep-fade-out .5s ease 1.05s forwards; }
@keyframes ep-fade-out { to { opacity: 0; transform: scale(1.04); visibility: hidden; } }
@keyframes ep-blink { 50% { opacity: .45; } }

/* =========================================================
   APARÊNCIAS (data-look) E SEÇÕES NOVAS
   ========================================================= */

/* ---------- player / mapa com fachada ---------- */
.ep-embed { position: relative; overflow: hidden; border-radius: var(--r-md); background: var(--ep-soft); aspect-ratio: 16 / 9; box-shadow: var(--ep-shadow); }
.ep-embed.is-tall, .ep-embed.is-short { aspect-ratio: 16 / 6; }
.ep-embed.is-tall.is-live { aspect-ratio: auto; height: 352px; }
.ep-embed.is-short.is-live { aspect-ratio: auto; height: 152px; }
.ep-embed-map { aspect-ratio: 16 / 10; border-radius: 0; box-shadow: none; }
.ep-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.ep-embed-facade {
  position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 10px; width: 100%; padding: 0; border: 0;
  color: #fff; cursor: pointer; background: linear-gradient(135deg, color-mix(in srgb, var(--ep-primary) 85%, #000), color-mix(in srgb, var(--ep-accent) 70%, #000)) center / cover;
}
.ep-embed-facade[style] { background-size: cover; background-position: center; }
.ep-embed-facade::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, .05), rgba(0, 0, 0, .45)); }
.ep-embed-map .ep-embed-facade { color: var(--ep-ink); background: repeating-linear-gradient(35deg, var(--ep-soft) 0 14px, color-mix(in srgb, var(--ep-soft) 70%, var(--ep-surface)) 14px 28px); }
.ep-embed-map .ep-embed-facade::before { background: radial-gradient(circle at 50% 45%, transparent 0 40px, color-mix(in srgb, var(--ep-bg) 30%, transparent) 120px); }
.ep-embed-spotify .ep-embed-facade { background: linear-gradient(135deg, #1db954, #0d6b30); }
.ep-embed-play { position: relative; width: 66px; height: 66px; display: grid; place-items: center; border-radius: 50%; color: var(--ep-primary-ink); background: var(--ep-primary); font-size: 26px; box-shadow: 0 10px 30px rgba(0, 0, 0, .35); transition: transform .2s ease; }
.ep-embed-facade:hover .ep-embed-play { transform: scale(1.08); }
.ep-embed-label { position: relative; font-weight: 800; font-size: 14px; text-shadow: 0 1px 8px rgba(0, 0, 0, .4); }
.ep-embed-map .ep-embed-label { text-shadow: none; }
.ep-embed-empty { display: grid; place-items: center; color: var(--ep-muted); font-size: 14px; border: 2px dashed var(--ep-line); box-shadow: none; }

/* capa em vídeo */
.ep-hero-video .ep-embed { border-radius: 0; box-shadow: none; aspect-ratio: 4 / 4.2; }
.ep-hero-video .ep-embed.is-live { aspect-ratio: 16 / 9; }
.ep-hero--video .ep-hero-body { padding-top: 18px; }
.ep-hero--video .ep-kicker { color: var(--ep-accent); }

/* ---------- informações: ingresso / cartões ---------- */
.ep-info-cards, .ep-info-ticket { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ep-info-cell { display: grid; gap: 2px; align-content: start; padding: 14px; border: 1px solid var(--ep-line); border-radius: var(--r-md); background: var(--ep-surface); box-shadow: var(--ep-shadow); }
.ep-info-cell .ep-ico { color: var(--ep-primary); font-size: 22px; margin-bottom: 4px; }
.ep-info-cell small { color: var(--ep-muted); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.ep-info-cell strong { font-family: var(--ep-font-heading); font-size: 17px; line-height: 1.2; }
.ep-info-cell em { color: var(--ep-muted); font-size: 13px; font-style: normal; }
.ep-info-ticket { position: relative; gap: 0; border: 1.5px dashed color-mix(in srgb, var(--ep-primary) 55%, var(--ep-line)); border-radius: var(--r-md); background: var(--ep-surface); overflow: hidden; }
.ep-info-ticket .ep-info-cell { border: 0; border-radius: 0; box-shadow: none; background: none; }
.ep-info-ticket .ep-info-cell:nth-child(odd) { border-right: 1.5px dashed var(--ep-line); }
.ep-info-ticket .ep-info-cell:nth-child(n+3) { border-top: 1.5px dashed var(--ep-line); }

/* ---------- texto com foto ---------- */
.ep-text-photo { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-md); margin: 4px 0 16px; }
.ep-text-side { display: grid; grid-template-columns: 40% 1fr; gap: 16px; align-items: start; }
.ep-text-side .ep-text-photo { aspect-ratio: 3 / 4; margin: 0; }
.ep-text-side .ep-body { margin: 0; }
.ep-text-card { overflow: hidden; }
.ep-text-card .ep-text-photo { margin: 0; border-radius: 0; }
.ep-text-card-body { padding: 22px 18px; }

/* ---------- contagem: placar / anéis / em linha ---------- */
.ep-count-box b.tick { animation: ep-tick .35s ease; }
@keyframes ep-tick { from { transform: translateY(-30%); opacity: .2; } }
.ep-count-flip .ep-count-box { padding: 0; border: 0; background: none; gap: 6px; }
.ep-count-flip .ep-count-box b { position: relative; width: 100%; padding: 14px 0; border-radius: var(--r-sm); color: var(--ep-primary-ink); background: var(--ep-primary); text-align: center; font-size: 34px; box-shadow: var(--ep-shadow); overflow: hidden; }
.ep-count-flip .ep-count-box b::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: color-mix(in srgb, var(--ep-primary-ink) 25%, transparent); }
.ep-count-ring .ep-count-box { position: relative; padding: 0; border: 0; background: none; aspect-ratio: 1; place-content: center; }
.ep-count-ring svg { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }
.ep-count-ring circle { fill: none; stroke: var(--ep-line); stroke-width: 2.4; }
.ep-count-ring .ep-ring-val { stroke: var(--ep-primary); stroke-linecap: round; stroke-dasharray: 0 100; transition: stroke-dasharray .6s ease; }
.ep-count-ring .ep-count-box b { font-size: 22px; }
.ep-count-ring .ep-count-box small { margin-top: 0; font-size: 9px; }
.ep-count-inline { display: flex; justify-content: center; gap: 4px; }
.ep-count-inline .ep-count-box { display: flex; align-items: baseline; gap: 3px; padding: 0 6px; border: 0; background: none; }
.ep-count-inline .ep-count-box b { font-size: 28px; color: var(--ep-primary); }
.ep-count-inline .ep-count-box small { letter-spacing: .04em; }

/* ---------- destaques em blocos ---------- */
.ep-s-highlights[data-look="tiles"] .ep-highlights { grid-template-columns: 1fr 1fr; }
.ep-s-highlights[data-look="tiles"] .ep-hl { justify-items: start; padding: 16px; border-radius: var(--r-md); background: var(--ep-soft); text-align: left; }
.ep-s-highlights[data-look="tiles"] .ep-hl-ico { width: 44px; height: 44px; font-size: 20px; border: 0; background: var(--ep-surface); }

/* ---------- programação ---------- */
.ep-agenda-cards { gap: 10px; }
.ep-agenda-cards li { grid-template-columns: 70px 1fr; align-items: center; padding: 14px; border: 1px solid var(--ep-line); border-radius: var(--r-md); background: var(--ep-surface); box-shadow: var(--ep-shadow); }
.ep-agenda-cards li::before, .ep-agenda-cards li::after, .ep-agenda-compact li::before, .ep-agenda-compact li::after { display: none; }
.ep-agenda-cards time { padding: 8px 0; border-radius: var(--r-sm); color: var(--ep-primary-ink); background: var(--ep-primary); text-align: center; }
.ep-agenda-cards span { padding-left: 0; }
.ep-agenda-compact li { grid-template-columns: 52px 1fr; gap: 10px; padding: 8px 0; border-bottom: 1px dashed var(--ep-line); }
.ep-agenda-compact span { padding-left: 0; }

/* ---------- citação discreta ---------- */
.ep-s-quote[data-look="minimal"] .ep-quote { justify-items: start; padding: 4px 0 4px 18px; border-left: 3px solid var(--ep-accent); text-align: left; }
.ep-s-quote[data-look="minimal"] .ep-quote-mark { display: none; }
.ep-s-quote[data-look="minimal"] .ep-quote p { font-size: 18px; }
.ep-s-quote[data-look="minimal"] cite { font-family: var(--ep-font-body); font-size: 13px; font-weight: 700; }

/* ---------- galeria: grade / polaroide / mosaico ---------- */
.ep-gallery-grid, .ep-gallery-polaroid, .ep-gallery-mosaic { display: grid; margin: 0; padding: 0; overflow: visible; scroll-snap-type: none; }
.ep-gallery-grid { grid-template-columns: repeat(3, 1fr); gap: 6px; }
.ep-gallery-grid .ep-gallery-item img { aspect-ratio: 1; }
.ep-gallery-grid .ep-gallery-item, .ep-gallery-mosaic .ep-gallery-item { border-radius: var(--r-sm); }
.ep-gallery-polaroid { grid-template-columns: 1fr 1fr; gap: 18px 14px; padding: 6px 4px; }
.ep-gallery-polaroid .ep-gallery-item { padding: 8px 8px 26px; border-radius: 3px; background: #fff; box-shadow: 0 8px 20px rgba(0, 0, 0, .14); transform: rotate(-2.2deg); }
.ep-gallery-polaroid .ep-gallery-item:nth-child(even) { transform: rotate(2deg) translateY(8px); }
.ep-gallery-polaroid .ep-gallery-item img { aspect-ratio: 1; }
.ep-gallery-mosaic { grid-template-columns: repeat(4, 1fr); grid-auto-rows: 22cqw; grid-auto-flow: dense; gap: 6px; }
.ep-gallery-mosaic .ep-gallery-item img { height: 100%; aspect-ratio: auto; }
.ep-gallery-mosaic .ep-gallery-item:nth-child(5n+1) { grid-column: span 2; grid-row: span 2; }
.ep-gallery-mosaic .ep-gallery-item:nth-child(5n+4) { grid-column: span 2; }
.ep-gallery-item { flex-basis: 70%; }
.ep-lightbox-track figure { position: relative; flex: 0 0 100%; height: 100%; margin: 0; scroll-snap-align: start; }
.ep-lightbox-track figure img { width: 100%; height: 100%; object-fit: contain; }
.ep-lightbox-dl { position: absolute; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: rgba(255, 255, 255, .18); font-size: 20px; }

/* ---------- local ---------- */
.ep-howto { display: flex; gap: 10px; margin-top: 10px; padding: 12px; border-radius: var(--r-sm); background: var(--ep-soft); color: var(--ep-ink); font-size: 14px; }
.ep-howto .ep-ico { margin-top: 2px; color: var(--ep-primary); font-size: 18px; }
.ep-location-body .ep-embed-map { margin: 12px -16px -16px; }
.ep-location > .ep-embed-map { border-bottom: 1px solid var(--ep-line); }

/* ---------- vídeo / playlist ---------- */
.ep-s-video[data-look="wide"] { padding-inline: 0; }
.ep-s-video[data-look="wide"] .ep-embed { border-radius: 0; }
.ep-s-video[data-look="wide"] .ep-note { padding-inline: var(--ep-pad); }

/* ---------- cardápio ---------- */
.ep-menu { display: grid; gap: 22px; text-align: center; }
.ep-menu-card { padding: 30px 22px; border: 1px solid var(--ep-line); outline: 1px solid var(--ep-line); outline-offset: -8px; border-radius: 2px; background: var(--ep-surface); box-shadow: var(--ep-shadow); }
.ep-menu-course h3 { margin: 0 0 10px; color: var(--ep-accent); font-family: var(--ep-font-heading); font-size: 13px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; }
.ep-menu-course ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.ep-menu-course li { display: grid; gap: 2px; }
.ep-menu-course strong { font-family: var(--ep-font-heading); font-size: 18px; font-weight: 600; }
.ep-menu-course small { color: var(--ep-muted); font-size: 13px; font-style: italic; }
.ep-menu-course + .ep-menu-course::before { content: "✦"; display: block; margin: -6px 0 16px; color: var(--ep-accent); opacity: .7; }
.ep-menu-list { text-align: left; }
.ep-menu-list .ep-menu-course + .ep-menu-course::before { display: none; }
.ep-menu-list .ep-menu-course li { padding-bottom: 8px; border-bottom: 1px dotted var(--ep-line); }
.ep-menu-note { color: var(--ep-muted); font-size: 13px; }

/* ---------- dress code ---------- */
.ep-dress-name { margin-bottom: 8px; text-align: center; font-family: var(--ep-font-heading); font-size: 22px; font-weight: 700; }
.ep-swatches { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 16px 0; }
.ep-swatches span { width: 44px; height: 44px; border: 3px solid var(--ep-surface); border-radius: 50%; background: var(--c); box-shadow: 0 0 0 1px var(--ep-line), var(--ep-shadow); }
.ep-dress-refs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.ep-dress-refs button { padding: 0; border: 0; border-radius: var(--r-sm); overflow: hidden; cursor: zoom-in; background: var(--ep-soft); }
.ep-dress-refs img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }

/* ---------- enquete / palpite ---------- */
.ep-poll, .ep-guess { display: grid; gap: 12px; padding: 16px; }
.ep-poll-opts { display: grid; gap: 8px; }
.ep-poll-opts .ep-btn { justify-content: flex-start; width: 100%; }
.ep-poll-text { display: flex; gap: 8px; }
.ep-poll-text input, .ep-guess-form input:not([type=radio]) { flex: 1; min-width: 0; width: 100%; padding: 12px 14px; border: 1px solid var(--ep-line); border-radius: var(--r-sm); color: var(--ep-ink); background: var(--ep-surface); font: 500 16px var(--ep-font-body); }
.ep-poll-results { display: grid; gap: 8px; }
.ep-poll-results > small { color: var(--ep-muted); font-size: 12px; text-align: right; }
.ep-bar { position: relative; display: flex; justify-content: space-between; gap: 10px; padding: 11px 14px; overflow: hidden; border: 1px solid var(--ep-line); border-radius: var(--r-sm); font-size: 14px; font-weight: 600; }
.ep-bar i { position: absolute; inset: 0 auto 0 0; z-index: 0; background: color-mix(in srgb, var(--ep-primary) 18%, transparent); transition: width .6s ease; }
.ep-bar span, .ep-bar b { position: relative; z-index: 1; }
.ep-bar.is-mine { border-color: var(--ep-primary); }
.ep-bar.is-mine span::after { content: " ✓"; color: var(--ep-primary); }
.ep-guess-form { display: grid; gap: 12px; }
.ep-unit { display: flex; align-items: center; gap: 8px; }
.ep-unit span { color: var(--ep-muted); font-weight: 700; }
.ep-reveal { display: grid; justify-items: center; gap: 4px; padding: 18px; border-radius: var(--r-md); color: var(--ep-primary-ink); background: var(--ep-primary); text-align: center; animation: ep-pop .5s cubic-bezier(.2, 1.4, .4, 1); }
.ep-reveal small { font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; opacity: .85; }
.ep-reveal strong { font-family: var(--ep-font-display); font-size: 12cqw; line-height: 1.05; }
.ep-winners { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; }
.ep-winners .ep-ico { color: var(--ep-accent); font-size: 22px; }
.ep-guesses { display: grid; gap: 4px; max-height: 260px; margin: 0; padding: 0; overflow: auto; list-style: none; }
.ep-guesses li { display: flex; justify-content: space-between; gap: 10px; padding: 8px 2px; border-bottom: 1px dashed var(--ep-line); font-size: 14px; }

/* chips de escolha (perguntas, palpite) */
.ep-chipset { display: flex; flex-wrap: wrap; gap: 8px; }
.ep-chipopt input { position: absolute; opacity: 0; pointer-events: none; }
.ep-chipopt span { display: inline-block; padding: 9px 14px; border: 1.5px solid var(--ep-line); border-radius: 999px; background: var(--ep-surface); font-size: 14px; font-weight: 600; cursor: pointer; }
.ep-chipopt input:checked + span { color: var(--ep-primary-ink); background: var(--ep-primary); border-color: var(--ep-primary); }
.ep-chipopt input:focus-visible + span { outline: 3px solid color-mix(in srgb, var(--ep-primary) 45%, transparent); outline-offset: 2px; }
fieldset.ep-field { margin: 0; padding: 0; border: 0; min-width: 0; }
fieldset.ep-field legend { margin-bottom: 6px; padding: 0; font-size: 13px; font-weight: 700; }
fieldset.ep-field legend em { color: var(--ep-muted); font-style: normal; font-weight: 500; }
.ep-questions { display: grid; gap: 14px; padding: 14px; border-radius: var(--r-md); background: var(--ep-soft); }
.ep-companions { display: grid; gap: 8px; margin-top: 4px; }
.ep-companions input { width: 100%; padding: 12px 14px; border: 1px solid var(--ep-line); border-radius: var(--r-sm); color: var(--ep-ink); background: var(--ep-surface); font: 500 16px var(--ep-font-body); }

/* ingressos na tela de sucesso */
.ep-tickets { width: 100%; display: grid; gap: 8px; }
.ep-ticket { display: flex; align-items: center; gap: 14px; padding: 12px; color: inherit; text-align: left; text-decoration: none; border-style: dashed; }
.ep-ticket img { width: 96px; height: 96px; flex: 0 0 96px; padding: 4px; border-radius: 8px; background: #fff; }
.ep-ticket span { display: grid; gap: 2px; }
.ep-ticket small { color: var(--ep-muted); font-size: 13px; }
.ep-ticket em { display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; color: var(--ep-primary); font-size: 13px; font-style: normal; font-weight: 800; }

/* ---------- presentes ---------- */
.ep-gifts { display: grid; gap: 10px; margin-bottom: 14px; }
.ep-gifts-grid { grid-template-columns: 1fr 1fr; }
.ep-gift { display: grid; align-content: start; overflow: hidden; }
.ep-gift > img { width: 100%; aspect-ratio: 1; object-fit: cover; background: var(--ep-soft); }
.ep-gift-ico { display: grid; place-items: center; aspect-ratio: 1.6; color: var(--ep-primary); background: var(--ep-soft); font-size: 30px; }
.ep-gift-body { display: grid; gap: 3px; padding: 12px; }
.ep-gift-body strong { font-size: 15px; line-height: 1.25; }
.ep-gift-body small { color: var(--ep-muted); font-size: 12px; }
.ep-gift-meta { color: var(--ep-muted); font-size: 12px; font-weight: 700; }
.ep-gift-meta:empty { display: none; }
.ep-gift-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 6px; }
.ep-gift-actions .ep-btn { min-height: 36px; padding: 8px 12px; font-size: 12px; }
.ep-gift-actions .ep-link { margin: 0; padding: 4px; }
.ep-gift-mine, .ep-gift-done { display: inline-flex; align-items: center; gap: 6px; color: var(--ep-primary); font-size: 13px; font-weight: 800; }
.ep-gift-done { color: var(--ep-muted); }
.ep-gift.is-done > img { filter: grayscale(.8); opacity: .6; }
.ep-gifts-list .ep-gift { grid-template-columns: 84px 1fr; }
.ep-gifts-list .ep-gift > img, .ep-gifts-list .ep-gift-ico { height: 100%; aspect-ratio: auto; }
.ep-dialog { width: min(92vw, 380px); padding: 0; border: 0; border-radius: var(--r-md); color: var(--ep-ink); background: var(--ep-surface); box-shadow: 0 30px 70px rgba(0, 0, 0, .35); }
.ep-dialog::backdrop { background: rgba(0, 0, 0, .45); }
.ep-reserve-form { display: grid; gap: 12px; padding: 20px; }
.ep-reserve-form small { color: var(--ep-muted); }
.ep-reserve-form .ep-actions { justify-content: flex-end; margin: 0; }

/* ---------- agradecimento ---------- */
.ep-thanks { display: grid; gap: 14px; text-align: center; }
.ep .ep-thanks-photo { width: calc(100% + var(--ep-pad) * 2); max-width: none; margin: -30px calc(var(--ep-pad) * -1) 0; aspect-ratio: 4 / 3.4; object-fit: cover; -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent); mask-image: linear-gradient(180deg, #000 70%, transparent); }

/* ---------- compartilhar ---------- */
.ep-share { display: flex; flex-wrap: wrap; gap: 8px; }
.ep-share .ep-btn { flex: 1 1 140px; }
.ep-share-qr { display: grid; justify-items: center; gap: 8px; margin-top: 14px; }
.ep-share-qr img { padding: 10px; border-radius: var(--r-md); background: #fff; box-shadow: var(--ep-shadow); }
.ep-share-qr small { color: var(--ep-muted); }

/* ---------- avisos (atualizações do evento) ---------- */
.ep-updates { display: grid; gap: 8px; padding: 14px var(--ep-pad) 0; }
.ep-update { display: flex; gap: 12px; padding: 12px 14px; border: 1px solid color-mix(in srgb, var(--ep-accent) 45%, var(--ep-line)); border-radius: var(--r-md); background: color-mix(in srgb, var(--ep-accent) 12%, var(--ep-surface)); font-size: 14px; }
.ep-update .ep-ico { margin-top: 2px; color: var(--ep-accent); font-size: 20px; }
.ep-update strong { display: block; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }

/* ---------- menu do layout executivo ---------- */
.ep-nav { position: sticky; top: 0; z-index: 9; background: color-mix(in srgb, var(--ep-bg) 88%, transparent); backdrop-filter: blur(10px); border-bottom: 1px solid var(--ep-line); }
.ep-nav div { display: flex; gap: 4px; padding: 8px var(--ep-pad); overflow-x: auto; scrollbar-width: none; }
.ep-nav a { flex: 0 0 auto; padding: 8px 12px; border-radius: 999px; color: var(--ep-muted); font-size: 13px; font-weight: 700; text-decoration: none; }
.ep-nav a:hover { color: var(--ep-ink); background: var(--ep-soft); }
.ep[data-mode="preview"] .ep-nav { position: relative; }
.ep-s[id] { scroll-margin-top: 56px; }

/* ---------- larguras maiores (página pública no desktop) ---------- */
@container (min-width: 600px) {
  .ep-chips { grid-template-columns: .8fr 1fr 1.4fr; }
  .ep-chip-place { grid-column: auto; }
  .ep-display { font-size: 84px; }
  .ep[data-display="romantico"] .ep-display, .ep[data-display="noite"] .ep-display { font-size: 104px; }
  .ep[data-display="moderno"] .ep-display, .ep[data-display="limpo"] .ep-display { font-size: 60px; }
  .ep-hero--photo .ep-hero-body { margin-top: -170px; }
  .ep-hero-media, .ep-hero-ill, .ep-hero-banner { max-width: 560px; margin-inline: auto; }
  .ep-hero-banner { min-height: 620px; }
  .ep-feature-title, .ep-signature { font-size: 60px; }
  .ep-hero-avatar { width: 220px; margin-top: -120px; }
}

@media (prefers-reduced-motion: reduce) {
  .ep *, .ep *::before, .ep *::after { animation: none !important; transition: none !important; }
}

/* ---------- convite não encontrado (fora de .ep: usa as cores da marca) ---------- */
.ep-notfound { min-height: 100svh; display: grid; place-content: center; justify-items: center; gap: 12px; padding: 24px; color: #0b1f2e; background: #f4faf9; font-family: Inter, system-ui, sans-serif; text-align: center; }
.ep-notfound h1 { margin: 6px 0 0; font-size: 24px; }
.ep-notfound p { max-width: 34ch; margin: 0; color: #5f7180; }
.ep-notfound a { margin-top: 8px; padding: 12px 20px; border-radius: 999px; color: #fff; background: #08a99c; font-weight: 700; text-decoration: none; }
.ep-made { display: inline-block; padding: 10px 4px; }

/* ---------- tela de senha (evento protegido) ---------- */
.ep-lockscreen { --lk-bg: #f4faf9; --lk-ink: #0b1f2e; --lk-primary: #08a99c; color: var(--lk-ink); background: radial-gradient(70vw 50vh at 50% 0%, color-mix(in srgb, var(--lk-primary) 16%, transparent), transparent 70%), var(--lk-bg); }
.ep-lockscreen .ep-lock-ico { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--lk-primary); font-size: 28px; }
.ep-lock-kicker { font-size: 12px; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; color: var(--lk-primary) !important; }
.ep-lockscreen form { width: min(320px, 100%); display: grid; gap: 10px; margin-top: 8px; }
.ep-lockscreen input { padding: 14px; border: 1px solid color-mix(in srgb, var(--lk-ink) 18%, transparent); border-radius: 12px; font: 500 16px Inter, system-ui, sans-serif; text-align: center; }
.ep-lockscreen button { padding: 14px; border: 0; border-radius: 999px; color: #fff; background: var(--lk-primary); font: 800 15px Inter, system-ui, sans-serif; cursor: pointer; }
.ep-lock-msg { color: #b4233d !important; font-size: 14px; font-weight: 600; }
