/* ═══════════════════════════════════════════════════════════════
   RK — Journey to Forever
   Luxury Editorial Design System
   70% Warm Cream · 20% Espresso · 10% Terracotta + Antique Gold
═══════════════════════════════════════════════════════════════ */

:root {
  --background:     #FAF5EF;
  --surface:        #FFFFFF;
  --text-primary:   #2A2018;
  --text-secondary: #4A4A4A;
  --text-tertiary:  #6E6E6E;
  --text-inverse:   #FFFFFF;

  --accent:         #8B4A2F;   /* Terracotta — CTAs, active, hover ONLY */
  --accent-light:   #B5673D;
  --accent-pale:    #F7EDE6;

  --gold:           #C8973A;   /* Antique Gold — dividers, markers, accents */
  --gold-light:     #DDB868;
  --gold-pale:      #FBF4E6;

  --border:         #E8DED0;
  --border-light:   #F2EBE0;

  --dark-bg:        #1E1B18;   /* Dark sections — charcoal, NOT purple */
  --dark-surface:   rgba(255,255,255,.05);
  --dark-border:    rgba(255,255,255,.09);
  --dark-text:      rgba(255,255,255,.68);

  --shadow-sm: 0 2px 12px rgba(42,32,24,.06);
  --shadow-md: 0 6px 32px rgba(42,32,24,.10);
  --shadow-lg: 0 20px 64px rgba(42,32,24,.13);

  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 20px;
  --radius-xl: 24px;

  --font-serif:  'Cormorant Garamond', Georgia, serif;
  --font-script: 'Great Vibes', cursive;
  --font-sans:   'Inter', -apple-system, sans-serif;

  --container: 1280px;
  --content:   1100px;
  --reading:    750px;
}

/* ── Reset ─────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; font-size:16px; }
body {
  font-family:var(--font-sans);
  background:var(--background); color:var(--text-primary);
  overflow-x:hidden; -webkit-font-smoothing:antialiased;
}
img { max-width:100%; display:block; }
a { text-decoration:none; color:inherit; }
button { cursor:pointer; border:none; background:none; font-family:inherit; }

/* ── Animations ────────────────────────────────────────────── */
.reveal       { opacity:0; transform:translateY(24px); transition:opacity .75s ease,transform .75s ease; }
.reveal-left  { opacity:0; transform:translateX(-32px); transition:opacity .75s ease,transform .75s ease; }
.reveal-right { opacity:0; transform:translateX(32px);  transition:opacity .75s ease,transform .75s ease; }
.reveal.visible, .reveal-left.visible, .reveal-right.visible { opacity:1; transform:translate(0,0); }

/* ══════════════════════════════════════════════════════════
   NAVIGATION
══════════════════════════════════════════════════════════ */
#navbar {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  height:88px; display:flex; align-items:center;
  justify-content:space-between; padding:0 40px;
  transition:all .35s ease;
}
#navbar.scrolled {
  background:rgba(250,247,242,.97); backdrop-filter:blur(20px);
  height:72px; box-shadow:0 1px 0 var(--border);
}
.nav-logo {
  font-family:var(--font-script); font-size:2rem;
  color:var(--text-inverse); letter-spacing:.02em; transition:color .3s; white-space:nowrap;
}
#navbar.scrolled .nav-logo { color:var(--text-primary); }
.nav-logo .nav-heart { color:var(--gold-light); font-style:normal; }
.hero-heart { color:var(--gold-light); font-style:normal; margin:0 .12em; }

.nav-links { display:flex; gap:28px; list-style:none; align-items:center; }
.nav-links a {
  font-size:.72rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:rgba(255,255,255,.92); transition:color .2s;
  padding-bottom:2px; border-bottom:1px solid transparent;
}
#navbar.scrolled .nav-links a { color:var(--text-primary); }
#navbar.scrolled .nav-links a:hover { color:var(--text-primary); }
#navbar.scrolled .nav-links a.active { color:var(--accent); border-bottom-color:var(--accent); }

.nav-rsvp {
  background:rgba(255,255,255,.12) !important; backdrop-filter:blur(8px);
  color:var(--text-inverse) !important; padding:9px 22px !important;
  border-radius:100px; border:1px solid rgba(255,255,255,.28) !important;
  font-weight:600 !important; letter-spacing:.06em !important; transition:all .2s !important;
}
#navbar.scrolled .nav-rsvp { background:var(--accent) !important; border-color:var(--accent) !important; }
#navbar.scrolled .nav-rsvp:hover { background:var(--accent-light) !important; }

.nav-hamburger { display:none; flex-direction:column; gap:5px; width:26px; cursor:pointer; }
.nav-hamburger span { display:block; height:1.5px; background:var(--text-inverse); border-radius:2px; transition:all .3s; }
#navbar.scrolled .nav-hamburger span { background:var(--text-primary); }

