/* ══════════════════════════════════════════════
   SITE — Casamento Aline & Guilherme
   Componentes específicos do site real (reusa base.css + lookbook.css)
   ══════════════════════════════════════════════ */

/* Âncoras não ficam escondidas atrás do menu fixo */
section[id]{scroll-margin-top:84px}

/* ── Preloader (contexto do rodapé: fundo + marca d'água + folhas + logo animada → abre o site) ── */
html.loading{overflow:hidden}
#preloader{
  position:fixed;inset:0;z-index:9999;background:#FFFFFF;overflow:hidden;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  transition:opacity 0.9s ease,visibility 0.9s ease;
}
#preloader.done{opacity:0;visibility:hidden;pointer-events:none}
#preloader .pl-texture{
  position:absolute;pointer-events:none;object-fit:contain;z-index:0;
  opacity:0;animation:plTexIn 1.6s var(--ease) forwards;
}
#preloader .pl-leaf{animation-name:plLeafIn}
#preloader .pl-logo{height:clamp(3.5rem,8vw,6.5rem);overflow:visible;position:relative;z-index:2}
#preloader .pl-logo object{height:100%;display:block}
#preloader .pl-date{
  font-family:'Farmhouse',cursive;font-size:clamp(1.1rem,2.2vw,1.7rem);color:#4B5344;
  margin-top:1.4rem;position:relative;z-index:2;
  opacity:0;animation:plDateIn 1s 1.5s ease forwards;
}
@keyframes plTexIn{from{opacity:0}to{opacity:1}}
@keyframes plLeafIn{from{opacity:0;transform:translateY(14px) rotate(-3deg)}to{opacity:1;transform:none}}
@keyframes plDateIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
/* Preloader: texturas menores e afastadas das bordas em celular E tablet (≤880px) */
@media(max-width:880px){
  #preloader .pl-texture[src*="folha 4"]{width:clamp(54px,9vw,84px) !important;top:5% !important;right:9% !important}
  #preloader .pl-texture[src*="folha 2"]{width:clamp(50px,8vw,78px) !important;bottom:6% !important;left:8% !important}
  #preloader .pl-texture[src*="marca dagua 1"]{width:30vw !important;top:-2% !important;left:-3% !important}
  #preloader .pl-texture[src*="marca dagua 3"]{width:28vw !important;bottom:-2% !important;right:-3% !important}
  /* História: folhas fora do texto em celular E tablet (esquerda pra baixo · direita pra cima) */
  #historia .parallax-texture[src*="folha 1"]{top:auto !important;bottom:3% !important;left:1% !important;width:clamp(116px,15vw,150px) !important}
  #historia .parallax-texture[src*="folha 5"]{top:4% !important;right:1% !important;width:clamp(116px,15vw,150px) !important}
  /* Editorial "Os Noivos": rostos ficam no terço inferior da foto — ancora o recorte neles no tablet/mobile */
  .editorial-row.reverse .editorial-img img{object-position:center 70%}
}
/* Mobile: texturas do rodapé + demais ajustes (≤600px) */
@media(max-width:600px){
  .look-footer .parallax-texture[src*="folha 4"]{width:84px !important;top:4% !important;right:5% !important}
  .look-footer .parallax-texture[src*="folha 2"]{width:74px !important;bottom:8% !important;left:4% !important}
  .look-footer .parallax-texture[src*="marca dagua 1"]{width:44vw !important}
  .look-footer .parallax-texture[src*="marca dagua 3"]{width:42vw !important;bottom:6% !important;right:-6% !important}
  /* História: texto maior só no celular */
  #historia .statement-block p{font-size:clamp(1.9rem,6.4vw,2.5rem) !important}
  /* Momentos: remove o vão enorme no topo (vira altura-de-conteúdo, como as outras seções) */
  #momentos{min-height:auto;padding-top:4rem !important;padding-bottom:3rem}
  /* RSVP: um campo por linha (e-mail/telefone e adultos/crianças deixam de ser 2 colunas) */
  #rsvp-form .field-row{grid-template-columns:1fr}
  /* Títulos de seção uniformes no mobile (O Grande Dia e A Celebração tinham font-size inline maior) */
  #odia h2, #celebracao h2{font-size:clamp(2rem,4vw,3.5rem) !important}
  /* Botão não pode quebrar o texto em 2 linhas (cabe numa linha só) */
  .btn{white-space:nowrap;padding-left:1.3rem;padding-right:1.3rem;letter-spacing:0.18em}
}

