
*{box-sizing:border-box}
:root{--paper:#f7f2eb;--ink:#2d2925;--muted:#766f68;--accent:#48614c;--line:#ddd4ca}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Montserrat,Arial,sans-serif;font-weight:300}
img{display:block;width:100%}
.hero{height:100svh;min-height:690px;position:relative;overflow:hidden;color:#fff}
.hero-img,.rsvp-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-img{object-position:center 40%}
.shade{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(20,20,20,.12),rgba(10,10,10,.58))}
.shade.darker{background:rgba(20,20,20,.45)}
.hero-inner{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;align-items:center;text-align:center;padding:42px 22px 28px}
.monogram{font-family:"Cormorant Garamond",serif;font-size:1.25rem;letter-spacing:.35em}
.spacer{flex:1}
.kicker{font-size:.68rem;letter-spacing:.24em;font-weight:500;margin:0 0 16px}
.kicker.light{color:white}
h1,h2,h3{font-family:"Cormorant Garamond",serif;font-weight:500}
h1{font-family:Sacramento,cursive;font-size:clamp(4rem,16vw,7rem);line-height:.8;margin:0 0 14px;font-weight:400}
h1 span{display:inline-block;margin:0 .06em}
.hero-date{font-family:"Cormorant Garamond",serif;letter-spacing:.18em;font-weight:600;font-size:1rem}
.hero-copy{max-width:310px;font-family:"Cormorant Garamond",serif;font-size:1.25rem;line-height:1.3}
.line{width:44px;height:1px;background:#fff;margin:12px 0}
.btn{display:inline-block;text-decoration:none;border-radius:999px;padding:14px 24px;font-size:.72rem;letter-spacing:.08em;font-weight:500}
.ghost{border:1px solid #fff;color:#fff;margin-top:8px}
.solid{background:var(--accent);color:#fff}
.disabled{pointer-events:none;opacity:.9}
.arrow{font-size:2.2rem;margin-top:10px}
.section{width:min(760px,calc(100% - 36px));margin:auto;padding:78px 0;text-align:center}
h2{font-size:clamp(2.5rem,10vw,4.3rem);line-height:.95;margin:0 0 28px}
.script{font-family:Sacramento,cursive;font-size:2.3rem;line-height:1.05}
.big{font-size:4rem;margin:0 0 10px;color:#fff}
.heart{font-size:2rem}
.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:38px auto 28px;max-width:650px}
.countdown div{background:#efe8df;padding:18px 5px;border-radius:8px}
.countdown strong{display:block;font-family:"Cormorant Garamond",serif;font-size:2.5rem}
.countdown span{font-size:.5rem;letter-spacing:.09em;font-weight:500}
.feature-photo{height:58vh;min-height:420px}
.feature-photo img{height:100%;object-fit:cover}
.event{padding:18px 0}
.event-icon{font-size:2rem}
.event h3,.info h3{font-size:2.1rem;margin:6px 0}
.muted,.info p{color:var(--muted)}
.divider{height:1px;background:var(--line);margin:30px auto;max-width:500px}
.timeline{max-width:520px;margin:36px auto 0;border-left:1px solid #b9ac9d;text-align:left}
.timeline>div{display:grid;grid-template-columns:90px 1fr;gap:10px;padding:13px 0 13px 25px;position:relative}
.timeline>div:before{content:"";position:absolute;left:-5px;top:23px;width:9px;height:9px;background:#b9ac9d;border-radius:50%}
.timeline span{font-family:"Cormorant Garamond",serif;font-size:1.35rem;font-weight:600}
.timeline p{margin:0;font-family:"Cormorant Garamond",serif;font-size:1.25rem}
.gallery{padding:6px}
.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.gallery-grid img{aspect-ratio:1/1;object-fit:cover}
.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:36px}
.info-grid>div{border-top:1px solid var(--line);padding:24px 10px}
.info-grid span{font-size:1.5rem}
.info-grid h3{font-size:1.6rem}
.info-grid p{font-size:.84rem}
.rsvp{height:72vh;min-height:540px;position:relative;color:#fff}
.rsvp-inner{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px}
.whatsapp{background:#2f8f4e;color:#fff;margin-top:18px}
footer{text-align:center;padding:48px 20px;background:#f1ebe3}
.monogram.dark{color:var(--ink)}
.footer-script{font-size:2rem;margin:14px 0}
footer p{font-size:.72rem;letter-spacing:.04em}
@media(max-width:600px){
  .hero-img{object-position:center}
  .section{padding:62px 0}
  .countdown strong{font-size:2rem}
  .info-grid{grid-template-columns:1fr}
  .feature-photo{height:50vh}
}


button.btn{border:0;font-family:Montserrat,Arial,sans-serif;cursor:pointer}
.modal{position:fixed;inset:0;z-index:9999;display:none}
.modal.open{display:block}
.modal-backdrop{position:absolute;inset:0;background:rgba(24,22,20,.58);backdrop-filter:blur(3px)}
.modal-card{
  position:relative;z-index:2;width:min(620px,calc(100% - 28px));
  max-height:90vh;overflow:auto;margin:5vh auto;background:var(--paper);
  border-radius:18px;padding:38px 32px;box-shadow:0 24px 70px rgba(0,0,0,.25)
}
.modal-card h2{font-size:3.3rem;margin-bottom:12px}
.modal-intro{color:var(--muted);margin:0 auto 28px;max-width:500px;line-height:1.5}
.modal-close{
  position:absolute;right:16px;top:10px;background:transparent;border:0;
  font-size:2.2rem;line-height:1;color:var(--ink);cursor:pointer
}
#rsvpForm{display:grid;gap:18px;text-align:left}
#rsvpForm label,#rsvpForm legend{font-size:.82rem;font-weight:500;letter-spacing:.02em}
#rsvpForm input[type="text"],#rsvpForm input[type="number"],#rsvpForm textarea{
  width:100%;margin-top:8px;padding:13px 14px;border:1px solid #d8cec2;
  border-radius:10px;background:#fffdf9;font:inherit;color:var(--ink)
}
#rsvpForm textarea{resize:vertical}
#rsvpForm fieldset{border:1px solid #d8cec2;border-radius:10px;padding:14px}
#rsvpForm legend{padding:0 7px}
.radio-row{display:inline-flex;align-items:center;gap:7px;margin-right:22px;font-weight:400!important}
.submit-whatsapp{width:100%;margin-top:6px;padding:16px 20px}
.form-note{font-size:.72rem;color:var(--muted);text-align:center;margin:0}
body.modal-open{overflow:hidden}
@media(max-width:600px){
  .modal-card{margin:3vh auto;max-height:94vh;padding:32px 20px 24px;border-radius:15px}
  .modal-card h2{font-size:2.7rem}
}
