:root {
  --primary: #4a2a16;
  --secondary: #9a8f67;
  --accent: #b47a43;
  --bg: #efeeeb;
  --text: #3f3027;
  --heading-font: "Cormorant Garamond", Georgia, serif;
  --body-font: "Lora", Georgia, serif;
  --names-font: "Great Vibes", cursive;
  --header-font: "Great Vibes", cursive;
  --header-name-size: 32px;
  --logo-size: 88px;
  --card-radius: 20px;
  --shadow-alpha: .10;
  --pattern-opacity: 0;
  --background-image: none;
  --pattern-image: none;
  --background-blur: 0px;
  --background-size: 100% auto;
  --background-repeat: repeat-y;
  --background-attachment: scroll;
  --header-height: 86px;
}
* { box-sizing: border-box; }
html { min-height:100%; background:var(--bg); overscroll-behavior-y:none; }
body {
  min-height:100vh; min-height:100dvh; margin:0; color:var(--text); font-family:var(--body-font);
  background-color:var(--bg); line-height:1.65; overflow-x:hidden; position:relative; isolation:isolate;
  display:flex; flex-direction:column; overscroll-behavior-y:none;
}
.site-background { position:absolute; inset:0; z-index:-4; pointer-events:none; background-color:var(--bg); background-image:var(--background-image); background-size:var(--background-size,100% auto); background-repeat:var(--background-repeat,repeat-y); background-position:center top; background-attachment:var(--background-attachment,scroll); filter:blur(var(--background-blur)); transform:none; }
body::before { content:""; position:fixed; inset:0; pointer-events:none; z-index:-2; opacity:var(--pattern-opacity); background-image:var(--pattern-image); background-size:760px auto; background-repeat:repeat; mix-blend-mode:multiply; }
.background-pattern { display:none; }
a { color: inherit; }
button,input,textarea,select { font: inherit; }
.site-header {
  min-height:var(--header-height); padding:10px clamp(18px,4vw,62px); display:flex; align-items:center; justify-content:space-between; gap:24px;
  position:sticky; top:0; z-index:50; background:color-mix(in srgb,var(--bg) 88%,transparent); backdrop-filter:blur(12px); border-bottom:1px solid rgba(74,42,22,.10);
}
.site-header.transparent { background:color-mix(in srgb,var(--bg) 52%,transparent); }
.brand { display:flex; align-items:center; gap:12px; text-decoration:none; min-width:max-content; }
.brand.brand-pending { visibility:hidden; }
.brand [hidden] { display:none !important; }
.brand-logo { width:var(--logo-size); height:calc(var(--logo-size)*.72); object-fit:contain; mix-blend-mode:normal; }
.brand span { font-family:var(--header-font,var(--names-font)); font-size:var(--header-name-size,32px); color:var(--primary); line-height:1; }
.main-nav { display:flex; align-items:center; gap:clamp(12px,2vw,30px); }
.main-nav a { font-family:var(--heading-font); text-decoration:none; font-size:17px; font-weight:600; position:relative; padding:9px 0; white-space:nowrap; }
.main-nav a::after { content:""; position:absolute; left:50%; right:50%; bottom:4px; height:1px; background:var(--primary); transition:.25s; }
.main-nav a:hover::after,.main-nav a.active::after { left:0; right:0; }
.menu-toggle { display:none; border:0; background:none; width:40px; height:40px; padding:8px; cursor:pointer; }
.menu-toggle span { display:block; height:1px; background:var(--primary); margin:6px 0; }
.page-root { width:min(1180px,calc(100% - 32px)); margin:0 auto; flex:1 0 auto; width:min(1180px,calc(100% - 32px)); padding:clamp(26px,4vw,58px) 0 48px; }
.page-shell { animation:pageIn .45s ease both; }
@keyframes pageIn { from { opacity:0; transform:translateY(8px);} to {opacity:1; transform:none;} }
.eyebrow { display:block; text-transform:uppercase; letter-spacing:.22em; font-family:var(--heading-font); font-weight:600; font-size:12px; color:var(--secondary); }
.page-title { margin:5px 0 14px; color:var(--primary); font-family:var(--heading-font); font-size:clamp(42px,6vw,72px); line-height:1; font-weight:500; }
.lead { font-size:clamp(17px,2vw,20px); max-width:760px; margin:0 auto 28px; }
.muted { color:color-mix(in srgb,var(--text) 70%,transparent); }

/* Inicio */
.home-page { text-align:center; }
.hero-card { position:relative; padding:clamp(12px,3vw,22px) clamp(10px,2vw,18px) 0; border:0; border-radius:0; background:transparent; box-shadow:none; overflow:visible; backdrop-filter:none; }
.hero-card::before,.hero-card::after,.content-card::before,.content-card::after { display:none; }
.hero-names { font-family:var(--names-font); color:var(--primary); font-size:clamp(46px,7.1vw,var(--hero-names-size,92px)); font-weight:400; line-height:.95; margin:4px 0 14px; }
.church-wrap { width:var(--church-width,100vw); max-width:100vw; aspect-ratio:16/9; margin:8px 0 24px; position:relative; left:50%; transform:translateX(-50%); overflow:hidden; background:transparent; }
.church-wrap::before,.church-wrap::after { display:none; }
.church-wrap img { width:100%; height:100%; object-fit:contain; display:block; mix-blend-mode:multiply; filter:sepia(.05); }
.event-line { display:flex; justify-content:center; align-items:center; gap:18px; flex-wrap:wrap; font-family:var(--heading-font); color:var(--primary); font-size:clamp(18px,2.4vw,25px); }
.event-line .dot { width:4px; height:4px; border-radius:50%; background:var(--accent); }
.countdown-label { margin:35px 0 12px; font-family:var(--heading-font); font-style:italic; }
.countdown { display:grid; grid-template-columns:repeat(4,minmax(78px,120px)); justify-content:center; gap:10px; }
.countdown div { border:1px solid rgba(74,42,22,.16); border-radius:14px; padding:12px 8px; background:rgba(255,255,255,.36); }
.countdown strong { display:block; color:var(--primary); font-family:var(--heading-font); font-size:clamp(28px,4vw,43px); line-height:1; font-weight:500; }
.countdown span { font-size:11px; text-transform:uppercase; letter-spacing:.12em; }

