/* =========================================================
   Ashrita & Gursimran · Rishikesh 2026
   Soft floral (sage / cream / marigold gold) + gold countdown drama
   Mobile-first: designed at 380px, enhanced upward.
   ========================================================= */

:root{
  --cream:#FBF6EA;
  --cream-2:#F4ECD8;
  --paper:#FFFDF4;
  --ink:#2E3A2B;
  --ink-soft:#53604B;
  --sage:#8A9779;
  --sage-deep:#5A6A4E;
  --line:#D8D6BC;
  --line-soft:#E7E3CC;
  --gold:#C09540;
  --gold-deep:#9C7726;
  --night:#273420;
  --terracotta:#B4593B;
  --serif:"Cormorant Garamond", Georgia, serif;
  --sans:"Jost", "Helvetica Neue", sans-serif;
  --script:"Corinthia", cursive;
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  background:var(--cream);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:300;
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:var(--gold-deep); text-decoration:none; }
a:hover{ color:var(--terracotta); }
strong{ font-weight:500; }
::selection{ background:var(--gold); color:var(--paper); }

.wrap{ max-width:1020px; margin:0 auto; padding:0 20px; }

/* ---------- eyebrow labels (ref 1 typography) ---------- */
.eyebrow{
  font-family:var(--sans);
  font-weight:500;
  font-size:11px;
  letter-spacing:.32em;
  text-transform:uppercase;
  color:var(--gold-deep);
  display:flex; align-items:center; justify-content:center; gap:14px;
}
.eyebrow::before,.eyebrow::after{
  content:""; width:26px; height:1px; background:var(--gold);
  opacity:.55; flex:none;
}

/* =========================================================
   NAV
   ========================================================= */
.nav{
  position:sticky; top:0; z-index:50;
  background:rgba(251,246,234,.92);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-soft);
}
.nav-inner{
  max-width:1020px; margin:0 auto; padding:12px 20px 10px;
  display:flex; flex-direction:column; align-items:center; gap:6px;
}
.monogram{
  font-family:var(--serif); font-style:italic; font-weight:600;
  font-size:19px; letter-spacing:.02em; color:var(--sage-deep);
}
.monogram:hover{ color:var(--gold-deep); }
.nav-links{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; justify-content:center; }
.nav-links a{
  font-size:10px; font-weight:500; letter-spacing:.22em; text-transform:uppercase;
  color:var(--ink-soft); padding:4px 0; position:relative; white-space:nowrap;
}
.nav-links a::after{
  content:""; position:absolute; left:50%; bottom:0; height:1px; width:0;
  background:var(--gold); transition:width .25s ease, left .25s ease;
}
.nav-links a:hover{ color:var(--ink); }
.nav-links a:hover::after,
.nav-links a.active::after{ width:100%; left:0; }
.nav-links a.active{ color:var(--gold-deep); }
.nav-links a.cta{
  border:1px solid var(--gold); color:var(--gold-deep);
  padding:5px 14px; border-radius:999px;
}
.nav-links a.cta::after{ display:none; }
.nav-links a.cta:hover,
.nav-links a.cta.active{ background:var(--gold); color:var(--paper); }

@media (min-width:720px){
  .nav-inner{ flex-direction:row; justify-content:space-between; padding:14px 24px; }
  .nav-links{ gap:26px; }
  .nav-links a{ font-size:11px; }
}

/* =========================================================
   BUTTONS
   ========================================================= */
.btn{
  display:inline-block; font-family:var(--sans); font-weight:500;
  font-size:11px; letter-spacing:.24em; text-transform:uppercase;
  padding:15px 26px; border-radius:999px; text-align:center;
  transition:all .25s ease; cursor:pointer; border:1px solid transparent;
}
.btn-gold{
  background:var(--gold); color:var(--paper);
  box-shadow:0 10px 24px -12px rgba(156,119,38,.65);
}
.btn-gold:hover{ background:var(--gold-deep); color:var(--paper); transform:translateY(-1px); }
.btn-ghost{ border-color:var(--sage); color:var(--sage-deep); }
.btn-ghost:hover{ border-color:var(--sage-deep); color:var(--ink); background:rgba(138,151,121,.1); }
.btn-outline{ border-color:var(--gold); color:var(--gold-deep); }
.btn-outline:hover{ background:var(--gold); color:var(--paper); }

