html.custom-cursor,
html.custom-cursor *{
  cursor: none !important;
}

.cursor-ball{
  position: fixed;
  left: 0;
  top: 0;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  pointer-events: none;
  z-index: 9999;
  transform: translate(-50%, -50%);
  background: linear-gradient(180deg, rgba(242,234,218,.98), rgba(219,203,176,.96));
  border: 1px solid rgba(86, 62, 34, .42);
  box-shadow: 0 2px 8px rgba(0,0,0,.28);
}

.cursor-ball::before,
.cursor-ball::after{
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
}

.cursor-ball::before{
  content: "L&S";
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 10px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: .02em;
  color: #3a291b;
}

.cursor-ball::after{
  content: "";
  inset: 2px;
  border-radius: 50%;
  border: 1px solid rgba(176,138,74,.42);
}

.cursor-ball.active{
  transform: translate(-50%, -50%) scale(1.12);
}
/* ---------- Bespoke Wedding Theme ---------- */
@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Manrope:wght@400;500;600;700&display=swap");

:root{
  --bg: #171c1a;
  --paper: rgba(233, 224, 208, 0.92);
  --paper-strong: rgba(244, 238, 226, 0.96);
  --ink: #241c15;
  --muted: rgba(70, 53, 37, 0.82);
  --border: rgba(87, 65, 39, 0.26);

  --accent: #7a1d2d;
  --accent-soft: rgba(122, 29, 45, 0.24);
  --gold: #b08a4a;
  --forest: #21483a;

  --shadow-soft: 0 14px 36px rgba(13, 10, 8, 0.28);
  --shadow-card: 0 22px 48px rgba(12, 10, 8, 0.34);
  --radius: 20px;
  --max: 1120px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }

body{
  margin:0;
  color:var(--ink);
  font-family: "Manrope", "Segoe UI", sans-serif;
  background:
    radial-gradient(1200px 700px at 8% -8%, rgba(24,62,49,.45), transparent 58%),
    radial-gradient(1000px 700px at 96% 0%, rgba(98,23,38,.40), transparent 56%),
    radial-gradient(1300px 800px at 40% 112%, rgba(120,89,40,.30), transparent 62%),
    linear-gradient(180deg, #2a302d 0%, #1f2321 45%, #171a19 100%);
  line-height: 1.45;
}

body::before{
  content:"";
  position: fixed;
  inset: 0;
  pointer-events:none;
  opacity:.14;
  background:
    repeating-linear-gradient(0deg, rgba(214,196,164,.035) 0, rgba(214,196,164,.035) 1px, transparent 1px, transparent 7px),
    repeating-linear-gradient(90deg, rgba(214,196,164,.03) 0, rgba(214,196,164,.03) 1px, transparent 1px, transparent 9px);
}

a{ color:inherit; text-decoration:none; }
a:hover{ text-decoration:none; }

.container{
  width: min(var(--max), calc(100% - 36px));
  margin: 0 auto;
}

.section{ padding: 38px 0; }

/* ---------- Typography ---------- */
.serif,
.h1,
.h2,
.brand .title{
  font-family: "Cormorant Garamond", Georgia, serif;
}

.h1{
  font-size: clamp(44px, 7vw, 78px);
  line-height: .94;
  letter-spacing: .1px;
  margin: 0;
  font-weight: 600;
}

.h2{
  font-size: clamp(29px, 4vw, 44px);
  line-height: 1.02;
  margin: 0 0 10px 0;
  font-weight: 600;
}

.lede{
  font-size: 16px;
  color: rgba(65, 49, 34, .92);
  line-height: 1.72;
}

.small{ font-size: 13px; color: rgba(65, 49, 34, .88); }

/* ---------- Surfaces ---------- */
.card{
  background: linear-gradient(180deg, var(--paper-strong), var(--paper));
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  position: relative;
}

.card::before{
  content:"";
  position:absolute;
  inset: 11px;
  border: 1px solid rgba(183,148,93,.16);
  border-radius: calc(var(--radius) - 8px);
  pointer-events:none;
}

.pad-lg{ padding: 30px; }
.pad-md{ padding: 18px; }

.grid{ display:grid; gap: 18px; }
.grid-2{ grid-template-columns: 1.2fr .8fr; }
.grid-3{ grid-template-columns: repeat(3, 1fr); }

@media (max-width: 920px){
  .grid-2{ grid-template-columns: 1fr; }
  .grid-3{ grid-template-columns: 1fr; }
}

.pill{
  display:inline-flex;
  gap:10px;
  align-items:center;
  padding: 10px 14px;
  border: 1px solid rgba(86, 62, 34, .34);
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(240,232,218,.96), rgba(224,210,188,.94));
  color: #4a3321;
  font-size: 13px;
  font-weight: 600;
}

