/* =====================================================================
   Nosso Momento a Dois — estilos da página
   Caminhos de imagem relativos a este arquivo (pasta img/).
   ===================================================================== */

/* ---------- Tokens ---------- */
:root {
  /* Paleta "rosé, rubi e champanhe" */
  --creme: #FFF6F6;          /* fundo do topo (rosé bem claro) */
  --papel-1: #FFFBFB;        /* papel das cartas e cards */
  --papel-2: #FBE9EC;
  --bordo: #3D0A1D;          /* texto principal (vinho-ameixa) */
  --bordo-suave: #7A3A4E;    /* texto secundário */
  --vinho: #A80F3A;          /* rubi: destaques, preços, ícones */
  --rosa-escuro: #B03560;    /* corações e rótulos pequenos */
  --dourado: #8E6A33;        /* champanhe escuro (sobre fundo claro) */
  --dourado-linha: rgba(184, 140, 80, .55);
  --dourado-claro: #EBCB97;  /* champanhe (sobre fundo escuro) */
  --creme-texto: #FFF1F1;
  --creme-suave: #F6D5DA;
  --titulo-escuro: #FFF7F3;
  --cta-1: #E12C52;          /* botão de compra: vermelho-cereja */
  --cta-2: #B8123C;

  --f-titulo: "Poppins", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --f-texto: "Poppins", "Segoe UI", "Helvetica Neue", Arial, sans-serif;

  --margem: 1.25rem;
  --secao: clamp(3.75rem, 2.6rem + 5vw, 6rem);

  /* Degradê de reserva (o script recalcula com a altura real da página) */
  --degrade: linear-gradient(180deg,
    #FFF6F6 0%, #FDE9EC 10%, #FBE0E5 17%, #F8D4DC 25%, #F2BCC8 31%,
    #D2627F 37%, #A81C45 42%, #8C1238 52%, #7A0F32 61%, #700D2E 71%,
    #620A28 81%, #560822 91%, #47061C 100%);
  --grao: url("img/textura-grao.svg");
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html {
  background: #47061C;
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}
body {
  margin: 0;
  font-family: var(--f-texto);
  font-size: 1rem;
  line-height: 1.7;
  color: var(--bordo);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}
img { display: block; max-width: 100%; }
p { margin: 0 0 1em; }
h1, h2, h3 { margin: 0; font-weight: 600; }
a { color: inherit; }
button { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--vinho); outline-offset: 3px; }
.escuro :focus-visible { outline-color: var(--dourado-claro); }

/* ---------- O degradê contínuo ---------- */
.page {
  position: relative;
  overflow-x: clip;
  background-color: var(--creme);
  background-image: var(--grao), var(--degrade);
  background-repeat: repeat, no-repeat;
  background-size: 180px 180px, 100% 100%;
}
/* Cor creme acima do topo (efeito elástico do iPhone) */
.page::before {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 100%;
  height: 100vh;
  background: var(--creme);
}

/* ---------- Layout ---------- */
.wrap { width: min(100% - 2 * var(--margem), 70rem); margin-inline: auto; }
.estreito { max-width: 40rem; }
.centro { text-align: center; }
.secao { position: relative; padding-block: var(--secao); }
.escuro { color: var(--creme-texto); }

.titulo {
  font-family: var(--f-titulo);
  font-weight: 600;
  font-size: clamp(1.55rem, 1.15rem + 2vw, 2.4rem);
  line-height: 1.22;
  letter-spacing: -.02em;
  margin-bottom: .55em;
  text-wrap: balance;
}
.escuro .titulo { color: var(--titulo-escuro); }

.coracao-linha {
  display: inline-block;
  width: .62em; height: .62em;
  vertical-align: .02em;
  fill: none; stroke: currentColor; stroke-width: 1.5;
  stroke-linejoin: round;
}

/* ---------- Botões ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55em;
  width: 100%;
  max-width: 28rem;
  min-height: 3.65rem;
  padding: .85rem 1.4rem;
  border: 0;
  border-radius: 999px;
  font-family: var(--f-texto);
  font-weight: 500;
  font-weight: 600;
  font-size: .86rem;
  line-height: 1.35;
  letter-spacing: .04em;
  text-align: center;
  text-decoration: none;
  text-wrap: balance;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.btn:hover { transform: translateY(-1px); filter: brightness(1.04); }
.btn:active { transform: translateY(1px); }
.btn__coracao { display: inline-block; width: 1em; height: 1em; margin-left: .5em; vertical-align: -.14em; fill: currentColor; }
.nw { white-space: nowrap; }
.btn--vinho {
  color: #FFF8F6;
  background: linear-gradient(180deg, var(--cta-1) 0%, var(--cta-2) 100%);
  box-shadow:
    inset 0 0 0 1px rgba(255, 220, 200, .35),
    inset 0 1px 0 rgba(255, 255, 255, .28),
    0 16px 30px -14px rgba(184, 18, 60, .75);
}
.btn--ouro {
  color: var(--bordo);
  background: linear-gradient(180deg, #FBEAC8 0%, #E7C28A 100%);
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, .55),
    inset 0 -2px 0 rgba(150, 100, 40, .18),
    0 18px 34px -16px rgba(30, 0, 10, .7);
}
.btn--grande { min-height: 4.1rem; font-size: .92rem; max-width: 30rem; }.nota { margin: .85rem 0 0; font-size: .78rem; letter-spacing: 0; color: var(--bordo-suave); }
.escuro .nota, .convite .nota { color: var(--creme-suave); }
.convite .nota { color: var(--bordo-suave); }
.rs { font-size: .5em; vertical-align: .62em; margin-right: .08em; font-weight: 500; }

/* ---------- Ornamentos ---------- */
.ornamento {
  display: flex; align-items: center; justify-content: center; gap: .9rem;
  color: var(--dourado);
  margin: 2rem auto 1.4rem;
}
.ornamento span { width: 3.5rem; height: 1px; background: var(--dourado-linha); }
.ornamento svg { width: .9rem; height: .9rem; fill: none; stroke: currentColor; stroke-width: 1.6; }
.ramo { position: absolute; pointer-events: none; fill: none; stroke: currentColor; stroke-width: 1.1; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- Topo ---------- */
.topo { padding-top: 1.1rem; }
.topo .wrap { display: flex; justify-content: center; }
.marca { display: inline-block; line-height: 0; }
[data-rolar] { cursor: pointer; }
/* !important para o Elementor/tema do WordPress não aumentar a logo */
.page .topo .marca img.marca__logo {
  display: block !important;
  height: 22px !important;
  width: auto !important;
  max-width: 120px !important;
  max-height: 22px !important;
  margin: 0 !important;
}

/* ---------- 1. Hero ---------- */
.hero { padding: 1.9rem 0 2.5rem; text-align: center; }
.hero__grade { display: grid; gap: 1.9rem; justify-items: center; }
.hero__titulo {
  font-family: var(--f-titulo);
  font-weight: 600;
  font-size: clamp(1.8rem, 1.1rem + 3.4vw, 2.7rem);
  line-height: 1.18;
  letter-spacing: -.025em;
  margin-bottom: .5em;
  text-wrap: balance;
}
.hero__titulo .coracao-linha { color: var(--rosa-escuro); }
.hero__destaque { color: var(--vinho); }
.hero__sub { max-width: 31rem; margin: 0 auto; font-size: 1rem; color: var(--bordo-suave); text-wrap: pretty; }
.hero__foto { position: relative; margin: 0; width: min(100%, 30rem); }
.moldura { position: relative; display: block; overflow: hidden; background: #FBE6EA; }
.page .moldura img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.moldura--hero {
  aspect-ratio: 3 / 2;
  background: transparent;
  overflow: visible;
}
.page .moldura--hero img { object-fit: contain; }
.hero__foto figcaption { text-align: center; margin-top: .4rem; font-size: .76rem; color: var(--bordo-suave); }
.hero__compra { width: min(100%, 27rem); }
.preco-linha {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: .9rem .2rem;
  border-top: 1px solid var(--dourado-linha);
  text-align: left;
}
.preco-linha__info { margin: 0; font-size: .86rem; line-height: 1.45; color: var(--bordo-suave); }
.preco-linha__info strong { color: var(--bordo); font-weight: 500; }
.preco-linha__valor { margin: 0; font-family: var(--f-titulo); font-weight: 600; font-size: 2.1rem; letter-spacing: -.02em; line-height: 1; color: var(--vinho); white-space: nowrap; }
.hero__bonus {
  list-style: none;
  display: grid; gap: .3rem;
  margin: 0 0 1.15rem; padding: .6rem .2rem;
  border-block: 1px solid var(--dourado-linha);
  text-align: left;
}
.hero__bonus li { display: grid; grid-template-columns: .85rem 1fr auto; align-items: center; column-gap: .45rem; font-size: .74rem; line-height: 1.3; color: var(--bordo-suave); }
.hero__bonus strong { font-weight: 600; color: var(--bordo); }
.hero__bonus-icone { width: .85rem; height: .85rem; fill: none; stroke: var(--vinho); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.gratis {
  padding: .14rem .42rem;
  border-radius: 999px;
  background: linear-gradient(180deg, #F6DFAE 0%, #E5BE80 100%);
  color: var(--bordo);
  font-size: .55rem; font-weight: 600; letter-spacing: .08em; line-height: 1.2;
  white-space: nowrap;
}

/* ---------- 2. Experiência ---------- */
.experiencia p { color: var(--bordo-suave); text-wrap: pretty; }
.frase { font-family: var(--f-titulo); font-style: italic; font-weight: 400; font-size: 1.12rem; line-height: 1.5; color: var(--bordo) !important; margin: 0; text-wrap: balance; }

/* ---------- 3. Como funciona ---------- */
.passos { list-style: none; margin: 2.25rem auto 0; padding: 0; max-width: 33rem; }
.passo { position: relative; display: grid; grid-template-columns: 3.5rem 1fr; column-gap: 1.1rem; padding-bottom: 2rem; }
.passo:last-child { padding-bottom: 0; }
.passo:not(:last-child)::before {
  content: ""; position: absolute;
  left: 1.75rem; top: 4rem; bottom: .5rem; width: 1px;
  background: linear-gradient(var(--dourado-linha), rgba(176, 138, 82, .12));
}
.passo__icone {
  grid-row: 1 / span 2;
  display: grid; place-items: center;
  width: 3.5rem; height: 3.5rem;
  border-radius: 50%;
  background: rgba(255, 251, 252, .8);
  border: 1px solid var(--dourado-linha);
  color: var(--vinho);
}
.passo__icone svg { width: 1.75rem; height: 1.75rem; fill: none; stroke: currentColor; stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; }
.passo__icone .preenche { fill: var(--papel-1); }
.passo__titulo { font-family: var(--f-titulo); font-size: 1.15rem; line-height: 1.3; margin: .55rem 0 .25rem; }
.passo__num { font-weight: 600; color: var(--dourado); margin-right: .2em; }
.passo p { margin: 0; color: var(--bordo-suave); }

/* ---------- 4. Categorias (o baralho) ---------- */
.cabecalho { margin-bottom: 2.25rem; }
.cabecalho .titulo { margin-bottom: .3em; }
.cabecalho p { margin: 0; color: var(--bordo-suave); }
.baralho { list-style: none; margin: 0 auto; padding: 0; max-width: 32rem; display: grid; gap: .9rem; }
.carta {
  position: relative;
  display: grid;
  grid-template-columns: 3rem 1fr;
  column-gap: 1.05rem;
  align-items: start;
  padding: 1.3rem 2.6rem 1.25rem 1.25rem;
  border-radius: 12px;
  background: linear-gradient(170deg, var(--papel-1) 0%, var(--papel-2) 100%);
  color: var(--bordo);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8), 0 22px 32px -22px rgba(96, 8, 38, .6);
}
.carta::before {
  content: ""; position: absolute; inset: 6px;
  border: 1px solid var(--dourado-linha); border-radius: 8px;
  pointer-events: none;
}
.carta__icone { grid-row: 1 / span 2; width: 3rem; height: 3rem; color: var(--vinho); fill: none; stroke: currentColor; stroke-width: 1.15; stroke-linecap: round; stroke-linejoin: round; }
.carta__icone .preenche { fill: var(--papel-1); }
.carta__nome { font-family: var(--f-titulo); font-size: 1rem; line-height: 1.2; letter-spacing: .1em; text-transform: uppercase; margin: .2rem 0 .3rem; }
.carta__texto { margin: 0; font-size: .9rem; line-height: 1.55; color: var(--bordo-suave); }
.carta__canto {
  position: absolute; top: .9rem; right: 1rem;
  display: flex; flex-direction: column; align-items: center; gap: .1rem;
  font-family: var(--f-titulo); font-weight: 500; font-size: .78rem; line-height: 1;
  color: var(--dourado);
}
.carta__canto svg { width: .6rem; height: .6rem; fill: currentColor; }
.carta__canto--fim { display: none; }

.js .baralho .carta { transition: opacity .6s ease, transform .7s cubic-bezier(.2, .7, .2, 1); transition-delay: calc(var(--i) * 90ms); }
.js .baralho:not(.na-tela) .carta { opacity: 0; transform: translateX(-1.25rem) rotate(-1.5deg); }

/* ---------- 5. Bônus ---------- */
.intro { max-width: 34rem; margin-inline: auto; color: var(--creme-suave); text-wrap: pretty; }
.bonus__cabecalho .titulo { margin-bottom: .35em; }
.bonus { list-style: none; margin: 2.5rem auto 0; padding: 0; max-width: 26rem; display: grid; gap: 1.5rem; }
.vale { display: flex; filter: drop-shadow(0 24px 22px rgba(40, 2, 14, .4)); }
.vale__papel {
  --corte: 3.3rem;
  position: relative;
  display: flex; flex-direction: column;
  width: 100%;
  padding: 1.35rem 1.5rem 0;
  border-radius: 12px;
  background: linear-gradient(170deg, var(--papel-1) 0%, var(--papel-2) 100%);
  color: var(--bordo);
  -webkit-mask:
    radial-gradient(circle at 0 calc(100% - var(--corte)), #0000 .7rem, #000 calc(.7rem + .5px)) left / 51% 100% no-repeat,
    radial-gradient(circle at 100% calc(100% - var(--corte)), #0000 .7rem, #000 calc(.7rem + .5px)) right / 51% 100% no-repeat;
          mask:
    radial-gradient(circle at 0 calc(100% - var(--corte)), #0000 .7rem, #000 calc(.7rem + .5px)) left / 51% 100% no-repeat,
    radial-gradient(circle at 100% calc(100% - var(--corte)), #0000 .7rem, #000 calc(.7rem + .5px)) right / 51% 100% no-repeat;
}
.vale__papel::before {
  content: ""; position: absolute; inset: 6px;
  border: 1px solid var(--dourado-linha); border-radius: 8px;
  pointer-events: none;
}
.vale__rotulo {
  display: flex; align-items: center; justify-content: space-between;
  margin: 0 0 .9rem;
  font-family: var(--f-titulo); font-weight: 500; font-size: .88rem; letter-spacing: .02em;
  color: var(--dourado);
}
.vale__rotulo svg { width: 1.6rem; height: 1.6rem; fill: none; stroke: var(--vinho); stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; }
.vale__capa {
  position: relative; overflow: hidden;
  aspect-ratio: 1;
  margin: 0 0 1.1rem;
  border-radius: 4px;
  background: #F7DEE3;
}
.page .vale__capa img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.vale__titulo { font-family: var(--f-titulo); font-size: 1.15rem; line-height: 1.3; margin-bottom: .45rem; text-wrap: balance; }
.vale__num { display: block; font-size: 2.6rem; line-height: 1; letter-spacing: -.03em; color: var(--vinho); margin-bottom: .1rem; }
.vale__texto { margin: 0 0 1.4rem; font-size: .9rem; line-height: 1.5; color: var(--bordo-suave); }
.vale__canhoto {
  display: flex; align-items: center; justify-content: center; gap: .45rem;
  height: var(--corte);
  margin: auto -.75rem 0;
  border-top: 1.5px dashed rgba(176, 138, 82, .6);
  font-family: var(--f-titulo); font-weight: 500; font-size: .82rem;
  color: var(--rosa-escuro);
}
.vale__canhoto svg { width: .8rem; height: .8rem; fill: currentColor; }

/* Espaço reservado para imagens ainda não enviadas */
.vazio {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .45rem;
  padding: 1rem;
  text-align: center;
  font-size: .82rem; line-height: 1.35;
  color: var(--bordo);
  background: repeating-linear-gradient(135deg, #FDF2F4 0 12px, #F8E4E8 12px 24px);
  border: 1.5px dashed rgba(150, 105, 55, .6);
  border-radius: inherit;
}
.vazio svg { width: 2rem; height: 2rem; fill: none; stroke: var(--rosa-escuro); stroke-width: 1.3; }
.vazio strong { font-family: var(--f-titulo); font-size: .95rem; line-height: 1.2; font-weight: 600; max-width: 16rem; }
.vazio code { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: .75rem; background: rgba(176, 138, 82, .16); padding: .15em .45em; border-radius: 3px; word-break: break-all; }

/* ---------- 7. Oferta ---------- */
.convite {
  position: relative;
  max-width: 30rem;
  margin: 3.6rem auto 0;
  padding: 3.4rem 1.6rem 2.2rem;
  border-radius: 6px;
  background: linear-gradient(175deg, #FFFAFA 0%, #FBE8EC 100%);
  color: var(--bordo);
  text-align: center;
  box-shadow: 0 0 0 1px rgba(235, 203, 151, .45), 0 44px 70px -34px rgba(30, 0, 10, .75);
}
.convite::before, .convite::after { content: ""; position: absolute; pointer-events: none; border: 1px solid var(--dourado-linha); }
.convite::before { inset: 8px; border-radius: 3px; }
.convite::after { inset: 12px; border-radius: 2px; border-color: rgba(176, 138, 82, .25); }
.convite__selo {
  position: absolute; top: 0; left: 50%;
  transform: translate(-50%, -50%);
  display: grid; place-items: center;
  width: 4.1rem; height: 4.1rem;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #E0476C 0%, #A80F3A 72%);
  box-shadow: inset 0 0 0 3px #A80F3A, inset 0 0 0 4px rgba(242, 214, 160, .65), 0 10px 18px -8px rgba(0, 0, 0, .6);
}
.convite__selo svg { width: 1.55rem; height: 1.55rem; fill: #F6E1B6; }
/* Dois cards: um embaixo do outro no celular, lado a lado no computador */
.convites { display: grid; gap: 1rem; }
.convites .convite { width: 100%; }
/* Pacote completo: moldura e selo dourados para se destacar do básico */
.convite--completo {
  background: linear-gradient(175deg, #FFFCF6 0%, #F9EADB 100%);
  box-shadow: 0 0 0 2px var(--dourado-claro), 0 0 0 7px rgba(235, 203, 151, .2), 0 44px 70px -34px rgba(30, 0, 10, .75);
}
.convite--completo .convite__selo {
  background: radial-gradient(circle at 35% 30%, #F7E4BC 0%, #D9B06E 72%);
  box-shadow: inset 0 0 0 3px #C99A55, inset 0 0 0 4px rgba(255, 255, 255, .6), 0 10px 18px -8px rgba(0, 0, 0, .6);
}
.convite--completo .convite__selo svg { fill: var(--vinho); }

/* ---------- Popup de desconto ---------- */
html.popup-aberto { overflow: hidden; }
.popup {
  width: min(100% - 2rem, 26.5rem);
  max-width: none;
  max-height: calc(100% - 2rem);
  margin: auto;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--bordo);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.popup:not([open]) { display: none; }
.popup[open] { position: fixed; inset: 0; z-index: 9999; }
.popup::backdrop { background: rgba(50, 4, 20, .78); }
.popup__caixa {
  position: relative;
  padding: 2.3rem 1.5rem 1.5rem;
  border-radius: 6px;
  background: linear-gradient(175deg, #FFFAFA 0%, #FBE8EC 100%);
  text-align: center;
  box-shadow: inset 0 0 0 2px var(--dourado-claro);
}
.popup__caixa::before { content: ""; position: absolute; inset: 8px; border: 1px solid var(--dourado-linha); border-radius: 3px; pointer-events: none; }
.popup .popup__fechar,
.popup .popup__fechar:hover,
.popup .popup__fechar:focus {
  position: absolute; top: .85rem; right: .85rem; z-index: 1;
  display: grid; place-items: center;
  width: 2.3rem; height: 2.3rem; min-height: 0;
  margin: 0; padding: 0 0 .15rem;
  border: 0; border-radius: 50%;
  background: transparent; box-shadow: none;
  color: var(--bordo-suave);
  font: 400 1.7rem/1 var(--f-texto);
  text-transform: none; letter-spacing: 0;
  cursor: pointer;
}
.popup .popup__fechar:hover, .popup .popup__fechar:focus-visible { background: rgba(168, 15, 58, .08); color: var(--vinho); }
.popup__selo {
  display: inline-flex; align-items: center; gap: .45rem;
  padding: .45rem .95rem;
  border-radius: 999px;
  background: linear-gradient(180deg, #F7E4BC 0%, #E0BB7C 100%);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .55), 0 6px 14px -8px rgba(168, 15, 58, .45);
  color: var(--bordo);
  font-family: var(--f-titulo); font-weight: 600; font-size: .66rem; letter-spacing: .14em; text-transform: uppercase;
}
.popup__selo svg { width: .78rem; height: .78rem; fill: var(--vinho); }
.popup__titulo { margin: 1rem 0 .65rem; font-family: var(--f-titulo); font-weight: 600; font-size: 1.42rem; line-height: 1.25; letter-spacing: -.01em; color: var(--vinho); text-wrap: balance; }
.popup__texto { margin: 0 auto 1.25rem; max-width: 22rem; font-size: .92rem; line-height: 1.5; color: var(--bordo-suave); text-wrap: pretty; }
.popup__texto strong { font-weight: 600; color: var(--vinho); }
.popup__preco { display: grid; justify-items: center; margin-bottom: 1.2rem; }
.popup__de { font-size: .92rem; color: var(--rosa-escuro); }
.popup__de s { text-decoration-thickness: 1.5px; }
.popup__por { margin-top: .35rem; font-family: var(--f-titulo); font-weight: 500; font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; color: var(--rosa-escuro); }
.popup__valor { font-family: var(--f-titulo); font-weight: 600; font-size: 3.1rem; line-height: 1.1; letter-spacing: -.03em; color: var(--vinho); }
.popup .popup__lista { margin-bottom: 1.4rem; padding-top: 1.1rem; font-size: .92rem; }
.popup .btn { width: 100%; }
/* Botão do plano básico no popup: contorno vinho, abaixo do botão principal */
.btn--contorno {
  color: var(--vinho);
  background: rgba(255, 255, 255, .55);
  box-shadow: inset 0 0 0 2px var(--vinho), 0 10px 20px -14px rgba(168, 15, 58, .45);
}
.btn--contorno:hover { background: rgba(200, 28, 69, .07); }
.popup .popup__basico { margin-top: .75rem; min-height: 3.2rem; font-size: .82rem; }
/* Celular: popup mais compacto para caber inteiro na tela */
@media (max-width: 480px), (max-height: 760px) {
  .popup__caixa { padding: 1.85rem 1.15rem 1.1rem; }
  .popup .popup__fechar, .popup .popup__fechar:hover, .popup .popup__fechar:focus { top: .7rem; right: .7rem; }
  .popup__titulo { margin: .8rem 0 .5rem; font-size: 1.24rem; }
  .popup__texto { margin-bottom: .85rem; font-size: .87rem; line-height: 1.45; }
  .popup__preco { margin-bottom: .8rem; }
  .popup__por { margin-top: .2rem; }
  .popup__valor { font-size: 2.6rem; }
  .popup .popup__lista { gap: .38rem; margin-bottom: 1.05rem; padding-top: .8rem; font-size: .88rem; }
  .popup .btn { min-height: 3.2rem; padding: .7rem 1rem; }
  .popup .popup__basico { margin-top: .6rem; min-height: 2.95rem; }
}
@media (prefers-reduced-motion: no-preference) {
  .popup[open] { animation: popup-entra .35s cubic-bezier(.2, .8, .2, 1); }
  .popup[open]::backdrop { animation: popup-fundo .35s ease; }
}
@keyframes popup-entra { from { opacity: 0; transform: translateY(14px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes popup-fundo { from { opacity: 0; } to { opacity: 1; } }
.convite__marca { font-family: var(--f-titulo); font-weight: 600; font-size: 1.15rem; line-height: 1.35; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 1.1rem; text-wrap: balance; }
.convite__lista { list-style: none; display: inline-grid; gap: .6rem; margin: 0 0 1.8rem; padding: 1.3rem .25rem 0; border-top: 1px solid var(--dourado-linha); text-align: left; font-size: .95rem; }
.convite__lista li { display: grid; grid-template-columns: 1rem 1fr; column-gap: .7rem; line-height: 1.45; }
.convite__lista strong { font-weight: 500; color: var(--vinho); }
.convite__lista svg { width: .8rem; height: .8rem; margin-top: .32rem; fill: var(--rosa-escuro); }
.convite__segura { display: flex; align-items: center; justify-content: center; gap: .4rem; }
.convite__segura svg { width: .95rem; height: .95rem; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; }
.convite__preco { display: grid; justify-items: center; margin-bottom: 1.4rem; }
.convite__por { font-family: var(--f-titulo); font-weight: 500; font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; color: var(--rosa-escuro); }
.convite__valor { font-family: var(--f-titulo); font-weight: 600; font-size: 3.6rem; line-height: 1.1; letter-spacing: -.03em; color: var(--vinho); }

/* ---------- 8. FAQ ---------- */
.faq { margin-top: 2.25rem; border-top: 1px solid rgba(230, 201, 149, .3); }
.faq details { border-bottom: 1px solid rgba(230, 201, 149, .3); }
.faq summary {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 1.15rem .2rem;
  list-style: none; cursor: pointer;
  font-weight: 500; font-size: .96rem; line-height: 1.45;
  color: var(--titulo-escuro);
}
.faq summary::-webkit-details-marker { display: none; }
.faq__icone { position: relative; flex: none; width: 1.8rem; height: 1.8rem; border-radius: 50%; border: 1px solid rgba(230, 201, 149, .55); }
.faq__icone::before, .faq__icone::after {
  content: ""; position: absolute; left: 50%; top: 50%;
  width: .7rem; height: 1px; background: var(--dourado-claro);
  transform: translate(-50%, -50%);
  transition: transform .25s ease;
}
.faq__icone::after { transform: translate(-50%, -50%) rotate(90deg); }
.faq details[open] .faq__icone::after { transform: translate(-50%, -50%) rotate(0deg); }
.faq__resp { padding: 0 .2rem 1.25rem; color: var(--creme-suave); }
.faq__resp p { margin: 0; }
@supports (interpolate-size: allow-keywords) {
  .faq { interpolate-size: allow-keywords; }
  .faq details::details-content { height: 0; overflow: clip; transition: height .3s ease, content-visibility .3s allow-discrete; }
  .faq details[open]::details-content { height: auto; }
}

/* ---------- 9. Chamada final ---------- */
.final { padding-block: clamp(5rem, 3.8rem + 6vw, 8.5rem); overflow: hidden; }
.final::before {
  content: ""; position: absolute; left: 50%; top: 0; bottom: 0;
  width: min(64rem, 160vw);
  transform: translateX(-50%);
  background: radial-gradient(closest-side, rgba(214, 40, 88, .36), rgba(214, 40, 88, .12) 55%, rgba(214, 40, 88, 0));
  pointer-events: none;
}
.final .wrap { position: relative; }
.final .ramo { width: 4.25rem; height: 4.25rem; color: var(--dourado-claro); opacity: .4; }
.final .ramo--a { top: 1rem; left: 1rem; transform: scaleY(-1); }
.final .ramo--b { bottom: 1rem; right: 1rem; transform: scaleX(-1); }
.titulo--grande { font-size: clamp(1.8rem, 1.15rem + 3vw, 2.9rem); }
.titulo--grande .coracao-linha { color: var(--dourado-claro); }
.final__texto { max-width: 31rem; margin: 0 auto 1.8rem; color: var(--creme-suave); text-wrap: pretty; }
.final__produto { font-family: var(--f-titulo); font-weight: 500; font-size: 1.1rem; color: var(--titulo-escuro); margin-bottom: 1.3rem; }

/* ---------- Rodapé ---------- */
.rodape { padding: 2.6rem 0 calc(2.6rem + env(safe-area-inset-bottom)); border-top: 1px solid rgba(230, 201, 149, .18); font-size: .85rem; color: var(--creme-suave); }
.rodape__marca { font-family: var(--f-titulo); font-weight: 500; font-size: 1rem; color: var(--titulo-escuro); margin-bottom: .8rem; }
.rodape__links { display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem 1.4rem; margin-bottom: 1rem; }
.rodape__links a { text-decoration: none; border-bottom: 1px solid rgba(230, 201, 149, .35); padding-bottom: 1px; }
.rodape__links a:hover { border-color: var(--dourado-claro); }
.rodape__copy { margin: 0; opacity: .85; }

/* ---------- Telas médias ---------- */
@media (min-width: 760px) {
  .bonus { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; max-width: 66rem; }
  .vale__papel { padding-inline: 1.25rem; }
  .vale__titulo { font-size: 1.1rem; }
}

/* ---------- Computador ---------- */
@media (min-width: 960px) {
  :root { --margem: 2rem; }

  .topo { padding-top: 1.6rem; }
  .topo .wrap { justify-content: flex-start; }

  .hero { padding: 3rem 0 7rem; text-align: left; }
  .hero__grade {
    grid-template-columns: 1fr 1.05fr;
    grid-template-areas: "texto foto" "compra foto";
    column-gap: 4rem; row-gap: 2.4rem;
    align-items: center; justify-items: stretch;
  }
  .hero__texto { grid-area: texto; align-self: end; }
  .hero__sub { margin: 0; font-size: 1.08rem; }
  .hero__foto { grid-area: foto; width: 100%; max-width: 38rem; justify-self: end; }
    .hero__compra { grid-area: compra; align-self: start; width: 100%; max-width: 27rem; }
  .hero__compra .nota { text-align: center; }

  .passos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.5rem; max-width: 62rem; margin-top: 3rem; }
  .passo { display: block; text-align: center; padding: 0; }
  .passo__icone { margin: 0 auto 1rem; width: 4rem; height: 4rem; }
  .passo:not(:last-child)::before { left: calc(50% + 2.75rem); top: 2rem; bottom: auto; width: calc(100% - 3rem); height: 1px; background: var(--dourado-linha); }
  .passo__titulo { margin-top: 0; }
  .passo p { max-width: 17rem; margin-inline: auto; }

  .baralho { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1.25rem; max-width: 66rem; padding-top: 1.5rem; }
  .carta {
    display: flex; flex-direction: column; align-items: center; text-align: center;
    aspect-ratio: 5 / 7;
    padding: 2.7rem .9rem 2rem;
    transform: translate(var(--tx), var(--ty)) rotate(var(--r));
  }
  .carta:nth-child(1) { --r: -6deg; --tx: .9rem;  --ty: 1.6rem; }
  .carta:nth-child(2) { --r: -3deg; --tx: .4rem;  --ty: .4rem; }
  .carta:nth-child(3) { --r: 0deg;  --tx: 0;      --ty: 0; }
  .carta:nth-child(4) { --r: 3deg;  --tx: -.4rem; --ty: .4rem; }
  .carta:nth-child(5) { --r: 6deg;  --tx: -.9rem; --ty: 1.6rem; }
  .carta__icone { width: 3.4rem; height: 3.4rem; margin-bottom: 1.1rem; }
  .carta__nome { font-size: clamp(.8rem, .45rem + .6vw, .98rem); letter-spacing: .08em; }
  .carta__texto { font-size: clamp(.78rem, .6rem + .3vw, .86rem); }
  .carta__canto { top: .9rem; left: .95rem; right: auto; }
  .carta__canto--fim { display: flex; top: auto; left: auto; bottom: .9rem; right: .95rem; transform: rotate(180deg); }
  .js .baralho .carta { transition: transform .95s cubic-bezier(.2, .75, .2, 1), box-shadow .3s ease; transition-delay: calc(var(--i) * 70ms); }
  .js .baralho:not(.na-tela) .carta { opacity: 1; transform: translateX(calc((2 - var(--i)) * (100% + 1.25rem))) rotate(calc((var(--i) - 2) * 1.2deg)); }
  .js .baralho.na-tela .carta:hover { transform: translate(var(--tx), calc(var(--ty) - .8rem)) rotate(var(--r)); transition-delay: 0s; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8), 0 30px 40px -24px rgba(96, 8, 38, .65); }

  .convite { padding: 3.8rem 3rem 2.6rem; }
  .convites { grid-template-columns: repeat(2, minmax(0, 30rem)); justify-content: center; column-gap: 2.5rem; }
  .convites .convite { display: flex; flex-direction: column; align-items: center; }
  .convites .convite .btn { margin-top: auto; }
  .final .ramo { width: 7rem; height: 7rem; }
  .final .ramo--a { top: 2.5rem; left: calc(50% - 26rem); }
  .final .ramo--b { bottom: 2.5rem; right: calc(50% - 26rem); }

}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; transition-delay: 0s !important; animation: none !important; }
}