/* =========================================================
   GARLAND DIVIDER  (marigold buds on a hairline)
   ========================================================= */
.garland{
  display:flex; align-items:center; justify-content:center; gap:9px;
  padding:44px 20px;
}
.garland::before,.garland::after{
  content:""; height:1px; width:70px; flex:none;
  background:linear-gradient(90deg, transparent, var(--line));
}
.garland::after{ background:linear-gradient(90deg, var(--line), transparent); }
.garland i{
  width:8px; height:8px; flex:none;
  background:var(--gold); opacity:.8;
  border-radius:60% 0; transform:rotate(45deg);
}
.garland i:nth-child(2n){ background:var(--sage); border-radius:0 60%; }
.garland i:nth-child(3){ width:11px; height:11px; border-radius:50%; background:var(--terracotta); opacity:.7; }
.garland i:nth-child(4){ width:11px; height:11px; border-radius:50%; background:var(--gold-deep); opacity:.75; }

/* =========================================================
   HERO  (index)
   ========================================================= */
.hero{
  position:relative; text-align:center;
  padding:52px 22px 8px; overflow:hidden;
}
.hero::before,.hero::after{
  content:""; position:absolute; width:300px; height:300px; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200' fill='none' stroke='%238A9779' stroke-width='1.4' stroke-linecap='round'%3E%3Cpath d='M12 188 C 40 150 52 110 46 62'/%3E%3Cpath d='M46 62 C 44 46 50 30 62 20'/%3E%3Cpath d='M40 120 C 22 112 12 96 14 78'/%3E%3Cpath d='M40 120 C 56 114 64 100 62 84'/%3E%3Cpath d='M22 160 C 8 152 2 140 4 126'/%3E%3Cpath d='M24 152 C 38 148 46 136 44 124'/%3E%3Ccircle cx='62' cy='18' r='3'/%3E%3Ccircle cx='70' cy='12' r='2'/%3E%3Ccircle cx='55' cy='10' r='2'/%3E%3Ccircle cx='66' cy='26' r='2'/%3E%3Ccircle cx='56' cy='24' r='2'/%3E%3Cpath d='M14 78 C 20 84 26 86 32 84'/%3E%3Cpath d='M62 84 C 56 90 50 92 44 90'/%3E%3C/svg%3E");
  background-size:contain; background-repeat:no-repeat; opacity:.5;
}
.hero::before{ left:-70px; top:10px; }
.hero::after{ right:-70px; bottom:-20px; transform:scaleX(-1) rotate(180deg); }
.hero-content{ position:relative; z-index:1; max-width:640px; margin:0 auto; }
.hero h1{
  font-family:var(--serif); font-weight:500; line-height:1.04;
  font-size:clamp(46px, 12vw, 84px); letter-spacing:.01em;
  margin:18px 0 6px; color:var(--ink);
}
.hero h1 em{
  font-family:var(--script); font-style:normal; font-weight:400;
  color:var(--gold); font-size:.9em; padding:0 .06em;
}
.date-line{
  font-family:var(--serif); font-style:italic; font-weight:500;
  font-size:clamp(19px, 5vw, 24px); color:var(--sage-deep);
}
.venue-line{ font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); margin-top:10px; }
.hashtag{
  display:inline-block; margin-top:16px;
  font-family:var(--serif); font-style:italic; font-weight:600; font-size:17px;
  color:var(--gold-deep);
  border:1px solid var(--line); border-radius:999px; padding:6px 18px;
  background:var(--paper);
}
.hero-actions{ display:flex; flex-direction:column; gap:12px; margin:26px auto 0; max-width:320px; }
@media (min-width:720px){
  .hero{ padding-top:72px; }
  .hero-actions{ flex-direction:row; justify-content:center; max-width:none; }
}

