#rsvp .form-card{max-width:650px;border:1px solid rgba(128,128,0,.22);border-radius:24px;box-shadow:0 24px 70px rgba(92,64,51,.12);overflow:hidden;background:rgba(255,255,255,.82);backdrop-filter:blur(10px)}#rsvp .form-header{padding:24px 28px 0}#rsvp .form-content{padding:24px 30px 30px}.rsvp-welcome{text-align:center;padding:2px 0 24px}.rsvp-eyebrow{display:inline-block;color:var(--sage);font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;margin-bottom:8px}.rsvp-welcome h3{font-family:var(--font-heading);font-size:2rem;color:var(--primary);margin:0 0 8px}.rsvp-welcome p{color:var(--muted-foreground);margin:0;line-height:1.6}.attendance-fieldset{border:0;padding:0;margin:0 0 24px}.attendance-fieldset legend{width:100%;font-weight:700;color:var(--foreground);margin-bottom:12px}.attendance-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.attendance-card{position:relative;display:flex;align-items:center;gap:12px;min-height:95px;padding:16px;border:1.5px solid rgba(163,177,138,.35);border-radius:16px;background:#fff;cursor:pointer;transition:transform .2s,border-color .2s,box-shadow .2s}.attendance-card:hover{transform:translateY(-2px);border-color:var(--sage);box-shadow:0 10px 24px rgba(92,64,51,.09)}.attendance-card input{position:absolute;opacity:0;pointer-events:none}.choice-icon{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:50%;background:rgba(163,177,138,.14);color:var(--olive);font-size:1.15rem}.attendance-card strong,.attendance-card small{display:block}.attendance-card strong{font-size:.92rem;color:var(--foreground)}.attendance-card small{color:var(--muted-foreground);font-size:.75rem;margin-top:4px}.choice-check{position:absolute;right:12px;top:10px;display:grid;place-items:center;width:21px;height:21px;border:1px solid var(--sand);border-radius:50%;color:transparent;font-size:.7rem}.attendance-card:has(input:checked){border-color:var(--olive);background:rgba(163,177,138,.09);box-shadow:0 0 0 3px rgba(128,128,0,.08)}.attendance-card:has(input:checked) .choice-check{background:var(--olive);border-color:var(--olive);color:white}.decline-card:has(input:checked){border-color:var(--bark);background:rgba(92,64,51,.06)}.decline-card:has(input:checked) .choice-check{background:var(--bark);border-color:var(--bark)}.rsvp-note-field{padding-top:4px}.rsvp-note-field label{font-weight:700;font-size:.95rem;margin-bottom:4px}.rsvp-note-field label span{font-weight:400;color:var(--muted-foreground)}.rsvp-note-field p{font-size:.78rem;color:var(--muted-foreground);margin:0 0 10px}.rsvp-note-field textarea{border-radius:14px;background:#fff;padding:14px;line-height:1.5}.rsvp-submit-btn{width:100%;display:flex;justify-content:center;gap:18px;align-items:center;margin-top:20px;padding:14px 20px;border:0;border-radius:999px;background:linear-gradient(135deg,var(--olive),var(--sage));color:#fff;font-weight:700;font-size:.95rem;cursor:pointer;box-shadow:0 12px 25px rgba(128,128,0,.2);transition:transform .2s,box-shadow .2s}.rsvp-submit-btn:hover{transform:translateY(-2px);box-shadow:0 16px 30px rgba(128,128,0,.28)}.rsvp-privacy{text-align:center;color:var(--muted-foreground);font-size:.73rem;margin:12px 0 0}.rsvp-already{text-align:center;padding:22px 10px}.rsvp-already>span{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 14px;border-radius:50%;background:rgba(163,177,138,.18);color:var(--olive);font-size:1.5rem}.rsvp-already h3{font-family:var(--font-heading);font-size:1.8rem;color:var(--primary);margin:0 0 10px}.rsvp-already p{line-height:1.7;color:var(--muted-foreground);margin-bottom:20px}.voice-recorder{padding:18px;border:1px dashed rgba(128,128,0,.38);border-radius:16px;background:rgba(163,177,138,.07);margin-bottom:18px}.voice-recorder>div:first-child strong{color:var(--foreground)}.voice-recorder>div:first-child p{color:var(--muted-foreground);font-size:.8rem;margin:4px 0 14px}.record-btn{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--sage);border-radius:999px;padding:10px 16px;background:#fff;color:var(--bark);cursor:pointer;font-weight:700}.record-dot{width:10px;height:10px;border-radius:50%;background:#b91c1c}.record-btn.recording{background:#fff1f2;border-color:#ef4444;color:#991b1b}.record-btn.recording .record-dot{animation:recordPulse 1s infinite}.recording-preview{margin-top:14px}.recording-preview audio{width:100%;height:40px}.text-btn{border:0;background:transparent;color:var(--bark);text-decoration:underline;cursor:pointer;margin-top:8px}.voice-recorder .field-help{margin:10px 0 0}@keyframes recordPulse{50%{opacity:.3;transform:scale(.7)}}@media(max-width:620px){#rsvp .form-content{padding:20px}.attendance-options{grid-template-columns:1fr}.attendance-card{min-height:82px}.rsvp-welcome h3{font-size:1.65rem}}
/* Martin & Bridget modern editorial theme */
:root {
  --sage: #8B937E;
  --blush: #D8A7A5;
  --bark: #4D5D4A;
  --olivewood: #DECDB8;
  --olive: #66735C;
  --sand: #DBC8B8;
  --parchment: #F7F2EC;
  --background: #F7F2EC;
  --foreground: #354033;
  --primary: #66735C;
  --secondary: #DBC8B8;
  --muted-foreground: #5C6658;
  --accent: #DECDB8;
  --border: rgba(102,115,92,.18);
  --romantic-gradient: linear-gradient(145deg,#F7F2EC 0%,#F1E7DC 55%,#E9DED2 100%);
  --elegant-shadow: 0 24px 70px -35px rgba(77,93,74,.42);
}

body { background:#F7F2EC; }
nav.scrolled { background:rgba(255,249,245,.9); border-bottom:1px solid rgba(77,93,74,.1); }
.nav-inner { height:4.75rem; }
.nav-logo { letter-spacing:-.02em; }
.hero { min-height:720px; }
.hero-overlay { background:linear-gradient(90deg,rgba(17,38,29,.8) 0%,rgba(17,38,29,.42) 48%,rgba(17,38,29,.24) 100%); }
.hero-content { text-align:left; margin-left:0; max-width:760px; }
.hero-content-wrap { align-items:center; max-width:80rem; margin:auto; padding:0 1.5rem; }
.hero-main-icon { margin-left:0; color:#DECDB8; }
.hero-text { font-size:clamp(4rem,9vw,7.5rem); line-height:.85; letter-spacing:-.055em; text-wrap:balance; }
.hero-sub { letter-spacing:.35em; text-transform:uppercase; font-size:.78rem; }
.hero-detail { justify-content:flex-start; }
.countdown { justify-content:flex-start; }
.countdown-card { background:rgba(248,245,239,.11); border:1px solid rgba(255,255,255,.24); backdrop-filter:blur(14px); }
.primary-btn,.btn,.rsvp-submit-btn { border-radius:999px; background:#66735C; box-shadow:0 14px 34px rgba(77,93,74,.25); }
.section-padding { padding:clamp(5rem,9vw,8.5rem) 1.25rem; }
.section-title { letter-spacing:-.04em; }
.wedding-card,.form-card { border:1px solid var(--border); border-radius:1.5rem; background:rgba(255,253,248,.82); }
.story-grid { align-items:center; gap:clamp(2.5rem,7vw,7rem); }
.story-copy h3 { font-size:clamp(2rem,4vw,3.7rem); line-height:1.08; margin:.75rem 0 1.5rem; color:#4D5D4A; }
.story-kicker { color:#9A7440; text-transform:uppercase; letter-spacing:.18em; font-size:.72rem; font-weight:700; }
.placeholder-photo { position:relative; }
.placeholder-photo span { position:absolute; left:1rem; bottom:1rem; background:rgba(23,61,45,.85); color:#fff; border-radius:999px; padding:.6rem .9rem; font-size:.68rem; letter-spacing:.05em; }
.story-img { border-radius:12rem 12rem 1.5rem 1.5rem; min-height:580px; object-fit:cover; }
.story-copy p { font-size:1rem; line-height:1.78; margin:0 0 1rem; }
.story-copy blockquote { margin:1.5rem 0; padding:1rem 1.25rem; border-left:4px solid var(--accent); background:rgba(222,205,184,.22); color:var(--primary); font:italic 1.2rem/1.6 "Playfair Display",serif; }
.location-grid { grid-template-columns:1fr; max-width:52rem; margin-inline:auto; }
.bank-divider { height:1px; background:var(--border); margin:1.4rem 0; }
.color-swatch { border-radius:50%; box-shadow:0 8px 20px rgba(23,61,45,.12); }
.message-section { background:#4D5D4A; }
.message-section .form-card { background:#F7F2EC; }
.photography-section { background:linear-gradient(145deg,#F7F2EC,#F1E7DC); }
.photography-card { padding:clamp(1.5rem,4vw,3rem); }
.photography-card>p { font-size:1rem; line-height:1.75; color:var(--muted-foreground); }
.photography-card h3 { margin:1.75rem 0 1rem; }
.etiquette-list { display:grid; gap:.9rem; margin:0; padding:0; list-style:none; }
.etiquette-list li { position:relative; padding:1rem 1rem 1rem 3rem; border:1px solid rgba(102,115,92,.15); border-radius:1rem; background:rgba(255,255,255,.65); color:var(--foreground); line-height:1.65; }
.etiquette-list li::before { content:"✓"; position:absolute; left:1rem; top:1rem; display:grid; place-items:center; width:1.35rem; height:1.35rem; border-radius:50%; background:var(--sage); color:#fff; font-size:.75rem; font-weight:700; }
.photography-thanks { margin-top:1.5rem; color:var(--primary)!important; font-size:1.35rem!important; text-align:center; }
.dress-code-note { max-width:46rem; margin:1.75rem auto 0; text-align:center; }
.program-desktop { display:none; }
.program-row { display:grid; grid-template-columns:minmax(180px,230px) 1fr; gap:1.5rem; align-items:center; padding:1.05rem 1.25rem; border-bottom:1px solid var(--border); }
.program-row:last-child { border-bottom:0; }
.program-time { font-size:1.08rem; }
.program-event { color:var(--foreground); }
@media(min-width:768px){.program-desktop{display:grid;max-width:58rem;margin:auto;background:rgba(255,255,255,.65);border:1px solid var(--border);border-radius:1.5rem;overflow:hidden;box-shadow:var(--elegant-shadow)}.program-mobile{display:none}}
@media(max-width:767px){.program-mobile .program-item{align-items:flex-start}.program-mobile .font-romantic{min-width:125px!important;font-size:.96rem!important;line-height:1.35}.program-mobile .program-line{margin-top:.65rem}.program-mobile .elegant-text{line-height:1.5}}

@media (max-width:767px) {
  .hero-content { text-align:center; }
  .hero-main-icon { margin-inline:auto; }
  .hero-detail,.countdown { justify-content:center; }
  .hero-text { font-size:clamp(3.6rem,18vw,5rem); }
  .placeholder-photo span { right:1rem; text-align:center; }
  .story-img { min-height:430px; }
}

/* Focused responsive fixes — original homepage composition preserved */
.nav-btn {
  color: #9A7440;
  text-decoration: none;
}

.nav-btn:hover,
.nav-btn.active {
  color: #66735C;
  background: rgba(231,183,178,.22);
}

.menu-toggle { color: #9A7440; }

.hero-slide {
  background: #173d2d;
}

.hero-slide img {
  object-fit: contain;
  object-position: center;
}

.story-img {
  width: 100%;
  height: auto;
  min-height: 0;
  max-height: none;
  object-fit: contain;
}

.location-grid {
  width: 100%;
  max-width: 72rem;
  align-items: stretch;
}

.location-card {
  height: 100%;
  display: flex;
  flex-direction: column;
}

.location-card .map-placeholder {
  margin-top: auto;
}

.gift-grid { align-items: stretch; }

.gift-card {
  height: 100%;
  display: flex;
  flex-direction: column;
}

.gift-card > h3 { margin-bottom: .35rem; }
.gift-card > .small { min-height: 1.5rem; margin-top: 0; }

.detail-box {
  width: 100%;
  min-height: 76px;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-content: center;
  column-gap: .75rem;
}

.detail-box p {
  grid-column: 1 / -1;
}

.detail-box strong {
  min-width: 0;
  overflow-wrap: anywhere;
}

.detail-box .copy-btn {
  grid-column: 2;
  align-self: center;
}

.gift-note { margin-top: auto; }

img,
video,
audio { max-width: 100%; }

@media (min-width: 1024px) {
  .location-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 767px) {
  .nav-logo { font-size: 1.05rem; }
  .hero { min-height: 100svh; }
  .hero-text { overflow-wrap: anywhere; }
  .countdown { gap: .45rem; }
  .countdown-card { min-width: 64px; padding-inline: .45rem; }
  .location-card,.gift-card { padding: 1.35rem; }
  .detail-box { min-height: 70px; }
}

/* Full-screen hero photographs without discarding image content */
.hero-slide {
  isolation: isolate;
  overflow: hidden;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}

.hero-slide::before {
  content: "";
  position: absolute;
  inset: -24px;
  z-index: 0;
  background-image: inherit;
  background-position: center;
  background-size: cover;
  filter: blur(18px) saturate(.9);
  transform: scale(1.05);
}

.hero-slide img {
  position: relative;
  z-index: 1;
  object-fit: contain;
}

/* Reliable touch navigation */
@media (max-width: 1023px) {
  nav { overflow: visible; }

  .menu-toggle {
    position: relative;
    z-index: 71;
    display: grid;
    place-items: center;
    min-width: 44px;
    min-height: 44px;
    cursor: pointer;
    touch-action: manipulation;
  }

  .mobile-menu {
    position: absolute;
    top: 100%;
    left: .75rem;
    right: .75rem;
    z-index: 70;
    max-height: calc(100svh - 5.5rem);
    overflow-y: auto;
    padding: .65rem;
    background: rgba(248,245,239,.98);
    border: 1px solid rgba(116,50,31,.16);
    border-radius: 0 0 1rem 1rem;
    box-shadow: 0 24px 55px rgba(23,61,45,.25);
  }

  .mobile-menu.open {
    display: grid;
    gap: .25rem;
  }

  .mobile-menu .nav-btn {
    display: flex;
    align-items: center;
    min-height: 48px;
    width: 100%;
    padding: .75rem 1rem;
    color: #9A7440;
    border-radius: .65rem;
    cursor: pointer;
    touch-action: manipulation;
  }

  .mobile-menu .nav-btn:hover,
  .mobile-menu .nav-btn:focus-visible,
  .mobile-menu .nav-btn.active {
    color: #66735C;
    background: rgba(231,183,178,.22);
    outline: none;
  }

  .mobile-menu .auth-btn { justify-content: center; }
}

/* Responsive hero art direction: natural proportions on desktop and mobile */
.hero-slide {
  background: none !important;
}

.hero-slide::before {
  display: none;
}

.hero-slide picture {
  display: block;
  width: 100%;
  height: 100%;
}

.hero-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover !important;
  object-position: center;
}
