/* Core theme */
:root{ 
  --ink:#1B1F23; 
  --muted:#5B646E; 
  --line:#E6DED9; 
  --bg:#FAF6F5; 
  --card:#FFFFFF; 
  --mauve:#C7A0A6; 
  --sage:#8A9A5B; 
  --peach:#D98C6A; 
  --rust:#7A3E2E; 
  --blush:#F5D6D8;
}
*{box-sizing:border-box} html,body{margin:0;padding:0}
body{font-family:Inter,system-ui,Arial,Helvetica,sans-serif;color:var(--ink);background:var(--bg)}
h1,h2{font-family:Playfair Display,Georgia,serif} a{color:inherit;text-decoration:none}
.container{max-width:1100px;margin:0 auto;padding:0 20px}
.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.85);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--line)}
.nav-inner{height:68px;display:flex;align-items:center;justify-content:space-between}
.brand-top{font-weight:700}.brand-sub{font-size:12px;color:var(--muted)}
.links a{margin-left:12px;padding:8px 10px;border-radius:10px}
.links a:hover{background:#fff;border:1px solid var(--line)}
.hero{position:relative;height:72vh;display:flex;align-items:flex-end;overflow:hidden}
.slideshow{position:absolute;inset:0}
.slide{position:absolute;inset:0;opacity:0;transition:opacity 1s ease}
.slide img{width:100%;height:100%;object-fit:cover}
.slide.active{opacity:1}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(to top, rgba(0,0,0,.55), rgba(0,0,0,.2) 60%, transparent)}
.hero-content{position:relative;color:#fff;padding:40px 20px 56px}
.hero h1{font-size:56px;margin:0 0 6px}
.hero .date,.hero .location{margin:4px 0;color:#e2e8f0}
.cta{margin-top:14px}.btn{display:inline-block;border:1px solid #ffffff80;color:#fff;padding:10px 16px;border-radius:999px;margin-right:8px;background:transparent}
.btn:hover{background:#ffffff20}.btn.primary{background:#fff;color:#111;border-color:#fff}.btn.primary:hover{background:#f1f5f9}
.section{padding:56px 0}.section.alt{background:#fff}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:28px;box-shadow:0 8px 30px rgba(2,6,23,.05)}
.lead{font-weight:600}.muted{color:var(--muted);font-size:14px}
.grid-3{display:grid;gap:16px}.grid-2{display:grid;gap:16px}
@media(min-width:768px){ .grid-3{grid-template-columns:repeat(3,1fr)} .grid-2{grid-template-columns:repeat(2,1fr)} }
.label{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.value{font-weight:600}.list{margin:6px 0 0 18px}.list li{margin:6px 0}
.chip-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.chip{border:1px solid var(--line);padding:8px 12px;border-radius:999px;background:#f8fafc}.chip:hover{background:#eef2f7}
.faq-item{margin-bottom:24px}.faq-item h3{margin:0 0 6px;font-size:18px}.faq-item p{margin:0;color:var(--muted)}
.footer{padding:40px 0;text-align:center;color:#64748b}.footer .tiny{font-size:12px;margin-top:4px}
.rsvp-gate{position:fixed;inset:0;background:rgba(2,6,23,.85);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}
.rsvp-card{width:min(680px,100%);background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 60px rgba(2,6,23,.25);padding:28px}
.rsvp-title{margin:0 0 6px;font-family:Playfair Display, Georgia, serif;font-size:28px}
.rsvp-sub{margin:0 0 18px;color:var(--muted)}
.hidden{display:none} .row{display:grid;gap:12px;margin-bottom:12px} @media(min-width:720px){ .row{grid-template-columns:1fr 1fr} }
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.field input,.field select{border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:16px;background:#fff;outline:none}
.field input:focus,.field select:focus{box-shadow:0 0 0 3px #e2e8f0;border-color:#94a3b8}
.btn.wide{width:100%;margin-top:10px} .rsvp-foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px;gap:10px}
.rsvp-foot .skip{border:1px solid #e2e8f0;background:#fff;border-radius:8px;padding:8px 12px;cursor:pointer}
.success-msg{padding:10px 12px;border:1px solid #16a34a;background:#dcfce7;border-radius:8px}

/* === Laurel & Ryan custom palette === */
.nav{background:rgba(255,255,255,.85); border-bottom:1px solid var(--line)}
.hero-overlay{background:linear-gradient(to top, rgba(122,62,46,.55), rgba(0,0,0,.25) 60%, transparent)}
.btn{border-color:var(--mauve);}
.btn.primary{background:var(--mauve); color:#fff; border-color:var(--mauve)}
.btn.primary:hover{background:#BA8E95}
.chip{background:var(--blush); border-color:#efd9d6}
a:hover{color:var(--rust)}
.section.alt{background:#fff}
.card{border-color:#E6DED9}
.highlight{background:var(--blush); border:1px solid #efd9d6; padding:10px 12px; border-radius:10px; display:inline-block}
h2{position:relative; padding-bottom:8px; margin-bottom:16px}
h2:after{content:""; position:absolute; left:0; bottom:0; width:68px; height:4px; border-radius:999px; background:linear-gradient(90deg, var(--rust), var(--peach))}
.rsvp-card{border-color:#e8d9d3}
.btn.wide{background:var(--peach); color:#fff; border-color:var(--peach)}
.btn.wide:hover{background:#c77d5c}
.field input:focus,.field select:focus{box-shadow:0 0 0 3px #f2cac3; border-color:#d9a59c}
.tile{border-color:#eadfdc}
.footer{background:#fff}

/* === Mobile Optimizations === */
@media(max-width: 780px){
  .nav-inner{height:64px}
  .links{display:none;position:absolute;top:64px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);padding:8px 12px}
  .links a{display:block;margin:6px 0;padding:10px 12px}
  .hamb{display:block;cursor:pointer;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff}
  .hero{height:60vh}
  .hero h1{font-size:34px}
  .cta .btn{padding:10px 14px;margin-bottom:8px}
  .rsvp-card{padding:18px;width:min(560px,100%)}
  .row{grid-template-columns:1fr !important}
  .btn.wide{font-size:16px;padding:12px}
}
@media(max-width: 420px){
  .hero{height:56vh}
  .brand-sub{display:none}
  .hero h1{font-size:30px}
}
