.itinerary { background: #f0e5d5; }
.itinerary-grid { margin-top: 42px; border-top: 1px solid var(--line); }
.itinerary-grid article { padding: 25px 0; border-bottom: 1px solid var(--line); }
.itinerary-grid span { color: var(--clay); font-size: 10px; letter-spacing: .16em; }
.itinerary-grid h3 { font: normal 26px Georgia, serif; margin: 7px 0; }
.itinerary-grid p { margin: 0; color: #5b5148; }
.itinerary-grid ul { list-style: none; padding: 0; margin: 16px 0 0; }
.itinerary-grid li { padding: 8px 0; border-top: 1px solid var(--line); color: #5b5148; }
.itinerary-note { margin: 30px 0 0; font: italic 16px Georgia, serif; color: #685e55; }
.lodge-gallery { background: #efe7dc; }
.lodge-gallery .gallery-heading > p { color: #665d55; }
.lodge-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 38px; }
.lodge-grid .photo { min-height: 180px; }
.lodge-grid .lodge-wide { grid-column: 1 / -1; min-height: 250px; }
.details-rsvp { scroll-margin-top: 92px; max-width: 1040px; margin: 42px auto 54px; background: var(--clay); color: white; text-align: left; box-shadow: 0 24px 60px rgba(66, 39, 25, .14); }
.rsvp-intro { padding: 38px 24px 30px; }
.details-rsvp .deadline { margin: 0 0 24px; font: normal clamp(42px, 12vw, 62px) Georgia, serif; line-height: .96; letter-spacing: -.035em; }
.details-rsvp .limited { margin: 0 0 16px; text-transform: uppercase; letter-spacing: .18em; font-size: 11px; font-weight: bold; color: #f4d8b9; }
.details-rsvp h3 { margin: 0; font: normal 28px Georgia, serif; }
.details-rsvp .rsvp-note { max-width: 430px; margin: 14px 0 0; color: #f7e9df; line-height: 1.55; }
.details-rsvp small { display: block; margin-top: 18px; color: #6d5c50; text-align: center; line-height: 1.45; }
.details-rsvp .rsvp-form { max-width: none; margin: 0; padding: 30px 24px 32px; background: #f5efe6; color: var(--ink); }
.rsvp-inputs { display: grid; gap: 8px; }
.rsvp-inputs label { margin-top: 10px; }
.rsvp-inputs input { width: 100%; border: 0; border-bottom: 1px solid rgba(43,36,29,.35); background: transparent; color: var(--ink); padding: 13px 4px; font: 18px Georgia, serif; outline: none; border-radius: 0; }
.rsvp-inputs input:focus { border-bottom-color: var(--clay); }
.rsvp-inputs input::placeholder { color: #8a7c70; }
.rsvp-submit { border-bottom: 0; margin-top: 24px; }
.rsvp-submit .button { width: 100%; min-height: 58px; border: 0; border-radius: 999px; padding: 18px 34px; justify-content: center; background: var(--clay); color: white; box-shadow: 0 10px 25px rgba(81, 42, 27, .2); }
.rsvp-form.success .rsvp-inputs,
.rsvp-form.success .rsvp-submit { display: none; }

@media (min-width: 720px) {
  .itinerary-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
  .itinerary-grid article { padding: 28px 30px; }
  .itinerary-grid article + article { border-left: 1px solid var(--line); }
  .lodge-grid { grid-template-columns: repeat(4, 1fr); }
  .lodge-grid .lodge-wide { grid-column: span 2; grid-row: span 2; min-height: 420px; }
  .details-rsvp { display: grid; grid-template-columns: minmax(0, .86fr) minmax(420px, 1.14fr); align-items: stretch; }
  .rsvp-intro { display: flex; flex-direction: column; justify-content: center; padding: 54px 46px; }
  .details-rsvp .deadline { font-size: clamp(48px, 4.6vw, 68px); }
  .details-rsvp .rsvp-form { padding: 46px 48px 38px; }
}
.hero .date span { display: block; }
.hero .date-value { margin-top: 2px; white-space: nowrap; }

.payment-options { display: grid; gap: 18px; margin: 42px auto 0; }
.payment-qr {
  width: min(100%, 320px);
  margin: 0 auto;
  padding: 26px 22px;
  text-align: center;
  border: 1px solid rgba(43, 36, 29, .18);
  background: rgba(255, 255, 255, .45);
}
.payment-qr .eyebrow { margin-bottom: 10px; }
.payment-qr h3 { margin: 0 0 18px; font: normal 25px/1.08 Georgia, serif; }
.payment-qr img { width: min(100%, 170px); margin: 0 auto; border-radius: 10px; }
.payment-qr > p:last-child { margin: 15px auto 0; max-width: 250px; color: #665d55; font-size: 12px; line-height: 1.5; }
@media (min-width: 720px) {
  .payment-options { grid-template-columns: repeat(2, minmax(0, 320px)); justify-content: center; align-items: start; }
}

