/* Alex & Saahas — isolated phone layout. Desktop remains governed by styles.css. */
:root {
  --mobile-gutter: 22px;
  --iphone-safe-top: max(env(safe-area-inset-top, 0px), 20px);
  --iphone-safe-bottom: env(safe-area-inset-bottom, 0px);
  --mobile-header-height: calc(62px + var(--iphone-safe-top));
}
html, body { width: 100%; max-width: 100%; overflow-x: clip; }
body { font-size: 16px; }
button, select, input, textarea { -webkit-appearance: none; appearance: none; }

/* Navigation */
.topbar {
  height: var(--mobile-header-height);
  padding: var(--iphone-safe-top) var(--mobile-gutter) 0;
}
.monogram { font-size: 21px; }
.menu {
  display: inline-flex;
  min-width: 54px;
  min-height: 44px;
  margin-left: auto;
  padding: 0;
  align-items: center;
  justify-content: flex-end;
  color: inherit;
  background: transparent;
  border: 0;
  border-radius: 0;
  font: 500 10px/1 Inter, sans-serif;
  letter-spacing: .16em;
  -webkit-tap-highlight-color: transparent;
}
.topbar nav {
  position: fixed;
  inset: var(--mobile-header-height) 0 auto;
  z-index: 55;
  display: grid;
  max-height: 0;
  overflow: hidden;
  gap: 0;
  margin: 0;
  padding: 0 var(--mobile-gutter);
  background: #14291c;
  color: #f4efe5;
  border: 0;
  opacity: 0;
  box-shadow: 0 20px 50px rgba(7,20,12,.28);
  transition: max-height .3s ease, opacity .22s ease, padding .3s ease;
}
.topbar nav.open {
  max-height: calc(100dvh - var(--mobile-header-height));
  padding: 12px var(--mobile-gutter) calc(24px + var(--iphone-safe-bottom));
  opacity: 1;
}
.topbar nav a,
.travel-compact-page .travel-video-nav nav a {
  display: flex;
  min-height: 50px;
  align-items: center;
  color: #f4efe5;
  border-bottom: 1px solid rgba(244,239,229,.18);
  font-size: 11px;
}
.topbar nav .pill {
  min-height: 48px;
  margin-top: 12px;
  justify-content: center;
  color: #14291c;
  background: #f4efe5;
  border: 1px solid #f4efe5;
  border-radius: 0;
}
.travel-compact-page .travel-video-nav .menu { color: #fff; }
.travel-compact-page .travel-video-nav.scrolled .menu { color: #fff; }
footer {
  min-height: 96px;
  padding: 24px var(--mobile-gutter) calc(24px + var(--iphone-safe-bottom));
  display: grid;
  grid-template-columns: 1fr 1.45fr 1fr;
  align-items: center;
  gap: 10px;
  text-align: center;
}
footer span { font-size: 7px; line-height: 1.45; letter-spacing: .12em; }
footer span:first-child { text-align: left; font-family: "Cormorant Garamond", serif; font-size: 15px; letter-spacing: .03em; text-transform: none; }
footer span:last-child { text-align: right; }

/* Home */
.home-page .v6-hero { height: 100svh; min-height: 600px; background: #14291c; }
.home-page .v6-hero-bg { height: 100%; object-position: 51% 50%; }
.home-page .v6-hero-title {
  left: 18px; right: 18px; top: calc(var(--mobile-header-height) + 7.5svh); bottom: auto;
  height: auto; transform: none; display: flex; flex-direction: column;
  align-items: center; justify-content: flex-start;
}
.home-page .v6-hero-title > p { margin: 0 0 10px; max-width: 300px; font-size: 7px; line-height: 1.45; letter-spacing: .2em; }
.home-page .v6-hero-title h1 { gap: 5px; font-size: clamp(46px,14.4vw,64px); line-height: .8; }
.home-page .v6-hero-title h1 i { font-size: .23em; }
.home-page .v6-hero-meta { margin-top: 15px; flex-direction: row; align-items: center; gap: 16px; font-size: 7px; }
.home-page .v6-hero-date, .home-page .v6-hero-location, .home-page .v6-scroll { display: none; }
.home-page .v6-hero-vignette {
  height: 100%;
  background: linear-gradient(180deg,rgba(6,13,9,.38) 0%,rgba(6,13,9,.08) 33%,rgba(6,13,9,0) 62%,rgba(6,13,9,.26) 100%);
}
.home-page .v6-statement { padding: 74px var(--mobile-gutter) 78px; }
.home-page .v6-kicker { margin-bottom: 24px; font-size: 8px; }
.home-page .v6-statement h2 { font-size: clamp(45px,14vw,62px); line-height: .87; }
.home-page .v6-lead { margin-top: 31px; font-size: 18px; line-height: 1.55; }
.home-page .home-featured-directory {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  grid-template-rows: minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr);
  gap: 1px;
  height: 100svh;
  min-height: 0;
  overflow: hidden;
}
.home-page .home-featured-directory .v6-link-panel,
.home-page .home-featured-directory .v6-link-panel:first-child {
  width: auto;
  min-height: 0;
  left: auto;
  right: auto;
  flex: none;
}
.home-page .home-featured-directory .v8-tile-featured { grid-column: 1/-1; background: #14291c; }
.home-page .home-featured-directory .v8-tile-featured .v8-tile-art { height: 100%; object-position: 51% 43%; }
.home-page .home-featured-directory .v8-tile-featured .v8-tile-shade { background: linear-gradient(0deg,rgba(12,30,20,.92),rgba(15,35,24,.2) 76%); }
.home-page .home-featured-directory .v8-tile:before { inset: 9px; }
.home-page .home-featured-directory .v8-tile:after { right: 18px; bottom: 17px; font-size: 27px; }
.home-page .home-featured-directory .v6-link-panel > div:last-child,
.home-page .home-featured-directory .v8-tile-featured > div:last-child { left: 18px; right: 38px; bottom: 21px; }
.home-page .home-featured-directory .v6-index { top: 16px; left: 16px; font-size: 16px; }
.home-page .home-featured-directory .v6-link-panel p { font-size: 7px; letter-spacing: .13em; }
.home-page .home-featured-directory .v6-link-panel h3 { margin: 4px 0 0; font-size: clamp(21px,6.2vw,29px); line-height: .88; overflow-wrap: normal; }
.home-page .home-featured-directory .v8-tile-featured h3 { max-width: 310px; font-size: clamp(35px,10vw,48px); }
.home-page .home-featured-directory .v6-panel-button { display: none; }
.home-page .v6-rsvp { height: 100svh; min-height: 600px; background: #14291c; }
.home-page .v6-rsvp > img { height: 100%; object-position: 51% center; }
.home-page .v6-rsvp .v6-rsvp-shade { display: block; background: linear-gradient(180deg,rgba(7,17,11,.47) 0%,rgba(7,17,11,.1) 37%,rgba(7,17,11,0) 66%,rgba(7,17,11,.18) 100%); }
.home-page .v6-rsvp > div:last-child {
  left: var(--mobile-gutter); right: var(--mobile-gutter); top: 10svh; bottom: auto; height: auto;
  display: flex; flex-direction: column; align-items: center; justify-content: flex-start;
  padding: 0; text-align: center;
}
.home-page .v6-rsvp h2 { margin: 9px 0 15px; font-size: clamp(45px,13.5vw,62px); line-height: .82; }
.home-page .v6-rsvp-button { display: inline-flex; min-height: 44px; align-items: center; font-size: 12px; }

/* Approved mobile composition: sky masthead, editorial mosaic, quiet actions. */
/* Editorial mobile hero: desktop serif, italic ampersand, original photograph. */
.home-page .v6-hero { height: 100svh; min-height: 680px; background: #eeeae6; color: #14291c; }
.home-page .v6-hero-bg {
  inset: auto 0 0; width: 100%; height: 72%;
  object-fit: cover; object-position: 51% 50%; transform: none;
  mask-image: linear-gradient(to bottom, transparent, #000 14%);
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 14%);
}
.home-page .v6-hero-vignette { background: none; }
.home-page .v6-hero-title {
  top: calc(var(--mobile-header-height) + 16px); left: 18px; right: 18px;
  color: #14291c; text-shadow: none;
}
.home-page .v6-hero-title > p {
  max-width: none; font: 500 clamp(10px, 2.95vw, 17px)/1.4 "Cormorant Garamond", Georgia, serif;
  letter-spacing: .2em; margin: 0 0 14px; text-shadow: none;
}
.home-page .hero-invitation-detail { display: block; }
.home-page .v6-hero-title h1 {
  display: grid; grid-template-columns: auto auto; column-gap: 9px; row-gap: 0;
  align-items: baseline; justify-content: center; margin: 0;
  font: 500 clamp(63px, 19.7vw, 113px)/.94 "Cormorant Garamond", serif;
  letter-spacing: -.035em; text-shadow: none;
}
.home-page .v6-hero-title h1 > span:first-child { grid-column: 1 / -1; }
.home-page .v6-hero-title h1 i {
  font-family: "Cormorant Garamond", serif; font-weight: 400; font-style: italic;
  font-size: .68em; line-height: 1; letter-spacing: -.06em;
}
.home-page .v6-hero-meta {
  margin-top: 17px; font: 500 clamp(10px, 2.95vw, 17px)/1.4 "Cormorant Garamond", Georgia, serif;
  gap: 4px; flex-direction: column; letter-spacing: .12em; text-shadow: none;
}
.home-page .overlay-nav:not(.scrolled) { color: #14291c; background: transparent; }
.home-page .overlay-nav:not(.scrolled) .monogram,
.home-page .overlay-nav:not(.scrolled) .menu { color: #14291c; }
@media (min-width: 540px) {
  .home-page .v6-hero { min-height: 860px; }
}
.home-page .home-featured-directory { height: calc(100svh - var(--mobile-header-height)); min-height: 420px; grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: repeat(3,minmax(0,1fr)); grid-template-areas: 'note weekend' 'note travel' 'faq rsvp'; scroll-margin-top: var(--mobile-header-height); }
.home-page .home-featured-directory .v8-tile-featured { grid-area: note; }
.home-page .home-featured-directory .v8-tile-olive { grid-area: weekend; }
.home-page .home-featured-directory .v8-tile-sand { grid-area: travel; }
.home-page .home-featured-directory .v8-tile-moss { grid-area: faq; }
.home-page .home-featured-directory .v8-tile-rsvp { grid-area: rsvp; }
.home-page .home-featured-directory .v6-link-panel > div:last-child { left: 16px; right: 16px; bottom: 20px; }
.home-page .home-featured-directory .v6-link-panel h3,
.home-page .home-featured-directory .v8-tile-featured h3 { font-size: clamp(25px,7vw,38px); line-height: 1; margin: 0; }
.home-page .home-featured-directory .v6-link-panel p { display: none; }
.home-page .home-featured-directory .v6-index { font-size: 12px; }
.home-page .home-featured-directory .v8-tile::after,
.weekend-story-page .ws-guide::after { display: none; }
.mobile-action-arrow { display: none !important; }
.home-page .v6-rsvp-button,
.weekend-story-page .ws-guide,
.v6-outline-button,
.travel-book-button,
.note-next a,
.faq-help .faq-help-actions a,
.thanks-book,
.dress-guide-expand { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 12px 20px; border: 1px solid currentColor; border-radius: 999px; background: transparent; font-size: 14px; line-height: 1.3; letter-spacing: .08em; text-align: center; }
.home-page .home-featured-directory .v8-tile:focus-visible { outline: 3px solid #f4efe5; outline-offset: -5px; }

/* Weekend */
.weekend-story-page main { padding-top: var(--mobile-header-height); }
.weekend-story-page .ws-intro { display: block; padding: 30px var(--mobile-gutter) 22px; text-align: center; }
.weekend-story-page .ws-intro h1 { font-size: clamp(48px,14vw,62px); }
.weekend-story-page .ws-intro em { display: block; margin-top: 7px; font-size: 17px; }
.weekend-story-page .ws-stage,
.weekend-story-page.ws-saturday .ws-stage,
.weekend-story-page.ws-sunday .ws-stage {
  width: auto; margin: 0 12px 20px; padding: 0;
  min-height: 0; height: auto; max-height: none; overflow: visible;
}
.weekend-story-page .ws-days { position: relative; inset: auto; width: 100%; height: auto; min-height: 90px; margin: 0 0 12px; transform: none; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.weekend-story-page .ws-day {
  width: 100%; height: 90px; min-width: 0; padding: 8px 4px;
  display: grid; grid-template-columns: auto auto; grid-template-rows: 18px auto;
  column-gap: 4px; justify-content: center; align-content: center; text-align: center;
}
.weekend-story-page .ws-day b { display: block; grid-column: 1; grid-row: 1; font-size: 7px; letter-spacing: .1em; }
.weekend-story-page .ws-day span { grid-column: 2; grid-row: 1; font-size: 18px; line-height: 1; }
.weekend-story-page .ws-day small { display: block; grid-column: 1/3; grid-row: 2; font-size: clamp(11px,3.4vw,15px); line-height: .94; white-space: normal; }
.weekend-story-page .ws-panel { min-height: 0; height: auto; max-height: none; grid-template-columns: minmax(0,1fr); align-items: start; }
.weekend-story-page .ws-panel figure { height: 42svh; min-height: 270px; }
.weekend-story-page .ws-panel img { inset: 0; width: 100%; height: 100%; }
.weekend-story-page .ws-panel[data-panel="0"] img { object-position: 50% 48%; }
.weekend-story-page .ws-panel[data-panel="1"] img { object-position: 52% 46%; }
.weekend-story-page .ws-panel[data-panel="2"] img { object-position: 50% 45%; }
.weekend-story-page .ws-copy { padding: 30px var(--mobile-gutter) 35px; justify-content: flex-start; min-width: 0; }
.weekend-story-page .ws-theme { margin-bottom: 15px; font-size: 8px; line-height: 1.4; }
.weekend-story-page .ws-date strong { font-size: 54px; }
.weekend-story-page .ws-copy h2 { margin: 18px 0 10px; font-size: clamp(40px,12vw,52px); }
.weekend-story-page .ws-standfirst { font-size: 17px; line-height: 1.42; }
.weekend-story-page .ws-copy li { grid-template-columns: 80px 1fr; gap: 8px; padding: 12px 0; font-size: 16px; line-height: 1.25; }
.weekend-story-page .ws-dress, .weekend-story-page .ws-sunday-note span { font-size: 16px; }
.weekend-story-page .ws-sunday-note { align-items: flex-start; flex-direction: column; gap: 5px; }
.weekend-story-page .ws-guide { min-height: 44px; font-size: 9px; }
.weekend-story-page .ws-guide::after { width: 34px; height: 34px; flex-basis: 34px; }
.weekend-dress-lightbox, .dress-guide-lightbox { padding: 0; align-items: flex-start; overflow-y: auto; background: #0a1710; }
.weekend-dress-lightbox img, .dress-guide-lightbox img { width: 100%; height: auto; min-height: 100svh; object-fit: contain; object-position: top center; }
.dress-guide-lightbox-close { position: fixed; top: 12px; right: 12px; width: 46px; height: 46px; z-index: 3; }

/* Travel and Stay */
.travel-compact-page .v6-travel-hero { height: 90svh; min-height: 620px; }
.travel-compact-page .v6-travel-video { object-position: 58% center; }
.travel-compact-page .v6-travel-title { left: var(--mobile-gutter); right: var(--mobile-gutter); bottom: 48px; }
.travel-compact-page .v6-travel-title h1 { margin: 14px 0; font-size: clamp(56px,17vw,76px); }
.travel-compact-page .v6-travel-title > p:nth-of-type(2) { font-size: 17px; line-height: 1.42; }
.travel-compact-page .v6-outline-button { min-height: 46px; padding: 14px 20px; font-size: 10px; }
.travel-value { display: block; padding: 64px var(--mobile-gutter) 70px; }
.travel-value-copy { margin: 0 0 31px; }
.travel-value-copy h2 { margin: 14px 0 22px; font-size: clamp(48px,14vw,64px); }
.travel-value-copy > p:not(.chapter) { font-size: 17px; line-height: 1.5; }
.travel-benefit-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; border: 0; }
.travel-benefit-grid button, .travel-benefit-grid button:nth-child(even) {
  min-height: 136px; padding: 15px; text-align: left; border: 1px solid rgba(20,41,28,.2);
}
.travel-benefit-grid button:nth-child(1) { background: #c8c0b0; }
.travel-benefit-grid button:nth-child(2) { background: #e4dacb; }
.travel-benefit-grid button:nth-child(3) { background: #d7d0c2; }
.travel-benefit-grid button:nth-child(4) { background: #ded3c4; }
.travel-benefit-grid button:nth-child(5) { background: #b8b29f; }
.travel-benefit-grid button:nth-child(6) { background: #d0c5b3; }
.travel-benefit-grid h3 { font-size: 21px; line-height: 1; }
.travel-benefit-grid p { font-size: 12px; line-height: 1.3; }
.travel-benefit-grid button.is-active { background: #14291c; color: #f4efe5; }
.travel-benefit-reveal {
  position: fixed; z-index: 1002;
  top: calc(var(--iphone-safe-top) + 10px); right: 12px;
  bottom: calc(var(--iphone-safe-bottom) + 10px); left: 12px;
  display: none; width: auto; height: auto; max-height: none; margin: 0; padding: 0;
  transform: none; overflow-y: auto; background: #14291c;
  border: 1px solid rgba(244,239,229,.25); box-shadow: 0 24px 80px rgba(5,14,8,.5);
}
.travel-benefit-reveal.is-mobile-open { display: block; }
.travel-benefit-mobile-close {
  position: fixed; top: calc(var(--iphone-safe-top) + 20px); right: 24px; z-index: 4; display: grid !important;
  width: 44px; height: 44px; place-items: center; padding: 0; color: #f4efe5;
  background: rgba(20,41,28,.92); border: 1px solid rgba(244,239,229,.6);
  border-radius: 50%; font-size: 26px;
}
.travel-benefit-image { height: 31svh; min-height: 210px; }
.travel-benefit-detail { padding: 24px 18px 28px; }
.travel-benefit-reveal h3 { margin: 8px 0; padding-right: 30px; font-size: 36px; line-height: .95; }
.travel-benefit-detail > p:not(.chapter) { font-size: 15px; line-height: 1.42; }
.travel-benefit-strip { display: grid; grid-template-columns: 1fr; gap: 7px; overflow: visible; }
.travel-benefit-card { min-width: 0; min-height: 0; padding: 14px; }
.travel-benefit-card h4 { font-size: 20px; }
.travel-benefit-card p { font-size: 13px; }
body.benefit-open { overflow: hidden; }
body.benefit-open:before { z-index: 1001; }
.travel-fineprint { margin-top: 16px; font-size: 12px; }
.travel-booking-compact { display: block; padding: 0 var(--mobile-gutter) 66px; }
.travel-booking-image { height: 34svh; min-height: 235px; margin: 0 calc(var(--mobile-gutter) * -1) 42px; }
.travel-booking-heading h2 { font-size: clamp(48px,14vw,62px); }
.travel-booking-heading > p { font-size: 17px; line-height: 1.48; }
.travel-booking-facts { grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 30px; }
.travel-booking-facts article { padding: 18px 12px 18px 0; }
.travel-booking-facts article:nth-child(even) { padding-left: 12px; }
.travel-booking-facts strong { font-size: 22px; }
.travel-book-button { min-height: 58px; font-size: 11px; }

/* RSVP */
.rsvp-form-page main { padding-top: var(--mobile-header-height); }
.rsvp-form-page .rsvp-form-wrap { display: block; padding: 48px 20px 68px; }
.rsvp-form-page .rsvp-form-intro { position: static; padding: 0 0 34px; border-right: 0; }
.rsvp-form-page .rsvp-form-intro h1 { margin: 12px 0 19px; font-size: clamp(52px,15vw,68px); line-height: .85; }
.rsvp-form-page .rsvp-form-intro > p:last-child { font-size: 17px; line-height: 1.5; }
.rsvp-form-page .rsvp-form fieldset { margin-bottom: 12px; padding: 22px 16px 24px; }
.rsvp-form legend { margin-bottom: 22px; font-size: 24px; line-height: 1.1; }
.rsvp-form legend span { width: 32px; }
.rsvp-form-page .rsvp-form input[type="text"], .rsvp-form-page .rsvp-form input[type="email"],
.rsvp-form-page .rsvp-form input[type="tel"], .rsvp-form-page .rsvp-form input[type="date"],
.rsvp-form-page .rsvp-form select, .rsvp-form-page .rsvp-form textarea {
  min-height: 48px; padding: 13px 12px; border: 1px solid rgba(20,41,28,.32); font-size: 16px;
}
.rsvp-phone-row { grid-template-columns: minmax(105px,.42fr) minmax(0,1fr); gap: 8px; }
.rsvp-phone-row select { padding-inline: 8px; }
.rsvp-choice-row, .rsvp-check-grid { grid-template-columns: 1fr; }
.rsvp-choice-row span, .rsvp-check-grid span { min-height: 58px; padding: 16px; font-size: 17px; }
.rsvp-submit { width: 100%; min-height: 64px; }
.rsvp-submit .rsvp-submit-label { font-size: 14px; }
.rsvp-closing-image { height: 52svh; min-height: 360px; }
.rsvp-closing-image img { object-position: 51% 46%; }

/* FAQ */
.faq-directory { padding-top: var(--mobile-header-height); }
.faq-intro { padding: 58px var(--mobile-gutter) 48px; }
.faq-intro h1 { font-size: clamp(50px,15vw,66px); }
.faq-intro > p:not(.faq-eyebrow) { font-size: 17px; }
.faq-search input { min-height: 54px; font-size: 16px; }
.faq-topics { padding: 0 var(--mobile-gutter) 54px; }
.faq-topic-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.faq-topic { min-height: 126px; padding: 17px 15px; }
.faq-topic span { margin-bottom: 8px; }
.faq-topic strong { font-size: 21px; }
.faq-results { padding: 62px var(--mobile-gutter) 70px; }
.faq-results-head h2 { font-size: 45px; }
.faq-accordions summary { min-height: 62px; gap: 15px; padding: 19px 0; font-size: 23px; }
.faq-accordions summary b { flex: 0 0 auto; }
.faq-accordions details p { padding: 0 0 24px; font-size: 16px; line-height: 1.55; }
.faq-help { padding: 65px var(--mobile-gutter); }

/* A Note From Us */
.note-page main { padding-top: 0; }
.note-wrap { display: flex; height: auto; min-height: 0; flex-direction: column; }
.note-photo { order: 0; position: relative; top: auto; height: calc(100svh - var(--mobile-header-height)); min-height: 400px; flex: 0 0 auto; }
.note-photo img { object-position: 51% center; }
.note-letter { order: 1; padding: 54px var(--mobile-gutter) 60px; }
.note-letter h1 { white-space: normal; font-size: clamp(52px,15vw,70px); }
.note-opening-inline { font-size: 21px !important; line-height: 1.35 !important; }
.note-body { columns: 1; }
.note-body p { font-size: 17px; line-height: 1.5; }
.note-signoff { align-items: flex-start; }
.note-next { padding: 62px var(--mobile-gutter); }

/* Standalone dress guide */
.dress-guide-main { padding-top: var(--mobile-header-height); }
.dress-guide-layout { display: flex; min-height: 0; flex-direction: column; }
.dress-guide-visual { order: 2; height: auto; min-height: 0; }
.dress-guide-visual img { height: auto; aspect-ratio: 4/5; object-fit: cover; object-position: top center; }
.dress-guide-expand { min-height: 46px; }
.dress-guide-summary { order: 1; padding: 52px var(--mobile-gutter) 40px; }
.dress-guide-summary h1 { font-size: clamp(50px,15vw,68px); }
.dress-guide-intro { font-size: 17px; }
.dress-guide-days article { padding: 21px 0; }
.dress-guide-days h2 { font-size: 28px; line-height: 1; }
.dress-guide-days p { font-size: 16px; line-height: 1.45; }

@media (max-width: 360px) {
  :root { --mobile-gutter: 20px; }
  .home-page .home-featured-directory .v6-link-panel > div:last-child,
  .home-page .home-featured-directory .v8-tile-featured > div:last-child { left: 14px; right: 30px; bottom: 16px; }
  .home-page .home-featured-directory .v6-link-panel h3 { font-size: 20px; }
  .home-page .home-featured-directory .v8-tile-featured h3 { font-size: 35px; }
  footer { grid-template-columns: 1fr 1.2fr 1fr; gap: 6px; padding-inline: 16px; }
  .weekend-story-page .ws-day small { font-size: 10px; }
  .travel-benefit-grid { grid-template-columns: 1fr; }
  .travel-benefit-grid button, .travel-benefit-grid button:nth-child(even) { min-height: 112px; }
  .rsvp-phone-row { grid-template-columns: 1fr; }
  .faq-topic-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Equal space above and below the home footer text. */
.home-page footer {
  min-height: 0;
  padding: 16px var(--mobile-gutter);
  align-items: center;
  align-content: center;
}
.home-page footer span { margin: 0; align-self: center; }

/* Centered full-screen navigation with a translucent forest backdrop. */
body.navigation-open { overflow: hidden; }
body.navigation-open header.topbar {
  background: transparent !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
  border-bottom-color: transparent;
}
.topbar nav {
  inset: var(--menu-viewport-top, 0px) 0 auto; width: 100%; height: var(--menu-viewport-height, 100dvh); max-height: none;
  display: flex; flex-direction: column; justify-content: center;
  align-items: center; gap: 8px; padding: 72px 24px;
  background: rgba(20, 41, 28, .91);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  visibility: hidden; pointer-events: none; overflow-y: auto;
  box-shadow: none; transition: opacity .22s ease, visibility .22s ease;
}
.topbar nav.open {
  max-height: none; padding: 72px 24px;
  visibility: visible; pointer-events: auto;
}
.topbar nav a,
.travel-compact-page .travel-video-nav nav a {
  flex-shrink: 0; justify-content: center; width: 100%; min-height: 48px;
  color: #f4efe5; border: 0; text-align: center;
  font: 400 clamp(20px, 5.1vw, 24px)/1.25 "Cormorant Garamond", Georgia, serif;
  letter-spacing: .015em; text-transform: none;
}
.topbar nav .pill {
  width: auto; min-width: 160px; margin-top: 18px; padding: 8px 28px;
  color: #f4efe5; background: transparent; border: 1px solid rgba(244,239,229,.55);
}
body.navigation-open .topbar .menu {
  position: fixed; top: calc(var(--menu-viewport-top, 0px) + 16px); right: var(--mobile-gutter); z-index: 56; color: #f4efe5 !important;
  justify-content: center; min-width: 48px; min-height: 48px;
  font: 300 40px/1 Arial, sans-serif; letter-spacing: 0;
}
.topbar nav a:focus-visible, .topbar .menu:focus-visible {
  outline: 2px solid currentColor; outline-offset: 5px;
}
@media (max-height: 560px) {
  .topbar nav, .topbar nav.open { justify-content: flex-start; gap: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .topbar nav { transition: none; }
}

/* Keep the booking action prominent after the shared mobile button styles. */
.travel-compact-page .travel-book-button {
  display: flex; width: 100%; min-height: 58px;
  background: #14291c; color: #f4efe5; border: 1px solid #14291c;
  font-size: 14px; font-weight: 500;
}
.travel-compact-page .travel-book-button:hover { background: #244832; }
.travel-compact-page .travel-book-button:focus-visible { outline: 2px solid #14291c; outline-offset: 4px; }

/* Outlined mobile menu trigger, with no solid fill. */
.topbar .menu {
  min-width: 76px; min-height: 44px; padding: 0 15px;
  justify-content: center; border: 1px solid currentColor;
  border-radius: 999px; background: transparent;
}
body.navigation-open .topbar .menu {
  width: 48px; min-width: 48px; height: 48px; padding: 0;
}

/* Approved centered closing composition, using the original photograph. */
.home-page .v6-rsvp .v6-rsvp-shade { background: none; }
.home-page .v6-rsvp > div:last-child {
  top: 28%; bottom: auto; left: 18px; right: 18px;
  color: #14291c; text-shadow: none;
}
.home-page .v6-rsvp > div:last-child > p { display: none; }
.home-page .v6-rsvp h2 {
  margin: 0 0 18px; color: #14291c; text-shadow: none;
  font: 400 clamp(36px, 10.7vw, 58px)/1.08 "Cormorant Garamond", Georgia, serif;
  letter-spacing: -.025em;
}
.home-page .v6-rsvp .closing-emphasis { font-style: italic; white-space: nowrap; }
.home-page .v6-rsvp-button {
  width: auto; min-width: 106px; min-height: 44px; padding: 8px 20px;
  color: #14291c; background: transparent; border: 1px solid #14291c;
  border-radius: 999px; font: 500 12px/1.2 Inter, sans-serif;
  letter-spacing: .14em; text-shadow: none;
}

/* Approved right-aligned fine-divider navigation. */
.topbar nav, .topbar nav.open {
  align-items: flex-end; gap: 0;
  padding-inline: max(32px, calc((100% - 270px) / 2));
}
.topbar nav a,
.travel-compact-page .travel-video-nav nav a {
  justify-content: flex-end; text-align: right;
  min-height: 48px; padding: 14px 0;
  font: 400 17px/1.3 Inter, sans-serif;
  letter-spacing: .015em;
}
.topbar nav a:not(.pill):not(:nth-last-child(2)) {
  border-bottom: 1px solid rgba(244,239,229,.28);
}
.topbar nav a.pill {
  align-self: flex-end; justify-content: center;
  width: auto; min-width: 106px; min-height: 44px;
  margin-top: 16px; padding: 10px 22px;
  border: 1px solid rgba(244,239,229,.7); border-radius: 999px;
  background: transparent; color: #f4efe5;
  font: 400 12px/1.3 Inter, sans-serif; letter-spacing: .18em;
}

/* Photo-first mobile note, with a readable ivory letter overlay. */
.note-page .note-wrap { position: relative; }
.note-open-button {
  position: absolute; z-index: 2; bottom: 34px; left: 50%; transform: translateX(-50%);
  min-height: 44px; padding: 8px 16px; white-space: nowrap;
  border: 1px solid #f4efe5; border-radius: 999px;
  background: rgba(20,41,28,.12); color: #f4efe5; font: 400 12px/1.3 Inter,sans-serif;
  letter-spacing: .04em; text-shadow: 0 1px 3px rgba(0,0,0,.5);
}
.note-reveal-dialog {
  width: calc(100% - 32px); max-width: 520px;
  max-height: calc(100dvh - 96px); margin: auto; padding: 0;
  border: 1px solid rgba(20,41,28,.18); border-radius: 8px;
  background: #f4efe5; color: #14291c; overflow-y: auto;
  box-shadow: 0 20px 70px rgba(0,0,0,.22);
}
.note-reveal-dialog[open] { animation: note-arrive 1.4s ease-in-out both; }
.note-reveal-dialog::backdrop { background: rgba(20,41,28,.22); }
.note-reveal-dialog[open]::backdrop { animation: note-backdrop-arrive 1.4s ease-in-out both; }
.note-reveal-dialog .note-letter {
  padding: 54px 24px 30px; opacity: 1; transform: none;
  background: #f4efe5; width: 100%; height: auto; min-height: 0;
}
.note-reveal-dialog .note-letter h1 { font-size: 40px; margin: 12px 0 22px; }
.note-reveal-dialog .note-body p { font-size: 17px; line-height: 1.5; }
.note-close-button {
  position: absolute; right: 10px; top: 8px; z-index: 2;
  width: 44px; height: 44px; padding: 0; border: 0;
  background: #f4efe5; color: #14291c; font: 400 30px/1 Arial,sans-serif;
}
@keyframes note-arrive { from {opacity:0} to {opacity:1} }
@keyframes note-backdrop-arrive { from {background:rgba(20,41,28,0)} to {background:rgba(20,41,28,.22)} }
@media(prefers-reduced-motion:reduce) { .note-reveal-dialog[open] { animation:none; } }

/* Center the mobile letter in both the page and overlay presentation. */
.note-page .note-letter, .note-reveal-dialog .note-letter,
.note-page .note-letter p, .note-reveal-dialog .note-letter p {
  text-align: center;
}
.note-page .note-signoff, .note-reveal-dialog .note-signoff {
  flex-direction: column; align-items: center; justify-content: center;
  text-align: center;
}

/* Approved note-first layout with a quiet continuation cue. */
.note-page .note-letter { padding: 28px 24px 38px; }
.note-page .note-eyebrow { display: none; }
.note-page .note-letter h1 {
  margin: 0 0 18px; font-size: clamp(34px, 9vw, 44px); line-height: 1.1;
}
.note-page .note-opening-inline { margin: 0 0 24px; }
.note-page .note-body .note-photo {
  width: calc(100% + 48px); margin: 0 -24px 28px;
  height: clamp(260px, 42svh, 380px); min-height: 0; position: relative;
}
.note-page .note-body .note-photo img {
  width: 100%; height: 100%; object-fit: cover; object-position: 51% 45%;
}
.note-page .note-scroll-cue {
  position: absolute; bottom: calc(132px + env(safe-area-inset-bottom, 0px)); left: 50%; transform: translateX(-50%);
  width: 44px; height: 44px; display: flex;
  align-items: center; justify-content: center;
  color: #fff; background: transparent; text-decoration: none;
  text-shadow: 0 1px 4px #14291c;
}
.note-page .note-scroll-cue span {
  font: 500 8px/1 Inter,sans-serif; letter-spacing: .2em;
}
.note-page .note-scroll-cue b {
  font: 400 17px/1 Arial,sans-serif;
}
.note-page #note-continuation { scroll-margin-top: calc(var(--mobile-header-height) + 20px); }

/* Mobile daily agenda: compact tabs, photo banner, complete schedule. */
.weekend-story-page .ws-intro { padding: 10px 18px 12px; }
.weekend-story-page .ws-intro h1 { margin: 0; font-size: 34px; line-height: 1.05; }
.weekend-story-page .ws-intro em { display: none; }
.weekend-story-page .ws-intro::after {
  content: 'NOVEMBER 19–22, 2027'; display: block; margin-top: 7px;
  font: 400 12px/1.3 Inter,sans-serif; letter-spacing: .12em;
}
.weekend-story-page .ws-stage,
.weekend-story-page.ws-saturday .ws-stage,
.weekend-story-page.ws-sunday .ws-stage { margin: 0 12px 14px; padding: 0; background: #f4efe5; }
.weekend-story-page .ws-days { min-height: 44px; height: 44px; margin: 0 0 10px; }
.weekend-story-page .ws-day {
  display: flex; align-items: center; justify-content: center; gap: 5px;
  height: 44px; min-height: 44px; padding: 8px 4px;
}
.weekend-story-page .ws-day b { font: 400 12px/1.2 Inter,sans-serif; letter-spacing: 0; }
.weekend-story-page .ws-day span { font: 400 14px/1.2 Inter,sans-serif; }
.weekend-story-page .ws-day small { display: none; }
.weekend-story-page .ws-day.is-active { background: #14291c; color: #f4efe5; }
.weekend-story-page .ws-day.is-active b,
.weekend-story-page .ws-day.is-active span { color: #f4efe5; }
.weekend-story-page .ws-panel { background: #f4efe5; animation: none; }
.weekend-story-page .ws-panel figure {
  height: clamp(80px, calc(100svh - 560px), 160px); min-height: 0;
}
.weekend-story-page .ws-panel img { transform: none; }
.weekend-story-page .ws-copy { padding: 10px 16px 12px; }
.weekend-story-page .ws-theme,
.weekend-story-page .ws-date,
.weekend-story-page .ws-standfirst,
.weekend-story-page .ws-hint { display: none; }
.weekend-story-page .ws-copy h2 {
  margin: 0 0 10px; font-size: clamp(25px, 7vw, 32px); line-height: 1.1;
}
.weekend-story-page .ws-copy ol { margin: 0; padding: 0; }
.weekend-story-page .ws-copy li {
  grid-template-columns: 76px minmax(0,1fr); padding: 10px 0; gap: 8px;
  font-size: 15px; line-height: 1.3;
}
.weekend-story-page .ws-copy li b { font: 400 12px/1.4 Inter,sans-serif; color: #14291c; }
.weekend-story-page .ws-dress { margin: 10px 0 8px; font-size: 13px; line-height: 1.3; text-align: center; }
.weekend-story-page .ws-sunday-note { margin: 8px 0; gap: 4px; align-items: center; text-align: center; }
.weekend-story-page .ws-sunday-note span,
.weekend-story-page .ws-sunday-note em { font-size: 12px; line-height: 1.3; }
.weekend-story-page .ws-guide {
  align-self: center; min-height: 44px; margin: 0; padding: 8px 18px;
  font-size: 13px; letter-spacing: .02em; border-radius: 6px;
}

/* Balance the mobile agenda and carry through the site's Garamond typography. */
.weekend-story-page main { padding-top: 0; }
.weekend-story-page .ws-intro {
  min-height: 0; height: auto; margin: 0; padding: 22px 18px 20px;
}
.weekend-story-page .ws-intro::after {
  font: 500 15px/1.3 "Cormorant Garamond", Georgia, serif;
  letter-spacing: .1em;
}
.weekend-story-page .ws-days { height: 50px; min-height: 50px; margin-bottom: 14px; }
.weekend-story-page .ws-day { height: 50px; min-height: 50px; }
.weekend-story-page .ws-day b,
.weekend-story-page .ws-day span { font: 500 16px/1.2 "Cormorant Garamond", Georgia, serif; }
.weekend-story-page .ws-copy { padding: 18px 16px; }
.weekend-story-page .ws-copy h2 { margin-bottom: 14px; }
.weekend-story-page .ws-copy li { padding: 14px 0; font: 400 17px/1.3 "Cormorant Garamond", Georgia, serif; }
.weekend-story-page .ws-copy li b { font: 500 15px/1.4 "Cormorant Garamond", Georgia, serif; }
.weekend-story-page .ws-guide { font: 500 16px/1.3 "Cormorant Garamond", Georgia, serif; text-transform: none; }
.weekend-story-page .ws-dress { margin: 14px 0 12px; }
.weekend-story-page .ws-sunday-note { margin: 12px 0; gap: 6px; }
@media (max-height: 700px) {
  .weekend-story-page .ws-intro { padding-block: 12px; }
  .weekend-story-page .ws-copy { padding-block: 12px; }
  .weekend-story-page .ws-copy li { padding-block: 10px; }
}

/* Remove repeated dates and compact only Saturday's longer schedule labels. */
.weekend-story-page .ws-intro::after { content: none; display: none; }
.weekend-story-page .ws-panel[data-panel="1"] .ws-copy li {
  grid-template-columns: 58px minmax(0, 1fr); gap: 6px;
  font-size: 14px; line-height: 1.3;
}
.weekend-story-page .ws-panel[data-panel="1"] .ws-copy li b { font-size: 13px; }
.weekend-story-page .ws-panel[data-panel="1"] .ws-copy h2 {
  font-size: clamp(24px, 6.5vw, 29px);
}

/* Compact mobile header; bound embedded-view safe-area padding. */
:root {
  --iphone-safe-top: min(env(safe-area-inset-top, 0px), 59px);
  --mobile-header-height: calc(56px + var(--iphone-safe-top));
}
header.topbar {
  height: var(--mobile-header-height); min-height: 0;
  padding: var(--iphone-safe-top) var(--mobile-gutter) 0;
  align-items: center;
}
.topbar .menu { min-height: 40px; min-width: 70px; padding-inline: 13px; }

/* FAQ: bring search, all six topics, and the first questions into view. */
.faq-directory { padding-top: 0; }
.faq-directory .faq-intro {
  height: auto; min-height: 0; margin: 0; padding: 24px 22px 18px;
}
.faq-intro .faq-eyebrow { display: none; }
.faq-directory .faq-intro h1 { font-size: 38px; line-height: 1.05; margin: 0 0 10px; }
.faq-directory .faq-intro > p:not(.faq-eyebrow) { font-size: 16px; line-height: 1.35; margin: 0 0 16px; }
.faq-directory .faq-search { margin: 0; width: 100%; max-width: none; }
.faq-directory .faq-search input { min-height: 46px; height: 46px; padding: 10px 38px 10px 14px; font-size: 16px; }
.faq-directory .faq-topics { padding: 0 22px 20px; }
.faq-directory .faq-topics > .faq-section-label { text-align: center; margin: 0 0 10px; }
.faq-directory .faq-topic-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.faq-directory .faq-topic { min-height: 70px; padding: 10px 8px; text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.faq-directory .faq-topic span { display: none; }
.faq-directory .faq-topic strong { font-size: 21px; line-height: 1.1; }
.faq-directory .faq-topic em { font-size: 12px; line-height: 1.3; margin-top: 4px; }
.faq-directory .faq-results { padding: 20px 22px 36px; scroll-margin-top: var(--mobile-header-height); }
.faq-directory .faq-results-head { margin-bottom: 14px; }
.faq-directory .faq-results-head h2 { font-size: 32px; }

/* Slim navigation bar without duplicated top safe-area space. */
:root { --iphone-safe-top: 0px; --mobile-header-height: 56px; }
body header.topbar { height: 56px; min-height: 56px; max-height: 56px; padding: 0 22px; }

/* Restore spacious serif FAQ typography within the compact page layout. */
.faq-directory .faq-intro { padding: 26px 22px 22px; }
.faq-directory .faq-intro h1 { font: 400 44px/1.08 "Cormorant Garamond", Georgia, serif; }
.faq-directory .faq-intro > p:not(.faq-eyebrow) { font: 400 19px/1.4 "Cormorant Garamond", Georgia, serif; }
.faq-directory .faq-search input { font: 400 18px/1.3 "Cormorant Garamond", Georgia, serif; }
.faq-directory .faq-topic-grid { gap: 10px; }
.faq-directory .faq-topic { min-height: 88px; padding: 14px 10px; }
.faq-directory .faq-topic strong { font: 500 25px/1.15 "Cormorant Garamond", Georgia, serif; }
.faq-directory .faq-topic em { font: 400 15px/1.3 "Cormorant Garamond", Georgia, serif; margin-top: 6px; }

/* Selected Garamond 18 navigation. */
.topbar nav a,
.travel-compact-page .travel-video-nav nav a { font: 400 18px/1.3 "Cormorant Garamond", Georgia, serif; }
.topbar nav a.pill { font: 500 14px/1.3 "Cormorant Garamond", Georgia, serif; }

/* Selected FAQ 1: quiet outlined topic grid and airy accordion rows. */
.faq-directory .faq-intro { padding: 26px 24px 18px; }
.faq-directory .faq-intro h1 { font: 400 32px/1.15 "Cormorant Garamond", Georgia, serif; letter-spacing: -.02em; margin: 0 0 22px; }
.faq-directory .faq-intro > p { display: none; }
.faq-directory .faq-search input { box-sizing: border-box; width: 100%; height: 48px; min-height: 48px; padding: 10px 44px 10px 16px; font: 400 18px/1.4 "Cormorant Garamond", Georgia, serif; border-radius: 4px; }
.faq-directory .faq-topics { padding: 0 24px 24px; }
.faq-directory .faq-topics > .faq-section-label { display: none; }
.faq-directory .faq-topic-grid { gap: 10px; }
.faq-directory .faq-topic { min-height: 98px; gap: 10px; padding: 14px 8px; border: 1px solid #879186; border-radius: 3px; background: transparent; color: #183024; transform: none; }
.faq-directory .faq-topic.is-active { background: #e8e9df; border-color: #183024; }
.faq-directory .faq-topic:focus-visible { outline: 2px solid #183024; outline-offset: 3px; }
.faq-directory .faq-topic-icon { display: block; flex-shrink: 0; }
.faq-directory .faq-topic em, .faq-directory .faq-topic span { display: none; }
.faq-directory .faq-topic strong { font: 400 22px/1.15 "Cormorant Garamond", Georgia, serif; }
.faq-directory .faq-results { padding: 0 24px 48px; background: #f4efe5; color: #183024; }
.faq-directory .faq-results-head { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.faq-directory .faq-accordions { border-top: 1px solid #a4aa9f; }
.faq-directory .faq-accordions details { border-color: #b9bdb2; }
.faq-directory .faq-accordions summary { padding: 18px 0; gap: 16px; font: 400 18px/1.4 "Cormorant Garamond", Georgia, serif; }
.faq-directory .faq-accordions details p { padding: 0 0 22px; color: #183024; font: 400 18px/1.5 "Cormorant Garamond", Georgia, serif; }

/* Selected Home 1: wide photo lead, four photo cards, ivory captions. */
.home-page .home-featured-directory {
  box-sizing: border-box; padding: 16px; gap: 12px; background: #f4efe5;
  height: calc(100svh - 56px); min-height: 580px;
  grid-template-areas: "note note" "weekend travel" "faq rsvp";
  grid-template-columns: repeat(2,minmax(0,1fr));
  grid-template-rows: 1.35fr 1fr 1fr;
}
.home-page .home-featured-directory .v6-link-panel,
.home-page .home-featured-directory .v6-link-panel:first-child {
  display: flex; flex-direction: column; padding: 0; height: 100%; min-height: 0;
  background: #f4efe5; color: #183024; border: 1px solid #c5c8bb; overflow: hidden;
}
.home-page .home-featured-directory .v6-link-panel::before,
.home-page .home-featured-directory .v6-link-panel::after,
.home-page .home-featured-directory .v8-tile-shade,
.home-page .home-featured-directory .v6-index,
.home-page .home-featured-directory .v6-panel-button { display: none; }
.home-page .home-featured-directory .v6-link-panel .v8-tile-art {
  position: relative; inset: auto; width: 100%; height: 0; min-height: 0; flex: 1 1 0;
  object-fit: cover; opacity: 1; filter: none; transform: none;
}
.home-page .home-featured-directory .v8-tile-featured .v8-tile-art { object-position: 50% 43%; }
.home-page .home-featured-directory .v6-link-panel > div:last-child {
  position: relative; inset: auto; flex: 0 0 auto; display: flex; align-items: center;
  justify-content: space-between; gap: 6px; padding: 12px 10px; color: #183024;
}
.home-page .home-featured-directory .v6-link-panel > div:last-child::after { content: "→"; font-size: 20px; }
.home-page .home-featured-directory .v6-link-panel h3,
.home-page .home-featured-directory .v8-tile-featured h3 {
  font: 400 22px/1.1 "Cormorant Garamond", Georgia, serif; letter-spacing: -.02em;
  margin: 0; color: #183024; text-shadow: none;
}
.home-page .home-featured-directory .v8-tile-featured h3 { font-size: 24px; }
.home-page .home-featured-directory .v6-link-panel:focus-visible { outline: 2px solid #183024; outline-offset: 2px; }
@media (max-width: 370px) {
  .home-page .home-featured-directory { padding: 12px; gap: 8px; }
  .home-page .home-featured-directory .v6-link-panel h3 { font-size: 20px; }
}

/* Refine the note's mobile hierarchy. */
.note-page .note-letter h1 { font-size: clamp(38px, 10vw, 46px); }
.note-page .note-body p { font-size: 17px; line-height: 1.5; }
.note-page .note-body .note-opening-inline { font-size: 17px !important; line-height: 1.4 !important; margin-bottom: 24px; }

/* Give topic navigation a visible, stable destination. */
.faq-directory .faq-results.has-selection .faq-results-head {
  position: relative; width: auto; height: auto; overflow: visible; clip-path: none;
  display: flex; align-items: baseline; gap: 12px; padding: 8px 0 18px;
  margin: 0; border: 0;
}
.faq-directory .faq-results-head .faq-section-label { display: none; }
.faq-directory .faq-results-head h2 { margin: 0; font: 400 28px/1.2 "Cormorant Garamond", Georgia, serif; }
.faq-directory .faq-results-head > p { color: #183024; font: 400 15px/1.3 "Cormorant Garamond", Georgia, serif; letter-spacing: 0; text-transform: none; }

/* FAQ 3: compact topic filters keep the questions in view. */
.faq-directory .faq-intro { padding: 24px 24px 16px; }
.faq-directory .faq-intro h1 { margin-bottom: 18px; }
.faq-directory .faq-topics { padding: 0 24px 22px; }
.faq-directory .faq-topic-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.faq-directory .faq-topic {
  flex: 1 0 auto; min-height: 44px; height: auto; padding: 9px 14px;
  border-radius: 999px; gap: 0; background: transparent;
}
.faq-directory .faq-topic .faq-topic-icon { display: none; }
.faq-directory .faq-topic strong { font: 400 18px/1.25 "Cormorant Garamond", Georgia, serif; white-space: nowrap; }
.faq-directory .faq-topic.is-active { background: #183024; color: #f4efe5; border-color: #183024; }
.faq-directory .faq-results { min-height: 50svh; padding-bottom: 48px; }
.faq-directory .faq-results-head,
.faq-directory .faq-results.has-selection .faq-results-head {
  position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%);
}
.faq-directory .faq-accordions summary { padding: 18px 0; font-size: 18px; }

/* Photo-strip directory: equal mobile links in the wedding palette. */
.home-page .home-featured-directory {
  display: grid; grid-template-columns: minmax(0,1fr);
  grid-template-areas: "note" "weekend" "travel" "faq" "rsvp";
  grid-template-rows: repeat(5,minmax(0,1fr));
  height: calc(100svh - var(--mobile-header-height)); min-height: 480px;
  padding: 0; gap: 0; background: #183024;
}
.home-page .home-featured-directory .v6-link-panel,
.home-page .home-featured-directory .v6-link-panel:first-child {
  position: relative; display: flex; flex-direction: row; align-items: stretch;
  min-height: 0; height: 100%; padding: 0; border: 0;
  border-bottom: 1px solid rgba(244,239,229,.22);
  background: #183024; color: #f4efe5;
}
.home-page .home-featured-directory .v6-link-panel .v8-tile-art {
  position: absolute; inset: 0 auto 0 0; width: 59%; height: 100%;
  object-fit: cover; flex: none; opacity: .85;
  filter: saturate(.5); transform: none;
  mask-image: linear-gradient(to right,#000 55%,transparent 100%);
  -webkit-mask-image: linear-gradient(to right,#000 55%,transparent 100%);
}
.home-page .home-featured-directory .v6-link-panel > div:last-child {
  position: relative; inset: auto; margin-left: 50%; width: 50%;
  box-sizing: border-box; display: flex; align-items: center; justify-content: space-between;
  gap: 8px; padding: 16px 18px 16px 10px; color: #f4efe5;
}
.home-page .home-featured-directory .v6-link-panel h3,
.home-page .home-featured-directory .v8-tile-featured h3 {
  font: 400 23px/1.12 "Cormorant Garamond", Georgia, serif;
  color: #f4efe5; letter-spacing: -.015em; margin: 0; text-shadow: none;
}
.home-page .home-featured-directory .v6-link-panel > div:last-child::after {
  content: "›"; flex-shrink: 0; color: #f4efe5; font: 400 28px/1 Georgia,serif;
}
.home-page .home-featured-directory .v6-link-panel .v6-panel-button,
.home-page .home-featured-directory .v6-link-panel p,
.home-page .home-featured-directory .v6-link-panel .v6-index { display: none !important; }
.home-page .home-featured-directory .v6-link-panel:focus-visible { outline: 2px solid #f4efe5; outline-offset: -4px; }

/* Mobile editorial refinement: shared scale, rhythm and contained images. */
:root { --mobile-gutter: 24px; }
.home-page .home-featured-directory {
  padding: 18px; gap: 10px; background: #f4efe5;
  height: calc(100svh - 56px); min-height: 480px;
}
.home-page .home-featured-directory .v6-link-panel,
.home-page .home-featured-directory .v6-link-panel:first-child {
  border: 1px solid rgba(24,48,36,.18); border-radius: 3px;
}
.home-page .home-featured-directory .v6-link-panel .v8-tile-art {
  position: relative; inset: auto; width: 31%; height: 100%;
  mask-image: none; -webkit-mask-image: none; opacity: 1; filter: saturate(.7);
}
.home-page .home-featured-directory .v6-link-panel > div:last-child {
  margin-left: 0; width: 69%; padding: 12px 16px; gap: 12px;
}
.home-page .home-featured-directory .v6-link-panel h3,
.home-page .home-featured-directory .v8-tile-featured h3 { font-size: 23px; line-height: 1.15; }
.home-page .v6-intro { padding: 36px 24px; }
.home-page .v6-intro h2 { font-size: 38px; line-height: 1.08; }
.home-page .v6-lead { font: 400 18px/1.5 "Cormorant Garamond",Georgia,serif; }
.weekend-story-page .ws-intro { padding: 16px 24px; }
.weekend-story-page .ws-intro h1 { font-size: 38px; line-height: 1.1; }
.weekend-story-page .ws-stage { margin-inline: 16px; }
.weekend-story-page .ws-copy { padding: 14px 16px; }
.weekend-story-page .ws-copy li { padding-block: 10px; }
.weekend-story-page .ws-copy h2 { font-size: 29px; line-height: 1.1; margin-bottom: 10px; }
.weekend-story-page .ws-dress { margin: 10px 0; }
.travel-compact-page .v6-travel-hero { height: calc(100svh - 56px); min-height: 480px; }
.travel-compact-page .v6-travel-title { text-align: center; bottom: 32px; }
.travel-compact-page .v6-travel-title h1 { font-size: 46px; line-height: 1.05; }
.travel-compact-page .v6-travel-title > p:nth-of-type(2) { font: 400 18px/1.4 "Cormorant Garamond",Georgia,serif; }
.travel-value { padding: 28px 24px; min-height: 0; }
.travel-benefits-heading { scroll-margin-top: calc(var(--mobile-header-height) + 16px); }
.travel-value-copy { display: none; }
.travel-benefits-heading { text-align: center; font: 400 32px/1.15 "Cormorant Garamond",Georgia,serif; margin: 0 0 22px; }
.travel-benefit-grid { gap: 10px; }
.travel-benefit-grid button:nth-child(n) {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  min-height: 112px; padding: 12px 10px; background: #f4efe5;
  border: 1px solid #a8afa2; text-align: center; color: #183024; gap: 8px;
}
.travel-benefit-grid button span { font: italic 400 17px/1 "Cormorant Garamond",Georgia,serif; margin: 0; }
.travel-benefit-grid button h3 { font: 400 21px/1.15 "Cormorant Garamond",Georgia,serif; margin: 0; }
.travel-benefit-grid button p { display: none; }
.travel-benefit-grid button.is-active { background: #183024; color: #f4efe5; }
.travel-benefit-image { height: 25svh; min-height: 150px; }
.travel-benefit-detail { padding: 20px 18px; text-align: center; }
.travel-benefit-reveal h3 { font: 400 30px/1.1 "Cormorant Garamond",Georgia,serif; padding: 0; }
.travel-benefit-detail > p:not(.chapter) { font: 400 17px/1.4 "Cormorant Garamond",Georgia,serif; }
.travel-benefit-strip { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 18px; }
.travel-benefit-card { border: 1px solid rgba(244,239,229,.3); padding: 12px; text-align: left; }
.travel-benefit-card h4 { font: 400 20px/1.15 "Cormorant Garamond",Georgia,serif; }
.travel-benefit-card p { font: 400 16px/1.4 "Cormorant Garamond",Georgia,serif; }
.travel-booking-compact { padding: 24px 24px 32px; }
.travel-booking-image { height: 24svh; min-height: 160px; margin: 0 0 24px; }
.travel-booking-heading { text-align: center; }
.travel-booking-heading h2 { font-size: 36px; line-height: 1.1; }
.travel-booking-heading > p { font: 400 17px/1.4 "Cormorant Garamond",Georgia,serif; }
.travel-booking-facts { margin-top: 18px; text-align: center; }
.travel-booking-facts article { padding: 12px !important; border: 1px solid rgba(24,48,36,.18); }
.travel-book-button { min-height: 46px; font: 500 18px/1.2 "Cormorant Garamond",Georgia,serif; }
.rsvp-form-page main { padding-top: 0; }
.rsvp-form-page .rsvp-form-wrap { padding: 22px 24px 32px; }
.rsvp-form-page .rsvp-form-intro { text-align: center; padding-bottom: 18px; }
.rsvp-form-page .rsvp-form-intro h1 { font-size: 36px; line-height: 1.1; margin: 0 0 10px; }
.rsvp-form-page .rsvp-form-intro .chapter { display: none; }
.rsvp-form-page .rsvp-form-intro > p:last-child { font: 400 17px/1.4 "Cormorant Garamond",Georgia,serif; }
.rsvp-form-page .rsvp-form fieldset { padding: 16px; margin-bottom: 14px; }
.rsvp-form-page .rsvp-form legend { font: 400 24px/1.15 "Cormorant Garamond",Georgia,serif; margin-bottom: 14px; }
.rsvp-form-page .rsvp-form label { font-size: 16px; }
.rsvp-form-page .rsvp-form input, .rsvp-form-page .rsvp-form select, .rsvp-form-page .rsvp-form textarea { font-family: "Cormorant Garamond",Georgia,serif; }
.rsvp-step-nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 12px 0; }
.rsvp-step-nav button { min-height: 44px; padding: 10px 20px; border: 1px solid #183024; background: #183024; color: #f4efe5; border-radius: 3px; font: 400 18px/1.2 "Cormorant Garamond",Georgia,serif; }
.rsvp-step-nav button:disabled { opacity: .4; }
.rsvp-step-count { text-align: center; font: 400 16px/1.3 "Cormorant Garamond",Georgia,serif; margin: 0 0 14px; }
.rsvp-form-page .rsvp-submit { min-height: 48px; }
.rsvp-form-page .rsvp-closing-image { height: 30svh; min-height: 180px; }
@media (max-height: 720px) {
  .weekend-story-page .ws-copy li { padding-block: 7px; }
  .weekend-story-page .ws-intro { padding-block: 10px; }
  .travel-benefit-grid button:nth-child(n) { min-height: 96px; }
}
.rsvp-step-count { display: block; }

/* Compact benefit overview; complete descriptions expand on tap. */
.travel-benefit-reveal {
  top: max(24px,env(safe-area-inset-top,0px)); bottom: max(24px,env(safe-area-inset-bottom,0px));
  left: 16px; right: 16px; border-radius: 12px; background: #f4efe5; color: #183024;
  max-height: calc(100svh - 48px); margin-block: auto; height: fit-content;
}
.benefit-mobile-toolbar {
  position: sticky; top: 0; z-index: 5; display: flex; align-items: center;
  justify-content: space-between; padding: 8px 14px 8px 20px;
  background: #f4efe5; border-bottom: 1px solid #c1c6b9;
  font: 400 20px/1.2 "Cormorant Garamond",Georgia,serif;
}
.benefit-mobile-toolbar .travel-benefit-mobile-close {
  position: static; flex-shrink: 0; width: 44px; height: 44px;
  background: transparent; color: #183024; border-color: #183024;
}
.travel-benefit-image { height: clamp(100px,18svh,145px); min-height: 0; }
.travel-benefit-detail { padding: 16px 20px 22px; color: #183024; }
.travel-benefit-detail .chapter { display: none; }
.travel-benefit-reveal h3 { color: #183024; font-size: 26px; margin: 0 0 8px; }
.travel-benefit-detail > p:not(.chapter) { color: #183024; font-size: 16px; line-height: 1.35; margin: 0; }
.travel-benefit-strip { display: block; border-top: 1px solid #a8b1a1; margin-top: 14px; padding: 0; }
.travel-benefit-accordion { border-bottom: 1px solid #bfc5b8; text-align: left; }
.travel-benefit-accordion summary { display: flex; justify-content: space-between; align-items: center; gap: 12px; list-style: none; min-height: 44px; font: 400 20px/1.2 "Cormorant Garamond",Georgia,serif; cursor: pointer; }
.travel-benefit-accordion summary::-webkit-details-marker { display: none; }
.travel-benefit-accordion[open] summary span { transform: rotate(45deg); }
.travel-benefit-accordion p { margin: 0; padding: 4px 0 14px; font: 400 17px/1.4 "Cormorant Garamond",Georgia,serif; color: #183024; }

/* One-screen introduction and photo-row directory. */
.home-page .mobile-intro-directory {
  display: flex; flex-direction: column; box-sizing: border-box;
  min-height: 560px; height: calc(100svh - var(--mobile-header-height));
  padding: 20px 24px 16px; background: #f4efe5; color: #183024;
}
.home-page .mobile-intro-directory .v6-statement {
  flex: 0 0 auto; padding: 0 0 20px; margin: 0; height: auto; min-height: 0;
  opacity: 1; transform: none; text-align: center;
}
.home-page .mobile-intro-directory .v6-statement > .v6-kicker,
.home-page .mobile-intro-directory .v6-statement > h2,
.home-page .mobile-intro-directory .v6-statement > .v6-lead { display: none; }
.home-page .mobile-directory-intro { display: block; }
.home-page .mobile-directory-intro h2 {
  font: 500 clamp(30px,8.7vw,36px)/1.08 "Cormorant Garamond",Georgia,serif;
  letter-spacing: -.02em; margin: 0 0 10px; color: #183024;
}
.home-page .mobile-directory-intro p { font: 400 15px/1.35 "Cormorant Garamond",Georgia,serif; margin: 0; }
.home-page .mobile-intro-directory .home-featured-directory {
  flex: 1 1 0; height: auto; min-height: 0; padding: 0; gap: 0;
  grid-template-rows: repeat(5,minmax(0,1fr)); border-top: 1px solid #b2b9aa;
}
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel {
  border: 0; border-bottom: 1px solid #b2b9aa; border-radius: 0;
  background: transparent; color: #183024; align-items: center; padding: 8px 0;
}
.home-page .mobile-intro-directory .home-featured-directory .v8-tile-art {
  width: 72px; height: 100%; max-height: 76px; flex-shrink: 0; object-fit: cover;
}
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel > div:last-child {
  flex: 1; width: auto; padding: 8px 0 8px 16px; color: #183024;
}
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel h3 {
  color: #183024; font-size: 21px; line-height: 1.15;
}
.home-page .mobile-intro-directory .home-featured-directory .v6-link-panel > div:last-child::after {
  content: "→"; color: #183024; display: grid; place-items: center;
  width: 30px; height: 30px; border: 1px solid #6b7b68; border-radius: 50%; font-size: 18px;
}
@media (max-width: 370px) {
  .home-page .mobile-intro-directory { padding-inline: 18px; }
  .home-page .mobile-intro-directory .home-featured-directory .v8-tile-art { width: 60px; }
  .home-page .mobile-intro-directory .home-featured-directory .v6-link-panel h3 { font-size: 20px; }
}

/* Booking: one restrained heading and a compact view of the essentials. */
.travel-booking-compact { padding: 16px 24px 20px; }
.travel-booking-heading .chapter { display: none; }
.travel-booking-heading h2 { font: 400 28px/1.1 "Cormorant Garamond",Georgia,serif; margin: 0 0 12px; }
.travel-booking-heading h2 br { display: none; }
.travel-booking-heading h2 em::before { content: " "; }
.travel-booking-image { height: clamp(100px,17svh,150px); min-height: 0; margin-bottom: 16px; }
.travel-booking-heading .travel-booking-summary { font: 400 16px/1.35 "Cormorant Garamond",Georgia,serif; margin: 0; }
.travel-booking-facts { gap: 0; margin-top: 16px; }
.travel-booking-facts article { padding: 10px !important; min-height: 0; }
.travel-booking-facts article > span { font: 400 13px/1.2 "Cormorant Garamond",Georgia,serif; letter-spacing: .04em; }
.travel-booking-facts article strong { font: 400 21px/1.1 "Cormorant Garamond",Georgia,serif; margin: 5px 0; }
.travel-booking-facts article p { font: 400 14px/1.3 "Cormorant Garamond",Georgia,serif; margin: 0; }
.travel-booking-facts .travel-book-button { grid-column: 1/-1; min-height: 44px; margin-top: 14px; padding: 10px 16px; font-size: 17px; }
.travel-booking-facts .journey-inline { grid-column: 1/-1; margin: 10px 0 0; font: 400 14px/1.3 "Cormorant Garamond",Georgia,serif; }
.travel-booking-facts .journey-inline a { margin-top: 4px; font-size: 14px; }

/* All three days share one balanced viewport rather than content-sized cards. */
body.weekend-story-page { min-height: 100svh; padding-bottom: 0; display: flex; flex-direction: column; }
.weekend-story-page main { flex: 1; padding: 0; min-height: calc(100svh - 112px); display: flex; flex-direction: column; }
.weekend-story-page .ws-intro { flex: 0 0 auto; display: grid; place-items: center; padding: 14px 20px; }
.weekend-story-page .ws-intro h1 { font: 400 34px/1.1 "Cormorant Garamond",Georgia,serif; }
.weekend-story-page .ws-stage,
.weekend-story-page.ws-saturday .ws-stage,
.weekend-story-page.ws-sunday .ws-stage {
  flex: 1; display: flex; flex-direction: column; margin: 0 16px 14px;
  min-height: 0; padding: 0;
}
.weekend-story-page .ws-days {
  flex: 0 0 50px;
  height: 50px;
  min-height: 50px;
  margin-bottom: 10px;
  box-sizing: border-box;
  border: 1px solid #8e998c;
  background: #f4efe5;
  position: relative;
  z-index: 1;
}
.weekend-story-page .ws-day { height: 48px; min-height: 48px; }
.weekend-story-page .ws-day + .ws-day { border-left: 1px solid #8e998c; }
.weekend-story-page .ws-day:focus-visible { outline: 2px solid #183024; outline-offset: 3px; }
.weekend-story-page .ws-panel.is-active {
  flex: 1; display: flex; flex-direction: column; height: auto; min-height: 0;
}
.weekend-story-page .ws-panel[hidden] { display: none !important; }
.weekend-story-page .ws-panel figure {
  flex: 1 0 110px; min-height: 110px; height: auto; max-height: 30svh; margin: 0;
  position: relative;
}
.weekend-story-page .ws-panel figure img { position: absolute; inset: 0; object-fit: cover; }
.weekend-story-page .ws-copy { flex: 0 0 auto; padding: 16px; }
.weekend-story-page .ws-copy h2,
.weekend-story-page .ws-panel[data-panel="1"] .ws-copy h2 {
  font: 400 27px/1.1 "Cormorant Garamond",Georgia,serif; margin: 0 0 10px;
}
.weekend-story-page .ws-copy li,
.weekend-story-page .ws-panel[data-panel="1"] .ws-copy li {
  grid-template-columns: 64px minmax(0,1fr); gap: 8px; padding: 10px 0;
  font: 400 16px/1.3 "Cormorant Garamond",Georgia,serif;
}
.weekend-story-page .ws-copy li b,
.weekend-story-page .ws-panel[data-panel="1"] .ws-copy li b {
  font: 400 14px/1.3 "Cormorant Garamond",Georgia,serif; letter-spacing: 0;
}
.weekend-story-page .ws-dress,
.weekend-story-page .ws-sunday-note span { font-size: 12px; line-height: 1.3; letter-spacing: .04em; }
.weekend-story-page .ws-sunday-note { margin: 10px 0; }
.weekend-story-page .ws-guide { min-height: 44px; padding: 8px 18px; font-size: 16px; margin-top: 8px; }
.weekend-story-page footer { flex: 0 0 auto; min-height: 56px; padding: 12px 20px; margin: 0; box-sizing: border-box; }
@media (max-height: 740px) {
  .weekend-story-page .ws-copy { padding: 12px 14px; }
  .weekend-story-page .ws-copy li,
  .weekend-story-page .ws-panel[data-panel="1"] .ws-copy li { padding-block: 7px; font-size: 15px; }
  .weekend-story-page .ws-intro { padding-block: 10px; }
}

/* Restore visible image dimensions in the column-based itinerary. */
.weekend-story-page .ws-panel.is-active { align-items: stretch; }
.weekend-story-page .ws-panel figure {
  display: block; width: 100%; flex: 0 0 auto;
  height: clamp(120px,22svh,190px); min-height: 120px; max-height: none;
  align-self: stretch;
}
.weekend-story-page .ws-panel figure img {
  display: block; width: 100%; height: 100%; opacity: 1; visibility: visible;
}

/* Booking hierarchy and aligned fact-cell baselines. */
.travel-booking-heading h2 {
  font: 400 34px/1.05 "Cormorant Garamond",Georgia,serif; margin: 0 0 12px;
}
.travel-booking-heading h2 br { display: block; }
.travel-booking-heading h2 em { font-style: italic; }
.travel-booking-heading h2 em::before { content: none; }
.travel-booking-heading .travel-booking-summary {
  font: 400 15px/1.35 "Cormorant Garamond",Georgia,serif;
  max-width: 36ch; margin-inline: auto;
}
.travel-booking-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0; }
.travel-booking-facts article {
  box-sizing: border-box; min-width: 0; padding: 10px 8px !important;
  display: grid; grid-template-rows: 18px 30px minmax(42px,auto);
  align-content: start; justify-items: center; text-align: center;
  border: 0; border-bottom: 1px solid #aeb3a3; border-left: 1px solid #aeb3a3;
}
.travel-booking-facts article:nth-child(-n+2) { border-top: 1px solid #aeb3a3; }
.travel-booking-facts article:nth-child(even) { border-right: 1px solid #aeb3a3; }
.travel-booking-facts article > span { align-self: center; margin: 0; font-size: 12px; line-height: 1.2; }
.travel-booking-facts article strong {
  align-self: center; margin: 0; font: 400 20px/1.1 "Cormorant Garamond",Georgia,serif;
  text-transform: none; white-space: nowrap;
}
.travel-booking-facts article p {
  margin: 0; align-self: start; max-width: 19ch;
  font: 400 13px/1.3 "Cormorant Garamond",Georgia,serif;
}

/* Keep the booking screen spacious while tightening its text block. */
.travel-booking-compact { box-sizing: border-box; min-height: calc(100svh - var(--mobile-header-height)); }
.travel-booking-heading h2 {
  font-size: clamp(26px,7.5vw,34px); line-height: 1.1; white-space: nowrap;
}
.travel-booking-heading h2 br { display: none; }
.travel-booking-heading h2 em::before { content: " "; }
.travel-booking-heading .travel-booking-summary { line-height: 1.2; }

/* Match the tall photo composition across browsers, independent of toolbars. */
.weekend-story-page .ws-panel figure {
  flex: 0 0 auto; height: auto; min-height: 0; max-height: none;
  aspect-ratio: 8 / 7;
  width: 100%; align-self: stretch;
}
.weekend-story-page .ws-copy { flex-shrink: 0; }

/* Selected booking option: forest green, fine ivory grid, centered small type. */
.travel-compact-page .travel-booking-compact {
  --booking-space: 20px;
  background: #183024; color: #f4efe5; padding: 18px 24px 24px;
  display: flex; flex-direction: column; justify-content: flex-start;
  gap: var(--booking-space);
}
.travel-compact-page .travel-booking-image {
  flex: 1 0 auto;
  height: clamp(140px,21svh,190px);
  min-height: clamp(140px,21svh,190px);
  margin: 0;
}
.travel-compact-page .travel-booking-heading { flex: none; }
.travel-compact-page .travel-booking-heading h2 {
  color: #f4efe5; font: 400 clamp(25px,7.3vw,30px)/1.1 "Cormorant Garamond",Georgia,serif;
  text-align: center; position: relative; margin: 0 0 var(--booking-space);
}
.travel-compact-page .travel-booking-heading h2 em { font-style: italic; color: inherit; }
.travel-compact-page .travel-booking-heading h2::after {
  content: ""; display: block; width: 32px; height: 1px;
  position: absolute; left: 50%; bottom: calc(var(--booking-space) / -2);
  transform: translateX(-50%); background: #f4efe5; margin: 0;
}
.travel-compact-page .travel-booking-heading .travel-booking-summary {
  color: #f4efe5; font: 400 15px/18px "Cormorant Garamond",Georgia,serif;
  text-align: center; max-width: 36ch; margin: 0 auto;
}
.travel-compact-page .travel-booking-facts { flex: none; margin-top: 0; }
.travel-compact-page .travel-booking-facts article {
  background: transparent; color: #f4efe5;
  border-color: rgba(244,239,229,.55);
  grid-template-rows: 18px 28px minmax(48px,auto);
  padding: 12px 8px !important; text-align: center; justify-items: center;
}
.travel-compact-page .travel-booking-facts article > span {
  color: #f4efe5; font: 400 12px/1.2 "Cormorant Garamond",Georgia,serif;
  letter-spacing: .04em;
}
.travel-compact-page .travel-booking-facts article strong {
  color: #f4efe5; font: 400 18px/1.2 "Cormorant Garamond",Georgia,serif;
}
.travel-compact-page .travel-booking-facts article p {
  color: #f4efe5; font: 400 13px/16px "Cormorant Garamond",Georgia,serif;
  max-width: 21ch;
}
.travel-compact-page .travel-booking-facts .travel-book-button {
  background: #f4efe5; color: #183024; border: 1px solid #f4efe5;
  border-radius: 4px; font: 500 18px/1.2 "Cormorant Garamond",Georgia,serif;
  text-transform: none; letter-spacing: 0; margin-top: var(--booking-space);
}
.travel-compact-page .travel-booking-facts .travel-book-button b { color: inherit; }
.travel-compact-page .travel-booking-facts .journey-inline {
  font-size: 0; line-height: 0; color: #f4efe5; margin: var(--booking-space) 0 0;
}
.travel-compact-page .travel-booking-facts .journey-inline a {
  color: #f4efe5; font: 400 16px/1.3 "Cormorant Garamond",Georgia,serif;
  text-transform: none; letter-spacing: 0; border-color: rgba(244,239,229,.55);
  margin: 0;
}
@media (max-height: 740px) {
  .travel-compact-page .travel-booking-compact { --booking-space: 16px; }
}

/* Mobile benefits: one viewport below the header, with evenly stretched tiles. */
.travel-compact-page .travel-value {
  box-sizing: border-box;
  min-height: calc(100svh - 56px);
  display: flex;
  flex-direction: column;
  padding: 28px 24px 24px;
}
.travel-compact-page .travel-benefits-group {
  flex: 1;
  align-self: stretch;
  display: flex;
  flex-direction: column;
}
.travel-compact-page .travel-benefits-heading {
  flex: none;
  margin: 0 0 24px;
}
.travel-compact-page .travel-benefit-grid {
  flex: 1;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(3, minmax(112px, 1fr));
  gap: 10px;
}
.travel-compact-page .travel-benefit-grid button:nth-child(n) {
  position: relative;
  height: 100%;
  min-height: 112px;
  padding: 16px 10px;
}
.travel-compact-page .travel-benefit-grid button::after {
  content: "";
  position: absolute;
  right: 10px;
  bottom: 10px;
  width: 11px;
  height: 11px;
  background:
    linear-gradient(currentColor, currentColor) center / 11px 1px no-repeat,
    linear-gradient(currentColor, currentColor) center / 1px 11px no-repeat;
  pointer-events: none;
}
.travel-compact-page .travel-benefit-grid button.is-active span,
.travel-compact-page .travel-benefit-grid button.is-active h3 { color: #f4efe5; }
.travel-compact-page .travel-fineprint {
  flex: none;
  margin: 18px 0 0;
  font-size: 12px;
  line-height: 1.35;
}
