:root{
  --olive:#6b685c;
  --sage:#8c877b;
  --terracotta:#9b7f69;
  --taupe:#b5a898;
  --stone:#ddd8cf;
  --paper:#fbfaf7;
  --paper-dark:#f3f0ea;
  --ink:#4a4842;
  --white:#fff;
  --line:rgba(92,87,77,.18);
  --serif:"Playfair Display",serif;
  --sans:"Manrope",sans-serif;
  --script:"Great Vibes",cursive;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  font-family:var(--sans);
  font-weight:300;
  line-height:1.75;
  background-color:var(--paper);
  background-image:radial-gradient(rgba(77,72,63,.035) .7px,transparent .7px);
  background-size:5px 5px;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
.section{padding:112px max(6vw,24px)}

.topbar{
  position:fixed;z-index:70;top:0;left:0;right:0;height:78px;
  padding:0 max(5vw,22px);display:flex;align-items:center;justify-content:space-between;
  background:rgba(251,250,247,.88);backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(92,87,77,.09)
}
.brand{display:flex;align-items:center;gap:14px}
.brand-logo{width:58px;height:auto;display:block;object-fit:contain}
.brand small{letter-spacing:.17em;text-transform:uppercase;font-size:9px;color:var(--sage)}
.nav{display:flex;align-items:center;gap:28px;font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.nav a{position:relative}
.nav a:not(.nav-cta):after{content:"";position:absolute;left:0;bottom:-7px;width:0;height:1px;background:var(--terracotta);transition:.25s}
.nav a:hover:after{width:100%}
.nav-cta{padding:11px 17px;border:1px solid rgba(107,104,92,.62)}
.menu-toggle{display:none;border:0;background:none;font-size:24px;color:var(--olive)}

/* Hero inspirado no convite */
.hero{height:100svh;min-height:780px;position:relative;display:grid;align-items:center;overflow:hidden;background:#ece8e1;padding:110px max(7vw,32px) 72px}
.hero-art{position:absolute;inset:0;background:url('assets/casal-destaque.png') right center/cover no-repeat;filter:grayscale(100%) contrast(.82) brightness(1.02);transform:scale(1.02)}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(247,245,240,.97) 0%,rgba(247,245,240,.92) 33%,rgba(247,245,240,.68) 58%,rgba(247,245,240,.20) 100%)}
.hero-content{position:relative;z-index:2;max-width:560px;margin-left:clamp(4vw,8vw,12vw);text-align:center}
.eyebrow{margin:0 0 18px;color:var(--terracotta);letter-spacing:.24em;text-transform:uppercase;font-size:11px;font-weight:600}
.hero h1{margin:0;color:var(--olive);font-family:var(--serif);font-size:clamp(66px,8vw,126px);font-weight:600;line-height:.85;letter-spacing:-.03em}
.hero h1 span{display:block}
.hero h1 b{font-family:var(--script);font-size:.66em;font-weight:400;color:var(--terracotta);display:block;margin:12px 0 8px}
.hero-date{margin:24px 0 0;color:var(--olive);letter-spacing:.42em;font-weight:500;text-transform:uppercase;font-size:22px}
.hero-date span{letter-spacing:0;color:var(--terracotta)}
.hero-place{margin:10px 0 32px;color:var(--sage);text-transform:uppercase;letter-spacing:.24em;font-size:12px}
.button{display:inline-flex;justify-content:center;align-items:center;padding:14px 23px;border:0;cursor:pointer;text-transform:uppercase;letter-spacing:.13em;font-size:10px;font-weight:600;transition:.25s}
.button.small{padding:11px 17px}
.button.primary{background:var(--olive);color:white}
.button.primary:hover{background:#565349;transform:translateY(-1px)}
.button.secondary{border:1px solid rgba(107,104,92,.72);color:var(--olive);background:transparent}
.button.secondary:hover{background:var(--olive);color:white}

.section-heading{text-align:center;max-width:900px;margin:0 auto 54px}
.section-lead{max-width:760px;margin:0 auto;font-size:17px;color:#666159}
.welcome{text-align:center;max-width:1050px;margin:auto;position:relative}
.welcome:before{content:"";position:absolute;right:-210px;top:30px;width:330px;height:330px;background:url('assets/ancora-convite.jpeg') center/contain no-repeat;opacity:.035;filter:grayscale(1);pointer-events:none}
.ornament{color:var(--terracotta);font-size:18px}
.welcome h2,.story h2,.party h2,.venue h2,.details h2,.gifts h2,.rsvp h2{font:400 clamp(38px,5vw,70px)/1.08 var(--serif);margin:0 0 26px;color:var(--olive)}
.lead{max-width:720px;margin:0 auto;font-size:17px}
.countdown{display:grid;grid-template-columns:repeat(4,1fr);margin:56px auto 0;max-width:820px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.countdown div{padding:28px 12px;position:relative}
.countdown div:not(:last-child):after{content:"";position:absolute;right:0;top:27%;height:46%;width:1px;background:var(--line)}
.countdown strong{font:400 clamp(34px,5vw,58px)/1 var(--serif);display:block;color:var(--olive)}
.countdown span{text-transform:uppercase;font-size:9px;letter-spacing:.22em;color:var(--sage)}

.story{display:grid;grid-template-columns:minmax(300px,.88fr) 1fr;gap:8vw;align-items:center;background:rgba(243,240,234,.72)}
.story-visual{position:relative}
.story-visual:before{content:"";position:absolute;inset:-34px -24px auto auto;width:230px;height:230px;background:url('assets/ancora-convite.jpeg') center/contain no-repeat;opacity:.04;filter:grayscale(1);pointer-events:none}
.frame{padding:18px;background:#fff;border:1px solid rgba(92,87,77,.12);box-shadow:0 24px 60px rgba(70,68,55,.09)}
.frame img{width:100%;height:auto;object-fit:contain;object-position:center}
.story-copy p:not(.eyebrow){max-width:620px}
.signature{font:400 50px var(--script);color:#857b6e;margin-top:28px}
.quote-band{padding:72px 24px;background:#f0ede7;color:var(--olive);text-align:center;border-top:1px solid rgba(92,87,77,.08);border-bottom:1px solid rgba(92,87,77,.08)}
.quote-band p{font:italic 400 clamp(27px,3.8vw,46px)/1.4 var(--serif);max-width:950px;margin:auto}

.party{background:#fbfaf6}
.party-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1240px;margin:0 auto}
.party-card{background:white;border:1px solid var(--line);overflow:hidden;box-shadow:0 16px 38px rgba(70,68,55,.06)}
.party-card img{aspect-ratio:1/1;object-fit:cover;width:100%}
.party-card div{padding:22px}
.party-card span{color:var(--terracotta);text-transform:uppercase;letter-spacing:.18em;font-size:9px;font-weight:700}
.party-card h3{font:400 30px/1.1 var(--serif);margin:10px 0 8px;color:var(--olive)}
.party-card p{margin:0;color:#5f5d56}

/* Cerimônia e recepção: mesmo desenho, mesmo alinhamento */
.venue{position:relative;background:rgba(251,250,247,.92);overflow:hidden}
.venue-reception{background:rgba(244,241,235,.86);border-top:1px solid rgba(92,87,77,.07)}
.venue:after{content:"";position:absolute;left:-145px;bottom:-120px;width:360px;height:360px;background:url('assets/ancora-convite.jpeg') center/contain no-repeat;opacity:.025;filter:grayscale(1);pointer-events:none}
.venue-layout{max-width:1380px;margin:0 auto;display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:70px;align-items:center}
.venue-copy{padding:12px 0}
.venue-copy h2{font-size:clamp(48px,5.3vw,78px);line-height:1.02;margin-bottom:24px;max-width:640px;letter-spacing:-.025em}
.venue-copy>p:not(.eyebrow){max-width:620px;font-size:16px;color:#5d5952}
.info-list{list-style:none;padding:0;margin:30px 0 0;max-width:640px}
.info-list li{padding:12px 0;border-bottom:1px solid rgba(92,87,77,.13);font-size:15px}
.info-list strong{font-weight:500;color:#696459}
.cta-row{display:flex;flex-wrap:wrap;gap:19px;align-items:center;margin-top:28px}
.text-link{color:var(--terracotta);font-size:10px;letter-spacing:.11em;text-transform:uppercase;font-weight:700}
.venue-card,.soft-frame{background:white;padding:17px;border:1px solid rgba(92,87,77,.13);box-shadow:0 25px 58px rgba(70,68,55,.09)}
.venue-card img,.soft-frame img{width:100%;height:100%;object-fit:cover;min-height:390px;aspect-ratio:1.48/1}

.details{background:#eeebe5}
.details-grid{max-width:1140px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.details-grid article{background:rgba(251,250,247,.72);padding:38px;border:1px solid rgba(92,87,77,.09)}
.details-grid span{color:var(--terracotta);font-size:10px;letter-spacing:.2em}
.details-grid h3{font:400 30px var(--serif);color:var(--olive);margin:18px 0 10px}
.palette-strip{height:4px;display:grid;grid-template-columns:repeat(5,1fr);opacity:.35}
.palette-strip span{background:var(--swatch)}

.gifts{background:rgba(251,250,247,.95)}
.gifts-heading{text-align:center;max-width:930px;margin:0 auto 28px}
.gift-toolbar{max-width:1240px;margin:0 auto 28px;display:flex;justify-content:space-between;align-items:center;gap:20px}
.gift-summary{display:flex;align-items:flex-end;gap:12px;color:var(--olive)}
.gift-summary strong{font:400 42px/1 var(--serif)}
.gift-summary span{text-transform:uppercase;letter-spacing:.14em;font-size:10px;color:var(--sage);padding-bottom:6px}
.gift-grid{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.gift-card{background:white;border:1px solid rgba(92,87,77,.11);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 16px 38px rgba(70,68,55,.055)}
.gift-card img{width:100%;aspect-ratio:4/3;object-fit:cover}
.gift-card-body{padding:22px;display:grid;gap:10px}
.gift-card-body span{color:var(--terracotta);text-transform:uppercase;letter-spacing:.18em;font-size:9px;font-weight:700}
.gift-card h3{font:400 27px/1.15 var(--serif);margin:0;color:var(--olive)}
.gift-card strong{font-size:21px;color:var(--olive);font-weight:500}
.gift-card button{justify-self:start;background:none;border:0;padding:0;color:var(--terracotta);cursor:pointer;text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:700}
.gift-card.selected{outline:1px solid var(--terracotta);outline-offset:-1px}
.gift-card.selected button{color:var(--olive)}

.rsvp{position:relative;background:#f1eee8;overflow:hidden}
.rsvp:before{content:"";position:absolute;right:-95px;bottom:-125px;width:520px;height:520px;background:url('assets/ancora-convite.jpeg') center/contain no-repeat;opacity:.055;filter:grayscale(1);pointer-events:none}
.rsvp-card{position:relative;z-index:1;max-width:790px;margin:auto;background:rgba(251,250,247,.90);padding:clamp(34px,6vw,72px);border:1px solid rgba(92,87,77,.12);box-shadow:0 26px 60px rgba(70,68,55,.07)}
form{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:34px}
label{font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--sage);font-weight:600}
label:nth-child(5),form .button,.form-status{grid-column:1/3}
input,select,textarea{width:100%;margin-top:8px;border:0;border-bottom:1px solid rgba(91,92,73,.30);background:transparent;padding:12px 2px;outline:none;color:var(--ink);text-transform:none;letter-spacing:0}
textarea{border:1px solid rgba(91,92,73,.22);padding:12px;resize:vertical}
.form-status{margin:0;color:var(--olive);font-weight:500}

footer{text-align:center;padding:66px 24px;background:#f7f4ee;color:#6d685e;border-top:1px solid rgba(92,87,77,.09)}
.footer-logo{width:88px;height:auto;display:block;margin:0 auto 18px;object-fit:contain}
footer p{letter-spacing:.2em;text-transform:uppercase;font-size:10px}
footer small{color:#999286;font-family:var(--serif);font-size:13px}

.modal{position:fixed;z-index:100;inset:0;background:rgba(48,45,40,.62);display:none;place-items:center;padding:24px;backdrop-filter:blur(3px)}
.modal.open{display:grid}
.modal-card{position:relative;max-width:520px;background:var(--paper);padding:55px;text-align:center;border:1px solid rgba(92,87,77,.14);box-shadow:0 35px 90px rgba(37,34,30,.22)}
.modal-close{position:absolute;right:18px;top:12px;border:0;background:none;font-size:28px;cursor:pointer;color:var(--olive)}
.modal-card h2{font:400 42px var(--serif);color:var(--olive);margin-top:0}
.modal-note,.venue-meta{font-size:13px;color:var(--sage)}
.venue-modal-card{max-width:1060px;text-align:left;padding:34px}
.venue-modal-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:30px;align-items:center}
.venue-modal-grid img{width:100%;height:100%;object-fit:cover;min-height:360px}

.reveal{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s ease}
.reveal.visible{opacity:1;transform:none}

@media(max-width:1080px){
  .party-grid,.gift-grid{grid-template-columns:repeat(2,1fr)}
  .venue-layout{gap:48px}
}
@media(max-width:900px){
  .nav{display:none;position:absolute;top:78px;left:0;right:0;background:rgba(251,250,247,.98);padding:28px;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}
  .nav.open{display:flex}
  .menu-toggle{display:block}
  .hero-content{margin:0 auto;max-width:560px}
  .hero-overlay{background:linear-gradient(180deg,rgba(247,245,240,.95) 0%,rgba(247,245,240,.80) 55%,rgba(247,245,240,.48) 100%)}
  .hero-art{background-position:70% center}
  .story,.venue-layout,.venue-modal-grid{grid-template-columns:1fr}
  .venue-card{max-width:760px;width:100%;margin:auto}
  .details-grid,.party-grid,.gift-grid{grid-template-columns:1fr}
  .story-visual{max-width:760px;margin:auto}
  .gift-toolbar{flex-direction:column;align-items:flex-start}
}

@media(max-width:600px){
  .section{padding:82px 22px}
  .brand small{display:none}
  .brand-logo{width:52px}
  .hero{min-height:720px;padding:120px 22px 70px}
  .hero-content{margin:0 auto;max-width:100%}
  .hero-overlay{background:linear-gradient(180deg,rgba(247,245,240,.96) 0%,rgba(247,245,240,.82) 48%,rgba(247,245,240,.52) 100%)}
  .hero-art{background-position:68% center}
  .hero h1{font-size:52px}
  .hero-date{font-size:24px;letter-spacing:.28em}
  .countdown{grid-template-columns:1fr 1fr}
  .countdown div:nth-child(2):after{display:none}
  .countdown div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .venue-layout{gap:36px}
  .venue-card{padding:11px}
  .venue-card img{min-height:250px;aspect-ratio:1.38/1}
  .rsvp-card{padding:34px 22px}
  form{grid-template-columns:1fr}
  label,label:nth-child(5),form .button,.form-status{grid-column:1}
  .modal-card{padding:45px 24px}
  .venue-modal-card{padding:22px}
}

.payment-hint{font-size:11px;text-transform:uppercase;letter-spacing:.10em;color:var(--sage)}
.gift-loading{grid-column:1/-1;text-align:center;color:var(--sage);padding:40px}
.gift-card.sold{opacity:.62}.gift-card.sold button{pointer-events:none;color:#999}
.gift-card-body p{margin:0;color:#777166;font-size:13px;min-height:46px}
.gift-card button{margin-top:3px}
.gift-checkout-card{max-width:640px;text-align:left}
.gift-checkout-card h2{font:400 40px var(--serif);color:var(--olive);margin:0 0 20px}
.checkout-product{display:flex;gap:16px;align-items:center;padding:14px;background:#f3f0ea;margin-bottom:20px}
.checkout-product img{width:95px;height:78px;object-fit:cover;background:#e9e5de}
.checkout-product strong{display:block;font:400 22px var(--serif);color:var(--olive)}
.checkout-product span{display:block;color:var(--terracotta);font-weight:600;margin-top:5px}
#gift-checkout-form{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:0}
#gift-checkout-form label:nth-child(3),#gift-checkout-form button,#gift-checkout-form .form-status{grid-column:1/3}
#gift-checkout-form textarea{margin-top:8px}
@media(max-width:600px){#gift-checkout-form{grid-template-columns:1fr}#gift-checkout-form label,#gift-checkout-form label:nth-child(3),#gift-checkout-form button,#gift-checkout-form .form-status{grid-column:1}.payment-hint{display:block}}