/* arch photo (ref 2) */
.arch-frame{
  position:relative; margin:34px auto 0; max-width:340px;
  padding:12px; border:1px solid var(--gold);
  border-radius:999px 999px 14px 14px;
  background:var(--paper);
  box-shadow:0 30px 60px -30px rgba(46,58,43,.35);
}
.arch-frame::before{
  content:""; position:absolute; inset:5px;
  border:1px solid var(--line);
  border-radius:999px 999px 11px 11px; pointer-events:none;
}
.arch-frame img{
  width:100%; aspect-ratio:4/5; object-fit:cover;
  border-radius:999px 999px 6px 6px;
}
@media (min-width:720px){ .arch-frame{ max-width:400px; } }

/* =========================================================
   COUNTDOWN  (gold-on-dark drama, ref 1)
   ========================================================= */
.count-band{
  margin:52px 0 0; padding:44px 20px 40px;
  background:
    radial-gradient(120% 90% at 50% 0%, rgba(192,149,64,.14), transparent 60%),
    var(--night);
  text-align:center;
}
.count-band .eyebrow{ color:var(--gold); }
.count-band .eyebrow::before,.count-band .eyebrow::after{ background:var(--gold); opacity:.4; }
.countdown{
  display:grid; grid-template-columns:repeat(4, 1fr);
  max-width:640px; margin:26px auto 0;
}
.count-cell{ padding:2px 4px; position:relative; }
.count-cell + .count-cell::before{
  content:""; position:absolute; left:0; top:12%; bottom:12%;
  width:1px; background:rgba(192,149,64,.35);
}
.count-cell b{
  display:block; font-family:var(--serif); font-weight:600;
  font-size:clamp(38px, 11vw, 64px); line-height:1;
  color:var(--gold); font-variant-numeric:tabular-nums;
}
.count-cell span{
  display:block; margin-top:8px;
  font-size:9px; font-weight:500; letter-spacing:.3em; text-transform:uppercase;
  color:rgba(251,246,234,.65);
}
.count-caption{
  margin:24px auto 0; max-width:520px;
  font-family:var(--serif); font-style:italic; font-size:18px;
  color:rgba(251,246,234,.85);
}
/* compact one-liner on subpages */
.mini-count{
  margin-top:18px; display:inline-block;
  font-size:11px; font-weight:500; letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold-deep);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  padding:8px 4px; min-height:16px;
}

/* =========================================================
   SECTION HEADS + STORY
   ========================================================= */
.section-head{ text-align:center; margin-bottom:26px; }
.section-head h2, .page-head h1{
  font-family:var(--serif); font-weight:500;
  font-size:clamp(32px, 8.4vw, 52px); line-height:1.12;
  margin-top:14px; color:var(--ink);
}
.story{ padding-top:8px; }
.story-lead{
  font-family:var(--serif); font-size:clamp(19px, 5vw, 23px); font-weight:500;
  line-height:1.6; max-width:680px; margin:0 auto; text-align:center;
  color:var(--ink-soft);
}
.story-lead strong{ color:var(--gold-deep); font-weight:600; }

/* polaroids */
.polaroids{
  display:flex; flex-wrap:wrap; justify-content:center; gap:18px;
  margin:44px auto 10px; max-width:860px;
}
.polaroid{
  background:var(--paper); padding:10px 10px 6px;
  border:1px solid var(--line-soft);
  box-shadow:0 16px 34px -18px rgba(46,58,43,.4);
  width:min(46%, 240px); transform:rotate(-2.5deg);
  transition:transform .3s ease;
}
.polaroid:nth-child(2){ transform:rotate(2deg) translateY(10px); }
.polaroid:nth-child(3){ transform:rotate(-1.2deg); width:min(60%, 250px); }
.polaroid:hover{ transform:rotate(0) scale(1.03); z-index:2; }
.polaroid img{ aspect-ratio:4/4.4; object-fit:cover; }
.polaroid figcaption{
  font-family:var(--script); font-size:24px; line-height:1.1;
  text-align:center; padding:9px 0 6px; color:var(--sage-deep);
}
@media (min-width:720px){
  .polaroids{ gap:30px; }
  .polaroid, .polaroid:nth-child(3){ width:230px; }
}