/* Paginas editoriais */
.editorial-head { text-align:var(--page-head-align,center); margin-bottom:32px; }
.content-card { position:relative; overflow:hidden; border:var(--page-card-border-width,1px) solid color-mix(in srgb,var(--page-card-border,var(--page-card-text,var(--gift-card-text,#fff))) 75%,transparent); border-radius:var(--page-card-radius,28px); background:var(--page-card-bg,var(--gift-card-bg,#4a2a16)); color:var(--page-card-text,var(--gift-card-text,#fff)); box-shadow:0 14px 36px rgba(51,29,14,var(--page-card-shadow,.14)); padding:clamp(18px,4vw,var(--page-card-padding,48px)); }
.content-card .muted { color:color-mix(in srgb,var(--page-card-text,var(--gift-card-text,#fff)) 78%,transparent); }
.content-card .prose h2,.content-card h2,.content-card h3 { color:var(--page-card-text,var(--gift-card-text,#fff)); }
.content-card .story-copy p,.content-card .prose p { color:var(--page-card-text,var(--gift-card-text,#fff)); }
.content-card .story-copy p:first-child::first-letter { color:var(--page-card-text,var(--gift-card-text,#fff)); }
.editorial-head::after,.gifts-head::after { display:none; }
.story-grid { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr); gap:clamp(28px,5vw,66px); align-items:center; }
.story-copy { font-size:17px; }
.story-copy p:first-child::first-letter { float:left; font-family:var(--heading-font); font-size:68px; line-height:.72; padding:12px 7px 0 0; color:var(--page-card-text,var(--gift-card-text,#fff)); }
.carousel { position:relative; border-radius:calc(var(--card-radius) - 4px); overflow:hidden; background:color-mix(in srgb,var(--page-card-bg,var(--gift-card-bg,#4a2a16)) 90%,var(--page-card-text,var(--gift-card-text,#fff))); aspect-ratio:4/5; border:1px solid color-mix(in srgb,var(--page-card-text,var(--gift-card-text,#fff)) 22%,transparent); }
.carousel img { width:100%; height:100%; object-fit:cover; display:block; transition:opacity .2s; }
.carousel-controls { position:absolute; inset:auto 12px 12px; display:flex; justify-content:space-between; pointer-events:none; }
.carousel-controls button { pointer-events:auto; width:42px; height:42px; border-radius:50%; border:1px solid rgba(255,255,255,.6); background:rgba(54,34,22,.72); color:white; cursor:pointer; }
.carousel-dots { display:flex; justify-content:center; gap:7px; margin-top:11px; }
.carousel-dots button { border:0; width:7px; height:7px; border-radius:50%; background:rgba(74,42,22,.25); padding:0; }
.carousel-dots button.active { background:var(--primary); }
.attire-grid,.location-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(25px,5vw,58px); align-items:center; }
.attire-art { min-height:400px; border-radius:calc(var(--card-radius) - 4px); overflow:hidden; background:color-mix(in srgb,var(--page-card-bg,var(--gift-card-bg,#4a2a16)) 90%,var(--page-card-text,var(--gift-card-text,#fff))); display:grid; place-items:center; border:1px solid color-mix(in srgb,var(--page-card-text,var(--gift-card-text,#fff)) 24%,transparent); color:var(--page-card-text,var(--gift-card-text,#fff)); }
.attire-art img { width:100%; height:100%; object-fit:cover; max-height:560px; }
.attire-placeholder { width:72%; text-align:center; color:var(--page-card-text,var(--gift-card-text,#fff)); opacity:.86; }
.attire-placeholder img { width:130px; height:auto; object-fit:contain; mix-blend-mode:multiply; }
.prose h2 { color:var(--primary); font:500 clamp(34px,4vw,53px)/1 var(--heading-font); margin:0 0 16px; }
.prose p { white-space:pre-line; font-size:17px; }
.map-frame { min-height:430px; border:0; width:100%; border-radius:calc(var(--card-radius) - 4px); background:#e8e0d5; }
.location-address { padding:15px 0; border-top:1px solid color-mix(in srgb,var(--page-card-text,var(--gift-card-text,#fff)) 22%,transparent); border-bottom:1px solid color-mix(in srgb,var(--page-card-text,var(--gift-card-text,#fff)) 22%,transparent); margin:20px 0; color:var(--page-card-text,var(--gift-card-text,#fff)); }

/* Presentes */
.gifts-head { text-align:center; max-width:790px; margin:0 auto 32px; }
.gift-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.gift-card { display:flex; flex-direction:column; border:1px solid rgba(74,42,22,.14); border-radius:var(--card-radius); background:rgba(255,252,247,.78); overflow:hidden; box-shadow:0 15px 42px rgba(51,29,14,calc(var(--shadow-alpha)*.75)); }
.gift-image { aspect-ratio:1.45; background:linear-gradient(145deg,#eee4d7,#faf4ea); display:grid; place-items:center; overflow:hidden; }
.gift-image img { width:100%; height:100%; object-fit:var(--gift-image-fit,contain); object-position:center; }
.gift-image .gift-icon { font:500 64px/1 var(--heading-font); color:var(--secondary); }
.gift-body { padding:20px; display:flex; flex-direction:column; flex:1; }
.gift-type { text-transform:uppercase; letter-spacing:.13em; font-size:10px; color:var(--secondary); }
.gift-card h3 { font:600 28px/1.1 var(--heading-font); color:var(--primary); margin:7px 0 10px; }
.gift-card p { font-size:14px; margin:0 0 14px; }
.gift-price { margin-top:auto; padding:10px 0; font-family:var(--heading-font); font-size:21px; color:var(--primary); }
.gift-progress { height:6px; background:rgba(74,42,22,.10); border-radius:5px; overflow:hidden; margin:6px 0 8px; }
.gift-progress span { display:block; height:100%; background:var(--secondary); }
.money-gift { margin-top:30px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:24px; border:1px dashed rgba(74,42,22,.35); border-radius:var(--card-radius); }
.delivery-note { margin-top:25px; background:rgba(154,143,103,.10); border-left:3px solid var(--secondary); padding:16px 18px; }


/* Presentes: a grade acompanha somente as colunas habilitadas */
.gift-columns-layout { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; align-items:start; width:100%; margin-inline:auto; }
.gift-columns-layout.gift-columns-2 { grid-template-columns:repeat(2,minmax(0,1fr)); max-width:920px; }
.gift-columns-layout.gift-columns-1 { grid-template-columns:minmax(0,620px); justify-content:center; max-width:620px; }
.gift-column { min-width:0; border:var(--gift-card-border-width,1px) solid color-mix(in srgb,var(--gift-card-border,var(--gift-card-text,#fff)) 75%,transparent); border-radius:var(--gift-card-radius,var(--card-radius)); background:var(--gift-card-bg,#4a2a16); color:var(--gift-card-text,#fff); box-shadow:0 14px 36px rgba(51,29,14,var(--gift-card-shadow,.12)); overflow:hidden; }
.gift-column-head { padding:24px 20px 18px; border:0; border-bottom:1px solid color-mix(in srgb,var(--gift-card-text,#fff) 18%,transparent); text-align:center; }
.gift-column-toggle { width:100%; appearance:none; background:transparent; color:inherit; font:inherit; display:grid; grid-template-columns:1fr auto; align-items:center; gap:12px; cursor:default; }
.gift-column-head-copy { display:block; min-width:0; }
.gift-column-head h2 { margin:0; color:var(--gift-card-text,#fff); font:600 clamp(20px,2.6vw,var(--gift-card-heading-size,34px))/1.05 var(--heading-font); }
.gift-column-head p { margin:10px 0 0; font-size:var(--gift-card-text-size,13px); color:color-mix(in srgb,var(--gift-card-text,#fff) 82%,transparent); }
.gift-column-chevron { display:none; width:40px; height:40px; flex:0 0 40px; border:1px solid color-mix(in srgb,var(--gift-card-text,#fff) 24%,transparent); border-radius:12px; place-items:center; position:relative; background:color-mix(in srgb,var(--gift-card-text,#fff) 7%,transparent); box-shadow:inset 0 1px 0 color-mix(in srgb,var(--gift-card-text,#fff) 10%,transparent); transition:transform .22s ease,background .18s ease,border-color .18s ease; }
.gift-column-chevron::before { content:""; width:9px; height:9px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg) translate(-1px,-1px); }
.gift-column-toggle:hover .gift-column-chevron { background:color-mix(in srgb,var(--gift-card-text,#fff) 13%,transparent); border-color:color-mix(in srgb,var(--gift-card-text,#fff) 38%,transparent); }
.gift-column-content { padding:var(--gift-card-padding,16px); color:var(--gift-card-text,#fff); }
.gift-list,.delivery-list { display:grid; gap:12px; }
.gift-mini-card,.delivery-location { border:1px solid color-mix(in srgb,var(--gift-card-text,#fff) 22%,transparent); border-radius:15px; background:var(--gift-card-bg,#4a2a16); color:var(--gift-card-text,#fff); overflow:hidden; }
.gift-mini-image { width:100%; display:grid; place-items:center; overflow:hidden; background:color-mix(in srgb,var(--gift-card-bg,#4a2a16) 88%,#fff); }
/* Imagem inteira: o card acompanha a proporcao real do arquivo e nunca corta. */
.gift-mini-image.fit-contain { aspect-ratio:auto; min-height:0; }
.gift-mini-image.fit-contain img { width:100%; height:auto; object-fit:contain; object-position:center; display:block; }
/* Preencher: mantem cards uniformes em 16:9 e permite corte nas bordas. */
.gift-mini-image.fit-cover { aspect-ratio:16/9; min-height:140px; }
.gift-mini-image.fit-cover img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.gift-mini-image .gift-icon { min-height:140px; font:500 42px/1 var(--heading-font); color:var(--gift-card-text,#fff); }
.gift-mini-body { padding:15px; display:grid; gap:9px; }
.gift-mini-body h3,.delivery-location h3 { margin:0; color:var(--gift-card-text,#fff); font:600 min(var(--gift-card-heading-size,34px),23px)/1.08 var(--heading-font); }
.gift-mini-body p,.delivery-location p { margin:0; font-size:var(--gift-card-text-size,13px); color:var(--gift-card-text,#fff); }
.gift-mini-body .button { width:100%; margin-top:2px; background:var(--gift-card-text,#fff); color:var(--gift-card-bg,#4a2a16); border-color:var(--gift-card-text,#fff); }
.gift-mini-body .gift-type,.gift-mini-body .gift-price,.gift-mini-body small,.gift-mini-body .muted,.delivery-location .muted,.suggestion-only{color:color-mix(in srgb,var(--gift-card-text,#fff) 82%,transparent);}
.gift-mini-body .gift-progress{background:color-mix(in srgb,var(--gift-card-text,#fff) 20%,transparent)}
.gift-mini-body .gift-progress span{background:var(--gift-card-text,#fff)}
.suggestion-only { display:block; border-top:1px dashed color-mix(in srgb,var(--gift-card-text,#fff) 22%,transparent); padding-top:9px; font-size:11px; color:color-mix(in srgb,var(--gift-card-text,#fff) 82%,transparent); }
.delivery-location { padding:17px; }
.delivery-address { font-weight:600; color:var(--gift-card-text,#fff); }
.gift-empty { margin:0; padding:18px 10px; text-align:center; font-size:12px; color:color-mix(in srgb,var(--gift-card-text,#fff) 78%,transparent); }
.money-free-card { background:var(--gift-card-bg,#4a2a16); }

/* RSVP */
.rsvp-card { width:min(680px,100%); margin:0 auto; text-align:center; }
.rsvp-embed-wrap { width:100%; margin:0 auto; border-radius:16px; overflow:hidden; background:#fff; }
.rsvp-embed { display:block; width:100%; min-height:900px; height:900px; border:0; background:#fff; }
.rsvp-embed.loaded { opacity:1; }
.rsvp-gate,.rsvp-search-box { display:grid; gap:13px; max-width:520px; margin:25px auto 0; }
.field-big { width:100%; border:1px solid rgba(74,42,22,.23); background:rgba(255,255,255,.62); border-radius:14px; padding:15px 16px; outline:none; color:var(--text); }
.field-big:focus { border-color:var(--primary); box-shadow:0 0 0 3px rgba(74,42,22,.08); }
.rsvp-search-box .button { margin-top:2px; }
.rsvp-search-box .form-error { margin-top:0; }
.confirm-box { margin-top:20px; padding:20px; border:1px solid rgba(74,42,22,.14); border-radius:16px; }
.confirm-actions { display:flex; justify-content:center; gap:10px; flex-wrap:wrap; margin-top:16px; }
.success-mark { width:76px; height:76px; border:1px solid var(--secondary); border-radius:50%; display:grid; place-items:center; margin:0 auto 15px; font-size:32px; color:var(--secondary); }

.rsvp-card .field-big { border-color:color-mix(in srgb,var(--page-card-text,var(--gift-card-text,#fff)) 35%,transparent); background:#fff; color:var(--page-card-bg,var(--gift-card-bg,#4a2a16)); }
.rsvp-card .field-big::placeholder { color:color-mix(in srgb,var(--page-card-bg,var(--gift-card-bg,#4a2a16)) 58%,transparent); }
.rsvp-card .confirm-box { border-color:color-mix(in srgb,var(--page-card-text,var(--gift-card-text,#fff)) 25%,transparent); }
.content-card .button { background:var(--page-card-text,var(--gift-card-text,#fff)); color:var(--page-card-bg,var(--gift-card-bg,#4a2a16)); border-color:var(--page-card-text,var(--gift-card-text,#fff)); }
.content-card .button-secondary { background:transparent; color:var(--page-card-text,var(--gift-card-text,#fff)); border-color:color-mix(in srgb,var(--page-card-text,var(--gift-card-text,#fff)) 75%,transparent); }
.content-card .button-ghost { background:transparent; color:var(--page-card-text,var(--gift-card-text,#fff)); border-color:transparent; }
.content-card .success-mark { border-color:var(--page-card-text,var(--gift-card-text,#fff)); color:var(--page-card-text,var(--gift-card-text,#fff)); }

/* Common */
.button { appearance:none; border:1px solid var(--primary); background:var(--primary); color:#fffaf3; border-radius:999px; padding:11px 19px; min-height:44px; display:inline-flex; align-items:center; justify-content:center; gap:8px; text-decoration:none; cursor:pointer; transition:.2s; }
.button:hover { transform:translateY(-1px); box-shadow:0 8px 20px rgba(74,42,22,.16); }
.button-secondary { background:transparent; color:var(--primary); }
.button-ghost { border-color:transparent; background:transparent; color:var(--primary); }
.button-full { width:100%; }
.loading-card { min-height:50vh; display:grid; place-items:center; align-content:center; gap:15px; color:var(--primary); }
.spinner { width:34px; height:34px; border:2px solid rgba(74,42,22,.14); border-top-color:var(--primary); border-radius:50%; animation:spin .8s linear infinite; } @keyframes spin{to{transform:rotate(360deg)}}
.site-footer { position:relative; flex:0 0 auto; margin-top:auto; min-height:48px; padding:7px 18px; border-top:1px solid rgba(74,42,22,.08); background:color-mix(in srgb,var(--bg) 82%,#fff 18%); display:flex; align-items:center; justify-content:center; gap:11px; text-align:center; white-space:nowrap; box-shadow:0 100vh 0 100vh color-mix(in srgb,var(--bg) 82%,#fff 18%); }
.site-footer::before,.site-footer::after { display:none; }
.site-footer img { width:32px; height:30px; object-fit:contain; mix-blend-mode:multiply; opacity:.72; flex:0 0 auto; }
.site-footer p { margin:0; font:18px/1 var(--names-font); color:var(--primary); }
.site-footer small { opacity:.66; font-size:10px; }
.site-footer small::before { content:'·'; margin-right:11px; color:var(--accent); }
.modal { border:0; padding:0; border-radius:22px; width:min(500px,calc(100% - 28px)); background:transparent; }
.modal::backdrop { background:rgba(38,25,17,.52); backdrop-filter:blur(4px); }
.modal-card { position:relative; background:#fbf7f0; color:var(--text); border:1px solid rgba(74,42,22,.15); border-radius:22px; padding:28px; box-shadow:0 30px 100px rgba(0,0,0,.24); }
.modal-card h2 { font:600 38px/1.05 var(--heading-font); color:var(--primary); margin:5px 0 9px; }
.modal-card label { display:block; text-align:left; font-size:13px; margin:13px 0; }
.modal-card input,.modal-card textarea { width:100%; margin-top:5px; border:1px solid rgba(74,42,22,.2); border-radius:11px; padding:11px 12px; background:white; color:var(--text); }
.modal-card textarea{resize:vertical;min-height:86px}.modal-card input:disabled{background:#eee8e1;color:#6f6259;cursor:not-allowed}
.modal-close { position:absolute; right:14px; top:10px; border:0; background:none; font-size:26px; color:var(--text); cursor:pointer; }
.money-input { display:flex; align-items:center; border:1px solid rgba(74,42,22,.2); background:white; border-radius:11px; margin-top:5px; overflow:hidden; }
.money-input span { padding-left:12px; color:var(--primary); } .money-input input { border:0; margin:0; }
.payment-note { font-size:12px; opacity:.7; }
.amount-choice{border:0;padding:0;margin:14px 0}.amount-choice legend{font-size:12px;font-weight:600;margin-bottom:7px}.amount-choice label{display:flex;align-items:center;gap:8px;margin:7px 0;padding:9px 10px;border:1px solid rgba(74,42,22,.14);border-radius:10px;background:rgba(255,255,255,.45)}.amount-choice input{width:auto;margin:0}
.form-error { color:#963c30; font-size:13px; min-height:18px; margin-top:9px; }
.toast { position:fixed; right:20px; bottom:20px; z-index:100; padding:12px 16px; border-radius:12px; background:#38271d; color:white; box-shadow:0 15px 40px rgba(0,0,0,.2); transform:translateY(20px); opacity:0; pointer-events:none; transition:.25s; }
.toast.show { opacity:1; transform:none; }
.payment-result { text-align:center; max-width:620px; margin:30px auto; }
.simple-error { min-height:100vh; display:grid; place-items:center; align-content:center; gap:16px; text-align:center; padding:30px; }
.simple-error img { width:150px; mix-blend-mode:multiply; }.simple-error h1{font-family:var(--heading-font);color:var(--primary);font-size:42px;margin:0}

@media (max-width: 980px) {
  .menu-toggle { display:block; }
  .main-nav { position:absolute; top:100%; left:0; right:0; display:none; flex-direction:column; align-items:stretch; gap:0; padding:12px 20px 22px; background:color-mix(in srgb,var(--bg) 98%,transparent); border-bottom:1px solid rgba(74,42,22,.12); }
  .main-nav.open { display:flex; }
  .main-nav a { padding:12px; text-align:center; }
  .main-nav a::after { display:none; }
  .story-grid,.attire-grid,.location-grid { grid-template-columns:1fr; }
  .story-grid .carousel-wrap { order:-1; max-width:600px; margin:auto; width:100%; }
  .gift-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .gift-columns-layout, .gift-columns-layout.gift-columns-2, .gift-columns-layout.gift-columns-1 { grid-template-columns:1fr; max-width:none; }
  .gift-column-toggle { cursor:pointer; text-align:left; padding:18px 18px; }
  .gift-column-head-copy { text-align:left; }
  .gift-column-head h2 { font-size:min(var(--gift-card-heading-size,34px),28px); }
  .gift-column-chevron { display:grid; }
  .gift-column.is-open .gift-column-chevron { transform:rotate(180deg); }
  .gift-column-content[hidden] { display:none; }
  .gift-column:not(.is-open) .gift-column-toggle { border-bottom-color:transparent; }
  .gift-column-toggle:focus-visible { outline:2px solid color-mix(in srgb,var(--gift-card-text,#fff) 78%,transparent); outline-offset:-4px; }
}
@media (max-width: 640px) {
  :root { --header-height:74px; }
  .site-header { padding:8px 14px; }
  .brand-logo { width:64px; height:48px; }
  .brand span { font-size:min(var(--header-name-size,32px),25px); }
  .page-root { width:min(100% - 22px,1180px); padding-top:22px; }
  .hero-card { padding:10px 0 0; }
  .content-card { padding:21px 22px; }
  .hero-names { font-size:min(var(--hero-names-size,92px),13vw); }
  .countdown { grid-template-columns:repeat(4,1fr); gap:6px; }
  .countdown div { padding:9px 3px; }
  .countdown strong { font-size:27px; }
  .countdown span { letter-spacing:.03em; font-size:9px; }
  .gift-grid { grid-template-columns:1fr; }
  .site-footer { gap:7px; padding:6px 10px; min-height:44px; }
  .site-footer img { width:28px; height:26px; }
  .site-footer p { font-size:16px; }
  .site-footer small { font-size:9px; }
  .site-footer small::before { margin-right:7px; }
  .money-gift { flex-direction:column; text-align:center; }
  .map-frame { min-height:330px; }
  .carousel { aspect-ratio:4/4.7; }
}
.hero-card::before,.hero-card::after,.content-card::before,.content-card::after,.site-footer::after{display:none!important}

.payment-methods{border:0;padding:0;margin:16px 0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.payment-methods legend{font-size:13px;font-weight:600;margin-bottom:8px}.payment-methods label{display:flex;align-items:center;gap:9px;border:1px solid rgba(74,42,22,.18);border-radius:12px;padding:11px;background:#fff;cursor:pointer}.payment-methods input{width:auto;margin:0}.payment-methods strong,.payment-methods small{display:block}.payment-methods small{font-size:10px;opacity:.65;margin-top:2px}@media(max-width:520px){.payment-methods{grid-template-columns:1fr}}

/* v1.20 - personalização fina de textos, ordem e blocos */
.editorial-head { --page-head-align:center; text-align:var(--page-head-align); }
.editorial-head[data-align="left"]{--page-head-align:left}.editorial-head[data-align="right"]{--page-head-align:right}
.editorial-head .eyebrow{font-size:var(--page-head-eyebrow-size,12px);color:var(--page-head-eyebrow-color,var(--secondary));}
.editorial-head .page-title{font-size:clamp(28px,7vw,var(--page-head-title-size,72px));color:var(--page-head-title-color,var(--primary));font-weight:var(--page-head-title-weight,500);text-shadow:0 3px 16px rgba(38,22,12,var(--page-head-title-shadow,0));position:relative;width:max-content;max-width:100%;}
.editorial-head[data-align="center"] .page-title{margin-left:auto;margin-right:auto}.editorial-head[data-align="right"] .page-title{margin-left:auto;margin-right:0}.editorial-head[data-align="left"] .page-title{margin-left:0;margin-right:auto}
.editorial-head .lead{font-size:var(--page-head-lead-size,20px);color:var(--page-head-lead-color,var(--text));}
.editorial-head[data-align="left"] .lead{margin-left:0;margin-right:0}.editorial-head[data-align="right"] .lead{margin-left:auto;margin-right:0}
.editorial-head.title-italic .page-title{font-style:italic}
.editorial-head.title-highlight-underline .page-title::after,.home-heading.names-highlight-underline .hero-names::after{content:"";display:block;height:3px;width:62%;margin:9px auto 0;border-radius:99px;background:var(--page-head-highlight,var(--home-highlight,var(--accent)));}
.editorial-head[data-align="left"].title-highlight-underline .page-title::after{margin-left:0}.editorial-head[data-align="right"].title-highlight-underline .page-title::after{margin-right:0}
.editorial-head.title-highlight-background .page-title,.home-heading.names-highlight-background .hero-names{padding:.06em .18em .12em;border-radius:.18em;background:color-mix(in srgb,var(--page-head-highlight,var(--home-highlight,var(--accent))) 18%,transparent);}
.home-heading{display:grid;justify-items:center}.home-eyebrow{font-size:var(--home-eyebrow-size,12px);color:var(--home-eyebrow-color,var(--secondary));text-shadow:0 3px 14px rgba(38,22,12,var(--home-eyebrow-shadow,0));}.home-heading .hero-names{color:var(--home-names-color,var(--primary));font-weight:var(--home-names-weight,400);text-shadow:0 4px 18px rgba(38,22,12,var(--home-names-shadow,0));position:relative;width:max-content;max-width:100%;}.home-heading.names-italic .hero-names{font-style:italic}
.event-line{font-size:clamp(12px,3vw,var(--event-text-size,23px));color:var(--event-text-color,var(--primary));font-weight:var(--event-text-weight,500);text-shadow:0 3px 14px rgba(38,22,12,var(--event-text-shadow,0));}.event-separator{color:var(--accent);font-weight:600}
.countdown-block .countdown-label{font-size:var(--countdown-label-size,15px);color:var(--countdown-label-color,var(--text));}.countdown-block.label-italic .countdown-label{font-style:italic}.countdown-block:not(.label-italic) .countdown-label{font-style:normal}
.countdown-block .countdown{gap:var(--countdown-gap,10px)}.countdown-block .countdown div{border:var(--countdown-border-width,1px) solid color-mix(in srgb,var(--countdown-card-border,var(--primary)) var(--countdown-border-opacity,16%),transparent);border-radius:var(--countdown-radius,14px);background:color-mix(in srgb,var(--countdown-card-bg,#fff) var(--countdown-card-opacity,36%),transparent);box-shadow:0 10px 28px rgba(51,29,14,var(--countdown-shadow,0));}.countdown-block .countdown strong{font-size:clamp(22px,5vw,var(--countdown-number-size,43px));color:var(--countdown-card-text,var(--primary));}.countdown-block .countdown span{font-size:var(--countdown-unit-size,11px);color:var(--countdown-card-text,var(--primary));}
@media(max-width:640px){.content-card{padding:clamp(18px,6vw,var(--page-card-padding,48px));}.countdown-block .countdown strong{font-size:min(var(--countdown-number-size,43px),8vw)}.countdown-block .countdown span{font-size:min(var(--countdown-unit-size,11px),2.7vw)}}

.content-card .story-copy p,.content-card .prose p,.rsvp-card p{font-size:var(--page-card-text-size,17px)}.content-card .prose h2,.content-card>h2,.rsvp-card h2{font-size:clamp(20px,5vw,var(--page-card-heading-size,48px))}

/* v1.33 - navegação contínua no celular, cards de presentes e textos multilinha */
.editorial-head .lead,
.story-copy p,
.prose p,
.location-address,
.gift-column-head p,
.gift-mini-body p,
.delivery-location p,
.gift-empty,
.rsvp-card p,
.payment-note,
#paymentDescription,
.countdown-label { white-space:pre-line; }
.home-eyebrow, .hero-names, .event-line span, .editorial-head .eyebrow, .editorial-head .page-title, .gift-column-head h2, .gift-mini-body h3, .delivery-location h3, .gift-type, .gift-price, .suggestion-only { white-space:pre-line; }

.rsvp-code-field {
  text-transform:uppercase;
  letter-spacing:.16em;
  text-align:center;
  font-weight:700;
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

/* Cards de presentes mais leves, no estilo de uma vitrine de produtos. */
.gift-list {
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:14px;
  align-items:stretch;
}
.gift-mini-card {
  display:flex;
  flex-direction:column;
  min-width:0;
  border-radius:18px;
  border:1px solid color-mix(in srgb,var(--gift-card-text,#fff) 24%,transparent);
  background:color-mix(in srgb,var(--gift-card-bg,#4a2a16) 91%,var(--gift-card-text,#fff));
  box-shadow:0 8px 24px rgba(24,16,10,.10);
  overflow:hidden;
}
.gift-mini-image {
  aspect-ratio:1/1;
  min-height:0!important;
  background:color-mix(in srgb,#ffffff 94%,var(--gift-card-bg,#4a2a16));
  border-bottom:1px solid color-mix(in srgb,var(--gift-card-text,#fff) 16%,transparent);
}
.gift-mini-image.fit-contain,
.gift-mini-image.fit-cover { aspect-ratio:1/1; min-height:0; }
.gift-mini-image.fit-contain img,
.gift-mini-image.fit-cover img { width:100%; height:100%; display:block; object-position:center; }
.gift-mini-image.fit-contain img { object-fit:contain; }
.gift-mini-image.fit-cover img { object-fit:cover; }
.gift-mini-image .gift-icon { min-height:100%; display:grid; place-items:center; }
.gift-mini-body {
  padding:14px;
  display:flex;
  flex-direction:column;
  gap:8px;
  flex:1;
}
.gift-mini-body h3 {
  font-size:clamp(18px,2vw,23px);
  line-height:1.08;
}
.gift-mini-body p { line-height:1.45; }
.gift-mini-body .gift-price {
  margin-top:auto;
  padding:7px 0 1px;
  font-size:20px;
  font-weight:700;
  color:var(--gift-card-text,#fff);
}
.gift-mini-body .button {
  min-height:44px;
  border-radius:12px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.02em;
  margin-top:6px;
}
.gift-mini-body .gift-type { font-weight:700; letter-spacing:.11em; }
.suggestion-only { margin-top:auto; }

@media (max-width:980px) {
  .page-root.mobile-continuous {
    width:100%;
    max-width:none;
    margin:0;
    padding:0;
    display:block;
  }
  .page-root.mobile-continuous > .page-shell {
    width:min(1180px,calc(100% - 28px));
    margin:0 auto;
    padding:clamp(26px,6vw,52px) 0 clamp(48px,10vw,82px);
    min-height:calc(100svh - var(--header-height));
    scroll-margin-top:calc(var(--header-height) + 2px);
    animation:none;
  }
  .page-root.mobile-continuous > .page-shell + .page-shell {
    border-top:1px solid color-mix(in srgb,var(--primary) 10%,transparent);
  }
  .page-root.mobile-continuous > .home-page { padding-top:22px; }
  .gift-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:430px) {
  .gift-column-content { padding:12px; }
  .gift-list { gap:10px; }
  .gift-mini-body { padding:11px; gap:6px; }
  .gift-mini-body h3 { font-size:18px; }
  .gift-mini-body p { font-size:min(var(--gift-card-text-size,13px),12px); }
  .gift-mini-body .gift-price { font-size:17px; }
  .gift-mini-body .button { min-height:40px; padding:8px 7px; font-size:12px; }
  .gift-mini-body .gift-type { font-size:8px; }
}

/* Superfície clara dos itens: mantém a cor escolhida pelo casal no contorno/coluna e deixa os produtos mais fáceis de visualizar. */
.gift-mini-card {
  background:color-mix(in srgb,var(--gift-card-text,#fff) 96%,#fff);
  color:var(--gift-card-bg,#4a2a16);
  border-color:color-mix(in srgb,var(--gift-card-bg,#4a2a16) 18%,transparent);
}
.gift-mini-body h3,
.gift-mini-body p,
.gift-mini-body .gift-type,
.gift-mini-body .gift-price,
.gift-mini-body small,
.gift-mini-body .muted,
.gift-mini-body .suggestion-only {
  color:var(--gift-card-bg,#4a2a16);
}
.gift-mini-body .gift-type,
.gift-mini-body small,
.gift-mini-body .muted,
.gift-mini-body .suggestion-only { opacity:.72; }
.gift-mini-body .button,
.gift-mini-body .button-secondary {
  background:var(--gift-card-bg,#4a2a16);
  color:var(--gift-card-text,#fff);
  border-color:var(--gift-card-bg,#4a2a16);
}
.gift-mini-body .gift-progress { background:color-mix(in srgb,var(--gift-card-bg,#4a2a16) 12%,transparent); }
.gift-mini-body .gift-progress span { background:var(--gift-card-bg,#4a2a16); }
.suggestion-only { border-top-color:color-mix(in srgb,var(--gift-card-bg,#4a2a16) 16%,transparent); }

/* v1.34 - presentes em masonry e placeholder elegante para itens sem foto */
.gift-list.gift-masonry {
  grid-auto-rows:8px;
  align-items:start;
}
.gift-list.gift-masonry > .gift-mini-card {
  align-self:start;
  height:auto;
  min-height:0;
}
.gift-placeholder-art {
  width:100%;
  height:100%;
  min-height:170px;
  position:relative;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:
    radial-gradient(circle at 22% 20%,color-mix(in srgb,var(--gift-card-bg,#4a2a16) 9%,transparent) 0 1px,transparent 2px),
    radial-gradient(circle at 78% 72%,color-mix(in srgb,var(--gift-card-bg,#4a2a16) 8%,transparent) 0 1px,transparent 2px),
    linear-gradient(145deg,#fffdf9,#f4ede5);
}
.gift-placeholder-box {
  position:absolute;
  width:38%;
  aspect-ratio:1.12/1;
  left:31%;
  top:42%;
  border:2px solid color-mix(in srgb,var(--gift-card-bg,#4a2a16) 72%,#fff);
  border-radius:8px 8px 12px 12px;
  background:color-mix(in srgb,var(--gift-card-bg,#4a2a16) 8%,#fff);
  box-shadow:0 13px 24px rgba(54,35,23,.09);
}
.gift-placeholder-lid {
  position:absolute;
  width:44%;
  height:12%;
  left:28%;
  top:36%;
  border:2px solid color-mix(in srgb,var(--gift-card-bg,#4a2a16) 72%,#fff);
  border-radius:9px;
  background:#fffaf4;
  z-index:3;
}
.gift-placeholder-ribbon-v,
.gift-placeholder-ribbon-h {
  position:absolute;
  display:block;
  background:color-mix(in srgb,var(--gift-card-bg,#4a2a16) 72%,#fff);
  opacity:.78;
}
.gift-placeholder-ribbon-v { width:14%; top:0; bottom:0; left:43%; }
.gift-placeholder-ribbon-h { height:13%; left:0; right:0; top:41%; }
.gift-placeholder-bow { position:absolute; left:50%; top:29%; width:70px; height:42px; transform:translateX(-50%); z-index:4; }
.gift-placeholder-loop { position:absolute; top:7px; width:31px; height:22px; border:2px solid color-mix(in srgb,var(--gift-card-bg,#4a2a16) 72%,#fff); background:#fffaf4; }
.gift-placeholder-loop.left { left:5px; border-radius:70% 28% 65% 30%; transform:rotate(18deg); }
.gift-placeholder-loop.right { right:5px; border-radius:28% 70% 30% 65%; transform:rotate(-18deg); }
.gift-placeholder-knot { position:absolute; width:16px; height:16px; border-radius:50%; left:27px; top:12px; background:color-mix(in srgb,var(--gift-card-bg,#4a2a16) 72%,#fff); }
.gift-placeholder-sparkle { position:absolute; color:color-mix(in srgb,var(--gift-card-bg,#4a2a16) 55%,#fff); font-size:24px; opacity:.55; }
.gift-placeholder-sparkle.sparkle-a { left:18%; top:20%; }
.gift-placeholder-sparkle.sparkle-b { right:17%; bottom:20%; font-size:30px; }
@media(max-width:430px){
  .gift-placeholder-art{min-height:130px}
  .gift-placeholder-bow{transform:translateX(-50%) scale(.82)}
}

/* v1.37 - data, separador e local sempre no mesmo alinhamento */
.home-event-block { width:100%; max-width:100%; overflow:hidden; }
.home-event-block .event-line {
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:nowrap;
  gap:clamp(5px,1vw,12px);
  width:100%;
  max-width:100%;
  white-space:nowrap;
  font-size:clamp(10px,2.15vw,var(--event-text-size,23px));
}
.home-event-block .event-line > span {
  white-space:nowrap;
  flex:0 0 auto;
}
.home-event-block .event-separator {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
}
@media (max-width:640px) {
  .home-event-block .event-line {
    font-size:clamp(9px,2.65vw,14px);
    gap:clamp(3px,1.1vw,7px);
    letter-spacing:-.01em;
  }
}