@media (max-width:768px) {
  .nav-links { display:none; }
  .nav-hamburger { display:flex; }
  #navbar, #navbar.scrolled { padding:0 24px; }
  #mobile-menu {
    display:none; position:fixed; inset:0; z-index:999;
    background:var(--surface);
    flex-direction:column; align-items:center; justify-content:center; gap:36px;
  }
  #mobile-menu.open { display:flex; }
  #mobile-menu a { font-size:1.7rem; font-family:var(--font-serif); color:var(--text-primary); font-weight:600; }
  .nav-close { position:absolute; top:24px; right:24px; font-size:2rem; color:var(--text-primary); cursor:pointer; }
}

/* ══════════════════════════════════════════════════════════
   HERO
══════════════════════════════════════════════════════════ */
#hero {
  min-height:100vh; display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  position:relative; overflow:hidden; background:var(--dark-bg);
  padding:0 24px; text-align:center;
}
.hero-slides { position:absolute; inset:0; z-index:0; }
.hero-slide { position:absolute; inset:0; background-size:cover; background-position:center center; opacity:0; transition:opacity 2s ease; }
.hero-slide.active { opacity:1; }
.hero-overlay {
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(to bottom,rgba(18,15,12,.65) 0%,rgba(18,15,12,.40) 45%,rgba(18,15,12,.78) 100%);
}
#hero > *:not(.hero-slides):not(.hero-overlay):not(.hero-location):not(.hero-scroll) { position:relative; z-index:2; }

.hero-eyebrow { font-size:.65rem; font-weight:700; letter-spacing:.38em; text-transform:uppercase; color:var(--gold-light); margin-bottom:20px; }
.hero-script {
  font-family:var(--font-script); font-size:clamp(3.5rem,10vw,8.5rem);
  color:var(--text-inverse); line-height:1.05;
  text-shadow:0 4px 40px rgba(0,0,0,.45); margin-bottom:14px;
}
.hero-date {
  font-family:var(--font-serif); font-size:clamp(1rem,2.4vw,1.4rem);
  color:rgba(255,255,255,.95); letter-spacing:.28em; text-transform:uppercase; font-weight:600; margin-bottom:8px;
}
.hero-venue { font-size:.9rem; color:rgba(255,255,255,.88); letter-spacing:.14em; font-weight:600; margin-bottom:52px; }
.hero-location {
  position:absolute !important; bottom:44px; left:40px; z-index:10;
  font-size:.92rem; font-weight:800; letter-spacing:.18em; text-transform:uppercase;
  color:#FFFFFF; text-shadow:0 2px 20px rgba(0,0,0,.9);
  background:rgba(0,0,0,.38); backdrop-filter:blur(8px);
  padding:10px 20px; border-radius:var(--radius-sm); border:1px solid rgba(255,255,255,.18);
}

.hero-countdown { display:flex; gap:14px; justify-content:center; margin-bottom:56px; }
.countdown-unit {
  background:rgba(255,255,255,.07); backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.11); border-radius:var(--radius-lg);
  padding:16px 20px; min-width:76px; text-align:center;
}
.countdown-num { font-family:var(--font-serif); font-size:2.4rem; font-weight:600; color:var(--text-inverse); line-height:1; }
.countdown-label { font-size:.58rem; font-weight:600; letter-spacing:.20em; text-transform:uppercase; color:var(--gold-light); margin-top:8px; }

.hero-scroll {
  position:absolute; bottom:32px; left:50%; transform:translateX(-50%); z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:8px;
  color:rgba(255,255,255,.36); font-size:.62rem; letter-spacing:.20em; text-transform:uppercase;
  animation:bounce 2s ease-in-out infinite;
}
.hero-scroll svg { width:16px; }
@keyframes bounce { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(6px)} }

@media (max-width:600px) {
  .hero-countdown { gap:8px; }
  .countdown-unit { padding:12px 12px; min-width:58px; }
  .countdown-num { font-size:1.8rem; }
  .hero-location { bottom:28px; left:20px; font-size:.78rem; padding:8px 14px; }
}

/* ══════════════════════════════════════════════════════════
   SECTION UTILITIES
══════════════════════════════════════════════════════════ */
.section-container { max-width:var(--container); margin:0 auto; padding:128px 40px; }
.section-content   { max-width:var(--content); margin:0 auto; }
.section-reading   { max-width:var(--reading); margin:0 auto; }

.section-eyebrow { font-size:.72rem; font-weight:800; letter-spacing:.32em; text-transform:uppercase; color:var(--gold); margin-bottom:12px; display:block; }
.section-title { font-family:var(--font-serif); font-size:clamp(2.6rem,5vw,4.2rem); color:var(--text-primary); line-height:1.1; margin-bottom:16px; font-weight:700; }
.section-divider { width:40px; height:2px; background:linear-gradient(90deg,var(--gold),var(--gold-light)); border-radius:1px; margin:16px 0; opacity:.85; }
.section-divider.center { margin:16px auto; }
.section-sub { font-size:1.12rem; color:var(--text-secondary); line-height:1.85; max-width:var(--reading); font-weight:500; }
.section-sub.center { margin:0 auto; text-align:center; }
.text-center { text-align:center; }

@media (max-width:768px) { .section-container { padding:80px 24px; } }