/* =========================================================
   TIMELINE  (interactive milestones)
   ========================================================= */
.timeline{
  max-width:600px; margin:46px auto 0; position:relative;
  padding-left:26px;
}
.timeline::before{
  content:""; position:absolute; left:6px; top:14px; bottom:14px;
  width:0; border-left:1px dashed var(--sage);
  opacity:.55;
}
.tl2{ position:relative; padding:2px 0 20px; }
.tl2 summary{
  list-style:none; cursor:pointer; display:flex; flex-wrap:wrap;
  align-items:baseline; gap:4px 14px; position:relative;
  -webkit-tap-highlight-color:transparent;
}
.tl2 summary::-webkit-details-marker{ display:none; }
.tl2-dot{
  position:absolute; left:-26px; top:6px; width:13px; height:13px; flex:none;
  border-radius:60% 0; transform:rotate(45deg);
  background:var(--cream); border:1.5px solid var(--sage-deep);
  transition:all .25s ease;
}
.tl2[open] .tl2-dot{ background:var(--gold); border-color:var(--gold-deep); border-radius:50%; }
.tl2-date{
  font-size:10px; font-weight:500; letter-spacing:.24em; text-transform:uppercase;
  color:var(--gold-deep); min-width:112px;
}
.tl2-title{
  font-family:var(--serif); font-weight:600; font-size:22px; line-height:1.2;
  color:var(--ink); flex:1;
}
.tl2 summary::after{
  content:"+"; font-family:var(--serif); font-size:20px; font-weight:500;
  color:var(--sage); margin-left:auto; align-self:center;
  transition:transform .25s ease;
}
.tl2[open] summary::after{ transform:rotate(45deg); color:var(--gold-deep); }
.tl2 summary:hover .tl2-title{ color:var(--gold-deep); }
.tl2 > p{
  margin:8px 0 0; padding:12px 16px;
  font-size:14.5px; color:var(--ink-soft);
  background:var(--cream-2); border-radius:2px 14px 14px 14px;
}

/* =========================================================
   LINK CARDS  (index)
   ========================================================= */
.link-cards{ display:grid; gap:16px; padding-bottom:56px; }
.link-card{
  display:block; background:var(--paper);
  border:1px solid var(--line-soft);
  border-radius:120px 120px 16px 16px;
  padding:34px 26px 26px; text-align:center; color:var(--ink);
  transition:all .3s ease; position:relative;
}
.link-card:hover{
  transform:translateY(-4px); border-color:var(--gold); color:var(--ink);
  box-shadow:0 24px 44px -24px rgba(156,119,38,.45);
}
.link-card h3{
  font-family:var(--serif); font-weight:600; font-size:27px; margin:10px 0 8px;
}
.link-card p{ font-size:14px; color:var(--ink-soft); max-width:300px; margin:0 auto; }
.link-card .go{
  display:inline-block; margin-top:16px;
  font-size:10.5px; font-weight:500; letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold-deep); border-bottom:1px solid var(--gold);
  padding-bottom:3px;
}
@media (min-width:760px){ .link-cards{ grid-template-columns:repeat(3,1fr); gap:22px; } }

/* =========================================================
   PAGE HEAD  (subpages)
   ========================================================= */