/* ── Menu de âncoras — siglas A&G no centro, links nos lados ── */
.site-nav{
  position:fixed;top:24px;left:0;right:0;z-index:200;
  display:flex;align-items:center;justify-content:space-between;
  padding:2rem clamp(1.5rem,4vw,3.5rem);
  transition:top 0.4s var(--ease),background 0.4s var(--ease),padding 0.4s var(--ease),box-shadow 0.4s,opacity 0.5s var(--ease),transform 0.5s var(--ease);
}
.site-nav.nav-hidden{opacity:0;transform:translateY(-115%);pointer-events:none}
.site-nav.scrolled{
  top:0;
  background:rgba(255,255,255,0.94);
  backdrop-filter:blur(12px) saturate(1.3);
  -webkit-backdrop-filter:blur(12px) saturate(1.3);
  box-shadow:0 1px 0 rgba(202,167,120,0.18);
  padding-top:1.5rem;padding-bottom:1.5rem;
}
.nav-side{display:flex;align-items:center;gap:clamp(1.1rem,2vw,2.3rem)}
.nav-side a{
  font-size:0.74rem;font-weight:500;letter-spacing:0.16em;text-transform:uppercase;
  color:#F6F0ED;opacity:0.95;transition:color 0.4s,opacity 0.3s;position:relative;
}
.nav-side a::after{
  content:'';position:absolute;left:0;bottom:-5px;width:0;height:1px;
  background:var(--accent);transition:width 0.35s var(--ease);
}
.nav-side a:hover::after,.nav-side a.active::after{width:100%}
.site-nav.scrolled .nav-side a{color:var(--piv-ink)}
.nav-side a.nav-cta{
  border:1px solid currentColor;padding:0.5rem 1.2rem;border-radius:var(--r-pill);opacity:1;
}
.nav-side a.nav-cta::after{display:none}
.site-nav.scrolled .nav-side a.nav-cta{border-color:var(--accent);color:var(--accent)}

/* Siglas centrais (A&G) */
.nav-logo{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  height:52px;display:block;transition:height 0.4s;
}
.site-nav.scrolled .nav-logo{height:46px}
.nav-logo img{height:100%;width:auto;display:block;transition:opacity 0.4s}
.nav-logo .logo-pos{opacity:0}
.nav-logo .logo-neg{position:absolute;top:0;left:0;opacity:1}
.site-nav.scrolled .nav-logo .logo-neg{opacity:0}
.site-nav.scrolled .nav-logo .logo-pos{opacity:1}