/* ══════════════════════════════════════════════════════════
   OUR STORY — Luxury Editorial Blocks
══════════════════════════════════════════════════════════ */
.story-block { margin-bottom:64px; }
.story-block-image { width:100%; margin-bottom:48px; overflow:hidden; border-radius:var(--radius-xl); aspect-ratio:4/3; }
.story-block-image img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .7s ease; }
.story-block:hover .story-block-image img { transform:scale(1.02); }

.story-block-content { max-width:var(--reading); margin:0 auto; text-align:center; padding:0 16px; }
.story-chapter-label { font-size:.65rem; font-weight:700; letter-spacing:.32em; text-transform:uppercase; color:var(--gold); display:block; margin-bottom:12px; }
.story-block-title { font-family:var(--font-serif); font-size:clamp(2rem,3.5vw,3rem); color:var(--text-primary); font-weight:700; margin-bottom:16px; line-height:1.15; }
.story-gold-rule { width:40px; height:2px; background:var(--gold); margin:0 auto 28px; opacity:.85; }
.story-block-text { font-size:1.05rem; color:var(--text-secondary); line-height:1.92; text-align:left; font-weight:500; }
.story-block-text + .story-block-text { margin-top:16px; }
.story-block-em { font-style:italic; font-weight:600; color:var(--text-primary); }

.story-block-quote {
  margin:28px 0; padding:20px 24px;
  border-left:2px solid var(--gold); background:var(--gold-pale);
  border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  font-family:var(--font-serif); font-size:1.05rem; font-style:italic;
  color:var(--text-primary); line-height:1.75; text-align:left;
}

.story-separator { display:flex; align-items:center; justify-content:center; gap:16px; margin:0 0 64px; }
.story-separator::before, .story-separator::after { content:''; flex:1; max-width:120px; height:1px; background:var(--border); }
.story-separator-icon { color:var(--gold); font-size:1rem; opacity:.65; }

.story-tags { margin-top:32px; display:flex; flex-direction:column; gap:16px; text-align:left; }
.story-tag-item { display:flex; flex-direction:column; gap:6px; }
.story-tag { display:inline-block; font-size:.7rem; font-weight:700; letter-spacing:.05em; color:var(--accent); background:var(--accent-pale); padding:4px 14px; border-radius:100px; border:1px solid rgba(139,74,47,.18); width:fit-content; }
.story-tag-desc { font-size:.85rem; color:var(--text-secondary); line-height:1.65; font-style:italic; }

@media (max-width:768px) {
  .story-block { margin-bottom:40px; }
  .story-separator { margin-bottom:40px; }
}

/* ══════════════════════════════════════════════════════════
   WEDDING DETAILS TEASER
══════════════════════════════════════════════════════════ */
.wd-teaser-dates { font-family:var(--font-serif); font-size:clamp(3rem,9vw,6.5rem); font-weight:600; color:var(--text-primary); line-height:1; margin:16px 0 20px; }
.wd-teaser-city { font-size:clamp(.9rem,2.2vw,1.2rem); font-weight:600; color:var(--text-secondary); letter-spacing:.20em; text-transform:uppercase; margin:0 0 40px; }
.wd-teaser-btn {
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  background:var(--accent); color:var(--text-inverse);
  font-size:.82rem; font-weight:600; padding:15px 48px; border-radius:100px; letter-spacing:.08em;
  transition:background .2s,transform .2s,box-shadow .2s;
  box-shadow:0 4px 20px rgba(139,74,47,.22);
}
.wd-teaser-btn::after { content:'→'; font-size:1rem; animation:nudge-right 1.4s ease-in-out infinite; display:inline-block; }
.wd-teaser-btn:hover { background:var(--accent-light); transform:translateY(-2px); }
@keyframes nudge-right { 0%,100%{transform:translateX(0)} 50%{transform:translateX(5px)} }

.wd-teaser-click-hint {
  display:block; margin-top:18px;
  font-size:.68rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase;
  color:var(--text-tertiary); opacity:.7;
}
.wd-teaser-click-hint svg { width:14px; vertical-align:middle; margin-right:4px; animation:bounce-slow 1.6s ease-in-out infinite; display:inline-block; }
@keyframes bounce-slow { 0%,100%{transform:translateY(0)} 50%{transform:translateY(4px)} }

/* ══════════════════════════════════════════════════════════
   GALLERY
══════════════════════════════════════════════════════════ */
.gallery-tabs { display:flex; gap:8px; margin-bottom:40px; flex-wrap:wrap; }
.gallery-tab {
  padding:8px 24px; border-radius:100px; font-size:.68rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase;
  border:1.5px solid var(--border); color:var(--text-secondary);
  background:var(--surface); cursor:pointer; transition:all .2s;
}
.gallery-tab.active, .gallery-tab:hover { background:var(--accent); border-color:var(--accent); color:var(--text-inverse); }