.page-head{ text-align:center; padding:48px 22px 6px; max-width:720px; margin:0 auto; }
.page-head > p{ margin-top:14px; color:var(--ink-soft); font-size:15.5px; }
.deadline-pill{
  display:inline-block; font-size:11px; font-weight:500;
  letter-spacing:.2em; text-transform:uppercase; color:var(--paper);
  background:var(--sage-deep); border-radius:999px; padding:8px 18px;
}

/* =========================================================
   ITINERARY
   ========================================================= */
.day-block{ margin-bottom:54px; }
.day-label{ text-align:center; margin-bottom:24px; }
.day-label h2{
  font-family:var(--serif); font-weight:600; font-size:clamp(26px, 7vw, 36px);
  color:var(--ink);
}
.day-label span{
  font-family:var(--script); font-size:30px; color:var(--gold-deep); display:block; margin-top:2px;
}

/* dress code strips (color-dot dress codes, ref 2) */
.dress-strip{
  border:1px solid var(--line); border-radius:16px;
  background:var(--paper); padding:20px 20px 16px; margin:0 0 26px;
  position:relative; text-align:center;
}
.dress-strip::before{
  content:""; position:absolute; inset:4px; border-radius:12px;
  border:1px dashed var(--line); pointer-events:none;
}
.dress-title{
  font-size:10.5px; font-weight:500; letter-spacing:.26em; text-transform:uppercase;
  color:var(--sage-deep); margin-bottom:14px;
}
.swatch-row{
  display:flex; align-items:center; justify-content:center; flex-wrap:wrap;
  gap:10px; position:relative;
}
.swatch{
  width:26px; height:26px; border-radius:50%; flex:none;
  box-shadow:inset 0 0 0 2px var(--paper), 0 0 0 1px var(--line), 0 4px 8px -3px rgba(46,58,43,.3);
}
.swatch-label{
  width:100%; margin-top:6px;
  font-family:var(--serif); font-style:italic; font-size:16px; color:var(--ink-soft);
}
.avoid{
  margin-top:12px; padding-top:12px; border-top:1px solid var(--line-soft);
  font-size:13px; color:var(--terracotta); position:relative;
}
@media (min-width:720px){
  .swatch-label{ width:auto; margin:0 0 0 8px; }
}

/* event cards on a stem */
.event-card{
  position:relative; margin:0 0 14px; padding:18px 18px 18px 20px;
  background:var(--paper); border:1px solid var(--line-soft); border-radius:14px;
  display:flex; flex-direction:column; gap:6px;
  transition:border-color .25s ease;
}
.event-card:hover{ border-color:var(--gold); }
.event-time{
  font-size:11px; font-weight:600; letter-spacing:.26em; text-transform:uppercase;
  color:var(--gold-deep); display:flex; align-items:center; gap:10px;
}
.event-time::before{
  content:""; width:9px; height:9px; border-radius:60% 0; transform:rotate(45deg);
  background:var(--gold); flex:none;
}
.event-body h3{ font-family:var(--serif); font-weight:600; font-size:24px; line-height:1.15; }
.event-body .where{
  font-family:var(--serif); font-style:italic; font-size:16px;
  color:var(--sage-deep); margin:2px 0 8px;
}
.event-body p{ font-size:14.5px; color:var(--ink-soft); }
.event-note{
  display:block; margin-top:12px; padding:10px 14px;
  background:var(--cream-2); border-radius:10px;
  font-size:13px; color:var(--ink-soft);
}
.event-note::before{ content:"❧ "; color:var(--gold-deep); }
.transit{
  text-align:center; font-family:var(--script); font-size:26px; color:var(--sage);
  padding:6px 0 18px; display:flex; align-items:center; justify-content:center; gap:14px;
}
.transit::before,.transit::after{
  content:""; height:1px; width:36px; border-top:1px dashed var(--sage); opacity:.6;
}
@media (min-width:720px){
  .event-card{ flex-direction:row; gap:26px; padding:24px 28px; }
  .event-time{ flex:none; width:110px; padding-top:5px; align-items:flex-start; }
  .event-time::before{ margin-top:3px; }
  .event-body{ flex:1; }
}

