:root{--green:#244332;--green2:#516653;--sage:#7b8874;--ivory:#f7f2e9;--paper:#eee7db;--ink:#24231f;--taupe:#b9ad99;--gold:#a58e69}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:"DM Sans",sans-serif;line-height:1.65}h1,h2,h3{font-family:"Cormorant Garamond",serif;font-weight:500;line-height:1.05;margin:0 0 18px}h1{font-size:clamp(4rem,11vw,8rem);letter-spacing:-.04em}h1 span{font-family:Italianno,cursive;font-size:.75em}h2{font-size:clamp(3rem,6vw,5rem)}h3{font-size:2rem}.script{font:4rem/1 "Italianno",cursive;margin:0 0 15px}.eyebrow{text-transform:uppercase;letter-spacing:.24em;font-size:.72rem;margin:0 0 12px;color:var(--green);font-weight:600}.small{font-size:.85rem;opacity:.8}.hero{min-height:92vh;background:linear-gradient(180deg,rgba(247,242,233,.12),rgba(36,67,50,.15)),var(--ivory);position:relative;display:flex;flex-direction:column}.nav{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;border-bottom:1px solid rgba(36,67,50,.15)}.brand{font-family:"Cormorant Garamond";font-size:1.5rem;color:var(--green);text-decoration:none}.nav-links{display:flex;gap:24px}.nav-links a{color:var(--ink);text-decoration:none;font-size:.78rem;text-transform:uppercase;letter-spacing:.12em}.menu-toggle{display:none;background:none;border:0;font-size:1.5rem}.hero-inner{text-align:center;margin:auto;padding:70px 20px}.hero-copy{max-width:520px;margin:0 auto 28px}.button{display:inline-block;background:var(--green);color:#fff;border:1px solid var(--green);padding:13px 30px;text-decoration:none;text-transform:uppercase;letter-spacing:.16em;font-size:.75rem;cursor:pointer}.button.secondary{background:transparent;color:var(--green)}.leaf-motif{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);color:var(--gold);font-size:3rem}.section{padding:90px 7vw}.section-green{background:var(--green);color:#f8f4eb}.section-green .eyebrow{color:#c9d3c4}.section-heading{text-align:center;margin-bottom:48px}.intro{text-align:center;max-width:760px;margin:auto}.intro p:last-child{max-width:620px;margin:auto}.timeline{max-width:850px;margin:auto;display:grid;grid-template-columns:repeat(5,1fr);gap:18px}.timeline article{border-top:1px solid rgba(255,255,255,.45);padding-top:18px}.timeline span{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:#cbd5c8}.timeline h3{margin-top:12px}.card{max-width:680px;margin:auto;background:#fffaf2;border:1px solid rgba(36,67,50,.15);padding:42px;text-align:center;box-shadow:0 15px 40px rgba(36,67,50,.05)}.quote{font-family:"Cormorant Garamond";font-size:1.35rem;font-style:italic}.section-paper{background:var(--paper)}.dress-grid{max-width:1000px;margin:auto;display:grid;grid-template-columns:1.5fr 1fr;gap:70px}.note{border-left:3px solid var(--green);padding:18px 22px;margin-top:28px;background:rgba(255,255,255,.35)}.palette{padding:30px}.swatches{display:flex;gap:9px;margin:20px 0}.swatches i{width:42px;height:42px;border-radius:50%;background:#244332}.swatches i:nth-child(2){background:#516653}.swatches i:nth-child(3){background:#b9ad99}.swatches i:nth-child(4){background:#765d4c}.swatches i:nth-child(5){background:#9b8063}.swatches i:nth-child(6){background:#efe7d9}.menu-grid{max-width:1050px;margin:auto;display:grid;grid-template-columns:repeat(2,1fr);gap:26px}.menu-grid>div{padding:30px;border-top:1px solid var(--taupe)}ul{padding-left:20px}.menu-grid li{margin:10px 0}.narrow{max-width:680px;margin:auto;text-align:center}.rsvp-section{background:#fffaf2}.rsvp-section form{max-width:900px;margin:auto}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}label{display:block;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em}input,select,textarea{display:block;width:100%;margin-top:7px;border:1px solid #c9c0b1;background:#fffdf9;padding:13px;font:inherit;color:var(--ink)}form>label{margin:20px 0}.form-status{margin-top:18px;font-weight:600}.photo-section{text-align:center}.photo-section>p{max-width:650px;margin:0 auto 24px}footer{background:#1a3024;color:#eee8dd;text-align:center;padding:50px}.monogram{font:3rem "Cormorant Garamond";margin-bottom:8px}@media(max-width:800px){.nav-links{display:none}.menu-toggle{display:block;color:var(--green)}.timeline{grid-template-columns:1fr;gap:28px}.dress-grid,.menu-grid,.form-grid{grid-template-columns:1fr}.section{padding:70px 6vw}.card{padding:28px}.nav-links.open{display:flex;position:absolute;top:72px;left:0;right:0;background:var(--ivory);z-index:5;flex-direction:column;padding:25px 6vw;border-bottom:1px solid #ddd}.hero-inner{padding:60px 20px}.script{font-size:3rem}}
.honeypot{position:absolute!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;height:1px!important;width:1px!important;margin:-1px!important;padding:0!important;border:0!important}
.gallery-grid{max-width:1100px;margin:38px auto 0;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.gallery-grid img{width:100%;aspect-ratio:1/1;object-fit:cover;background:#e6dfd4}
.gallery-placeholder{grid-column:1/-1;padding:45px 20px;border:1px dashed rgba(36,67,50,.3);color:var(--green);font-family:"Cormorant Garamond";font-size:1.5rem}
@media(max-width:800px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}
.dress-lead{font-family:"Cormorant Garamond",serif;font-size:1.7rem;line-height:1.25;margin-top:0}.swatches{flex-wrap:wrap}.swatches i{flex:0 0 42px;border:1px solid rgba(36,67,50,.12)}.swatch-forest{background:#244332!important}.swatch-sage{background:#7b8874!important}.swatch-teal{background:#3f7773!important}.swatch-navy{background:#1e3044!important}.swatch-taupe{background:#b9ad99!important}.swatch-brown{background:#765d4c!important}.swatch-burnt{background:#b85f2a!important}.swatch-ivory{background:#efe7d9!important}.outfit-inspiration{max-width:1100px;margin:70px auto 0}.inspiration-heading{margin-bottom:24px}.outfit-inspiration img{display:block;width:100%;height:auto;border:1px solid rgba(36,67,50,.12);box-shadow:0 18px 50px rgba(36,67,50,.08)}
@media(max-width:800px){.dress-lead{font-size:1.45rem}.outfit-inspiration{margin-top:50px}.outfit-inspiration img{border-radius:2px}}

/* Wedding invitation-style navigation */
.menu-toggle{
  display:flex;
  width:42px;
  height:42px;
  padding:8px;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  background:transparent;
  border:0;
  color:var(--green);
  cursor:pointer;
  z-index:20;
}
.menu-toggle span{
  display:block;
  width:25px;
  height:2px;
  margin-left:auto;
  background:currentColor;
  transition:transform .25s ease, opacity .2s ease;
}
.menu-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-toggle.is-open span:nth-child(2){opacity:0}
.menu-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.nav-links{
  position:fixed;
  inset:0;
  z-index:15;
  display:flex;
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:18px;
  padding:100px 8vw 60px;
  background:rgba(247,242,233,.98);
  transition:opacity .25s ease, visibility .25s ease;
}
.nav-links.open{
  visibility:visible;
  opacity:1;
  pointer-events:auto;
}
.nav-links a{
  font-family:"Cormorant Garamond",serif;
  font-size:clamp(2rem,5vw,3.2rem);
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:var(--green);
  padding:4px 12px;
  text-decoration:none;
  transition:opacity .2s ease, transform .2s ease;
}
.nav-links a:hover{opacity:.65;transform:translateY(-1px)}
@media(max-width:800px){
  .nav{height:72px}
  .nav-links{top:0}
  .nav-links.open{display:flex}
}

body.menu-open{overflow:hidden}

/* RSVP guest-by-guest menu selection */
.rsvp-intro{text-align:center;max-width:650px;margin:0 auto 32px}.attending-details{margin-top:28px}.adult-details{display:grid;gap:24px;margin-top:28px}.adult-card{padding:30px;background:rgba(36,67,50,.045);border:1px solid rgba(36,67,50,.14)}.adult-card-heading{margin-bottom:20px}.adult-card-heading h3{margin-bottom:8px}.rsvp-section .button{margin-top:10px}.honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}@media(max-width:800px){.adult-card{padding:22px}}
