/* =============================================================
   SITE DO CASAMENTO — estilos (100% responsivo, mobile-first)
   ============================================================= */
:root { --s-cor: #C08A7D; --s-fundo: #FFFDFC; --s-texto: #241F1C; --s-suave: #F9EFEA; --s-fonte: 'Cormorant Garamond'; }

body.site { margin: 0; background: var(--s-fundo); color: var(--s-texto); font-family: 'Jost', sans-serif; }
body.site h1, body.site h2, body.site h3 { font-family: var(--s-fonte), Georgia, serif; font-weight: 500; }

.s-wrap { width: min(100% - 36px, 1080px); margin-inline: auto; text-align: center; }

/* ---------- barra de progresso de leitura ---------- */
.s-scroll-progress { position: fixed; top: 0; left: 0; height: 3px; width: 0%; background: linear-gradient(90deg, var(--s-cor), color-mix(in srgb, var(--s-cor) 60%, #C9A227)); z-index: 61; transition: width .1s linear; }

/* ---------- seções aparecendo ao rolar ---------- */
.s-revela { opacity: 0; transform: translateY(28px); transition: opacity .7s ease, transform .7s ease; }
.s-revela.s-visivel { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .s-revela { opacity: 1; transform: none; transition: none; } }

/* ---------- navegação ---------- */
.s-nav { position: sticky; top: 0; z-index: 60; background: color-mix(in srgb, var(--s-fundo) 92%, transparent); backdrop-filter: blur(12px); border-bottom: 1px solid color-mix(in srgb, var(--s-texto) 10%, transparent); }
.s-navwrap { width: min(100% - 28px, 1080px); margin-inline: auto; display: flex; align-items: center; justify-content: space-between; height: 58px; gap: 12px; }
.s-marca { font-family: var(--s-fonte), serif; font-size: 1.15rem; color: var(--s-texto); text-decoration: none; white-space: nowrap; }

/* menu sempre expansível (mesmo no desktop) — evita poluir a barra de topo
   quando o site tem muitas seções ativas */
.s-burger {
  display: flex; align-items: center; gap: 8px; background: none; border: 1px solid color-mix(in srgb, var(--s-texto) 16%, transparent);
  border-radius: 999px; padding: 8px 14px; font-size: 1.05rem; cursor: pointer; color: var(--s-texto); font-family: 'Jost', sans-serif;
}
.s-burger::after { content: 'Menu'; font-size: .78rem; letter-spacing: .04em; }
.s-links-backdrop { position: fixed; inset: 0; background: rgba(20,16,14,.35); z-index: 65; opacity: 0; pointer-events: none; transition: opacity .25s ease; }
.s-links-backdrop.open { opacity: 1; pointer-events: auto; }
.s-links {
  position: fixed; top: 0; right: 0; height: 100dvh; width: min(320px, 86vw); z-index: 66;
  background: var(--s-fundo); display: flex; flex-direction: column; align-items: stretch; gap: 2px;
  padding: 84px 26px 26px; overflow-y: auto; box-shadow: -18px 0 50px rgba(0,0,0,.16);
  transform: translateX(100%); transition: transform .3s ease;
}
.s-links.open { transform: none; }
.s-links a { color: var(--s-texto); text-decoration: none; font-size: 1rem; opacity: .85; transition: .2s;
  padding: 12px 4px; border-bottom: 1px solid color-mix(in srgb, var(--s-texto) 8%, transparent); }
.s-links a:hover { opacity: 1; color: var(--s-cor); padding-left: 10px; }
.s-links-fechar { align-self: flex-end; background: none; border: none; font-size: 1.3rem; cursor: pointer; color: var(--s-texto); position: absolute; top: 22px; right: 22px; }

/* ---------- capa ---------- */
.s-hero { min-height: 100svh; display: grid; place-items: center; padding: 90px 0 60px; text-align: center;
  background: radial-gradient(circle at 15% 12%, var(--s-suave), transparent 46%), radial-gradient(circle at 85% 88%, var(--s-suave), transparent 46%), var(--s-fundo); }
.s-eyebrow { font-size: .68rem; letter-spacing: .34em; text-transform: uppercase; color: var(--s-cor); margin: 0 0 14px; }
.s-nomes { font-size: clamp(2.6rem, 11vw, 5.4rem); line-height: 1.02; margin: 0 0 14px; }
.s-nomes span { display: block; font-style: italic; font-size: .44em; color: var(--s-cor); margin: 6px 0; }
.s-data { font-size: clamp(.95rem, 2.6vw, 1.15rem); opacity: .78; margin: 0 0 22px; }
.s-count { display: flex; gap: clamp(14px, 5vw, 34px); justify-content: center; flex-wrap: wrap; margin-bottom: 26px; }
.s-count div { min-width: 62px; }
.s-count b { display: block; font-family: var(--s-fonte), serif; font-size: clamp(1.9rem, 7vw, 2.9rem); line-height: 1; color: var(--s-cor); }
.s-count small { font-size: .6rem; letter-spacing: .2em; text-transform: uppercase; opacity: .65; }
.s-cta { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.s-hash { margin-top: 22px; font-size: .82rem; opacity: .6; letter-spacing: .06em; }

/* ---------- botões ---------- */
.s-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: var(--s-cor); color: #fff;
  border: 1px solid var(--s-cor); border-radius: 999px; padding: 13px 28px; font-size: .92rem; cursor: pointer;
  text-decoration: none; font-family: inherit; transition: .22s; }
.s-btn:hover { filter: brightness(1.06); transform: translateY(-2px); }
.s-btn-ghost { background: transparent; color: inherit; border-color: currentColor; }
.s-hero .s-btn-ghost { border-color: rgba(255,255,255,.6); }

/* ---------- seções ---------- */
.s-sec { padding: clamp(56px, 9vw, 96px) 0; }
.s-alt { background: var(--s-suave); }
.s-sec h2 { font-size: clamp(1.9rem, 5.4vw, 3rem); margin: 0 0 22px; }
.s-texto { font-size: clamp(.98rem, 2.4vw, 1.08rem); line-height: 1.9; opacity: .82; max-width: 680px; margin: 0 auto 10px; white-space: pre-wrap; }
.s-small { font-size: .84rem; opacity: .7; display: block; }
.s-card { background: var(--s-fundo); border: 1px solid color-mix(in srgb, var(--s-texto) 12%, transparent);
  border-radius: 16px; padding: clamp(18px, 4vw, 26px); text-align: left; }
.s-alt .s-card { background: var(--s-fundo); }
.s-card h3 { margin: 0 0 8px; font-size: 1.15rem; }
.s-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.s-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 14px; }
.s-item { background: var(--s-fundo); border: 1px solid color-mix(in srgb, var(--s-texto) 12%, transparent);
  border-radius: 14px; padding: 16px; text-align: left; }
.s-item a { color: var(--s-cor); font-size: .82rem; display: inline-block; margin-top: 6px; }
@media (max-width: 720px) { .s-grid2 { grid-template-columns: 1fr; } }

.s-paleta { display: flex; gap: 8px; margin: 6px 0 10px; }
.s-paleta i { width: 34px; height: 34px; border-radius: 8px; display: inline-block; border: 1px solid rgba(0,0,0,.08); }

.mapa-embed { width: 100%; aspect-ratio: 16/10; border: 0; border-radius: 12px; margin-top: 10px; }

/* ---------- galeria ---------- */
.s-galeria { columns: 3 220px; column-gap: 12px; }
.s-galeria figure { margin: 0 0 12px; break-inside: avoid; border-radius: 12px; overflow: hidden; }
.s-galeria img { width: 100%; display: block; }

/* ---------- timeline ---------- */
.s-timeline { max-width: 560px; margin-inline: auto; text-align: left; }
.s-tl { display: flex; gap: 16px; padding: 12px 0; border-bottom: 1px dashed color-mix(in srgb, var(--s-texto) 18%, transparent); }
.s-tl b { font-family: var(--s-fonte), serif; font-size: 1.2rem; color: var(--s-cor); min-width: 68px; }

/* ---------- formulários ---------- */
.s-card input, .s-card textarea, .s-wrap > input {
  width: 100%; padding: 13px 15px; margin-bottom: 10px; font-family: inherit; font-size: .95rem;
  border: 1px solid color-mix(in srgb, var(--s-texto) 18%, transparent); border-radius: 10px;
  background: var(--s-fundo); color: var(--s-texto);
}
.s-card textarea { min-height: 96px; resize: vertical; }
.s-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 520px) { .s-row { grid-template-columns: 1fr; } }
.s-opts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 6px 0 12px; }
@media (max-width: 520px) { .s-opts { grid-template-columns: 1fr; } }
.s-opt { padding: 12px 8px; border-radius: 12px; border: 1px solid color-mix(in srgb, var(--s-texto) 18%, transparent);
  background: transparent; color: inherit; cursor: pointer; font-family: inherit; font-size: .86rem; transition: .2s; }
.s-opt.sel { border-color: var(--s-cor); background: color-mix(in srgb, var(--s-cor) 12%, transparent); }
.s-opt.certo { border-color: #6E9A78; background: color-mix(in srgb, #6E9A78 18%, transparent); }
.s-opt.errado { border-color: #C36B62; background: color-mix(in srgb, #C36B62 14%, transparent); }

/* ---------- linha do tempo (seção nova) ---------- */
.s-linha-tempo { max-width: 620px; margin-inline: auto; text-align: left; display: grid; gap: 16px; }
.s-lt-item { display: flex; gap: 16px; align-items: flex-start; background: var(--s-fundo); border: 1px solid color-mix(in srgb, var(--s-texto) 12%, transparent); border-radius: 14px; padding: 14px; }
.s-lt-item img { width: 88px; height: 88px; border-radius: 10px; object-fit: cover; flex-shrink: 0; }
.s-lt-item h4 { margin: 2px 0 4px; }
.s-lista { margin: 0; padding-left: 18px; }
.s-lista li { margin-bottom: 4px; }
.s-video iframe { display: block; margin-inline: auto; }

/* ---------- compartilhar ---------- */
.s-share { display: flex; gap: 10px; justify-content: center; margin: 14px 0; }
.s-share a { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%;
  background: color-mix(in srgb, var(--s-texto) 8%, transparent); font-size: 1.15rem; text-decoration: none; transition: .2s; }
.s-share a:hover { transform: translateY(-2px); background: color-mix(in srgb, var(--s-cor) 20%, transparent); }

/* ---------- botão flutuante de música ---------- */
.s-music-toggle { position: fixed; right: 18px; bottom: 18px; z-index: 80; width: 52px; height: 52px; border-radius: 50%;
  border: none; background: var(--s-cor); color: #fff; font-size: 1.3rem; cursor: pointer; box-shadow: 0 8px 22px rgba(0,0,0,.22); }
.s-music-toggle.pulsando { animation: sMusicPulse 1.8s ease-in-out infinite; }
.s-music-toggle.on { background: #6E9A78; }
@keyframes sMusicPulse { 0%,100% { box-shadow: 0 8px 22px rgba(0,0,0,.22); } 50% { box-shadow: 0 8px 30px color-mix(in srgb, var(--s-cor) 55%, transparent); } }

/* ---------- carrinho de presentes ---------- */
.s-cart-toggle { position: fixed; left: 18px; bottom: 18px; z-index: 80; width: 52px; height: 52px; border-radius: 50%;
  border: none; background: var(--s-cor); color: #fff; font-size: 1.3rem; cursor: pointer; box-shadow: 0 8px 22px rgba(0,0,0,.22);
  display: flex; align-items: center; justify-content: center; }
.s-cart-badge { position: absolute; top: -4px; right: -4px; background: #C9A227; color: #fff; border-radius: 999px;
  min-width: 20px; height: 20px; font-size: .68rem; display: none; align-items: center; justify-content: center; padding: 0 4px; }
.s-cart-lista { max-height: 220px; overflow-y: auto; display: flex; flex-direction: column; gap: 6px; }
.s-qr-box { display: inline-flex; align-items: center; justify-content: center; min-height: 190px; background: #fff; padding: 10px; border-radius: 12px; border: 1px solid rgba(0,0,0,.08); }

/* ---------- rodapé ---------- */
.s-rodape { padding: 46px 20px; text-align: center; background: var(--s-suave); }
.s-rodape p { margin: 6px 0; font-size: .9rem; opacity: .8; }

.mt-2 { margin-top: 16px } .mt-3 { margin-top: 24px } .mb-2 { margin-bottom: 16px }

/* Bride Era 2026-08-15 — recados com foto */
.s-recado-item{display:flex;align-items:flex-start;gap:12px}.s-recado-foto{width:56px;height:56px;object-fit:cover;border-radius:50%;flex:0 0 auto;border:2px solid rgba(255,255,255,.8);box-shadow:0 3px 12px rgba(30,20,20,.12)}.s-recado-item>div{display:grid;gap:4px}.s-file-label{display:block;border:1px dashed var(--s-line,#ddd);padding:12px;border-radius:12px;cursor:pointer;margin-top:10px}.s-file-label input{display:block;margin-top:8px;width:100%}
.s-btn,.s-burger,.s-music-toggle{color:var(--s-on-cor,#fff)}
.s-share .brand-platform-icon{padding:2px;background:#fff;border-radius:6px;box-shadow:none}

/* Bride Era R10 — composições dos 60 layouts prontos */
body[data-layout="wide"] .s-wrap{max-width:1180px}body[data-layout="minimal"] .s-wrap{max-width:760px}
body[data-layout="minimal"] .s-card,body[data-layout="minimal"] .s-item{border-color:transparent;box-shadow:none}
body[data-layout="classic"] .s-sec{border-bottom:1px solid color-mix(in srgb,var(--s-texto) 9%,transparent)}
body[data-layout="classic"] .s-eyebrow{letter-spacing:.22em}
body[data-layout="magazine"] .s-sec:nth-of-type(odd) .s-wrap{max-width:980px;text-align:left}
body[data-layout="magazine"] .s-sec:nth-of-type(odd) h2{text-align:left;font-size:clamp(2rem,5vw,4rem)}
body[data-layout="cards"] .s-sec>.s-wrap{background:color-mix(in srgb,var(--s-fundo) 94%,var(--s-cor) 6%);padding:clamp(24px,5vw,54px);border-radius:28px}
body[data-layout="cinema"] .s-hero{min-height:92vh}body[data-layout="cinema"] .s-nomes{font-size:clamp(3.5rem,10vw,8rem)}
body[data-layout="organic"] .s-card,body[data-layout="organic"] .s-item,body[data-moldura="round"] .s-card,body[data-moldura="round"] .s-item{border-radius:28px}
body[data-layout="party"] .s-sec:nth-of-type(3n+1){background:color-mix(in srgb,var(--s-cor) 7%,var(--s-fundo))}
body[data-moldura="square"] .s-card,body[data-moldura="square"] .s-item{border-radius:4px}
body[data-efeito="pop"] .s-revela{transform:scale(.96);opacity:0}body[data-efeito="pop"] .s-revela.s-visivel{transform:scale(1);opacity:1}
body[data-efeito="slide"] .s-revela{transform:translateX(-24px);opacity:0}body[data-efeito="slide"] .s-revela:nth-of-type(even){transform:translateX(24px)}body[data-efeito="slide"] .s-revela.s-visivel{transform:none;opacity:1}
body[data-efeito="float"] .s-revela{transform:translateY(30px) rotate(.15deg);opacity:0}body[data-efeito="float"] .s-revela.s-visivel{transform:none;opacity:1}
body[data-efeito="reveal"] .s-revela{clip-path:inset(0 0 18% 0);opacity:.2}body[data-efeito="reveal"] .s-revela.s-visivel{clip-path:inset(0);opacity:1}
.s-revela{transition:opacity .72s ease,transform .72s ease,clip-path .85s ease}

/* Bride Era R10 — vitrine e checkout de presentes */
.s-gift-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}.s-gift-card{background:var(--s-fundo);border:1px solid color-mix(in srgb,var(--s-texto) 12%,transparent);border-radius:20px;overflow:hidden;text-align:left;display:flex;flex-direction:column}.s-gift-photo{aspect-ratio:4/3;background:var(--s-suave);display:grid;place-items:center;font-size:3rem;overflow:hidden}.s-gift-photo img{width:100%;height:100%;object-fit:cover}.s-gift-body{padding:18px;display:flex;flex-direction:column;gap:7px;flex:1}.s-gift-body h3{margin:0;font-size:1.25rem}.s-gift-price{font-family:var(--s-fonte),serif;font-size:1.5rem;color:var(--s-cor);font-weight:600}.s-gift-stock{font-size:.76rem;opacity:.68}.s-gift-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:8px}.s-gift-ref{font-size:.78rem;color:var(--s-cor);margin-top:4px}.s-cart-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 4px;border-bottom:1px solid color-mix(in srgb,var(--s-texto) 10%,transparent)}.s-cart-row>div:first-child{display:grid}.s-qty{display:flex;align-items:center;gap:7px}.s-qty button,.s-link-btn{border:1px solid color-mix(in srgb,var(--s-texto) 15%,transparent);background:var(--s-fundo);color:var(--s-texto);border-radius:8px;min-width:28px;height:28px;cursor:pointer}.s-link-btn{padding:0 10px}.s-card-choice{padding:14px;border:1px solid color-mix(in srgb,var(--s-texto) 12%,transparent);border-radius:16px}.s-card-designs{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:12px}.s-card-design{border:1px solid color-mix(in srgb,var(--s-texto) 12%,transparent);background:linear-gradient(145deg,var(--s-fundo),var(--s-suave));color:var(--s-texto);border-radius:12px;padding:10px 5px;display:grid;gap:2px;place-items:center;cursor:pointer;min-height:86px}.s-card-design span{font-size:1.4rem}.s-card-design b{font-size:.68rem;text-align:center}.s-card-design small{font-size:.62rem;opacity:.65}.s-card-design.sel{outline:2px solid var(--s-cor);background:color-mix(in srgb,var(--s-cor) 10%,var(--s-fundo))}.s-checkout-summary{margin-top:14px;padding:12px 14px;background:var(--s-suave);border-radius:12px}.s-checkout-summary>div{display:flex;justify-content:space-between;margin-bottom:5px}.s-checkout-summary .total{font-size:1.08rem;padding-top:7px;border-top:1px solid color-mix(in srgb,var(--s-texto) 12%,transparent)}.s-checkout-summary small{display:block;margin-top:7px;opacity:.7}.s-alert{color:#a45c43}.s-success-gift{text-align:center}.s-success-gift .ico{font-size:3rem}.s-success-gift textarea{width:100%;min-height:110px;margin-top:12px;padding:12px;border-radius:12px;border:1px solid #ddd;font:inherit}.s-btn-sm{padding:9px 13px;font-size:.8rem}
@media(max-width:620px){.s-card-designs{grid-template-columns:repeat(2,1fr)}.s-cart-row{align-items:flex-start;flex-direction:column}.s-qty{width:100%;justify-content:flex-end}}

.s-menu-items{display:grid;gap:10px}.s-menu-item{display:grid;grid-template-columns:72px 1fr;gap:12px;align-items:center;text-align:left;padding:8px 0;border-bottom:1px solid rgba(120,100,90,.15)}.s-menu-item:last-child{border-bottom:0}.s-menu-item img{width:72px;height:62px;border-radius:10px;object-fit:cover}.s-menu-item b{display:block}.s-menu-item .s-small{display:block;margin-top:3px;opacity:.72;line-height:1.35}@media(max-width:520px){.s-menu-item{grid-template-columns:60px 1fr}.s-menu-item img{width:60px;height:54px}}

/* R11 — fotos dos padrinhos/madrinhas no site público */
.s-padrinho-item{align-items:center;text-align:center;display:flex;flex-direction:column;gap:7px}
.s-padrinho-foto{width:112px;height:112px;border-radius:50%;object-fit:cover;display:block;border:4px solid color-mix(in srgb,var(--s-cor) 18%,transparent);box-shadow:0 10px 28px rgba(0,0,0,.10)}
.s-padrinho-placeholder{display:grid;place-items:center;background:var(--s-suave);color:var(--s-cor);font:600 2.4rem var(--s-fonte)}
@media(max-width:640px){.s-padrinho-foto{width:92px;height:92px}}

/* Bride Era R11.10 — foto de capa legível em qualquer imagem */
.s-hero{position:relative;overflow:hidden;isolation:isolate}
.s-hero.has-cover{background:var(--s-suave);color:#fff}
.s-hero.has-cover::before{content:"";position:absolute;inset:-10px;background-image:var(--s-cover);background-size:cover;background-position:center;filter:blur(3.5px);transform:scale(1.025);z-index:-2}
.s-hero.has-cover::after{content:"";position:absolute;inset:0;background:rgba(20,16,15,.30);z-index:-1;pointer-events:none}
.s-hero.has-cover.cover-text-dark{color:#211c1a}
.s-hero.has-cover.cover-text-dark::after{background:rgba(255,255,255,.47)}
.s-hero.has-cover.cover-text-light{color:#fff}
.s-hero.has-cover.cover-text-light .s-btn-ghost{border-color:rgba(255,255,255,.75);color:#fff}
.s-hero.has-cover.cover-text-dark .s-btn-ghost{border-color:rgba(30,25,23,.55);color:#211c1a}
.s-hero.has-cover .s-eyebrow,.s-hero.has-cover .s-data,.s-hero.has-cover .s-hash{color:inherit}


/* Bride Era R12 — menu do site público mais legível */
.s-nav{background:color-mix(in srgb,var(--s-fundo) 96%, rgba(255,255,255,.2));box-shadow:0 8px 24px rgba(0,0,0,.06)}
.s-burger{background:rgba(255,255,255,.88);border-color:rgba(36,31,28,.18);color:var(--s-texto);font-weight:700;box-shadow:0 10px 24px rgba(0,0,0,.08)}
.s-burger::after{font-size:.82rem;color:inherit;opacity:.95}
.s-links{max-width:100vw}
@media(max-width:640px){.s-navwrap{width:min(100% - 18px,1080px)}.s-burger{padding:10px 14px;gap:10px}.s-marca{font-size:1rem}}

/* =============================================================
   Bride Era R13 — site público mais imersivo e divertido
   Inspirado no ritmo editorial de sites de casamento modernos,
   sem copiar layout, código ou identidade visual de terceiros.
   ============================================================= */
body.site-publico{overflow-x:hidden;background:
  radial-gradient(circle at 8% 12%,color-mix(in srgb,var(--s-cor) 9%,transparent),transparent 26rem),
  radial-gradient(circle at 94% 54%,color-mix(in srgb,var(--s-cor) 7%,transparent),transparent 25rem),var(--s-fundo)}
body.site-publico::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;opacity:.32;background-image:radial-gradient(circle at 20% 20%,color-mix(in srgb,var(--s-cor) 20%,transparent) 0 1px,transparent 1.5px);background-size:34px 34px;mask-image:linear-gradient(to bottom,#000,transparent 78%)}
.s-sec{position:relative;isolation:isolate}
.s-sec::before{content:"";position:absolute;left:50%;top:20px;width:clamp(52px,6vw,88px);height:1px;transform:translateX(-50%);background:color-mix(in srgb,var(--s-cor) 48%,transparent)}
.s-sec:nth-of-type(3n)::after{content:"✦";position:absolute;right:clamp(16px,7vw,100px);top:clamp(30px,6vw,86px);font-size:clamp(1.2rem,3vw,2.6rem);color:color-mix(in srgb,var(--s-cor) 34%,transparent);animation:sFloatStar 5.8s ease-in-out infinite;pointer-events:none}
@keyframes sFloatStar{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-12px) rotate(18deg)}}
.s-card,.s-item,.s-gift-card{box-shadow:0 14px 44px rgba(38,28,25,.055);transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.s-card:hover,.s-item:hover,.s-gift-card:hover{transform:translateY(-4px);box-shadow:0 22px 58px rgba(38,28,25,.10);border-color:color-mix(in srgb,var(--s-cor) 30%,transparent)}
.s-hero{min-height:min(920px,100svh);perspective:1200px}
.s-hero .s-wrap{animation:sHeroIn .9s cubic-bezier(.2,.8,.2,1) both}
@keyframes sHeroIn{from{opacity:0;transform:translateY(24px) scale(.985)}to{opacity:1;transform:none}}
.s-hero.has-cover::before{filter:blur(2.2px) saturate(1.06);transform:scale(1.04);animation:sCoverBreath 14s ease-in-out infinite alternate}
@keyframes sCoverBreath{to{transform:scale(1.095) translateY(-.7%)}}
.s-hero.has-cover.cover-text-light,.s-hero.has-cover.cover-text-light .s-nomes,.s-hero.has-cover.cover-text-light .s-data,.s-hero.has-cover.cover-text-light .s-eyebrow,.s-hero.has-cover.cover-text-light .s-hash{color:#fff!important;text-shadow:0 2px 22px rgba(0,0,0,.55)}
.s-hero.has-cover.cover-text-light::after{background:linear-gradient(180deg,rgba(13,10,9,.25),rgba(13,10,9,.42))!important}
.s-hero.has-cover.cover-text-dark,.s-hero.has-cover.cover-text-dark .s-nomes,.s-hero.has-cover.cover-text-dark .s-data,.s-hero.has-cover.cover-text-dark .s-eyebrow,.s-hero.has-cover.cover-text-dark .s-hash{color:#201a18!important;text-shadow:0 1px 12px rgba(255,255,255,.75)}
.s-hero.has-cover.cover-text-dark::after{background:linear-gradient(180deg,rgba(255,255,255,.48),rgba(255,255,255,.60))!important}
.s-nomes{letter-spacing:-.025em}.s-nomes span{filter:drop-shadow(0 4px 14px color-mix(in srgb,var(--s-cor) 20%,transparent))}
.s-btn{position:relative;overflow:hidden}.s-btn::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.35),transparent 65%);transform:translateX(-130%);transition:transform .6s ease}.s-btn:hover::after{transform:translateX(130%)}
.s-immersive{background:linear-gradient(135deg,color-mix(in srgb,var(--s-cor) 8%,var(--s-fundo)),var(--s-fundo) 50%,color-mix(in srgb,var(--s-cor) 5%,var(--s-fundo)));overflow:hidden}
.s-event-card{min-height:170px;display:flex;flex-direction:column;gap:7px}.s-event-icon{font-size:1.7rem}
.s-retro-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.s-retro-grid>div{padding:22px 12px;border:1px solid color-mix(in srgb,var(--s-texto) 10%,transparent);background:var(--s-fundo);border-radius:20px;display:grid;place-items:center;gap:4px}.s-retro-grid span{font-size:1.5rem}.s-retro-grid b{font:600 2rem/1 var(--s-fonte)}.s-retro-grid small{opacity:.68}
.s-avatar-stage{max-width:720px;margin:22px auto 0;filter:drop-shadow(0 22px 30px rgba(35,25,22,.12))}

/* Tradução de recados */
.translation-tools{display:inline-flex;margin:5px 0 0 4px}.translate-inline{border:0;background:color-mix(in srgb,var(--s-cor) 9%,var(--s-fundo));color:var(--s-cor);border-radius:999px;padding:5px 9px;font:600 .68rem/1 inherit;cursor:pointer}.translate-inline:disabled{opacity:.6}

/* BrideBot */
.bridebot-toggle{position:fixed;right:18px;bottom:18px;z-index:95;width:46px;height:46px;border:0;border-radius:50%;color:#fff;display:grid;place-items:center;background:linear-gradient(135deg,var(--s-cor),#8b70d6 55%,#63b6d4);box-shadow:0 12px 30px rgba(45,34,44,.25);cursor:pointer;isolation:isolate;animation:bbBreathe 2.8s ease-in-out infinite}
.bridebot-toggle::before{content:"";position:absolute;inset:-4px;border-radius:50%;background:conic-gradient(#75d8ff,#c27dff,var(--s-cor),#ffe49a,#75d8ff);z-index:-2;filter:blur(3px);animation:bbSpin 4s linear infinite}.bridebot-toggle::after{content:"";position:absolute;inset:1px;border-radius:50%;background:inherit;z-index:-1}.bridebot-toggle b{font:800 .72rem/1 'Jost',sans-serif;letter-spacing:.07em}.bridebot-spark{position:absolute;top:5px;right:7px;font-size:.55rem}
@keyframes bbSpin{to{transform:rotate(360deg)}}@keyframes bbBreathe{50%{transform:translateY(-3px);box-shadow:0 16px 34px rgba(45,34,44,.32)}}
.bridebot-panel{position:fixed;right:18px;bottom:76px;z-index:95;width:min(365px,calc(100vw - 30px));height:min(520px,72dvh);background:var(--s-fundo);border:1px solid color-mix(in srgb,var(--s-texto) 12%,transparent);border-radius:24px;box-shadow:0 24px 70px rgba(25,18,18,.24);display:flex;flex-direction:column;overflow:hidden;transform-origin:bottom right;animation:bbOpen .24s ease both}.bridebot-panel.hidden{display:none}@keyframes bbOpen{from{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:none}}
.bridebot-panel header{padding:14px 15px;background:linear-gradient(135deg,color-mix(in srgb,var(--s-cor) 90%,#fff),#7e6bc7);color:#fff;display:flex;align-items:center;justify-content:space-between}.bridebot-panel header>div{display:flex;gap:9px;align-items:center}.bridebot-panel header small{display:block;opacity:.78;font-size:.68rem}.bridebot-panel header>button{border:0;background:rgba(255,255,255,.16);color:#fff;width:34px;height:34px;border-radius:50%;cursor:pointer}.bridebot-orb{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.17)}
.bridebot-msgs{flex:1;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:9px}.bb-msg{max-width:88%;padding:10px 12px;border-radius:15px;font-size:.82rem;line-height:1.5;background:var(--s-suave);align-self:flex-start}.bb-msg.user{align-self:flex-end;background:var(--s-cor);color:var(--s-on-cor,#fff)}.bb-go{display:inline-block;margin-top:6px;color:var(--s-cor);font-weight:700;text-decoration:none}.bb-msg.user .bb-go{color:inherit}.bridebot-chips{padding:0 12px 8px;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}.bridebot-chips button{flex:0 0 auto;border:1px solid color-mix(in srgb,var(--s-texto) 10%,transparent);background:var(--s-fundo);border-radius:999px;padding:7px 10px;font:600 .68rem/1 inherit;color:var(--s-texto);cursor:pointer}.bridebot-panel form{display:flex;gap:7px;padding:10px;border-top:1px solid color-mix(in srgb,var(--s-texto) 9%,transparent)}.bridebot-panel form input{flex:1;min-width:0;border:1px solid color-mix(in srgb,var(--s-texto) 14%,transparent);border-radius:999px;padding:10px 12px;background:var(--s-fundo);color:var(--s-texto);font:inherit}.bridebot-panel form button{width:40px;height:40px;border-radius:50%;border:0;background:var(--s-cor);color:#fff;cursor:pointer}
.s-purchase-terms{display:flex;align-items:flex-start;gap:9px;margin-top:14px;font-size:.78rem;line-height:1.45}.s-purchase-terms input{width:19px;height:19px;flex:0 0 19px;margin-top:1px}.s-purchase-terms a{color:var(--s-cor)}
@media(max-width:640px){.s-retro-grid{grid-template-columns:repeat(2,1fr)}.bridebot-toggle{right:12px;bottom:12px;width:42px;height:42px}.bridebot-panel{right:10px;bottom:64px;width:calc(100vw - 20px);height:min(500px,74dvh)}.s-sec:nth-of-type(3n)::after{right:12px}}
@media(prefers-reduced-motion:reduce){.s-sec:nth-of-type(3n)::after,.s-hero.has-cover::before,.bridebot-toggle,.bridebot-toggle::before{animation:none!important}.s-card:hover,.s-item:hover,.s-gift-card:hover{transform:none}}

/* R13 — BrideBot não disputa espaço com o player de música do site. */
body:has(.s-music-toggle) .bridebot-toggle{bottom:82px}
body:has(.s-music-toggle) .bridebot-panel{bottom:140px}
@media(max-width:640px){body:has(.s-music-toggle) .bridebot-toggle{bottom:70px}body:has(.s-music-toggle) .bridebot-panel{bottom:122px}}

/* Bride Era R14.1 — cor da capa sem disputa de tema */
.s-hero.has-cover{color:var(--s-cover-text,#fff)!important}.s-hero.has-cover .s-nomes,.s-hero.has-cover .s-data,.s-hero.has-cover .s-eyebrow,.s-hero.has-cover .s-hash{color:var(--s-cover-text,#fff)!important}.s-hero.has-cover .s-nomes span{color:inherit!important}
.translation-tools{display:inline-flex;margin-left:5px;vertical-align:middle}.translate-inline{width:25px;height:25px;min-width:25px;min-height:25px;padding:0;border-radius:50%;border:1px solid color-mix(in srgb,var(--s-texto) 16%,transparent);background:color-mix(in srgb,var(--s-fundo) 92%,#fff);color:var(--s-texto);font-size:.7rem;display:inline-grid;place-items:center;cursor:pointer}.translate-inline:disabled{opacity:.6}
/* R14.7.7 — BrideBot nunca sai do viewport, inclusive em sites com música e safe-area mobile. */
html,body{max-width:100%;overflow-x:hidden}
@media(max-width:640px){
  .bridebot-panel{position:fixed!important;left:10px!important;right:10px!important;width:auto!important;max-width:none!important;bottom:max(68px,calc(env(safe-area-inset-bottom,0px) + 58px))!important;height:min(520px,calc(100dvh - 145px))!important;max-height:calc(100dvh - 145px)!important;transform-origin:bottom center!important}
  body:has(.s-music-toggle) .bridebot-panel{bottom:max(120px,calc(env(safe-area-inset-bottom,0px) + 108px))!important;max-height:calc(100dvh - 190px)!important}
  .bridebot-panel header,.bridebot-msgs,.bridebot-panel form{min-width:0}.bridebot-panel form input{width:100%;min-width:0}
}

/* R14.7.14 — cardápio público: texto sempre horizontal e mídia dentro do card. */
.s-menu-item,.s-menu-item *{writing-mode:horizontal-tb!important;text-orientation:mixed!important;word-break:normal!important}
.s-menu-item>div{min-width:0;max-width:100%;overflow:hidden}.s-menu-item b,.s-menu-item .s-small{overflow-wrap:anywhere;white-space:normal!important}
.s-menu-item.no-photo{grid-template-columns:minmax(0,1fr)!important}.s-menu-item img{display:block;max-width:100%;aspect-ratio:1.15/1;object-position:center}
@media(max-width:520px){.s-menu-item.has-photo{grid-template-columns:74px minmax(0,1fr)!important}.s-menu-item.has-photo img{width:74px!important;height:64px!important}}