/* itinerary photo */
.itinerary-photo{
  margin:50px auto 0; max-width:420px; padding:12px;
  border:1px solid var(--gold); border-radius:999px 999px 14px 14px;
  background:var(--paper);
}
.itinerary-photo img{
  aspect-ratio:4/5; object-fit:cover; width:100%;
  border-radius:999px 999px 6px 6px;
}
.photo-cap{
  text-align:center; font-family:var(--script); font-size:30px;
  color:var(--sage-deep); margin-top:14px;
}

/* =========================================================
   TRAVEL
   ========================================================= */
.venue-banner{
  background:var(--paper); border:1px solid var(--line);
  border-radius:20px; padding:28px 24px;
  display:flex; flex-direction:column; gap:24px; margin-bottom:26px;
  position:relative; overflow:hidden;
}
.venue-banner .eyebrow{ justify-content:flex-start; }
.venue-banner .eyebrow::after{ display:none; }
.venue-banner h2{
  font-family:var(--serif); font-weight:600; font-size:clamp(28px, 7vw, 38px);
  margin:10px 0 10px; line-height:1.15;
}
.venue-banner p{ font-size:15px; color:var(--ink-soft); }
.venue-banner .small{ font-size:12.5px; letter-spacing:.06em; }
.map-link{
  display:inline-block; margin-top:16px;
  font-size:11px; font-weight:500; letter-spacing:.2em; text-transform:uppercase;
  color:var(--gold-deep); border-bottom:1px solid var(--gold); padding-bottom:3px;
}
.venue-banner img{
  width:100%; max-width:340px; margin:0 auto;
  aspect-ratio:4/5; object-fit:cover;
  border-radius:999px 999px 10px 10px;
  border:6px solid var(--cream-2);
}
@media (min-width:820px){
  .venue-banner{ flex-direction:row; align-items:center; padding:40px; gap:44px; }
  .vb-text{ flex:1.2; }
  .venue-banner img{ flex:1; max-width:300px; margin:0; }
}

.travel-grid{ display:grid; gap:16px; }
.travel-card{
  background:var(--paper); border:1px solid var(--line-soft); border-radius:16px;
  padding:24px 22px;
}
.travel-card h3{
  font-family:var(--serif); font-weight:600; font-size:22px;
  display:flex; align-items:center; gap:10px; line-height:1.2;
}
.travel-card .dot{
  width:10px; height:10px; flex:none; border-radius:60% 0;
  transform:rotate(45deg); background:var(--sage);
}
.travel-card .sub{
  font-family:var(--serif); font-style:italic; font-size:15.5px;
  color:var(--sage-deep); margin:4px 0 12px;
}
.travel-card ul{ list-style:none; display:grid; gap:9px; }
.travel-card li{
  font-size:14px; color:var(--ink-soft); padding-left:16px; position:relative;
}
.travel-card li::before{
  content:""; position:absolute; left:0; top:9px;
  width:5px; height:5px; border-radius:50%; background:var(--gold);
}
.travel-card p{ font-size:14px; color:var(--ink-soft); }
.travel-card p + p{ margin-top:8px; }
@media (min-width:760px){
  .travel-grid{ grid-template-columns:1fr 1fr; gap:20px; }
  .travel-card.full{ grid-column:1 / -1; }
  .travel-card.full ul{ grid-template-columns:1fr 1fr; gap:12px 32px; }
}

/* =========================================================
   RSVP
   ========================================================= */