.pill strong{ color: #2f2116; }

.badge{
  display:inline-flex;
  align-items:center;
  gap: 7px;
  padding: 7px 12px;
  border-radius: 999px;
  border: 1px solid rgba(122,29,45,.42);
  background: linear-gradient(180deg, rgba(122,29,45,.34), rgba(176,138,74,.30));
  color: #f8ecd2;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}

/* ---------- Nav ---------- */
.nav{
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(19,25,22,.90);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(176,138,74,.25);
}

.nav-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 14px 0;
  gap: 12px;
}

.brand{
  display:flex;
  flex-direction:column;
  gap: 2px;
  position: relative;
  padding-left: 62px;
}

.brand::before{
  content:"L&S";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  border-radius: 30px;
  display:grid;
  place-items:end center;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 13px;
  font-weight: 700;
  color: #4f3324;
  border: 1px solid rgba(143,91,70,.35);
  background: linear-gradient(180deg, rgba(255,252,247,.95), rgba(247,235,216,.95));
  box-shadow: inset 0 0 0 2px rgba(183,148,93,.2);
  padding-bottom: 6px;
}

.brand::after{
  content:"";
  position: absolute;
  left: 8px;
  top: 50%;
  transform: translateY(-72%);
  width: 31px;
  height: 25px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 34' fill='none' stroke='%234f3324' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 6c-3 3-3.8 8.8-2.9 15.7.6 4.6 2.3 8.4 4.5 10.3'/%3E%3Cpath d='M24 6c3 3 3.8 8.8 2.9 15.7-.6 4.6-2.3 8.4-4.5 10.3'/%3E%3Cpath d='M10.5 7.2c-1.2 3-1.4 7.5-.7 12.4.8 5.4 3 9.6 6.2 9.6s5.4-4.2 6.2-9.6c.7-4.9.5-9.4-.7-12.4'/%3E%3Ccircle cx='13' cy='13.4' r='.8'/%3E%3Ccircle cx='19' cy='13.4' r='.8'/%3E%3Cpath d='M12.8 22.5c2 1.5 4.4 1.5 6.4 0'/%3E%3Cpath d='M14.1 21.8h3.8c-.3 1.9-.9 3.5-1.9 3.5s-1.6-1.6-1.9-3.5Z' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  opacity: .92;
}

.brand .title{ font-size: 28px; font-weight: 600; line-height: .9; color: #f7edd8; }
.brand .sub{ font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: rgba(228,209,175,.86); }

.nav-links{ display:flex; gap: 8px; align-items:center; }
.nav-links a{
  padding: 9px 12px;
  border-radius: 12px;
  color: rgba(241,227,199,.92);
  font-size: 13px;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 600;
}

.nav-links a:hover{
  background: linear-gradient(180deg, rgba(122,29,45,.30), rgba(176,138,74,.22));
  color: #fff5df;
}

.menu-btn{
  display:none;
  border:1px solid rgba(176,138,74,.28);
  background: rgba(36,43,39,.88);
  padding: 10px 12px;
  border-radius: 14px;
  cursor:pointer;
  font-weight: 600;
  color: #f3e6ca;
}

@media (max-width: 760px){
  .menu-btn{ display:block; }
  .brand{ padding-left: 56px; }
  .brand::before{ width: 44px; height: 44px; }
  .brand::after{ left: 8px; width: 28px; height: 21px; transform: translateY(-74%); }
  .brand .title{ font-size: 24px; }

  .nav-links{
    display:none;
    position:absolute;
    left: 16px;
    right: 16px;
    top: 70px;
    flex-direction:column;
    background: rgba(24,30,27,.96);
    border: 1px solid rgba(87,65,39,.22);
    border-radius: 16px;
    padding: 10px;
    box-shadow: var(--shadow-soft);
  }

  .nav-links.open{ display:flex; }
  .nav-links a{ width:100%; }
}

/* ---------- Hero ---------- */
.hero{ padding: 44px 0 22px; }

.hero-wrap{
  padding: 36px;
  border-radius: 30px;
  border: 1px solid rgba(176,138,74,.24);
  background:
    radial-gradient(1000px 460px at 14% 8%, rgba(33,72,58,.38), transparent 62%),
    radial-gradient(860px 460px at 95% 18%, rgba(122,29,45,.30), transparent 60%),
    linear-gradient(180deg, rgba(235,227,213,.90), rgba(220,207,185,.88));
  box-shadow: 0 28px 52px rgba(31, 25, 19, 0.12);
  position: relative;
  overflow: hidden;
}

.hero-wrap::after{
  content:"";
  position:absolute;
  inset: 0;
  background-image:
    linear-gradient(180deg, rgba(239,232,220,.66), rgba(227,214,191,.70)),
    url("Wennington.jpeg");
  background-size: cover;
  background-position: center;
  opacity: .38;
  transform: scale(1.04);
  filter: saturate(.82) contrast(.92);
  pointer-events:none;
  z-index: 0;
}

.hero-wrap > *{
  position: relative;
  z-index: 2;
}
.hero-wrap::before{
  content:"";
  position:absolute;
  z-index: 1;
  inset: 14px;
  border-radius: 22px;
  border: 1px solid rgba(183,148,93,.24);
  pointer-events:none;
}

.flourish{
  width: 140px;
  height: 2px;
  margin: 14px 0 8px;
  background: linear-gradient(90deg, transparent, rgba(122,29,45,.92), rgba(176,138,74,.92), transparent);
  border-radius: 999px;
}

.kv{ display:flex; gap: 10px; flex-wrap: wrap; }

.countdown-rect{
  margin-top: 8px;
  display: inline-flex;
  flex-direction: column;
  gap: 5px;
  padding: 12px 16px;
  min-width: 230px;
  border-radius: 14px;
  border: 1px solid rgba(86, 62, 34, .34);
  background: linear-gradient(180deg, rgba(240,232,218,.96), rgba(224,210,188,.94));
  color: #3e2c1d;
  box-shadow: 0 8px 20px rgba(33,26,19,.12);
}

.countdown-rect-label{
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  opacity: .84;
  font-weight: 700;
}

.countdown-rect-value{
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(24px, 2.8vw, 34px);
  line-height: 1;
  font-weight: 700;
}

.cta{ display:flex; gap: 10px; flex-wrap:wrap; margin-top: 16px; }

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 8px;
  border-radius: 14px;
  padding: 12px 15px;
  border:1px solid rgba(96,71,43,.24);
  background: rgba(238,229,214,.92);
  cursor:pointer;
  font-weight: 650;
  transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

.btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(33,26,19,.12);
}

.btn.primary{
  border-color: rgba(122,29,45,.50);
  background: linear-gradient(180deg, rgba(122,29,45,.50), rgba(176,138,74,.34));
  color: #fff2d8;
}

.btn.ghost{ background: transparent; }

/* ---------- Editorial Strip ---------- */
.editorial{
  border: 1px solid rgba(176,138,74,.24);
  background: linear-gradient(180deg, rgba(244,236,222,.92), rgba(228,214,192,.90));
  border-radius: 18px;
  padding: 26px;
  margin: 14px 0 10px;
}

.editorial-grid{
  display:grid;
  grid-template-columns: .95fr 1.05fr;
  gap: 24px;
  align-items: stretch;
}

.editorial-image{
  min-height: 260px;
  border-radius: 16px;
  border: 1px solid rgba(87,65,39,.22);
  background:
    radial-gradient(540px 220px at 25% 18%, rgba(143,91,70,.27), transparent 60%),
    radial-gradient(520px 220px at 78% 80%, rgba(79,103,85,.22), transparent 62%),
    linear-gradient(135deg, rgba(255,252,247,.72), rgba(240,225,204,.58));
  box-shadow: var(--shadow-soft);
  position: relative;
  overflow: hidden;
}

.editorial-image img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.editorial-image::before{
  content:"Wennington Winter Wedding";
  position: absolute;
  left: 18px;
  bottom: 18px;
  font-size: 12px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(33,26,19,.7);
  background: rgba(255,252,247,.74);
  border: 1px solid rgba(176,138,74,.24);
  border-radius: 999px;
  padding: 7px 12px;
}

.editorial-copy h3{
  margin: 6px 0 8px;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(31px, 4vw, 48px);
  line-height: .96;
  font-weight: 600;
  color: #2d2117;
}

.editorial-copy p{
  margin: 0;
  color: rgba(61, 45, 31, .88);
  line-height: 1.75;
}

@media (max-width: 900px){
  .editorial-grid{ grid-template-columns: 1fr; }
}

/* ---------- Timeline ---------- */
.timeline{ display:grid; gap: 14px; }
.t-item{ display:flex; gap: 12px; align-items:flex-start; }

.dot{
  width: 12px;
  height: 12px;
  border-radius: 30px;
  background: var(--accent);
  margin-top: 6px;
  box-shadow: 0 0 0 4px var(--accent-soft);
}

.t-body h3{ margin: 0 0 4px 0; font-size: 16px; }
.t-body p{ margin:0; color: #4c3828; line-height: 1.6; }

/* ---------- Forms ---------- */
form{ display:grid; gap: 12px; }
label{ font-size: 12px; color: #4c3828; letter-spacing: .05em; text-transform: uppercase; font-weight: 700; }

input, select, textarea{
  width:100%;
  padding: 12px 12px;
  border-radius: 12px;
  border: 1px solid rgba(56,43,32,.14);
  background: rgba(255,255,255,.9);
  outline:none;
  font-size: 15px;
  font-family: inherit;
}

input:focus, select:focus, textarea:focus{
  border-color: rgba(143,91,70,.45);
  box-shadow: 0 0 0 4px rgba(143,91,70,.14);
}

.row-2{ display:grid; gap: 12px; grid-template-columns: 1fr 1fr; }
@media (max-width: 760px){ .row-2{ grid-template-columns: 1fr; } }

/* ---------- FAQ ---------- */
.faq button{
  width:100%;
  text-align:left;
  border:none;
  background: transparent;
  padding: 14px 0;
  cursor:pointer;
  display:flex;
  justify-content:space-between;
  gap: 14px;
  align-items:center;
  font-weight: 700;
}

.faq .a{
  color: rgba(74, 55, 36, .92);
  padding: 0 0 14px 0;
  display:none;
  line-height: 1.6;
  font-weight: 500;
}

.faq .item + .item{ border-top: 1px solid rgba(56,43,32,.10); }
.faq .item.open .a{ display:block; }


/* ---------- Menu ---------- */
.menu-halal-note{
  margin-top: 18px;
  display: inline-flex;
  align-items: center;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid rgba(122,29,45,.24);
  background: linear-gradient(180deg, rgba(250,244,233,.96), rgba(231,217,193,.94));
  color: #3a291b;
  box-shadow: 0 8px 18px rgba(23, 18, 14, .08);
}

.menu-key{
  margin: 14px 0 0;
  color: rgba(68, 50, 32, .88);
  font-size: 13px;
  line-height: 1.7;
}

.menu-grid{
  align-items: stretch;
}

.menu-course{
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.menu-course-kicker{
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(84, 60, 37, .72);
  font-weight: 700;
}

.menu-list{
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 12px;
}

.menu-list li{
  color: rgba(54, 40, 27, .92);
  line-height: 1.68;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(87,65,39,.12);
}

.menu-list li:last-child{
  padding-bottom: 0;
  border-bottom: none;
}
/* ---------- Gallery ---------- */
.gallery {
  display: grid;
  gap: 12px;
  grid-template-columns: 1.2fr .8fr .8fr;
  grid-auto-rows: 190px;
}

.g-item{
  position: relative;
  overflow: hidden;
  border-radius: 18px;
  border: 1px solid rgba(87,65,39,.22);
  background:
    radial-gradient(640px 250px at 25% 20%, rgba(143,91,70,.24), transparent 62%),
    radial-gradient(540px 230px at 85% 30%, rgba(183,148,93,.22), transparent 62%),
    rgba(255,253,249,.72);
  box-shadow: var(--shadow-soft);
}

.g-item img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}
.winter-photo{
  object-position: center 37%;
}
.g-item::before{
  z-index: 1;
  content:"";
  position:absolute;
  inset: 10px;
  border: 1px solid rgba(183,148,93,.20);
  border-radius: 12px;
}

.g-label{
  z-index: 2;
  position:absolute;
  left: 14px;
  bottom: 14px;
  display:inline-flex;
  gap: 10px;
  align-items:center;
  padding: 10px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(87,65,39,.22);
  color: rgba(28,27,27,.72);
  font-size: 13px;
}

.g-label strong{ color: rgba(28,27,27,.94); }

.g-heart{
  width: 10px;
  height: 10px;
  border-radius: 3px;
  transform: rotate(45deg);
  background: rgba(143,91,70,.88);
  position: relative;
  margin-right: 2px;
  box-shadow: 0 0 0 4px rgba(143,91,70,.12);
}

.g-heart:before,
.g-heart:after{
  content:"";
  position:absolute;
  width: 10px;
  height: 10px;
  border-radius: 30px;
  background: rgba(143,91,70,.88);
  top: -5px;
  left: 0;
}

.g-heart:after{ left: -5px; top: 0; }

@media (max-width: 900px){
  .gallery{ grid-template-columns: 1fr 1fr; grid-auto-rows: 170px; }
}

@media (max-width: 560px){
  .gallery{ grid-template-columns: 1fr; grid-auto-rows: 170px; }
}

.g-item.big{ grid-row: span 2; }
@media (max-width: 900px){ .g-item.big{ grid-row: span 1; } }

.mobile-day-strip{
  display: none;
}

.mobile-rsvp-bar{
  display: none;
}

@media (max-width: 760px){
  body{
    padding-bottom: 104px;
  }

  .container{
    width: min(var(--max), calc(100% - 24px));
  }

  .section{
    padding: 26px 0;
  }

  .hero{
    padding: 18px 0 14px;
  }

  .hero-wrap{
    padding: 26px 18px 22px;
    border-radius: 24px;
    background:
      radial-gradient(620px 280px at 12% 0%, rgba(29,66,53,.44), transparent 62%),
      radial-gradient(540px 260px at 100% 12%, rgba(96,20,34,.28), transparent 58%),
      linear-gradient(180deg, rgba(238,231,219,.96), rgba(222,210,189,.94));
  }

  .hero-wrap::before{
    inset: 10px;
    border-radius: 18px;
  }

  .hero-wrap::after{
    opacity: .22;
    background-position: center center;
  }

  .split{
    display: grid;
    gap: 12px;
  }

  .badge{
    padding: 6px 10px;
    font-size: 10px;
    letter-spacing: .12em;
  }

  .h1{
    font-size: clamp(50px, 14vw, 72px);
    line-height: .9;
    max-width: 9ch;
  }

  .lede{
    font-size: 17px;
    line-height: 1.82;
  }

  .small{
    font-size: 12px;
    line-height: 1.7;
  }

  .kv{
    gap: 8px;
  }

  .kv .pill{
    width: 100%;
    justify-content: space-between;
    padding: 11px 14px;
    font-size: 12px;
  }

  .cta{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 8px;
  }

  .cta .btn.primary{
    grid-column: 1 / -1;
    min-height: 54px;
    font-size: 15px;
  }

  .cta .btn{
    min-height: 48px;
  }

  .countdown-rect{
    width: 100%;
    min-width: 0;
    margin-top: 2px;
    padding: 14px 16px;
    border-radius: 18px;
  }

  .countdown-rect-label{
    font-size: 10px;
    letter-spacing: .14em;
  }

  .countdown-rect-value{
    font-size: clamp(28px, 9vw, 44px);
  }

  .mobile-day-strip{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    margin-top: 4px;
  }

  .mobile-day-strip-item{
    padding: 12px 10px;
    border-radius: 16px;
    background: linear-gradient(180deg, rgba(248,242,231,.9), rgba(226,212,189,.88));
    border: 1px solid rgba(113,84,49,.18);
    box-shadow: 0 10px 20px rgba(23, 18, 14, .08);
    text-align: center;
    color: #2f2218;
  }

  .mobile-day-strip-item strong{
    display: block;
    margin-top: 3px;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 24px;
    line-height: 1;
  }

  .mobile-day-strip-label{
    display: block;
    font-size: 10px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(70, 53, 37, .74);
  }

  .card{
    border-radius: 24px;
  }

  .card::before{
    inset: 9px;
    border-radius: 18px;
  }

  .pad-lg{
    padding: 24px 18px;
  }

  .pad-md{
    padding: 16px 14px;
  }

  .grid,
  .grid-3{
    gap: 14px;
  }

  .editorial{
    padding: 18px;
    margin: 10px 0 6px;
  }

  .editorial-image{
    min-height: 220px;
  }

  .editorial-copy h3{
    font-size: clamp(34px, 10vw, 44px);
  }

  .gallery{
    gap: 10px;
  }

  .mobile-rsvp-bar{
    display: block;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 140;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
    background: linear-gradient(180deg, rgba(20,24,22,.1), rgba(20,24,22,.82) 28%, rgba(20,24,22,.96));
    backdrop-filter: blur(10px);
  }

  .mobile-rsvp-bar-inner{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 18px;
    border: 1px solid rgba(176,138,74,.22);
    background: linear-gradient(180deg, rgba(34,40,36,.94), rgba(23,27,24,.98));
    box-shadow: 0 12px 28px rgba(8, 7, 6, .28);
  }

  .mobile-rsvp-bar-inner strong{
    display: block;
    color: #f4e7c6;
    font-size: 14px;
  }

  .mobile-rsvp-kicker{
    display: block;
    margin-bottom: 2px;
    color: rgba(226,209,178,.74);
    font-size: 10px;
    letter-spacing: .14em;
    text-transform: uppercase;
  }

  .mobile-rsvp-bar .btn{
    min-width: 110px;
    min-height: 46px;
    padding: 12px 16px;
    flex-shrink: 0;
  }
}

@media (max-width: 560px){
  .mobile-day-strip{
    grid-template-columns: 1fr;
  }

  .cta{
    grid-template-columns: 1fr;
  }

  .cta .btn.primary{
    grid-column: auto;
  }
}
/* ---------- Footer ---------- */
.footer{
  padding: 34px 0 58px;
  color: rgba(70, 53, 37, .90);
  font-size: 14px;
}

/* ---------- Fade ---------- */
.fade-in{
  opacity: 0;
  transform: translateY(12px);
  animation: fade 820ms cubic-bezier(.2,.65,.2,1) forwards;
}

@keyframes fade{
  to{ opacity: 1; transform: translateY(0); }
}



































