/* Hambúrguer (mobile) */
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px;z-index:210}
.nav-toggle span{display:block;width:26px;height:2px;background:#F6F0ED;transition:transform 0.4s,opacity 0.3s,background 0.4s}
.site-nav.scrolled .nav-toggle span{background:var(--piv-ink)}
.nav-open .nav-toggle span{background:#F6F0ED}
.nav-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-open .nav-toggle span:nth-child(2){opacity:0}
.nav-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
/* Ícone de presente — atalho pra Presentes, só no mobile/tablet (menu colapsado) */
.nav-gift{display:none;align-items:center;justify-content:center;color:#F6F0ED;font-size:1.4rem;padding:6px;z-index:210;transition:color 0.4s var(--ease),transform 0.25s var(--ease)}
.nav-gift:hover{transform:scale(1.1)}
.site-nav.scrolled .nav-gift{color:var(--piv-ink)}
.nav-open .nav-gift{color:#F6F0ED}

@media(max-width:880px){
  .nav-toggle{display:flex}
  .nav-gift{display:flex}
  .nav-side{
    position:fixed;left:0;right:0;height:50vh;
    background:rgba(37,38,36,0.97);backdrop-filter:blur(8px);
    flex-direction:column;gap:1.6rem;margin:0;padding:0 2rem;
    transform:translateX(100%);transition:transform 0.5s var(--ease);
  }
  .nav-left{top:0;justify-content:flex-end;padding-bottom:0.8rem}
  .nav-right{top:50vh;justify-content:flex-start;padding-top:0.8rem}
  .nav-open .nav-side{transform:translateX(0)}
  .nav-side a{color:#F6F0ED;font-size:1rem;letter-spacing:0.2em}
  .site-nav.scrolled .nav-side a{color:#F6F0ED}
  .nav-side a.nav-cta{border-color:var(--accent);color:var(--accent)}
}

/* ── Hero com vídeo ── */
.hero-video{
  height:100vh;height:100svh;position:relative;overflow:hidden;
  display:flex;flex-direction:column;align-items:center;justify-content:flex-end;
  text-align:center;color:#F6F0ED;
}
.hero-video .hv-media{position:absolute;inset:0;z-index:0}
.hero-video .hv-media video,.hero-video .hv-media img{
  width:100%;height:100%;object-fit:cover;
}
.hero-video .hv-overlay{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(37,38,36,0.45),rgba(37,38,36,0.25) 40%,rgba(37,38,36,0.55));
}
.hero-video .hv-content{
  position:relative;z-index:2;width:100%;
  padding:0 clamp(20px,2.5vw,40px) clamp(5.5rem,15vh,11rem);
  will-change:opacity,transform;
}
.hero-video .hv-overline{
  font-size:0.72rem;letter-spacing:0.42em;text-transform:uppercase;
  color:#F6F0ED;opacity:0.9;margin-bottom:1.5rem;
}
.hero-video .hv-logo{height:clamp(3.4rem,7vw,6rem);margin-bottom:1.5rem;overflow:visible}
.hero-video .hv-logo object{height:100%}
.hero-video .hv-date{
  font-family:'Farmhouse',cursive;font-size:clamp(1.2rem,2.4vw,1.9rem);color:#F6F0ED;
  margin-bottom:2rem;
}
.hero-video .hv-faltam{
  font-family:'Farmhouse',cursive;
  font-size:clamp(2.2rem,5vw,3.8rem);line-height:1;
  color:#E7D1BA;margin-bottom:0.2rem;
  text-shadow:0 2px 22px rgba(37,38,36,0.45);
}
.hero-video .hv-count{display:flex;gap:clamp(1rem,2.4vw,2.6rem);justify-content:center;align-items:flex-start;flex-wrap:wrap}
.hero-video .hv-count .cd{text-align:center}
.hero-video .hv-count .countdown-digits{
  font-family:'Gallient',serif;font-size:clamp(3.5rem,12.5vw,11.5rem);line-height:1;display:block;
  color:rgba(255,255,255,0.5); /* transparência — o vídeo aparece através dos números */
}
/* ── Efeito odômetro (dígitos rolando) ── */
.odometer{display:inline-flex;line-height:1}
.od-digit{display:inline-block;overflow:hidden;height:1.18em;line-height:1;vertical-align:top}
.od-strip{display:flex;flex-direction:column;will-change:transform;
  transition:transform 0.9s cubic-bezier(0.16,1,0.3,1);}
.od-strip>span{height:1.18em;display:flex;align-items:center;justify-content:center;line-height:1}
.hero-video .hv-count .cd>span:last-child{
  font-size:clamp(0.7rem,1vw,0.9rem);letter-spacing:0.22em;text-transform:uppercase;color:#E7D1BA;display:block;margin-top:0;
}
.hero-video .hv-scroll{
  position:absolute;bottom:2.2rem;left:50%;transform:translateX(-50%);z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:0.6rem;
}
.hero-video .hv-scroll span{font-size:0.5rem;letter-spacing:0.3em;text-transform:uppercase;color:#F6F0ED;opacity:0.8}
.hero-video .hv-scroll .line{width:1px;height:38px;background:#E7D1BA;animation:scrollLine 2s ease-in-out infinite}
/* Mobile: contador empilhado na vertical (dias/horas/min/seg um embaixo do outro) */
@media(max-width:600px){
  .hero-video .hv-count{flex-direction:column;flex-wrap:nowrap;align-items:center;gap:0.25rem}
  .hero-video .hv-count .countdown-digits{font-size:clamp(3.4rem,18vw,5.5rem)}
}

/* ── Padrinhos — 4 full-cards 4:5 ── */
.padrinhos-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(0.8rem,1.6vw,1.4rem);
  width:100%;max-width:1200px;margin:0 auto;
}
.padrinho-card{
  position:relative;aspect-ratio:4/5;border-radius:var(--r-lg);overflow:hidden;
  box-shadow:var(--shadow-soft);
}
.padrinho-card img{
  width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease);
}
.padrinho-card:hover img{transform:scale(1.06)}
.padrinho-card .pc-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 45%,rgba(37,38,36,0.75));
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:1.3rem;text-align:left;
}
.padrinho-card .pc-name{
  font-family:'Gallient',serif;text-transform:uppercase;color:#F6F0ED;
  font-size:clamp(1.15rem,1.7vw,1.5rem);line-height:1.05;
}
.padrinho-card .pc-role{
  font-size:0.64rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--piv-gold);margin-top:0.5rem;
}
@media(max-width:760px){
  .padrinhos-grid{grid-template-columns:repeat(2,1fr);gap:0.8rem}
}

/* ── Informações (dresscode / hospedagem / como chegar) ── */
.info-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.2rem,2.5vw,2.2rem);
  width:100%;max-width:1100px;margin:0 auto;
}
.info-card{
  background:var(--surface);border-radius:var(--r-lg);overflow:hidden;
  text-align:center;border:1px solid var(--line);box-shadow:var(--shadow-soft);
  display:flex;flex-direction:column;
}
.info-card .ic-photo{aspect-ratio:1/1;overflow:hidden}
.info-card .ic-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.info-card:hover .ic-photo img{transform:scale(1.05)}
.info-card .ic-body{
  padding:clamp(1.6rem,2.6vw,2.4rem);
  display:flex;flex-direction:column;align-items:center;flex:1;
}
.info-card .ic-icon{font-size:1.5rem;color:var(--accent);margin-bottom:0.9rem}
.info-card h3{
  font-family:'Gallient',serif;text-transform:uppercase;font-size:1.3rem;margin-bottom:0.9rem;
}
.info-card p{font-size:1rem;line-height:1.8;color:var(--text-body)}
.info-card .ic-meta{
  display:block;margin-top:0.9rem;font-size:0.68rem;letter-spacing:0.16em;
  text-transform:uppercase;color:var(--text-muted);
}
@media(max-width:820px){.info-grid{grid-template-columns:1fr;max-width:460px}}

/* ── A Celebração (glass cards) ── */
.celebracao-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}
@media(max-width:640px){.celebracao-grid{grid-template-columns:1fr;max-width:340px;margin:0 auto}}