.rsvp-wrap{ max-width:640px; padding-bottom:56px; }
.form-card{
  background:var(--paper); border:1px solid var(--line);
  border-radius:22px; padding:28px 22px 26px; position:relative;
}
.form-card::before{
  content:""; position:absolute; inset:6px; pointer-events:none;
  border:1px dashed var(--line); border-radius:17px;
}
.field{ margin-bottom:18px; position:relative; z-index:1; }
.field label{
  display:block; font-size:10.5px; font-weight:500;
  letter-spacing:.2em; text-transform:uppercase; color:var(--sage-deep);
  margin-bottom:7px;
}
.field label small{
  display:block; text-transform:none; letter-spacing:.02em; font-weight:300;
  font-size:12px; color:var(--ink-soft); margin-top:1px;
}
.field input, .field select, .field textarea{
  width:100%; font-family:var(--sans); font-weight:300; font-size:16px;
  color:var(--ink); background:var(--cream);
  border:1px solid var(--line); border-radius:12px;
  padding:13px 14px; outline:none; transition:border-color .2s ease, box-shadow .2s ease;
  appearance:none; -webkit-appearance:none;
}
.field select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 L6 6.5 L11 1.5' fill='none' stroke='%239C7726' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center;
  padding-right:36px;
}
.field textarea{ min-height:96px; resize:vertical; }
.field input::placeholder, .field textarea::placeholder{ color:#A9A78F; }
.field input:focus, .field select:focus, .field textarea:focus{
  border-color:var(--gold); box-shadow:0 0 0 3px rgba(192,149,64,.16);
}
.field-row{ display:grid; gap:0; }
@media (min-width:560px){ .field-row{ grid-template-columns:1fr 1fr; gap:14px; } }

.rsvp-submit{ width:100%; margin-top:6px; position:relative; z-index:1; }
.form-note{
  text-align:center; font-family:var(--serif); font-style:italic;
  font-size:15px; color:var(--ink-soft); margin-top:14px; position:relative; z-index:1;
}
.form-status{ margin-top:12px; font-size:14px; text-align:center; position:relative; z-index:1; }
.form-status.err{
  background:#F7E8E0; border:1px solid #E0BFAE; color:#8A4A2E;
  border-radius:12px; padding:12px 16px;
}
.form-status.err a{ font-weight:500; text-decoration:underline; }

.success-panel{
  display:none; text-align:center;
  background:var(--paper); border:1px solid var(--gold);
  border-radius:180px 180px 22px 22px; padding:64px 26px 44px;
}
.success-panel h2{
  font-family:var(--serif); font-weight:500; font-size:clamp(30px, 8vw, 44px);
  margin:12px 0 12px;
}
.success-panel p{ color:var(--ink-soft); font-size:15px; max-width:400px; margin:0 auto; }

/* =========================================================
   FOOTER
   ========================================================= */
footer{
  background:var(--night); color:rgba(251,246,234,.75);
  text-align:center; padding:52px 22px 46px; margin-top:26px;
}
.foot-inner{ max-width:640px; margin:0 auto; }
footer .names{
  font-family:var(--script); font-size:44px; line-height:1.1; color:var(--gold);
  margin-bottom:18px;
}
footer .names em{ font-style:normal; }
footer p{ font-size:13px; margin-top:6px; }
footer a{ color:var(--gold); border-bottom:1px solid rgba(192,149,64,.4); }
footer a:hover{ color:#E4C784; }
.foot-hashtag{
  font-family:var(--serif); font-style:italic; font-weight:600;
  font-size:16px; color:var(--gold); margin-top:16px !important;
}

/* =========================================================
   MOTION
   ========================================================= */
@media (prefers-reduced-motion:no-preference){
  .hero-content > *{ animation:rise .8s ease both; }
  .hero-content > *:nth-child(2){ animation-delay:.08s; }
  .hero-content > *:nth-child(3){ animation-delay:.16s; }
  .hero-content > *:nth-child(4){ animation-delay:.22s; }
  .hero-content > *:nth-child(5){ animation-delay:.28s; }
  .hero-content > *:nth-child(6){ animation-delay:.34s; }
  .hero-content > *:nth-child(7){ animation-delay:.4s; }
  @keyframes rise{
    from{ opacity:0; transform:translateY(14px); }
    to{ opacity:1; transform:none; }
  }
}