.gallery-grid { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:auto; gap:12px; }
.gallery-item { aspect-ratio:4/3; border-radius:var(--radius-lg); overflow:hidden; position:relative; background:var(--border); cursor:pointer; transition:transform .3s,box-shadow .3s; }
.gallery-item:hover { transform:scale(1.02); box-shadow:var(--shadow-md); }
.gallery-item.wide { grid-column:span 1; }
.gallery-item.tall { grid-row:span 1; }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.gallery-item:hover img { transform:scale(1.05); }
.gallery-overlay { position:absolute; inset:0; background:rgba(42,32,24,.45); display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .3s; }
.gallery-item:hover .gallery-overlay { opacity:1; }
.gallery-overlay svg { width:32px; color:var(--text-inverse); }
.gallery-panel { }
.gallery-panel.hidden { display:none; }
.video-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,280px)); justify-content:center; gap:24px; margin-top:40px; }
.video-card { border-radius:var(--radius-xl); overflow:hidden; background:#000; box-shadow:var(--shadow-md); }
.video-player { display:block; background:#000; width:100%; height:auto; max-height:80vh; object-fit:contain; }

#lightbox { display:none; position:fixed; inset:0; z-index:9999; background:rgba(0,0,0,.95); backdrop-filter:blur(8px); align-items:center; justify-content:center; }
#lightbox.open { display:flex; }
#lightbox img { max-width:90vw; max-height:85vh; border-radius:var(--radius-lg); }
.lightbox-close { position:absolute; top:24px; right:32px; color:var(--text-inverse); font-size:2.5rem; cursor:pointer; }
.lightbox-prev, .lightbox-next { position:absolute; top:50%; transform:translateY(-50%); color:var(--text-inverse); font-size:2rem; cursor:pointer; padding:16px; background:rgba(255,255,255,.08); border-radius:var(--radius-sm); transition:background .2s; }
.lightbox-prev:hover, .lightbox-next:hover { background:rgba(255,255,255,.18); }
.lightbox-prev { left:20px; } .lightbox-next { right:20px; }

@media (max-width:900px) { .gallery-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .gallery-grid { grid-template-columns:1fr 1fr; } }

/* ══════════════════════════════════════════════════════════
   REGISTRY
══════════════════════════════════════════════════════════ */
.registry-tabs { display:flex; gap:12px; margin-bottom:48px; }
.registry-tab { flex:1; padding:14px; border-radius:var(--radius-lg); text-align:center; font-family:var(--font-serif); font-size:1.05rem; font-weight:600; color:var(--text-primary); border:1.5px solid var(--border); background:var(--surface); cursor:pointer; transition:all .25s; }
.registry-tab.active { background:var(--accent); border-color:var(--accent); color:var(--text-inverse); }
.registry-tab:hover:not(.active) { border-color:var(--accent); color:var(--accent); }
.tab-caret { display:inline-block; font-size:.85em; margin-left:5px; opacity:.55; transition:opacity .25s; vertical-align:middle; }
.registry-tab.active .tab-caret { opacity:.9; }
.registry-tab:hover .tab-caret { opacity:.85; }
.registry-panel { display:none; }
.registry-panel.active { display:block; }
.registry-intro { text-align:center; background:var(--surface); border-radius:var(--radius-xl); padding:28px 32px; border:1px solid var(--border); margin-bottom:28px; font-size:.95rem; color:var(--text-secondary); line-height:1.75; }
.registry-intro strong { color:var(--text-primary); }
.registry-cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:20px; }
.registry-card { background:var(--surface); border-radius:var(--radius-xl); overflow:hidden; box-shadow:var(--shadow-sm); border:1px solid var(--border); transition:transform .3s,box-shadow .3s; }
.registry-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
.registry-card-header { height:72px; display:flex; align-items:center; justify-content:center; font-size:1.8rem; }
.registry-card-body { padding:22px 24px; }
.registry-field { margin-bottom:14px; }
.registry-field-label { font-size:.64rem; font-weight:700; letter-spacing:.20em; text-transform:uppercase; color:var(--gold); margin-bottom:4px; }
.registry-field-value { font-family:var(--font-serif); font-size:1.05rem; color:var(--text-primary); font-weight:600; }
.copy-row { display:flex; align-items:center; gap:8px; margin-top:4px; }
.copy-value { font-family:var(--font-serif); font-size:1rem; color:var(--text-primary); font-weight:600; flex:1; }
.copy-btn { width:28px; height:28px; border-radius:var(--radius-sm); background:var(--gold-pale); color:var(--gold); display:flex; align-items:center; justify-content:center; transition:background .2s,transform .15s; cursor:pointer; border:none; }
.copy-btn:hover { background:var(--border); transform:scale(1.1); }
.copy-btn svg { width:12px; }
.registry-link-btn { display:flex; align-items:center; justify-content:center; width:100%; padding:12px; border-radius:var(--radius-md); font-size:.82rem; font-weight:600; letter-spacing:.04em; background:var(--accent); color:var(--text-inverse); margin-top:18px; transition:background .2s,transform .15s; border:none; cursor:pointer; text-decoration:none; }
.registry-link-btn:hover { background:var(--accent-light); transform:translateY(-1px); }
.currency-tab-row { display:flex; gap:8px; margin-bottom:24px; flex-wrap:wrap; }
.currency-tab { padding:6px 16px; border-radius:100px; font-size:.68rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; border:1.5px solid var(--border); color:var(--text-secondary); background:var(--surface); cursor:pointer; transition:all .2s; }
.currency-tab.active, .currency-tab:hover { background:var(--accent); border-color:var(--accent); color:var(--text-inverse); }

/* ══════════════════════════════════════════════════════════
   RSVP
══════════════════════════════════════════════════════════ */
.rsvp-couple-photo { width:100%; aspect-ratio:4/3; border-radius:var(--radius-xl); overflow:hidden; margin:0 auto 48px; max-width:560px; background:var(--background); display:flex; align-items:center; justify-content:center; }
.rsvp-couple-photo img { width:100%; height:100%; object-fit:contain; }
.rsvp-invitation-copy { text-align:center; max-width:560px; margin:0 auto 48px; }
.rsvp-invitation-copy p { font-family:var(--font-serif); font-size:1.15rem; color:var(--text-secondary); line-height:1.8; margin-bottom:6px; }
.rsvp-invitation-copy strong { color:var(--text-primary); }

.rsvp-wrap { max-width:640px; margin:0 auto; background:var(--surface); border-radius:var(--radius-xl); padding:52px 48px; box-shadow:var(--shadow-md); border:1px solid var(--border); }
.rsvp-heading { text-align:center; margin-bottom:40px; }
.form-group { margin-bottom:20px; }
.form-label { display:block; font-size:.72rem; font-weight:800; letter-spacing:.18em; text-transform:uppercase; color:var(--text-primary); margin-bottom:8px; }
.form-input, .form-select, .form-textarea { width:100%; height:56px; padding:0 18px; border-radius:var(--radius-md); border:1.5px solid var(--border); background:var(--background); font-family:var(--font-sans); font-size:.95rem; color:var(--text-primary); transition:border-color .2s,box-shadow .2s; outline:none; -webkit-appearance:none; }
.form-textarea { height:auto; padding:14px 18px; min-height:100px; resize:vertical; }
.form-input:focus, .form-select:focus, .form-textarea:focus { border-color:var(--accent); box-shadow:0 0 0 4px rgba(139,74,47,.07); background:var(--surface); }
.form-select { cursor:pointer; }
.attend-toggle { display:flex; border-radius:var(--radius-md); overflow:hidden; border:1.5px solid var(--border); }
.attend-opt { flex:1; text-align:center; padding:13px; cursor:pointer; font-size:.85rem; font-weight:600; transition:all .2s; }
.attend-opt input { display:none; }
.attend-opt.selected-yes { background:var(--accent); color:var(--text-inverse); }
.attend-opt.selected-no  { background:var(--gold-pale); color:var(--text-primary); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-submit { width:100%; padding:17px; background:var(--accent); color:var(--text-inverse); border:none; border-radius:var(--radius-md); font-family:var(--font-serif); font-size:1.15rem; font-weight:600; cursor:pointer; transition:background .2s,transform .15s; box-shadow:0 4px 20px rgba(139,74,47,.20); letter-spacing:.05em; }
.form-submit:hover { background:var(--accent-light); transform:translateY(-2px); }
.rsvp-success { display:none; text-align:center; padding:24px; }
.rsvp-success.show { display:block; }
.rsvp-success-icon  { font-size:3.5rem; margin-bottom:16px; }
.rsvp-success-title { font-family:var(--font-script); font-size:2.8rem; color:var(--accent); margin-bottom:12px; }
.rsvp-success-text  { color:var(--text-secondary); line-height:1.75; }
@media (max-width:600px) { .form-row{grid-template-columns:1fr} .rsvp-wrap{padding:32px 20px} }

/* ══════════════════════════════════════════════════════════
   MUSIC — Dark Charcoal (NOT purple)
══════════════════════════════════════════════════════════ */
.music-form { max-width:540px; margin:36px auto 0; display:flex; gap:12px; }
.music-input { flex:1; height:52px; padding:0 18px; border-radius:var(--radius-md); border:1.5px solid var(--dark-border); background:var(--dark-surface); color:var(--text-inverse); font-size:.95rem; outline:none; transition:border-color .2s; }
.music-input::placeholder { color:rgba(255,255,255,.30); }
.music-input:focus { border-color:rgba(198,164,108,.50); }
.music-submit { padding:0 24px; height:52px; background:var(--gold); color:var(--dark-bg); border:none; border-radius:var(--radius-md); font-weight:700; font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; cursor:pointer; transition:background .2s,transform .15s; white-space:nowrap; }
.music-submit:hover { background:var(--gold-light); transform:translateY(-2px); }
.music-list { margin-top:36px; max-height:320px; overflow-y:auto; }
.music-item { display:flex; align-items:center; gap:16px; padding:12px 0; border-bottom:1px solid var(--dark-border); color:var(--text-inverse); }
.music-item:last-child { border-bottom:none; }
.music-num { width:28px; height:28px; border-radius:50%; background:var(--dark-surface); display:flex; align-items:center; justify-content:center; font-size:.65rem; color:var(--gold); flex-shrink:0; }
.music-song { font-family:var(--font-serif); font-size:1rem; flex:1; }
.music-artist { font-size:.78rem; color:var(--dark-text); }

/* ══════════════════════════════════════════════════════════
   SCHEDULE
══════════════════════════════════════════════════════════ */
.sched-wrap { max-width:720px; margin:52px auto 0; }
.day-tabs { display:flex; gap:12px; justify-content:center; margin-bottom:52px; flex-wrap:wrap; }
.day-tab { padding:10px 28px; border-radius:40px; border:1px solid var(--dark-border); background:transparent; font-size:.68rem; letter-spacing:2px; text-transform:uppercase; color:var(--dark-text); cursor:pointer; transition:all .25s; }
.day-tab.active { background:var(--gold); border-color:var(--gold); color:var(--dark-bg); font-weight:700; }
.day-tab:hover:not(.active) { border-color:var(--gold-light); color:var(--gold-light); }
.day-panel { display:none; }
.day-panel.show { display:block; }
.day-header { display:flex; align-items:flex-start; gap:24px; margin-bottom:48px; padding:28px 32px; background:var(--dark-surface); border-radius:20px; border:1px solid var(--dark-border); }
.day-num-big { font-family:var(--font-serif); font-size:60px; color:rgba(255,255,255,.07); line-height:1; flex-shrink:0; user-select:none; }
.day-pill { display:inline-block; background:var(--gold); color:var(--dark-bg); font-size:.63rem; font-weight:700; letter-spacing:3px; text-transform:uppercase; padding:4px 14px; border-radius:20px; margin-bottom:10px; }
.day-title { font-family:var(--font-serif); font-size:clamp(22px,4vw,32px); color:var(--text-inverse); font-weight:400; margin-bottom:6px; }
.day-date { font-size:13px; color:var(--dark-text); letter-spacing:2px; }

.tl { position:relative; }
.tl-item { display:grid; grid-template-columns:20px 1fr; align-items:stretch; }
.tl-line-col { display:flex; flex-direction:column; align-items:center; }
.tl-dot-wrap { width:16px; height:16px; border-radius:50%; border:1.5px solid var(--gold); background:var(--dark-bg); display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:26px; z-index:1; }
.tl-dot-in { width:6px; height:6px; border-radius:50%; background:var(--gold); }
.tl-vert { flex:1; width:1px; background:var(--dark-border); margin-top:2px; }
.tl-item:last-child .tl-vert { display:none; }
.tl-content-col { padding:16px 0 28px 20px; }
.tl-card { background:var(--dark-surface); border:1px solid var(--dark-border); border-radius:var(--radius-lg); padding:22px 24px; max-width:760px; transition:border-color .2s; }
.tl-card:hover { border-color:rgba(198,164,108,.28); }
.tl-card-top { display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.tl-icon { width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.ic-gold  { background:rgba(198,164,108,.10); border:1px solid rgba(198,164,108,.25); }
.ic-mint  { background:rgba(143,168,152,.10); border:1px solid rgba(143,168,152,.22); }
.ic-blush { background:rgba(198,164,108,.10); border:1px solid rgba(198,164,108,.22); }
.ic-dot { width:8px; height:8px; border-radius:50%; }
.ic-dot.gold  { background:var(--gold); }
.ic-dot.mint  { background:#8FA898; }
.ic-dot.blush { background:var(--gold-light); }
.tl-card h4 { font-family:var(--font-serif); font-size:18px; color:var(--text-inverse); font-weight:400; }
.tl-card p  { font-size:14px; color:var(--dark-text); line-height:1.85; }
.tl-badge { font-size:.62rem; letter-spacing:2px; text-transform:uppercase; padding:3px 10px; border-radius:20px; margin-left:auto; flex-shrink:0; }
.badge-gold  { background:rgba(198,164,108,.12); color:var(--gold);       border:1px solid rgba(198,164,108,.25); }
.badge-mint  { background:rgba(143,168,152,.10); color:#8FA898;           border:1px solid rgba(143,168,152,.22); }
.badge-blush { background:rgba(198,164,108,.10); color:var(--gold-light); border:1px solid rgba(198,164,108,.22); }

@media (max-width:520px) { .day-header{flex-direction:column;gap:12px} .day-num-big{font-size:40px} }

/* ══════════════════════════════════════════════════════════
   FAQ — Card Wrapped
══════════════════════════════════════════════════════════ */
.faq-card { max-width:900px; margin:48px auto 0; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-xl); padding:48px; box-shadow:var(--shadow-sm); }
.faq-item { border-bottom:1px solid var(--border-light); }
.faq-item:last-child { border-bottom:none; }
.faq-question { display:flex; justify-content:space-between; align-items:center; padding:22px 0; cursor:pointer; gap:20px; font-family:var(--font-serif); font-size:1.15rem; font-weight:600; color:var(--text-primary); }
.faq-icon { width:30px; height:30px; border-radius:50%; background:var(--gold-pale); color:var(--gold); display:flex; align-items:center; justify-content:center; font-size:1.2rem; flex-shrink:0; transition:transform .3s,background .2s; }
.faq-item.open .faq-icon { transform:rotate(45deg); background:var(--accent); color:var(--text-inverse); }
.faq-answer { max-height:0; overflow:hidden; transition:max-height .4s ease,padding .3s; font-size:1.02rem; color:var(--text-secondary); line-height:1.88; font-weight:500; }
.faq-item.open .faq-answer { max-height:300px; padding-bottom:20px; }
@media (max-width:768px) { .faq-card { padding:28px 20px; } }

/* ══════════════════════════════════════════════════════════
   FOOTER — Reduced, Charcoal
══════════════════════════════════════════════════════════ */
#footer { background:var(--text-primary); padding:60px 40px; }
.footer-inner { max-width:var(--content); margin:0 auto; }
.footer-monogram { text-align:center; margin-bottom:40px; }
.footer-monogram-text { font-family:var(--font-script); font-size:4rem; color:var(--text-inverse); line-height:1; }
.footer-monogram-date { font-size:.64rem; font-weight:600; letter-spacing:.28em; text-transform:uppercase; color:var(--gold-light); margin-top:10px; }
.footer-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:40px; margin-bottom:40px; }
.footer-col-title { font-size:.64rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); margin-bottom:16px; }
.footer-links { list-style:none; }
.footer-links li { margin-bottom:9px; }
.footer-links a { color:rgba(255,255,255,.40); font-size:.88rem; transition:color .2s; }
.footer-links a:hover { color:var(--gold-light); }
.footer-contact { color:rgba(255,255,255,.38); font-size:.88rem; line-height:1.88; }
.footer-contact a { color:var(--gold-light); }
.footer-bottom { border-top:1px solid rgba(255,255,255,.07); padding-top:24px; display:flex; justify-content:center; align-items:center; gap:8px; color:rgba(255,255,255,.20); font-size:.76rem; }
.footer-heart { color:var(--gold); animation:heartbeat 1.5s ease-in-out infinite; }
@keyframes heartbeat { 0%,100%{transform:scale(1)} 50%{transform:scale(1.3)} }
@media (max-width:768px) { .footer-grid{grid-template-columns:1fr 1fr} #footer{padding:48px 24px} }
@media (max-width:500px)  { .footer-grid{grid-template-columns:1fr} }

/* ══════════════════════════════════════════════════════════
   TOAST & FLOATING BUTTON
══════════════════════════════════════════════════════════ */
.toast-container { position:fixed; top:84px; right:24px; z-index:9000; display:flex; flex-direction:column; gap:8px; pointer-events:none; }
.toast { background:var(--text-primary); color:var(--text-inverse); padding:12px 20px; border-radius:var(--radius-md); font-size:.875rem; font-weight:500; box-shadow:var(--shadow-md); pointer-events:auto; animation:toastIn .3s ease forwards; }
@keyframes toastIn { from{opacity:0;transform:translateX(20px)} to{opacity:1;transform:translateX(0)} }

.floating-note { position:fixed; bottom:32px; right:32px; z-index:500; width:48px; height:48px; border-radius:50%; background:var(--surface); border:1px solid var(--border); box-shadow:var(--shadow-md); display:flex; align-items:center; justify-content:center; font-size:1.3rem; cursor:pointer; transition:transform .2s,box-shadow .2s; }
.floating-note:hover { transform:scale(1.1); box-shadow:var(--shadow-lg); }

/* ══════════════════════════════════════════════════════════
   DETAILS PAGE
══════════════════════════════════════════════════════════ */
.details-page { background:var(--background); min-height:100vh; }
.details-hero { background:var(--surface); text-align:center; padding:130px 24px 90px; border-bottom:1px solid var(--border); }
.details-hero-dates { font-family:var(--font-serif); font-size:clamp(3rem,9vw,6.5rem); font-weight:600; color:var(--text-primary); line-height:1; margin:0 0 20px; }
.details-hero-city { font-size:clamp(1rem,2.2vw,1.2rem); font-weight:600; color:var(--text-secondary); letter-spacing:.18em; text-transform:uppercase; }

.details-divider { display:flex; align-items:center; justify-content:center; margin:48px auto; max-width:480px; }
.details-divider::before, .details-divider::after { content:''; flex:1; height:1px; background:var(--gold); opacity:.28; }
.details-divider-rings { width:32px; height:20px; margin:0 16px; position:relative; }
.details-divider-rings::before, .details-divider-rings::after { content:''; position:absolute; width:16px; height:16px; border-radius:50%; border:1.5px solid var(--gold); opacity:.45; top:2px; }
.details-divider-rings::before { left:0; } .details-divider-rings::after { left:8px; }

.details-events { padding:0 24px 80px; max-width:880px; margin:0 auto; }
.details-event-card { background:var(--surface); border:1px solid var(--border); border-radius:20px; padding:48px 52px; margin-bottom:32px; box-shadow:var(--shadow-sm); }
.details-event-name { font-family:var(--font-serif); font-size:clamp(1.7rem,4vw,2.6rem); font-weight:600; color:var(--text-primary); margin:0 0 6px; }
.details-event-datetime { font-size:1rem; font-weight:500; color:var(--text-secondary); margin:0 0 4px; }
.details-event-location { font-size:.92rem; color:var(--text-tertiary); margin:0 0 28px; }
.details-colours-label { font-size:.64rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--text-tertiary); margin:0 0 14px; }
.details-colours { display:flex; flex-wrap:wrap; gap:20px; align-items:center; }
.details-colour-swatch { display:flex; flex-direction:column; align-items:center; gap:6px; }
.details-colour-circle { width:44px; height:44px; border-radius:50%; border:1px solid rgba(0,0,0,.07); }
.details-colour-name { font-size:.68rem; color:var(--text-tertiary); text-align:center; }

.details-schedule {
  --dark-bg:      #1B6B3A;
  --dark-surface: rgba(200,151,58,.09);
  --dark-border:  rgba(200,151,58,.22);
  --dark-text:    rgba(255,255,255,.92);
  background:#1B6B3A; padding:80px 24px;
}
.details-schedule .section-eyebrow { color:var(--gold-light); }
.details-schedule .section-title   { color:var(--text-inverse); }
.details-schedule .section-divider { background:var(--gold); opacity:.5; }
.details-schedule .section-sub     { color:rgba(232,222,208,.85); }
.details-schedule .sched-wrap { max-width:800px; margin:40px auto 0; }
.details-schedule .day-num-big { color:rgba(200,151,58,.12); }

.details-back { display:inline-flex; align-items:center; gap:8px; font-size:.875rem; font-weight:500; color:var(--text-primary); padding:10px 0; margin-bottom:12px; transition:gap .2s; }
.details-back:hover { gap:14px; }

/* ══════════════════════════════════════════════════════════
   STORY — Expand / Collapse
══════════════════════════════════════════════════════════ */
.story-expand-btn {
  display:inline-flex; align-items:center; gap:8px;
  margin-top:32px; padding:14px 40px; border-radius:100px;
  background:var(--accent); color:var(--text-inverse);
  font-size:.78rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  transition:background .2s,transform .2s; text-decoration:none;
  box-shadow:0 4px 20px rgba(139,74,47,.22);
}
.story-expand-btn:hover { background:var(--accent-light); transform:translateY(-2px); }

.story-chapters-wrap {
  overflow:hidden; max-height:0; opacity:0;
  transition:max-height 1.2s ease, opacity .6s ease;
}
.story-chapters-wrap.open { max-height:9999px; opacity:1; }

/* ══════════════════════════════════════════════════════════
   REGISTRY — Homepage Teaser
══════════════════════════════════════════════════════════ */
.registry-teaser-section { background:var(--background); }

.registry-teaser-cards {
  display:flex; gap:24px; justify-content:center; flex-wrap:wrap;
  margin:0 auto 48px; max-width:560px;
}
.registry-teaser-card {
  flex:1; min-width:180px; max-width:220px;
  background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius-xl); padding:32px 24px;
  text-align:center; box-shadow:var(--shadow-sm);
  transition:transform .3s,box-shadow .3s;
}
.registry-teaser-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
.registry-teaser-icon { font-size:2.4rem; margin-bottom:12px; }
.registry-teaser-label {
  font-family:var(--font-serif); font-size:1.1rem;
  font-weight:600; color:var(--text-primary); margin-bottom:6px;
}
.registry-teaser-sub { font-size:.78rem; color:var(--text-tertiary); letter-spacing:.04em; }

.registry-hero-btn {
  display:inline-flex; align-items:center; justify-content:center;
  padding:15px 52px; border-radius:100px;
  background:var(--accent); color:var(--text-inverse);
  font-size:.82rem; font-weight:700; letter-spacing:.10em; text-transform:uppercase;
  transition:background .2s,transform .2s; text-decoration:none;
  box-shadow:0 4px 20px rgba(139,74,47,.22);
}
.registry-hero-btn:hover { background:var(--accent-light); transform:translateY(-2px); }

/* ══════════════════════════════════════════════════════════
   RSVP — CTA Reveal Button
══════════════════════════════════════════════════════════ */
.rsvp-cta-wrap { text-align:center; margin-bottom:8px; }
.rsvp-open-btn {
  display:inline-flex; align-items:center; justify-content:center;
  padding:16px 56px; border-radius:100px;
  background:var(--accent); color:var(--text-inverse);
  font-family:var(--font-serif); font-size:1.15rem; font-weight:600;
  letter-spacing:.04em; transition:background .2s,transform .2s; text-decoration:none;
  box-shadow:0 4px 24px rgba(139,74,47,.22);
}
.rsvp-open-btn:hover { background:var(--accent-light); transform:translateY(-2px); }

/* ── Utilities ─────────────────────────────────────────────── */
.hidden { display:none !important; }