/* ── Presentes (PIX / cotas) ── */
.presentes-wrap{
  display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(1.5rem,3vw,3rem);
  max-width:980px;width:100%;margin:0 auto;align-items:center;
}
.pix-card{
  background:var(--piv-verde);color:var(--piv-offwhite);
  border-radius:var(--r-lg);padding:clamp(2rem,4vw,3rem);text-align:center;
}
.pix-card h3{font-family:'Gallient',serif;text-transform:uppercase;color:#F6F0ED;font-size:1.4rem;margin-bottom:1rem}
.pix-card .pix-key{
  font-family:'Montserrat';font-weight:500;font-size:1rem;letter-spacing:0.04em;
  background:rgba(246,240,237,0.12);padding:0.8rem 1rem;border-radius:var(--r-sm);
  margin:1rem 0;word-break:break-all;
}
.pix-card .pix-hint{font-size:0.9rem;color:#E7D1BA;line-height:1.7}
.presentes-cotas p{font-size:0.95rem;line-height:1.9;color:var(--text-body)}
.presentes-cotas .cota-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:0.9rem 0;border-bottom:1px solid var(--line);
}
.presentes-cotas .cota-row:last-child{border-bottom:none}
.presentes-cotas .cota-name{font-size:0.98rem;color:var(--piv-ink)}
.presentes-cotas .cota-val{font-family:'Gallient',serif;color:var(--accent);font-size:1.1rem}
@media(max-width:760px){.presentes-wrap{grid-template-columns:1fr;max-width:460px}}

/* ── RSVP ── */
.rsvp-card{
  background:var(--surface);border-radius:var(--r-lg);
  padding:clamp(2rem,4vw,3.5rem);max-width:560px;margin:0 auto;width:100%;
}
.rsvp-card .field{margin-bottom:1.25rem;text-align:left}
.rsvp-card label{
  display:block;font-size:0.66rem;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--text-muted);margin-bottom:0.45rem;
}
.rsvp-card input,.rsvp-card select,.rsvp-card textarea{
  width:100%;border:none;border-bottom:1px solid var(--line);
  padding:0.65rem 0;font-family:'Montserrat';font-size:1rem;font-weight:300;
  background:transparent;outline:none;color:var(--piv-ink);transition:border-color 0.3s;
}
.rsvp-card input:focus,.rsvp-card select:focus,.rsvp-card textarea:focus{border-color:var(--accent)}
.rsvp-card textarea{resize:none}
.rsvp-card .field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.rsvp-feedback{margin-top:1rem;font-size:0.85rem;color:var(--piv-verde);min-height:1.2em}

/* ── Seção foto dos noivos em parallax (fundo) ── */
.parallax-photo{
  position:relative;min-height:88vh;overflow:hidden;
  display:flex;align-items:center;justify-content:center;text-align:center;
}
.parallax-photo .pp-bg{position:absolute;top:-32%;left:0;right:0;height:164%;will-change:transform;z-index:0}
.parallax-photo .pp-bg img{width:100%;height:100%;object-fit:cover;object-position:center 22%;display:block}
.parallax-photo .pp-overlay{position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(37,38,36,0.45),rgba(37,38,36,0.28) 50%,rgba(37,38,36,0.5));}
.parallax-photo .pp-content{position:relative;z-index:2;color:#F6F0ED;padding:2rem}
.parallax-photo .pp-content .overline{display:block;margin-bottom:0.8rem;font-size:0.7rem;letter-spacing:0.4em}
.parallax-photo .pp-quote{
  font-family:'Farmhouse',cursive;font-size:clamp(3rem,8vw,7rem);line-height:1;
  color:#F6F0ED;text-shadow:0 4px 34px rgba(37,38,36,0.55);
}

/* logo do rodapé não pode ultrapassar a largura da tela (telas estreitas) */
#logo-animated-footer{max-width:88vw}
#logo-animated-footer object{max-width:100%}

/* ── Rodapé do site: tela cheia (logo centralizada) com a barra legal colada embaixo ── */
.look-footer{
  min-height:100vh;min-height:100svh;
  padding:4rem 2rem;
  overflow:visible; /* mantém o sangramento das texturas pra cima → transição integrada com a seção acima (sem corte) */
}
/* a marca d'água do topo é alta demais e ultrapassava a base do rodapé (gerava scroll morto);
   limito a altura pra ela sangrar pra cima sem passar do fim da página */
.look-footer img[src*="marca dagua 1"]{max-height:90vh;object-fit:contain;object-position:top}

/* ── Rodapé: barra legal (copyright · políticas · assinatura agência) ── */
.look-footer .footer-legal{
  position:absolute;bottom:0;left:0;right:0;z-index:2;
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0.6rem 1.6rem;
  padding:1rem clamp(1.5rem,4vw,3.5rem);
  border-top:1px solid var(--piv-bege);
  font-family:'Montserrat',sans-serif;font-size:0.72rem;font-weight:400;letter-spacing:0.04em;
  color:var(--piv-verde);
}
.look-footer .footer-legal a{color:var(--piv-marrom);transition:color 0.3s var(--ease)}
.look-footer .footer-legal a:hover{color:var(--piv-gold)}
.look-footer .footer-legal .fl-links{display:flex;align-items:center;gap:0.6rem}
.look-footer .footer-legal .fl-dot{opacity:0.5}
.look-footer .footer-legal .fl-sign{letter-spacing:0.08em}
.look-footer .footer-legal .fl-sign i{color:var(--piv-rosa-terroso);font-size:0.72em;margin:0 0.2em}
.look-footer .footer-legal .fl-sign a{font-weight:600;letter-spacing:0.1em}
@media(max-width:680px){
  .look-footer .footer-legal{flex-direction:column;text-align:center;gap:0.55rem;padding-bottom:1.6rem}
}

/* ── Mural de recados (carrossel paginado: 6 por página, mais recente primeiro) ── */
.mural-wrap{max-width:1140px;width:100%;margin:0 auto}
.mural-empty{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;gap:1.1rem;
  min-height:clamp(240px,34vh,360px);padding:2rem 1rem;
}
.mural-empty[hidden]{display:none}
.mural-empty i{font-size:2.6rem;color:var(--accent);opacity:0.85}
.mural-empty .me-text{
  font-family:'Farmhouse',cursive;font-size:clamp(1.7rem,4vw,2.8rem);
  line-height:1.25;color:var(--text-body);max-width:16ch;
}
.mural-carousel{display:flex;align-items:center;gap:0.7rem}
.mural-viewport{flex:1 1 auto;overflow:hidden}
.mural-track{display:flex;align-items:flex-start;transition:transform 0.6s var(--ease)}
.mural-page{
  flex:0 0 100%;display:grid;grid-template-columns:repeat(3,1fr);
  gap:1.3rem;align-items:start;
}
.mc-arrow{
  flex-shrink:0;width:44px;height:44px;border-radius:50%;
  border:1px solid var(--line);background:var(--bg);color:var(--accent);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  font-size:0.9rem;transition:background 0.25s var(--ease),color 0.25s var(--ease),border-color 0.25s var(--ease),opacity 0.25s;
}
.mc-arrow:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.mc-arrow:disabled{opacity:0.28;cursor:default;pointer-events:none}
.mural-dots{display:flex;justify-content:center;gap:0.55rem;margin-top:1.6rem;margin-bottom:3rem;min-height:8px}
.mural-dot{
  width:8px;height:8px;border-radius:50%;border:none;background:var(--line);
  cursor:pointer;padding:0;transition:background 0.25s,transform 0.25s;
}
.mural-dot.active{background:var(--accent);transform:scale(1.35)}
@media(max-width:900px){.mural-page{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.mural-page{grid-template-columns:1fr}.mc-arrow{width:38px;height:38px}}
.recado-card{
  display:flex;flex-direction:column;          /* msg no topo · rodapé colado embaixo */
  background:var(--bg);border:1px solid var(--line);
  border-radius:var(--r-md);padding:1.6rem 1.7rem;
  box-shadow:0 8px 24px -18px rgba(37,38,36,0.2);
}
.recado-card .rc-msg{font-size:1.02rem;line-height:1.75;color:var(--text-body);font-style:italic;margin-bottom:1.1rem}
.recado-card .rc-foot{
  display:flex;align-items:center;justify-content:space-between;
  gap:0.8rem;margin-top:auto;                   /* empurra nome+coração pra base do card */
}
.recado-card .rc-from{
  font-size:0.66rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--accent);
}
.rc-like{
  background:none;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:0.4rem;
  color:var(--text-muted);transition:color 0.25s,transform 0.2s;padding:0.2rem;flex-shrink:0;
}
.rc-like:hover{transform:scale(1.1)}
.rc-like i{font-size:1.05rem}
.rc-like.liked{color:#C99889}
.rc-like.liked i{animation:heartPop 0.35s ease}
.rc-count{font-size:0.82rem;letter-spacing:0.04em;color:var(--text-muted)}
.rc-like.liked .rc-count{color:#C99889}
@keyframes heartPop{0%{transform:scale(1)}40%{transform:scale(1.35)}100%{transform:scale(1)}}
.mural-form{max-width:520px;margin:0 auto;display:flex;flex-direction:column;gap:1rem}
.mural-form input,.mural-form textarea{
  border:none;border-bottom:1px solid var(--line);padding:0.6rem 0;
  font-family:'Montserrat';font-size:0.92rem;font-weight:300;background:transparent;outline:none;
}
.mural-form textarea{resize:none}
.mural-counter{
  font-size:0.7rem;letter-spacing:0.04em;color:var(--text-muted);
  text-align:right;margin-top:-0.5rem;transition:color 0.25s;
}
.mural-counter.low{color:var(--piv-rosa-terroso);font-weight:500}

/* ── Nota de "conteúdo de exemplo" (faixa discreta) ── */
.demo-flag{
  position:fixed;left:0;bottom:0;z-index:150;
  background:var(--piv-marrom);color:#F6F0ED;
  font-size:0.58rem;letter-spacing:0.12em;text-transform:uppercase;
  padding:0.4rem 0.9rem;border-top-right-radius:var(--r-sm);opacity:0.85;
  pointer-events:none;
}

/* ══════════════════ RÁDIO DOS NOIVOS (player flutuante) ══════════════════ */
.radio{
  position:fixed;right:clamp(0.9rem,2vw,1.8rem);bottom:clamp(0.9rem,2vw,1.8rem);z-index:190;
  width:clamp(290px,25vw,340px);
  background:rgba(255,255,255,0.94);backdrop-filter:blur(16px) saturate(1.25);-webkit-backdrop-filter:blur(16px) saturate(1.25);
  border:1px solid var(--piv-bege);border-radius:18px;overflow:hidden;
  box-shadow:0 20px 50px -22px rgba(37,38,36,0.45);
  font-family:'Montserrat',sans-serif;transition:width 0.45s var(--ease),opacity 0.3s,box-shadow 0.4s;
}
body.nav-open .radio{opacity:0;pointer-events:none}
.radio-bar{display:flex;align-items:center;gap:0.6rem;padding:0.6rem 0.7rem}
.radio-cover{
  width:48px;height:48px;border-radius:50%;flex-shrink:0;position:relative;
  background:repeating-radial-gradient(circle at 50% 50%,#1e1f1d 0 1px,#2c2d2a 1px 3px);
  box-shadow:0 3px 12px rgba(0,0,0,0.35),inset 0 0 0 1px rgba(255,255,255,0.06);
}
.radio-cover::before{content:'';position:absolute;inset:0;margin:auto;width:16px;height:16px;border-radius:50%;background:var(--piv-gold);box-shadow:0 0 0 3px #fff}
.radio-cover::after{content:'';position:absolute;inset:0;margin:auto;width:3px;height:3px;border-radius:50%;background:#1e1f1d;z-index:2}
.radio.playing .radio-cover{animation:vinylSpin 4.5s linear infinite}
@keyframes vinylSpin{to{transform:rotate(360deg)}}
.radio-info{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}
.r-label{font-family:'Farmhouse',cursive;font-size:0.95rem;color:var(--piv-gold);line-height:1}
.r-title{font-size:0.78rem;font-weight:500;color:var(--piv-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.r-btn{background:none;border:none;cursor:pointer;color:var(--piv-verde);font-size:0.8rem;padding:0.25rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color 0.2s,transform 0.2s,background 0.2s}
.r-btn:hover{color:var(--piv-gold);transform:scale(1.15)}
.r-play{width:40px;height:40px;border-radius:50%;background:var(--piv-gold);color:#fff;font-size:0.92rem}
.r-play:hover{background:var(--piv-marrom);color:#fff;transform:scale(1.08)}
.radio:not(.played) .r-play{animation:rPulse 2s ease-in-out infinite}
@keyframes rPulse{0%,100%{box-shadow:0 0 0 0 rgba(202,167,120,0.55)}50%{box-shadow:0 0 0 9px rgba(202,167,120,0)}}
.r-toggle i{transition:transform 0.4s var(--ease)}
.radio.open .r-toggle i{transform:rotate(180deg)}
.radio-panel{max-height:0;overflow:hidden;transition:max-height 0.45s var(--ease)}
.radio.open .radio-panel{max-height:330px;border-top:1px solid var(--piv-bege)}
.r-progress{height:4px;background:var(--piv-bege);border-radius:2px;margin:0.7rem 0.9rem 0;cursor:pointer;position:relative}
.r-pfill{height:100%;width:0;background:var(--piv-gold);border-radius:2px;transition:width 0.15s linear}
.r-times{display:flex;justify-content:space-between;padding:0.3rem 0.9rem 0.4rem;font-size:0.62rem;color:var(--piv-marrom);letter-spacing:0.04em}
.radio-list{list-style:none;max-height:228px;overflow-y:auto;padding:0 0.45rem 0.55rem;margin:0}
.radio-list li{display:flex;align-items:center;gap:0.55rem;padding:0.5rem 0.5rem;border-radius:10px;cursor:pointer;transition:background 0.2s}
.radio-list li:hover{background:var(--piv-offwhite)}
.radio-list li.active{background:rgba(202,167,120,0.15)}
.radio-list .rl-num{font-size:0.7rem;color:var(--piv-marrom);width:1.1rem;text-align:center;flex-shrink:0}
.radio-list li.active .rl-num{color:var(--piv-gold)}
.radio-list .rl-meta{min-width:0;display:flex;flex-direction:column;line-height:1.2}
.rl-t{font-size:0.78rem;color:var(--piv-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rl-a{font-size:0.64rem;color:var(--piv-marrom);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.radio-list li.active .rl-t{color:var(--piv-marrom);font-weight:600}
.r-eq{margin-left:auto;display:flex;gap:2px;align-items:flex-end;height:12px;opacity:0;flex-shrink:0}
.radio-list li.active .r-eq{opacity:1}
.r-eq span{width:2.5px;height:3px;background:var(--piv-gold);border-radius:1px;animation:rEq 0.9s ease-in-out infinite}
.r-eq span:nth-child(2){animation-delay:0.25s}
.r-eq span:nth-child(3){animation-delay:0.45s}
@keyframes rEq{0%,100%{height:3px}50%{height:11px}}
.radio:not(.playing) .r-eq span{animation-play-state:paused}
/* Mobile: compacto (só vinil + play + chevron quando recolhido) */
@media(max-width:600px){
  .radio{width:auto;max-width:calc(100vw - 1.6rem)}
  .radio:not(.open) .radio-info,.radio:not(.open) .r-prev,.radio:not(.open) .r-next{display:none}
  .radio.open{width:300px}
}

/* ══════════════════ LISTA DE PRESENTES (masonry full-width + filtro) ══════════════════ */
#presentes{padding-left:clamp(1rem,3vw,3rem);padding-right:clamp(1rem,3vw,3rem)}
.presentes-layout{display:flex;gap:clamp(1.5rem,2.5vw,2.5rem);max-width:1540px;margin:2rem auto 0;align-items:flex-start;text-align:left}
.presentes-sidebar{flex:0 0 250px;position:sticky;top:96px}
.presentes-main{flex:1;min-width:0}
.presentes-resultado{font-size:0.72rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:1.1rem}
.presentes-masonry{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(0.9rem,1.4vw,1.4rem);width:100%;align-items:start}

/* busca */
.pf-search{position:relative;margin-bottom:1.5rem}
.pf-search i{position:absolute;left:0.95rem;top:50%;transform:translateY(-50%);color:var(--piv-marrom);font-size:0.78rem;opacity:0.55}
.pf-search input{width:100%;padding:0.72rem 0.9rem 0.72rem 2.4rem;border:1px solid var(--line);border-radius:var(--r-pill);font-family:'Montserrat',sans-serif;font-size:0.82rem;color:var(--piv-ink);background:#fff;outline:none;transition:border-color 0.25s}
.pf-search input:focus{border-color:var(--accent)}
/* grupos */
.pf-group{margin-bottom:1.7rem}
.pf-group h4{font-family:'Montserrat',sans-serif;font-size:0.64rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--piv-marrom);margin-bottom:0.85rem;font-weight:600}
/* lista de categorias (multi-seleção) */
.pf-cats{list-style:none;display:flex;flex-direction:column;gap:0.1rem;margin:0;padding:0}
.pf-cats li{display:flex;align-items:center;gap:0.6rem;padding:0.46rem 0.5rem;border-radius:8px;cursor:pointer;font-size:0.82rem;color:var(--text-body);transition:background 0.2s}
.pf-cats li:hover{background:var(--piv-offwhite)}
.pf-cats li.sel{color:var(--piv-ink);font-weight:500}
.pf-check{width:16px;height:16px;border:1.5px solid var(--line);border-radius:4px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:background 0.2s,border-color 0.2s}
.pf-cats li.sel .pf-check{background:var(--piv-verde);border-color:var(--piv-verde)}
.pf-check i{font-size:0.58rem;color:#fff;opacity:0}
.pf-cats li.sel .pf-check i{opacity:1}
.pf-cat-count{margin-left:auto;font-size:0.68rem;color:var(--text-muted);opacity:0.7}
/* range de preço (dual slider) */
.pf-range-vals{display:flex;justify-content:space-between;font-size:0.78rem;color:var(--piv-marrom);font-weight:600;margin-bottom:0.8rem}
.pf-slider{position:relative;height:24px}
.pf-slider::before{content:'';position:absolute;top:50%;left:0;right:0;height:3px;transform:translateY(-50%);background:var(--line);border-radius:2px}
.pf-slider-fill{position:absolute;top:50%;height:3px;transform:translateY(-50%);background:var(--piv-gold);border-radius:2px}
.pf-thumb{position:absolute;top:0;left:0;width:100%;height:24px;margin:0;background:none;pointer-events:none;-webkit-appearance:none;appearance:none}
.pf-thumb::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--piv-gold);cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,0.2)}
.pf-thumb::-moz-range-thumb{pointer-events:auto;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--piv-gold);cursor:pointer}
.pf-clear{width:100%;margin-top:0.3rem;background:none;border:1px solid var(--line);border-radius:var(--r-pill);padding:0.62rem;font-family:'Montserrat',sans-serif;font-size:0.66rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-muted);cursor:pointer;transition:border-color 0.25s,color 0.25s}
.pf-clear:hover{border-color:var(--piv-rosa-terroso);color:var(--piv-rosa-terroso)}
.pf-mobile-toggle{display:none}
.presente-card{
  display:flex;flex-direction:column;
  background:var(--bg);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;
  box-shadow:0 10px 30px -20px rgba(37,38,36,0.25);
  transition:transform 0.4s var(--ease),box-shadow 0.4s;
}
.presente-card:hover{transform:translateY(-5px);box-shadow:0 24px 50px -24px rgba(37,38,36,0.35)}
.presente-card .pc-img{position:relative;overflow:hidden;aspect-ratio:4/3;background:linear-gradient(150deg,var(--piv-offwhite),var(--piv-bege))}
.presente-card .pc-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.presente-card .pc-ph i{font-size:2.6rem;color:rgba(75,83,68,0.3)}
.presente-card .pc-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 0.8s var(--ease)}
.presente-card:hover .pc-photo{transform:scale(1.06)}
.presente-card .pc-badge{
  position:absolute;top:0.7rem;left:0.7rem;z-index:2;background:rgba(255,255,255,0.92);
  color:var(--piv-marrom);font-size:0.54rem;letter-spacing:0.12em;text-transform:uppercase;font-weight:600;
  padding:0.32rem 0.62rem;border-radius:var(--r-pill);
}
.presente-card .pc-body{padding:1.05rem 1.15rem 1.25rem;display:flex;flex-direction:column}
.presente-card .pc-nome{font-family:'Montserrat',sans-serif;font-weight:500;font-size:0.9rem;color:var(--piv-ink);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.presente-card .pc-val{font-family:'Montserrat',sans-serif;font-weight:700;font-size:1.12rem;color:var(--piv-marrom);line-height:1;margin-top:0.5rem}
.presente-card .pc-btn{
  margin-top:0.85rem;border:none;cursor:pointer;width:100%;
  background:var(--piv-gold);color:#fff;font-family:'Montserrat',sans-serif;
  font-size:0.68rem;letter-spacing:0.16em;text-transform:uppercase;font-weight:600;
  padding:0.78rem 1rem;border-radius:var(--r-pill);transition:background 0.3s var(--ease),transform 0.2s;
}
.presente-card .pc-btn:hover{background:var(--piv-marrom)}
.presente-card .pc-btn:active{transform:scale(0.98)}
@media(max-width:1280px){.presentes-masonry{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){
  .pf-mobile-toggle{display:inline-flex;align-items:center;gap:0.5rem;margin:1.6rem auto 0;background:var(--piv-verde);color:#fff;border:none;border-radius:var(--r-pill);padding:0.72rem 1.5rem;font-family:'Montserrat',sans-serif;font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;cursor:pointer}
  #pf-count-badge:not(:empty){background:#fff;color:var(--piv-verde);border-radius:999px;padding:0 0.45rem;font-size:0.64rem;font-weight:700}
  .presentes-layout{flex-direction:column}
  .presentes-sidebar{position:fixed;top:0;left:0;bottom:0;width:84vw;max-width:320px;z-index:320;background:#fff;padding:4.5rem 1.5rem 2rem;box-shadow:0 0 60px rgba(0,0,0,0.3);transform:translateX(-100%);transition:transform 0.4s var(--ease);overflow-y:auto}
  body.pf-open .presentes-sidebar{transform:translateX(0)}
  body.pf-open::after{content:'';position:fixed;inset:0;background:rgba(37,38,36,0.5);z-index:319}
  .presentes-main{width:100%}
  .presentes-masonry{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:760px){.presentes-masonry{grid-template-columns:repeat(2,1fr)}}
@media(max-width:460px){.presentes-masonry{grid-template-columns:1fr}}

/* ── Modal de pagamento ── */
.pay-modal{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:1.1rem}
.pay-modal[hidden]{display:none}
.pay-backdrop{position:absolute;inset:0;background:rgba(37,38,36,0.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.pay-dialog{
  position:relative;z-index:1;background:#fff;border-radius:var(--r-lg);
  max-width:440px;width:100%;max-height:90vh;overflow-y:auto;
  padding:1.6rem;box-shadow:0 30px 80px -20px rgba(0,0,0,0.55);
}
.pay-close{position:absolute;top:0.7rem;right:0.7rem;background:none;border:none;cursor:pointer;font-size:1.1rem;color:var(--piv-marrom);padding:0.4rem;line-height:1;transition:color 0.2s,transform 0.2s}
.pay-close:hover{color:var(--piv-gold);transform:rotate(90deg)}
.pay-head{display:flex;gap:1rem;align-items:center;margin-bottom:1.4rem;padding-right:1.5rem}
.pay-foto{position:relative;width:74px;height:74px;border-radius:14px;overflow:hidden;flex-shrink:0;background:linear-gradient(150deg,var(--piv-offwhite),var(--piv-bege));display:flex;align-items:center;justify-content:center}
.pay-foto i{font-size:1.85rem;color:var(--piv-verde);opacity:0.55}
.pay-head-info{min-width:0}
.pay-overline{font-size:0.6rem;letter-spacing:0.28em;text-transform:uppercase;color:var(--accent);display:block}
.pay-head-info h3{font-family:'Montserrat',sans-serif;font-weight:600;text-transform:none;font-size:1.02rem;color:var(--piv-ink);line-height:1.3;margin:0.3rem 0}
.pay-valor{font-family:'Montserrat',sans-serif;font-weight:700;font-size:1.35rem;color:var(--piv-marrom);line-height:1}
.pay-fallback{text-align:center;padding:1.6rem 1.2rem;background:var(--piv-offwhite);border-radius:14px;color:var(--text-body);font-size:0.84rem;line-height:1.6}
.pay-fallback i{font-size:1.7rem;color:var(--piv-gold);margin-bottom:0.7rem;display:block}
.pay-status{margin-top:1rem;font-size:0.82rem;text-align:center;color:var(--text-body)}
.pay-status.ok{color:var(--piv-verde)} .pay-status.erro{color:var(--piv-rosa-terroso)}
