/* ==================================================
   LA WOODS — Inner Pages (shared)
   Extends concept-2.css with page-specific components
================================================== */

/* =============== PROPERTY SECONDARY NAV =============== */
.lw-prop-bar {
  background: #FBF6EC;
  border-top: 1px solid var(--hair);
  border-bottom: 1px solid var(--hair);
  position: sticky;
  top: 112px;
  z-index: 90;
  isolation: isolate;
  box-shadow: 0 1px 0 rgba(46,22,8,0.06);
  flex-shrink: 0;
}
.lw-prop-bar-inner {
  max-width: var(--max-content);
  margin: 0 auto;
  padding: 14px var(--pad-x);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 28px;
  min-height: 60px;
  min-height: 60px;
}
.lw-prop-bar-label {
  font-family: var(--f-body);
  font-size: 11px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--wine);
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  transition: color .3s var(--ease);
  justify-self: start;
  white-space: nowrap;
  margin-left: -60px;
}
a.lw-prop-bar-label:hover { color: var(--wine-deep); }
.lw-prop-bar-nav {
  min-width: 0;
  justify-self: center;
}
.lw-prop-bar-nav ul {
  display: flex;
  gap: 4px;
  align-items: center;
  flex-wrap: nowrap;
  justify-content: center;
}
.lw-prop-bar-nav a {
  display: inline-flex;
  align-items: center;
  padding: 10px 14px;
  color: var(--brown-deep);
  font-family: var(--f-body);
  font-size: 11.5px;
  letter-spacing: 2px;
  text-transform: uppercase;
  font-weight: 500;
  position: relative;
  white-space: nowrap;
  line-height: 1;
  transition: color .3s var(--ease);
}
.lw-prop-bar-nav a:hover { color: var(--wine); }
.lw-prop-bar-nav a.is-active { color: var(--wine); }
.lw-prop-bar-more {
  position: relative;
  justify-self: end;
  align-self: center;
  margin-left: 40px;
  display: inline-flex;
  align-items: center;
}
.lw-prop-bar-more-btn {
  width: 34px; height: 34px;
  padding: 0;
  margin: 0;
  border: none;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  background: transparent;
  cursor: pointer;
  transition: all .3s var(--ease);
  vertical-align: middle;
}
.lw-prop-bar-more-btn:hover span,
.lw-prop-bar-more.is-open .lw-prop-bar-more-btn span { background: var(--wine); }
.lw-prop-bar-more-btn span {
  display: block;
  width: 22px; height: 2px;
  background: var(--brown-deep);
  transition: all .3s var(--ease);
}
.lw-prop-bar-more.is-open .lw-prop-bar-more-btn span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.lw-prop-bar-more.is-open .lw-prop-bar-more-btn span:nth-child(2) { opacity: 0; }
.lw-prop-bar-more.is-open .lw-prop-bar-more-btn span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.lw-prop-bar-menu {
  position: absolute;
  top: calc(100% + 12px);
  right: 0;
  min-width: 240px;
  background: var(--ivory);
  border: 1px solid var(--hair);
  border-radius: var(--radius-md);
  box-shadow: 0 24px 60px rgba(46, 22, 8, 0.14);
  padding: 8px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: all .3s var(--ease);
}
.lw-prop-bar-more.is-open .lw-prop-bar-menu {
  opacity: 1; visibility: visible; transform: translateY(0);
}
.lw-prop-bar-menu li { list-style: none; }
.lw-prop-bar-menu a {
  display: block;
  padding: 12px 16px;
  font-family: var(--f-body);
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--brown-deep);
  font-weight: 500;
  border-radius: var(--radius-sm);
  transition: background .3s var(--ease), color .3s var(--ease);
}
.lw-prop-bar-menu a:hover { background: var(--cream); color: var(--wine); }

/* =============== CHILD HOME — ACCOMMODATION PREVIEW CARDS =============== */
.lw-home-rooms {
  padding: var(--section-y) var(--pad-x);
  background: var(--paper);
}
.lw-home-rooms-head {
  max-width: var(--max-content);
  margin: 0 auto var(--head-mb);
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 30px;
  flex-wrap: wrap;
}
.lw-home-rooms-grid {
  max-width: var(--max-content);
  margin: 0 auto;
  display: grid;
  /* LAY-12: follow the item count -- this property has 3 room types, not 4 */
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 22px;
}
.lw-home-room {
  background: var(--ivory);
  border: 1px solid var(--hair);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: all .4s var(--ease);
  display: flex;
  flex-direction: column;
}
.lw-home-room:hover { transform: translateY(-6px); box-shadow: 0 26px 60px rgba(78,40,17,0.12); }
.lw-home-room figure { aspect-ratio: 4 / 3; overflow: hidden; }
.lw-home-room figure img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 1.2s var(--ease);
}
.lw-home-room:hover figure img { transform: scale(1.06); }
.lw-home-room-body { padding: 24px 22px 26px; display: flex; flex-direction: column; flex: 1; }
.lw-home-room-body h3 {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 22px;
  color: var(--brown-deep);
  line-height: 1.2;
  margin-bottom: 10px;
}
.lw-home-room-body p {
  font-size: 14px;
  line-height: 1.7;
  color: var(--muted);
  margin-bottom: 18px;
  flex: 1;
}

/* =============== CHILD HOME — CONTENT / EDITORIAL BAND =============== */
.lw-home-editorial {
  padding: var(--section-y) var(--pad-x);
  background: var(--cream);
}
.lw-home-ed-inner {
  max-width: var(--max-content);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}
.lw-home-ed-copy .lw-h2 { margin-bottom: 22px; }
.lw-home-ed-copy p {
  font-size: 16px;
  line-height: 1.85;
  color: var(--muted);
  margin-bottom: 18px;
}
.lw-home-ed-media {
  border-radius: var(--radius-lg);
  overflow: hidden;
  aspect-ratio: 1 / 1;
  border: 8px solid var(--paper);
  box-shadow: 0 30px 60px rgba(78,40,17,0.14);
}
.lw-home-ed-media img { width: 100%; height: 100%; object-fit: cover; }

/* =============== CHILD HOME — PACKAGES (3 FEATURED) =============== */
.lw-home-pk {
  padding: var(--section-y) var(--pad-x);
  background: var(--brown-deep);
  color: var(--ivory);
  position: relative;
  overflow: hidden;
}
.lw-home-pk .lw-btn-outline {
  color: var(--ivory);
  border-color: rgba(251,199,148,0.4);
}
.lw-home-pk .lw-btn-outline:hover {
  background: var(--peach);
  color: var(--brown-deep);
  border-color: var(--peach);
}
.lw-home-pk::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 600px 400px at 15% 20%, rgba(152,13,46,0.22), transparent 60%),
    radial-gradient(ellipse 600px 400px at 90% 90%, rgba(251,199,148,0.08), transparent 60%);
  pointer-events: none;
}
.lw-home-pk-head {
  max-width: var(--max-content);
  margin: 0 auto var(--head-mb);
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 30px;
  flex-wrap: wrap;
  position: relative;
  z-index: 1;
}
.lw-home-pk-grid {
  max-width: var(--max-content);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  position: relative;
  z-index: 1;
}
.lw-home-pk-card {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  aspect-ratio: 1 / 1;
  cursor: pointer;
}
.lw-home-pk-card img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 1.2s var(--ease);
}
.lw-home-pk-card:hover img { transform: scale(1.05); }
.lw-home-pk-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(46,22,8,0) 40%, rgba(46,22,8,0.85) 100%);
}
.lw-home-pk-cap {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 26px 24px;
  z-index: 2;
  color: var(--ivory);
}
.lw-home-pk-tag {
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--peach);
  margin-bottom: 8px;
  display: block;
}
.lw-home-pk-cap h3 {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 24px;
  color: var(--ivory);
  line-height: 1.15;
  margin-bottom: 6px;
}
.lw-home-pk-cap p { font-size: 13px; opacity: 0.75; }

/* =============== CHILD HOME — PHOTO COLLAGE =============== */
.lw-home-gl {
  padding: var(--section-y) var(--pad-x);
  background: var(--paper);
}
.lw-home-gl-head {
  max-width: var(--max-content);
  margin: 0 auto var(--head-mb);
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 30px;
  flex-wrap: wrap;
}
.lw-collage {
  max-width: var(--max-content);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 220px;
  gap: 12px;
}
.lw-collage-item {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
  cursor: pointer;
  display: block;
}
.lw-collage-item img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1.1s var(--ease);
}
.lw-collage-item:hover img { transform: scale(1.06); }
.lw-collage-item::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 55%, rgba(46,22,8,0.65) 100%);
  opacity: 0;
  transition: opacity .3s var(--ease);
}
.lw-collage-item:hover::after { opacity: 1; }
.lw-collage-cap {
  position: absolute;
  bottom: 14px; left: 18px;
  color: var(--ivory);
  font-family: var(--f-display);
  font-size: 16px;
  z-index: 2;
  opacity: 0;
  transform: translateY(6px);
  transition: all .3s var(--ease);
}
.lw-collage-item:hover .lw-collage-cap {
  opacity: 1;
  transform: translateY(0);
}
.lw-collage-item.tall { grid-row: span 2; }
.lw-collage-item.wide { grid-column: span 2; }
.lw-collage-item.big  { grid-row: span 2; grid-column: span 2; }

@media (max-width: 980px) {
  .lw-collage { grid-template-columns: repeat(3, 1fr); grid-auto-rows: 180px; }
  .lw-collage-item.big { grid-row: span 2; grid-column: span 2; }
}
@media (max-width: 720px) {
  .lw-collage {
    display: flex;
    grid-template-columns: none;
    grid-auto-rows: auto;
    gap: 12px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    margin: 0 -20px;
    padding: 4px 20px 12px;
    scroll-padding: 0 20px;
  }
  .lw-collage::-webkit-scrollbar { display: none; }
  .lw-collage-item,
  .lw-collage-item.wide,
  .lw-collage-item.big,
  .lw-collage-item.tall {
    flex: 0 0 82%;
    scroll-snap-align: center;
    aspect-ratio: 4 / 5;
    grid-row: auto;
    grid-column: auto;
    min-width: 0;
  }
}

/* =============== CHILD HOME — NEARBY ATTRACTIONS =============== */
.lw-home-nb {
  padding: var(--section-y) var(--pad-x);
  background: var(--paper);
}
.lw-home-nb-head {
  max-width: var(--max-content);
  margin: 0 auto var(--head-mb);
  text-align: center;
}
.lw-home-nb-head .lw-eyebrow { justify-content: center; }
.lw-home-nb-grid {
  max-width: var(--max-content);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.lw-home-nb-card {
  background: var(--ivory);
  border: 1px solid var(--hair);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: all .4s var(--ease);
}
.lw-home-nb-card:hover { transform: translateY(-4px); box-shadow: 0 20px 50px rgba(78,40,17,0.1); }
.lw-home-nb-card figure { aspect-ratio: 4 / 3; overflow: hidden; }
.lw-home-nb-card figure img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 1s var(--ease);
}
.lw-home-nb-card:hover figure img { transform: scale(1.06); }
.lw-home-nb-body { padding: 18px 20px 22px; }
.lw-home-nb-body h4 {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 18px;
  color: var(--brown-deep);
  margin-bottom: 6px;
}
.lw-home-nb-body p {
  font-size: 13px;
  color: var(--muted);
  line-height: 1.6;
}
.lw-home-nb-body i { color: var(--wine); margin-right: 6px; font-size: 11px; }

/* =============== RESPONSIVE — CHILD HOME =============== */
@media (max-width: 1200px) {
  .lw-home-rooms-grid, .lw-home-nb-grid { grid-template-columns: repeat(3, 1fr); }
  .lw-home-nb-grid > *:nth-child(n+7) { display: none; }
}
@media (max-width: 980px) {
  .lw-home-rooms-grid, .lw-home-nb-grid, .lw-home-pk-grid { grid-template-columns: repeat(2, 1fr); }
  .lw-home-nb-grid > * { display: block; }
  .lw-home-nb-grid > *:nth-child(n+7) { display: block; }
  .lw-home-ed-inner { grid-template-columns: 1fr; gap: 40px; }
  .lw-home-ed-media { max-width: 520px; margin: 0 auto; aspect-ratio: 4 / 3; }
  .lw-prop-bar { top: 80px; }
}
@media (max-width: 720px) {
  /* Rooms, Offers, Facilities, Nearby, Similar Rooms become horizontal card sliders on mobile */
  .lw-home-rooms-grid,
  .lw-home-pk-grid,
  .lw-fc-grid,
  .lw-home-nb-grid,
  .lw-rm-sim-grid,
  .lw-rs-grid {
    display: flex !important;
    flex-direction: row !important;
    grid-template-columns: none;
    gap: 14px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-padding-left: var(--pad-x);
    padding: 4px var(--pad-x) 18px;
    margin: 0 calc(-1 * var(--pad-x));
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .lw-home-rooms-grid::-webkit-scrollbar,
  .lw-home-pk-grid::-webkit-scrollbar,
  .lw-fc-grid::-webkit-scrollbar,
  .lw-home-nb-grid::-webkit-scrollbar,
  .lw-rm-sim-grid::-webkit-scrollbar,
  .lw-rs-grid::-webkit-scrollbar { display: none; }
  .lw-home-rooms-grid > *,
  .lw-home-pk-grid > *,
  .lw-fc-grid > *,
  .lw-home-nb-grid > *,
  .lw-rm-sim-grid > *,
  .lw-rs-grid > * {
    flex: 0 0 82% !important;
    max-width: 82% !important;
    scroll-snap-align: start;
  }
  .lw-home-pk-card { aspect-ratio: 3 / 4; }
  .lw-home-nb-grid > *:nth-child(n) { display: block; }

  /* Accommodations section — dark background on mobile with light-shade text */
  .lw-home-rooms { background: var(--brown-deep); }
  .lw-home-rooms .lw-eyebrow { color: var(--peach); }
  .lw-home-rooms .lw-eyebrow-dash { background: var(--peach); }
  .lw-home-rooms .lw-h2 { color: var(--ivory); }
  .lw-home-rooms .lw-h2 em { color: var(--peach); }
  .lw-home-rooms .lw-btn-outline {
    color: var(--ivory);
    border-color: rgba(251,199,148,0.4);
  }
  .lw-home-rooms .lw-btn-outline:hover {
    background: var(--peach);
    color: var(--brown-deep);
    border-color: var(--peach);
  }

  /* Property secondary nav — hidden entirely on mobile; items merge into main hamburger */
  .lw-prop-bar { display: none; }

  /* Section label + separator inside the mobile main-nav overlay */
  .lw-nav.is-open .lw-nav-section {
    padding: 20px 4px 8px !important;
    font-size: 10px !important;
    letter-spacing: 3px !important;
    text-transform: uppercase !important;
    color: var(--wine) !important;
    font-weight: 600 !important;
    border-bottom: none !important;
    pointer-events: none;
  }
  .lw-nav.is-open .lw-nav-section:first-child { padding-top: 4px !important; }
  /* Property nav items visible in mobile drawer only */
  .lw-nav.is-open .lw-nav-mo { display: list-item; }
  .lw-prop-bar-more {
    grid-column: 2;
    justify-self: end;
    margin-left: 0;
    flex-shrink: 0;
    background: var(--paper);
    padding-left: 8px;
    position: relative;
    z-index: 2;
  }
  .lw-prop-bar-more::before {
    content: '';
    position: absolute;
    left: -24px; top: 0; bottom: 0;
    width: 24px;
    background: linear-gradient(to right, rgba(254, 251, 245, 0), var(--paper));
    pointer-events: none;
  }
}

/* =============== PAGE HERO / BANNER =============== */
.lw-pg-hero,
.lw-abt-hero,
.lw-of-hero {
  position: relative;
  height: 420px;
  min-height: 420px;
  max-height: 420px;
  overflow: hidden;
  background: var(--brown-deep);
  display: flex;
  align-items: flex-end;
}
.lw-pg-hero-media {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transform: scale(1.02);
}
.lw-pg-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(46,22,8,0.35) 0%, rgba(46,22,8,0) 30%, rgba(46,22,8,0.75) 100%);
  z-index: 1;
}
.lw-pg-hero-inner,
.lw-abt-hero-inner,
.lw-abt-hero-meta,
.lw-abt-hero-scroll,
.lw-abt-hero-vert { display: none !important; }
.lw-pg-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--f-body);
  font-size: 13px;
  letter-spacing: 3.5px;
  text-transform: uppercase;
  color: var(--peach);
  margin-bottom: 30px;
  font-weight: 500;
}
.lw-pg-eyebrow::before {
  content: '';
  width: 28px; height: 1px;
  background: currentColor;
}
.lw-pg-title {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: clamp(28px, 4vw, 46px);
  line-height: 1.05;
  letter-spacing: -0.6px;
  color: var(--ivory);
  margin-bottom: 12px;
  max-width: 900px;
}
.lw-pg-title em {
  font-family: var(--f-italic);
  color: var(--peach);
}
.lw-pg-sub {
  font-size: 16px;
  line-height: 1.7;
  color: rgba(254,251,245,0.85);
  max-width: 620px;
  font-weight: 300;
}

/* =============== BREADCRUMB =============== */
.lw-crumb {
  background: var(--paper);
  border-bottom: 1px solid var(--hair);
  padding: 18px var(--pad-x);
}
.lw-crumb-inner {
  max-width: var(--max-content);
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
  color: var(--muted);
  letter-spacing: 1px;
  text-transform: uppercase;
  font-weight: 500;
}
.lw-crumb a { color: var(--muted); transition: color .3s var(--ease); }
.lw-crumb a:hover { color: var(--wine); }
.lw-crumb i {
  color: var(--peach-deep);
  font-size: 8px;
}
.lw-crumb .current { color: var(--wine); }

/* =============== PAGE INTRO =============== */
.lw-pg-intro {
  padding: var(--section-y) var(--pad-x) 0;
  background: var(--paper);
}
/* When any content section follows the intro, tighten the top gap
   so we don't stack section-y padding on top of section-y padding */
.lw-pg-intro + .lw-fc,
.lw-pg-intro + .lw-rs,
.lw-pg-intro + .lw-op,
.lw-pg-intro + .lw-mp,
.lw-pg-intro + .lw-ex,
.lw-pg-intro + .lw-dp,
.lw-pg-intro + .lw-bl,
.lw-pg-intro + .lw-rooms,
.lw-pg-intro + .lw-gu,
.lw-pg-intro + .lw-faq,
.lw-pg-intro + .lw-journal { padding-top: clamp(32px, 4vw, 52px); }
.lw-pg-intro-inner {
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
}
.lw-pg-intro .lw-eyebrow { justify-content: center; font-size: 13px; }
.lw-pg-intro h2 { margin-bottom: 22px; }
.lw-pg-intro p {
  font-size: 16.5px;
  line-height: 1.85;
  color: var(--muted);
  margin: 0 auto;
  max-width: 660px;
}

/* =============== UNIFORM GALLERY GRID (child gallery page) =============== */
.lw-gu {
  padding: var(--section-y) var(--pad-x);
  background: var(--paper);
}
.lw-gu-filter {
  max-width: var(--max-content);
  margin: 0 auto var(--head-mb);
  display: flex;
  justify-content: center;
  gap: 6px;
  flex-wrap: wrap;
}
.lw-gu-tab {
  padding: 10px 20px;
  font-family: var(--f-body);
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 500;
  background: transparent;
  border: 1px solid var(--hair-strong);
  border-radius: 999px;
  cursor: pointer;
  transition: all .3s var(--ease);
  line-height: 1;
}
.lw-gu-tab:hover { color: var(--wine); border-color: var(--wine); }
.lw-gu-tab.is-active {
  background: var(--wine);
  border-color: var(--wine);
  color: var(--ivory);
}
.lw-gu-grid {
  max-width: var(--max-content);
  margin: 0 auto;
  column-count: 3;
  column-gap: 16px;
}
.lw-gu-item {
  display: block;
  break-inside: avoid;
  margin: 0 0 16px;
  cursor: pointer;
  text-decoration: none;
  color: inherit;
}
.lw-gu-item figure {
  margin: 0;
  overflow: hidden;
  border-radius: var(--radius-md);
  background: var(--cream);
}
.lw-gu-item img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform 1.1s var(--ease);
}
.lw-gu-item:hover img { transform: scale(1.05); }
.lw-gu-item figcaption {
  padding: 12px 4px 0;
  font-family: var(--f-body);
  font-size: 13px;
  color: var(--muted);
  line-height: 1.5;
}

@media (max-width: 980px) {
  .lw-gu-grid { column-count: 2; column-gap: 12px; }
  .lw-gu-item { margin-bottom: 12px; }
}
@media (max-width: 720px) {
  .lw-gu-grid {
    column-count: unset;
    display: flex;
    gap: 16px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 4px 20px 12px;
    margin: 0 -20px;
    scroll-padding: 0 20px;
  }
  .lw-gu-grid::-webkit-scrollbar { display: none; }
  .lw-gu-item {
    flex: 0 0 82%;
    scroll-snap-align: center;
    margin: 0;
    min-width: 0;
  }
  .lw-gu-item figure { aspect-ratio: 4 / 5; }
  .lw-gu-item img { height: 100%; object-fit: cover; }
}

/* =============== LIGHTBOX =============== */
.lw-lb {
  position: fixed;
  inset: 0;
  background: rgba(22, 12, 6, 0.94);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 200;
  padding: 40px;
  opacity: 0;
  transition: opacity .3s var(--ease);
}
.lw-lb.is-open {
  display: flex;
  opacity: 1;
}
.lw-lb-img {
  max-width: min(90vw, 1280px);
  max-height: 88vh;
  object-fit: contain;
  display: block;
  border-radius: var(--radius-md);
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.5);
}
.lw-lb-cap {
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  color: var(--ivory);
  font-family: var(--f-body);
  font-size: 13px;
  letter-spacing: 1px;
  text-align: center;
  max-width: 80vw;
}
.lw-lb-close,
.lw-lb-prev,
.lw-lb-next {
  position: absolute;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: none;
  background: rgba(254, 251, 245, 0.15);
  color: var(--ivory);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background .3s var(--ease);
  z-index: 2;
}
.lw-lb-close:hover,
.lw-lb-prev:hover,
.lw-lb-next:hover { background: rgba(254, 251, 245, 0.28); }
.lw-lb-close { top: 24px; right: 24px; }
.lw-lb-prev { left: 24px; top: 50%; transform: translateY(-50%); }
.lw-lb-next { right: 24px; top: 50%; transform: translateY(-50%); }
.lw-lb-close i,
.lw-lb-prev i,
.lw-lb-next i { font-size: 16px; }
@media (max-width: 720px) {
  .lw-lb { padding: 20px; }
  .lw-lb-close, .lw-lb-prev, .lw-lb-next { width: 40px; height: 40px; }
  .lw-lb-close { top: 16px; right: 16px; }
  .lw-lb-prev { left: 12px; }
  .lw-lb-next { right: 12px; }
}

/* =============== SUB-SECTION PILL NAV (rooms, dining, etc.) =============== */
.lw-subnav {
  background: var(--paper);
  border-bottom: 1px solid var(--hair);
}
.lw-subnav-inner {
  max-width: var(--max-content);
  margin: 0 auto;
  padding: 10px var(--pad-x);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
  overflow-x: auto;
}
.lw-subnav a {
  font-family: var(--f-body);
  font-size: 11.5px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 500;
  padding: 10px 18px;
  border-bottom: 2px solid transparent;
  transition: color .3s var(--ease), border-color .3s var(--ease);
  white-space: nowrap;
  line-height: 1;
}
.lw-subnav a:hover { color: var(--wine); }
.lw-subnav a.is-active {
  color: var(--wine);
  border-bottom-color: var(--wine);
}
@media (max-width: 720px) {
  .lw-subnav-inner { justify-content: flex-start; gap: 4px; padding: 8px 12px; }
  .lw-subnav a { padding: 8px 12px; font-size: 10.5px; letter-spacing: 1.5px; }
}

/* =============== VENUE CAPACITY TABLE (meetings page) =============== */
.lw-cap {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  margin: 22px 0 28px;
  border: 1px solid var(--hair);
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--paper);
}
.lw-cap-cell {
  padding: 14px 12px;
  text-align: center;
  border-right: 1px solid var(--hair);
}
.lw-cap-cell:last-child { border-right: none; }
.lw-cap-cell dt {
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 500;
  margin-bottom: 6px;
}
.lw-cap-cell dd {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 22px;
  color: var(--wine);
  margin: 0;
}
@media (max-width: 720px) {
  .lw-cap { grid-template-columns: repeat(2, 1fr); }
  .lw-cap-cell { border-right: none; border-bottom: 1px solid var(--hair); }
  .lw-cap-cell:nth-child(odd) { border-right: 1px solid var(--hair); }
}

/* =============== ROOMS SUMMARY (child property) =============== */
.lw-rs {
  padding: var(--section-y) var(--pad-x);
  background: var(--paper);
}
.lw-rs-grid {
  max-width: var(--max-content);
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 26px;
}
.lw-rs-grid > .lw-rs-card {
  flex: 1 1 300px;
  max-width: calc((100% - 52px) / 3);
}
.lw-rs-card {
  background: var(--ivory);
  border: 1px solid var(--hair);
  border-radius: var(--radius-lg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: all .4s var(--ease);
}
.lw-rs-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 26px 60px rgba(78,40,17,0.12);
}
.lw-rs-card figure {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  position: relative;
}
.lw-rs-card figure img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1.2s var(--ease);
}
.lw-rs-card:hover figure img { transform: scale(1.05); }
.lw-rs-body {
  padding: 28px 26px 30px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.lw-rs-body h3 {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 21px;
  color: var(--brown-deep);
  line-height: 1.2;
  margin-bottom: 10px;
}
.lw-rs-body h3 em { font-family: var(--f-italic); color: var(--wine); }
.lw-rs-body p {
  font-size: 14.5px;
  line-height: 1.75;
  color: var(--muted);
  padding-bottom: 22px;
  margin-bottom: 0;
  border-bottom: 1px solid var(--hair);
  flex: 1;
}
.lw-rs-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 20px;
  margin-top: 18px;
  border-radius: 999px;
  border: 1px solid var(--wine);
  background: transparent;
  color: var(--wine);
  font-family: var(--f-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  transition: all .3s var(--ease);
  white-space: nowrap;
  align-self: flex-start;
}
.lw-rs-link i { font-size: 10px; transition: transform .3s var(--ease); }
.lw-rs-link:hover,
.lw-rs-card:hover .lw-rs-link {
  background: var(--wine);
  color: var(--ivory);
}
.lw-rs-card:hover .lw-rs-link i { transform: translateX(4px); }

@media (max-width: 1100px) {
  .lw-rs-grid > .lw-rs-card { max-width: calc((100% - 26px) / 2); }
}
@media (max-width: 720px) {
  .lw-rs-grid { flex-direction: column; }
  .lw-rs-grid > .lw-rs-card { max-width: 100%; flex: 1 1 100%; }
}

/* =========================================================
   ROOM DETAIL PAGE  (lw-rm-*)
   Hero + editorial intro + facts strip + gallery + amenities + similar rooms
========================================================= */
.lw-rm-intro {
  padding: clamp(50px, 7vw, 90px) var(--pad-x) clamp(30px, 4vw, 50px);
  background: var(--paper);
}
.lw-rm-intro-inner {
  max-width: var(--max-content);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: clamp(30px, 5vw, 70px);
  align-items: end;
}
.lw-rm-intro-copy .lw-eyebrow { margin-bottom: 18px; }
.lw-rm-title {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: clamp(38px, 5vw, 62px);
  line-height: 1.05;
  letter-spacing: -1px;
  color: var(--brown-deep);
  margin: 0;
}
.lw-rm-title em {
  font-family: var(--f-italic);
  color: var(--wine);
  font-weight: 400;
}
.lw-rm-lede {
  font-family: var(--f-body);
  font-size: 16px;
  line-height: 1.75;
  color: var(--muted);
  margin: 0;
  padding-bottom: 6px;
  max-width: 460px;
}

/* Room facts strip */
.lw-rm-facts {
  max-width: var(--max-content);
  margin: 0 auto;
  padding: clamp(30px, 4vw, 50px) var(--pad-x);
  background: var(--paper);
}
.lw-rm-facts-inner {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border-top: 1px solid var(--hair-strong);
  border-bottom: 1px solid var(--hair-strong);
}
.lw-rm-fact {
  padding: 26px 24px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  border-right: 1px solid var(--hair);
}
.lw-rm-fact:last-child { border-right: none; }
.lw-rm-fact-lbl {
  font-family: var(--f-body);
  font-size: 10.5px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 500;
}
.lw-rm-fact-val {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 22px;
  color: var(--brown-deep);
  line-height: 1.15;
  letter-spacing: -0.3px;
}
.lw-rm-fact-val em {
  font-family: var(--f-italic);
  color: var(--wine);
  font-size: 0.8em;
}

/* Description + booking two-column */
.lw-rm-body {
  padding: clamp(50px, 7vw, 90px) var(--pad-x);
  background: var(--paper);
}
.lw-rm-body-inner {
  max-width: var(--max-content);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: clamp(40px, 6vw, 90px);
  align-items: start;
}
.lw-rm-desc p {
  font-family: var(--f-body);
  font-size: 16px;
  line-height: 1.85;
  color: var(--brown-deep);
  margin: 0 0 22px;
}
.lw-rm-desc .lw-rm-lede-inline {
  font-family: var(--f-display);
  font-weight: 300;
  font-size: clamp(20px, 2.2vw, 26px);
  line-height: 1.5;
  color: var(--brown-deep);
  padding-bottom: 26px;
  margin-bottom: 26px;
  border-bottom: 1px solid var(--hair);
}

/* Booking card */
.lw-rm-book {
  background: var(--ivory);
  border: 1px solid var(--hair);
  border-radius: var(--radius-lg);
  padding: 32px 30px;
  box-shadow: 0 22px 50px rgba(78,40,17,0.08);
}
.lw-rm-book-tag {
  display: block;
  font-family: var(--f-body);
  font-size: 10.5px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--wine);
  font-weight: 600;
  margin-bottom: 18px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--hair);
}
.lw-rm-book-price {
  display: block;
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 42px;
  color: var(--brown-deep);
  line-height: 1;
  letter-spacing: -1px;
  margin-bottom: 4px;
}
.lw-rm-book-price em {
  font-family: var(--f-body);
  font-style: normal;
  font-size: 13px;
  letter-spacing: 1px;
  color: var(--muted);
  font-weight: 500;
  margin-left: 4px;
}
.lw-rm-book-note {
  font-size: 13px;
  color: var(--muted);
  margin: 0 0 24px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--hair);
}
.lw-rm-book-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 26px;
}
.lw-rm-book-list li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  color: var(--brown-deep);
}
.lw-rm-book-list i {
  color: var(--wine);
  font-size: 11px;
}
.lw-rm-book .lw-btn { width: 100%; justify-content: center; margin-bottom: 10px; }

/* Gallery slider — one image at a time */
.lw-rm-gallery {
  padding: clamp(20px, 3vw, 40px) var(--pad-x) clamp(50px, 7vw, 80px);
  background: var(--paper);
}
.lw-rm-slider {
  position: relative;
  max-width: var(--max-content);
  margin: 0 auto;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--cream);
  aspect-ratio: 5 / 2;
  max-height: 520px;
}
.lw-rm-slider-track {
  position: relative;
  width: 100%;
  height: 100%;
}
.lw-rm-slide {
  position: absolute;
  inset: 0;
  margin: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity .55s var(--ease), visibility .55s var(--ease);
}
.lw-rm-slide.is-active {
  opacity: 1;
  visibility: visible;
}
.lw-rm-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.lw-rm-slider-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 52px;
  height: 52px;
  border-radius: 50%;
  border: none;
  background: rgba(254, 251, 245, 0.92);
  color: var(--wine);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(46, 22, 8, 0.18);
  transition: background .3s var(--ease), color .3s var(--ease), transform .3s var(--ease);
  z-index: 3;
}
.lw-rm-slider-arrow:hover {
  background: var(--wine);
  color: var(--ivory);
  transform: translateY(-50%) scale(1.06);
}
.lw-rm-slider-arrow i { font-size: 16px; }
.lw-rm-slider-prev { left: 20px; }
.lw-rm-slider-next { right: 20px; }
.lw-rm-slider-dots {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
  z-index: 3;
}
.lw-rm-slider-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: none;
  background: rgba(254, 251, 245, 0.6);
  cursor: pointer;
  padding: 0;
  transition: background .3s var(--ease), transform .3s var(--ease);
}
.lw-rm-slider-dot:hover { background: rgba(254, 251, 245, 0.9); }
.lw-rm-slider-dot.is-active {
  background: var(--ivory);
  transform: scale(1.4);
}
@media (max-width: 720px) {
  .lw-rm-slider { aspect-ratio: 4 / 3; }
  .lw-rm-slider-arrow { width: 40px; height: 40px; }
  .lw-rm-slider-arrow i { font-size: 13px; }
  .lw-rm-slider-prev { left: 12px; }
  .lw-rm-slider-next { right: 12px; }
}

/* Amenities */
.lw-rm-amen {
  padding: clamp(60px, 8vw, 100px) var(--pad-x);
  background: var(--cream);
}
.lw-rm-amen-head {
  max-width: var(--max-content);
  margin: 0 auto clamp(30px, 4vw, 50px);
  text-align: center;
}
.lw-rm-amen-head .lw-eyebrow { justify-content: center; }
.lw-rm-amen-head h2 { margin: 0; }
.lw-rm-amen-grid {
  max-width: var(--max-content);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}
.lw-rm-amen-item {
  background: var(--ivory);
  border: 1px solid var(--hair);
  border-radius: var(--radius-lg);
  padding: 22px 20px;
  display: flex;
  align-items: center;
  gap: 14px;
  transition: all .3s var(--ease);
}
.lw-rm-amen-item:hover {
  border-color: var(--wine);
  transform: translateY(-3px);
}
.lw-rm-amen-item i {
  width: 42px; height: 42px;
  border-radius: 50%;
  background: var(--paper);
  border: 1px solid var(--hair-strong);
  color: var(--wine);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  flex-shrink: 0;
}
.lw-rm-amen-item span {
  font-family: var(--f-body);
  font-size: 14px;
  color: var(--brown-deep);
  font-weight: 500;
  line-height: 1.35;
}

/* Similar rooms */
.lw-rm-sim {
  padding: clamp(60px, 8vw, 100px) var(--pad-x);
  background: var(--paper);
}
.lw-rm-sim-head {
  max-width: var(--max-content);
  margin: 0 auto clamp(30px, 4vw, 50px);
}
.lw-rm-sim-grid {
  max-width: var(--max-content);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 22px;
}

/* Responsive */
@media (max-width: 1100px) {
  .lw-rm-body-inner { grid-template-columns: 1fr; }
  .lw-rm-amen-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 980px) {
  .lw-rm-intro-inner { grid-template-columns: 1fr; align-items: start; gap: 20px; }
  .lw-rm-facts-inner { grid-template-columns: repeat(2, 1fr); }
  .lw-rm-fact:nth-child(2) { border-right: none; }
  .lw-rm-fact:nth-child(-n+2) { border-bottom: 1px solid var(--hair); }
  .lw-rm-amen-grid { grid-template-columns: repeat(2, 1fr); }
  .lw-rm-gallery-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 180px; }
  .lw-rm-gallery-grid figure:nth-child(1) { grid-column: span 2; grid-row: span 2; }
  .lw-rm-gallery-grid figure:nth-child(n+2) { grid-column: span 1; grid-row: span 1; }
  .lw-rm-sim-grid { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .lw-rm-facts-inner { grid-template-columns: 1fr; }
  .lw-rm-fact { border-right: none !important; border-bottom: 1px solid var(--hair); }
  .lw-rm-fact:last-child { border-bottom: none; }
  .lw-rm-amen-grid { grid-template-columns: 1fr; }
}

/* =============== ROOMS PAGE — editorial (kept for detail pages) =============== */
.lw-rooms {
  padding: var(--section-y) var(--pad-x);
  background: var(--paper);
}
.lw-rooms-list {
  max-width: var(--max-content);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 36px;
}
.lw-room {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  background: var(--ivory);
  border: 1px solid var(--hair);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: 0 20px 50px rgba(78,40,17,0.08);
  transition: box-shadow .4s var(--ease);
}
.lw-room:nth-child(even) { grid-template-columns: 1fr 1.2fr; }
.lw-room:nth-child(even) .lw-room-media { order: 2; }
.lw-room:nth-child(even) .lw-room-body { order: 1; }
.lw-room:hover { box-shadow: 0 30px 70px rgba(78,40,17,0.14); }

.lw-room-media {
  position: relative;
  overflow: hidden;
  min-height: 400px;
}
.lw-room-media img {
  width: 100%; height: 100%;
  object-fit: cover;
  position: absolute;
  inset: 0;
  transition: transform 1.2s var(--ease);
}
.lw-room:hover .lw-room-media img { transform: scale(1.04); }
.lw-room-tag {
  position: absolute;
  top: 20px; left: 20px;
  background: var(--wine);
  color: var(--ivory);
  padding: 8px 16px;
  border-radius: 999px;
  font-size: 10px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  font-weight: 600;
  z-index: 2;
}
.lw-room-body {
  padding: clamp(30px, 3.5vw, 48px);
  display: flex;
  flex-direction: column;
}
.lw-room-loc {
  font-size: 11px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--wine);
  font-weight: 600;
  margin-bottom: 14px;
}
.lw-room-name {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: clamp(26px, 3vw, 36px);
  color: var(--brown-deep);
  line-height: 1.1;
  margin-bottom: 12px;
}
.lw-room-name em { font-family: var(--f-italic); color: var(--wine); }
.lw-room-facts {
  display: flex;
  gap: 20px;
  margin-bottom: 22px;
  flex-wrap: wrap;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--hair);
}
.lw-room-facts li {
  font-size: 13px;
  color: var(--brown-deep);
  font-weight: 500;
}
.lw-room-facts i { color: var(--wine); margin-right: 8px; }
.lw-room-desc {
  font-size: 15px;
  line-height: 1.75;
  color: var(--muted);
  margin-bottom: 24px;
}
.lw-room-amen {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 30px;
}
.lw-room-amen li {
  font-size: 13.5px;
  color: var(--brown-deep);
  display: flex;
  align-items: center;
  gap: 10px;
}
.lw-room-amen i { color: var(--wine); font-size: 11px; }
.lw-room-foot {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 20px;
  margin-top: auto;
  padding-top: 22px;
  border-top: 1px solid var(--hair);
  flex-wrap: wrap;
}
.lw-room-price {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.lw-room-price em {
  font-family: var(--f-body);
  font-style: normal;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 500;
}
.lw-room-price strong {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 26px;
  color: var(--wine);
}
.lw-room-price span {
  font-size: 12px;
  color: var(--muted);
}
.lw-room-actions {
  display: flex;
  gap: 12px;
  align-items: center;
}

/* =============== OFFERS PAGE — FILTERS & CTA =============== */
/* .lw-of-hero heights are unified with .lw-pg-hero above */
.lw-of-hero::after { display: none; }

/* Page header */
.lw-of-head {
  padding: clamp(50px, 7vw, 90px) var(--pad-x) clamp(20px, 3vw, 40px);
  background: var(--paper);
}
.lw-of-head-inner {
  max-width: var(--max-content);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: clamp(30px, 5vw, 70px);
  align-items: end;
}
.lw-of-title {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: clamp(38px, 5vw, 66px);
  line-height: 1.02;
  letter-spacing: -1.2px;
  color: var(--brown-deep);
  margin: 0;
}
.lw-of-title em {
  font-family: var(--f-italic);
  color: var(--wine);
  font-weight: 400;
}
.lw-of-lede {
  font-family: var(--f-body);
  font-size: 16px;
  line-height: 1.75;
  color: var(--muted);
  margin: 0;
  padding-bottom: 8px;
  max-width: 480px;
}
@media (max-width: 980px) {
  .lw-of-head-inner { grid-template-columns: 1fr; gap: 20px; align-items: start; }
}

.lw-of-filter {
  padding: clamp(16px, 2vw, 24px) var(--pad-x) clamp(10px, 1.5vw, 20px);
  background: var(--paper);
}
.lw-of-filter-inner {
  max-width: var(--max-content);
  margin: 0 auto;
  display: flex;
  justify-content: center;
  gap: clamp(40px, 6vw, 80px);
  flex-wrap: wrap;
}
.lw-of-select {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 240px;
}
.lw-of-select-lbl {
  font-family: var(--f-body);
  font-size: 15px;
  font-weight: 600;
  color: var(--brown-deep);
  letter-spacing: -0.1px;
}
.lw-of-select-wrap {
  position: relative;
  border-bottom: 1px solid var(--brown-deep);
}
.lw-of-select-wrap select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  width: 100%;
  padding: 10px 32px 10px 0;
  font-family: var(--f-body);
  font-size: 15px;
  font-weight: 500;
  color: var(--wine);
  background: transparent;
  border: none;
  outline: none;
  cursor: pointer;
}
.lw-of-select-wrap select option {
  color: var(--brown-deep);
  background: var(--ivory);
}
.lw-of-select-wrap i {
  position: absolute;
  right: 4px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--muted);
  font-size: 12px;
  pointer-events: none;
  transition: color .3s var(--ease);
}
.lw-of-select-wrap:hover i,
.lw-of-select-wrap:focus-within i {
  color: var(--wine);
}

/* Empty state */
.lw-of-empty {
  padding: clamp(60px, 8vw, 100px) var(--pad-x);
  background: var(--paper);
  text-align: center;
  max-width: 640px;
  margin: 0 auto;
}
.lw-of-empty .lw-eyebrow { justify-content: center; margin-bottom: 30px; }
.lw-of-empty h3 {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: clamp(24px, 3vw, 34px);
  color: var(--brown-deep);
  margin: 0 0 14px;
  line-height: 1.2;
}
.lw-of-empty p {
  font-size: 15px;
  color: var(--muted);
  line-height: 1.7;
  margin: 0 0 30px;
}

/* Bespoke stays CTA — dark band */
.lw-of-cta {
  padding: clamp(70px, 9vw, 120px) var(--pad-x);
  background: var(--brown-deep);
  color: var(--ivory);
  position: relative;
  overflow: hidden;
}
.lw-of-cta::before {
  content: '';
  position: absolute;
  top: -40%; right: -20%;
  width: 60%; aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(251,199,148,0.12), transparent 60%);
  pointer-events: none;
}
.lw-of-cta-inner {
  max-width: var(--max-content);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: clamp(30px, 5vw, 60px);
  align-items: center;
  position: relative;
  z-index: 1;
}
.lw-of-cta-inner .lw-h2 { margin-bottom: 20px; }
.lw-of-cta-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 22px;
}
.lw-of-cta-email {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  color: var(--ivory);
  transition: opacity .3s var(--ease);
}
.lw-of-cta-email:hover { opacity: 0.8; }
.lw-of-cta-email i {
  width: 44px; height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(251,199,148,0.4);
  color: var(--peach);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
}
.lw-of-cta-email div { display: flex; flex-direction: column; gap: 2px; }
.lw-of-cta-email span {
  font-family: var(--f-body);
  font-size: 10px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: rgba(251,199,148,0.75);
  font-weight: 500;
}
.lw-of-cta-email strong {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 18px;
  color: var(--ivory);
}
@media (max-width: 980px) {
  .lw-of-filter-inner { gap: 24px; }
  .lw-of-select { min-width: 200px; flex: 1 1 200px; }
  .lw-of-cta-inner { grid-template-columns: 1fr; gap: 30px; }
}
@media (max-width: 720px) {
  .lw-of-select { min-width: unset; width: 100%; }
}

/* =============== OFFERS PAGE =============== */
.lw-op {
  padding: clamp(30px, 4vw, 50px) var(--pad-x) var(--section-y);
  background: var(--paper);
}
.lw-op-grid {
  max-width: var(--max-content);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}
.lw-op-card {
  background: var(--ivory);
  border: 1px solid var(--hair);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: all .4s var(--ease);
  display: flex;
  flex-direction: column;
}
.lw-op-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 30px 60px rgba(78,40,17,0.12);
}
.lw-op-card figure {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  position: relative;
}
.lw-op-card figure img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1.2s var(--ease);
}
.lw-op-card:hover figure img { transform: scale(1.06); }
.lw-op-badge {
  position: absolute;
  top: 18px; left: 18px;
  background: var(--wine);
  color: var(--ivory);
  padding: 6px 14px;
  border-radius: 999px;
  font-size: 10px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  font-weight: 600;
}
.lw-op-body {
  padding: 30px 28px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.lw-op-place {
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--wine);
  font-weight: 600;
  margin-bottom: 12px;
}
.lw-op-card h3 {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 24px;
  color: var(--brown-deep);
  line-height: 1.2;
  margin-bottom: 12px;
}
.lw-op-card p {
  font-size: 14.5px;
  line-height: 1.7;
  color: var(--muted);
  margin-bottom: 22px;
  flex: 1;
}
.lw-op-foot {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  padding-top: 20px;
  border-top: 1px solid var(--hair);
}
/* Price (if present) sits inline on the left, followed by the CTA */
.lw-op-foot .lw-op-price { margin-right: auto; }
.lw-op-price {
  font-family: var(--f-display);
  font-size: 20px;
  color: var(--wine);
}
.lw-op-price em {
  font-family: var(--f-body);
  font-style: normal;
  font-size: 11px;
  color: var(--muted);
  margin-left: 4px;
}
.lw-op-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 20px;
  border-radius: 999px;
  border: 1px solid var(--wine);
  background: transparent;
  color: var(--wine);
  font-family: var(--f-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  transition: all .3s var(--ease);
  white-space: nowrap;
}
.lw-op-link i { font-size: 10px; transition: transform .3s var(--ease); }
.lw-op-link:hover {
  background: var(--wine);
  color: var(--ivory);
}
.lw-op-link:hover i { transform: translateX(4px); }
/* When placed inside a room preview card (column flex), left-align */
.lw-home-room .lw-op-link,
.lw-ex-body .lw-op-link,
.lw-bl-body .lw-op-link {
  align-self: flex-start;
  margin-top: 6px;
}

/* More Info pill button */
.lw-op-more {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 20px;
  border-radius: 999px;
  border: 1px solid var(--wine);
  background: transparent;
  color: var(--wine);
  font-family: var(--f-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  transition: all .3s var(--ease);
  white-space: nowrap;
}
.lw-op-more i { font-size: 10px; transition: transform .3s var(--ease); }
.lw-op-more:hover {
  background: var(--wine);
  color: var(--ivory);
}
.lw-op-more:hover i { transform: translateX(4px); }
.lw-op-terms {
  font-size: 12px;
  color: var(--muted);
  padding: 12px 16px;
  background: var(--cream);
  border-radius: var(--radius-md);
  margin-bottom: 20px;
}
.lw-op-terms strong { color: var(--brown-deep); }

/* =============== FACILITIES PAGE =============== */
.lw-fc {
  padding: var(--section-y) var(--pad-x);
  background: var(--paper);
}
.lw-fc-grid {
  max-width: var(--max-content);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
}
.lw-fc-card {
  background: var(--ivory);
  border: 1px solid var(--hair);
  border-radius: var(--radius-lg);
  padding: 34px 26px 30px;
  transition: all .4s var(--ease);
  text-align: left;
}
.lw-fc-card:hover {
  transform: translateY(-6px);
  border-color: var(--wine);
  box-shadow: 0 26px 60px rgba(78,40,17,0.12);
}
.lw-fc-icon {
  width: 60px; height: 60px;
  background: var(--cream);
  color: var(--wine);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  margin-bottom: 22px;
  transition: all .4s var(--ease);
}
.lw-fc-card:hover .lw-fc-icon {
  background: var(--wine);
  color: var(--peach);
}
.lw-fc-card h3 {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 22px;
  color: var(--brown-deep);
  line-height: 1.2;
  margin-bottom: 12px;
}
.lw-fc-card p {
  font-size: 14px;
  line-height: 1.7;
  color: var(--muted);
}

/* =============== DINING PAGE =============== */
.lw-dp {
  padding: var(--section-y) var(--pad-x);
  background: var(--paper);
}
.lw-dp-list {
  max-width: var(--max-content);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: clamp(56px, 6vw, 96px);
}
.lw-dp-item {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  background: var(--ivory);
  border: 1px solid var(--hair);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.lw-dp-item:nth-child(even) { grid-template-columns: 1fr 1.3fr; }
.lw-dp-item:nth-child(even) .lw-dp-media { order: 2; }
.lw-dp-item:nth-child(even) .lw-dp-body { order: 1; }
.lw-dp-media {
  position: relative;
  overflow: hidden;
  min-height: 380px;
}
.lw-dp-media img {
  width: 100%; height: 100%;
  object-fit: cover;
  position: absolute;
  inset: 0;
}
.lw-dp-body {
  padding: clamp(30px, 3.5vw, 48px);
  display: flex;
  flex-direction: column;
}
.lw-dp-body > .lw-btn { align-self: flex-start; }
.lw-dp-tag {
  align-self: flex-start;
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--wine);
  padding: 6px 12px;
  border: 1px solid var(--hair-strong);
  border-radius: 999px;
  margin-bottom: 20px;
}
.lw-dp-body h3 {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: clamp(26px, 3vw, 36px);
  color: var(--brown-deep);
  line-height: 1.1;
  margin-bottom: 12px;
}
.lw-dp-cuisine {
  font-size: 13px;
  letter-spacing: 1.2px;
  color: var(--peach-deep);
  text-transform: uppercase;
  margin-bottom: 18px;
  font-weight: 500;
}
@media (max-width: 720px) {
  .lw-dp-cuisine {
    font-size: 11px;
    letter-spacing: 0.8px;
    text-transform: none;
    color: var(--muted);
    font-style: italic;
    font-family: var(--f-italic);
    margin-bottom: 14px;
  }
}
.lw-dp-body p {
  font-size: 15px;
  line-height: 1.75;
  color: var(--muted);
  margin-bottom: 24px;
}
.lw-dp-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 26px;
  padding-top: 22px;
  border-top: 1px solid var(--hair);
}
.lw-dp-meta li {
  font-size: 13.5px;
  color: var(--brown-deep);
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 10px;
}
.lw-dp-meta i { color: var(--wine); width: 14px; }

/* =============== MEETINGS PAGE =============== */
.lw-mp {
  padding: clamp(30px, 4vw, 50px) var(--pad-x) var(--section-y);
  background: var(--paper);
}
.lw-mp-grid {
  max-width: var(--max-content);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}
.lw-mp-card {
  background: var(--ivory);
  border: 1px solid var(--hair);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: all .4s var(--ease);
}
.lw-mp-card:hover { transform: translateY(-6px); box-shadow: 0 26px 60px rgba(78,40,17,0.14); }
.lw-mp-card figure {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}
.lw-mp-card figure img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1.2s var(--ease);
}
.lw-mp-card:hover figure img { transform: scale(1.06); }
.lw-mp-cap {
  position: absolute;
  bottom: 16px; left: 16px;
  background: rgba(46,22,8,0.75);
  backdrop-filter: blur(8px);
  color: var(--peach);
  padding: 6px 14px;
  border-radius: 999px;
  font-size: 10px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  font-weight: 600;
  border: 1px solid rgba(251,199,148,0.3);
}
.lw-mp-body { padding: 28px 26px; }
.lw-mp-body h3 {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 22px;
  color: var(--brown-deep);
  margin-bottom: 12px;
}
.lw-mp-body p {
  font-size: 14px;
  line-height: 1.7;
  color: var(--muted);
  margin-bottom: 20px;
}
.lw-mp-body ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 22px;
}
.lw-mp-body ul li {
  font-size: 11px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--wine);
  padding: 5px 10px;
  border: 1px solid var(--hair-strong);
  border-radius: 999px;
  font-weight: 500;
}

/* =============== WELLNESS / EXPERIENCES GRID =============== */
.lw-ex {
  padding: var(--section-y) var(--pad-x);
  background: var(--paper);
}
.lw-ex-grid {
  max-width: var(--max-content);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}
.lw-ex-card {
  background: var(--ivory);
  border: 1px solid var(--hair);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: all .4s var(--ease);
  display: flex;
  flex-direction: column;
}
.lw-ex-card:hover { transform: translateY(-6px); box-shadow: 0 26px 60px rgba(78,40,17,0.14); }
.lw-ex-card figure {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  position: relative;
}
.lw-ex-card figure img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1.2s var(--ease);
}
.lw-ex-card:hover figure img { transform: scale(1.05); }
.lw-ex-num {
  position: absolute;
  top: 16px; left: 16px;
  font-family: var(--f-italic);
  font-style: italic;
  font-size: 22px;
  color: var(--peach);
  background: rgba(46,22,8,0.75);
  backdrop-filter: blur(6px);
  padding: 4px 14px;
  border-radius: 999px;
  border: 1px solid rgba(251,199,148,0.3);
}
.lw-ex-body {
  padding: 28px 26px 30px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.lw-ex-tag {
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--wine);
  font-weight: 600;
  margin-bottom: 12px;
}
.lw-ex-body h3 {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 22px;
  color: var(--brown-deep);
  margin-bottom: 12px;
  line-height: 1.2;
}
.lw-ex-body p {
  font-size: 14.5px;
  line-height: 1.7;
  color: var(--muted);
  margin-bottom: 20px;
  flex: 1;
}
.lw-ex-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 18px;
  border-top: 1px solid var(--hair);
}
.lw-ex-time {
  font-size: 12px;
  color: var(--muted);
  letter-spacing: 0.5px;
}
.lw-ex-time i { color: var(--wine); margin-right: 6px; }

/* =============== GALLERY PAGE =============== */
.lw-gl {
  padding: var(--section-y) var(--pad-x);
  background: var(--paper);
}
.lw-gl-filter {
  max-width: var(--max-content);
  margin: 0 auto var(--head-mb);
  display: flex;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
  background: var(--ivory);
  padding: 8px;
  border-radius: 999px;
  border: 1px solid var(--hair);
  width: fit-content;
}
.lw-gl-tab {
  padding: 12px 22px;
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--muted);
  border-radius: 999px;
  transition: all .3s var(--ease);
  font-weight: 500;
}
.lw-gl-tab:hover { color: var(--wine); }
.lw-gl-tab.is-active { background: var(--wine); color: var(--ivory); }

.lw-gl-grid {
  max-width: var(--max-content);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 260px;
  gap: 16px;
}
.lw-gl-item {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
  cursor: pointer;
}
.lw-gl-item.tall { grid-row: span 2; }
.lw-gl-item.wide { grid-column: span 2; }
.lw-gl-item img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1.2s var(--ease);
}
.lw-gl-item::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(46,22,8,0.6) 100%);
  opacity: 0;
  transition: opacity .3s var(--ease);
}
.lw-gl-item:hover img { transform: scale(1.06); }
.lw-gl-item:hover::after { opacity: 1; }
.lw-gl-cap {
  position: absolute;
  bottom: 16px; left: 20px;
  color: var(--ivory);
  font-family: var(--f-display);
  font-size: 16px;
  z-index: 2;
  opacity: 0;
  transform: translateY(8px);
  transition: all .3s var(--ease);
}
.lw-gl-item:hover .lw-gl-cap {
  opacity: 1;
  transform: translateY(0);
}

/* --- Masonry variant --- */
.lw-gl-mason {
  max-width: var(--max-content);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 240px;
  gap: 16px;
}
.lw-gl-mason .lw-gl-item {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
  cursor: zoom-in;
  background: var(--cream);
}
.lw-gl-mason .lw-gl-item img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1.2s var(--ease);
}
.lw-gl-mason .lw-gl-item:hover img { transform: scale(1.06); }
.lw-gl-mason .lw-gl-item::after {
  content: '\f00e';
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%) scale(0.8);
  width: 48px; height: 48px;
  border-radius: 50%;
  background: rgba(46,22,8,0.7);
  color: var(--peach);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  opacity: 0;
  transition: all .35s var(--ease);
  pointer-events: none;
}
.lw-gl-mason .lw-gl-item:hover::after { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.lw-gl-mason .lw-gl-item.tall { grid-row: span 2; }
.lw-gl-mason .lw-gl-item.wide { grid-column: span 2; }

@media (max-width: 1100px) {
  .lw-gl-mason { grid-template-columns: repeat(3, 1fr); grid-auto-rows: 220px; }
}
@media (max-width: 720px) {
  .lw-gl-mason { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 180px; gap: 10px; }
  .lw-gl-mason .lw-gl-item.wide { grid-column: span 2; }
}

/* --- Lightbox --- */
.lw-lb {
  position: fixed;
  inset: 0;
  background: rgba(20, 8, 4, 0.95);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px;
  animation: lwLbIn .3s ease-out;
}
@keyframes lwLbIn { from { opacity: 0; } to { opacity: 1; } }
.lw-lb-stage {
  max-width: 90vw;
  max-height: 82vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lw-lb-stage img {
  max-width: 100%;
  max-height: 82vh;
  object-fit: contain;
  border-radius: var(--radius-md);
  box-shadow: 0 30px 80px rgba(0,0,0,0.5);
}
.lw-lb-close,
.lw-lb-nav {
  position: absolute;
  width: 52px; height: 52px;
  border-radius: 50%;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(251,199,148,0.3);
  color: var(--peach);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  cursor: pointer;
  transition: all .3s var(--ease);
  z-index: 2;
}
.lw-lb-close { top: 24px; right: 24px; }
.lw-lb-nav.prev { left: 24px; top: 50%; transform: translateY(-50%); }
.lw-lb-nav.next { right: 24px; top: 50%; transform: translateY(-50%); }
.lw-lb-close:hover,
.lw-lb-nav:hover {
  background: var(--wine);
  border-color: var(--wine);
  color: var(--ivory);
}
.lw-lb-nav.prev:hover { transform: translateY(-50%) translateX(-3px); }
.lw-lb-nav.next:hover { transform: translateY(-50%) translateX(3px); }
.lw-lb-counter {
  position: absolute;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--f-body);
  font-size: 12px;
  letter-spacing: 3px;
  color: rgba(251,199,148,0.75);
  font-weight: 500;
}
@media (max-width: 720px) {
  .lw-lb { padding: 20px; }
  .lw-lb-close, .lw-lb-nav { width: 40px; height: 40px; font-size: 13px; }
  .lw-lb-close { top: 12px; right: 12px; }
  .lw-lb-nav.prev { left: 12px; }
  .lw-lb-nav.next { right: 12px; }
}

/* =============== LOCATION PAGE =============== */
.lw-loc {
  padding: var(--section-y) var(--pad-x);
  background: var(--paper);
}
.lw-loc-inner {
  max-width: var(--max-content);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 40px;
  align-items: stretch;
}
.lw-loc-info {
  background: var(--ivory);
  border: 1px solid var(--hair);
  border-radius: var(--radius-lg);
  padding: clamp(30px, 3.5vw, 44px);
  display: flex;
  flex-direction: column;
}
.lw-loc-info h3 {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 24px;
  color: var(--brown-deep);
  margin-bottom: 10px;
}
.lw-loc-info .lw-loc-city {
  font-size: 12px;
  letter-spacing: 2px;
  color: var(--wine);
  text-transform: uppercase;
  margin-bottom: 20px;
  font-weight: 600;
}
.lw-loc-info address {
  font-style: normal;
  font-size: 15px;
  line-height: 1.8;
  color: var(--brown-deep);
  padding: 22px 0;
  border-top: 1px solid var(--hair);
  border-bottom: 1px solid var(--hair);
  margin-bottom: 22px;
}
.lw-loc-lines { display: flex; flex-direction: column; gap: 14px; margin-bottom: 30px; }
.lw-loc-lines a {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 14px;
  color: var(--brown-deep);
}
.lw-loc-lines a i {
  width: 34px; height: 34px;
  background: var(--cream);
  color: var(--wine);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
}
.lw-loc-lines a:hover { color: var(--wine); }
.lw-loc-map {
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--hair);
  min-height: 500px;
}
.lw-loc-map iframe {
  width: 100%;
  height: 100%;
  min-height: 500px;
  border: none;
  display: block;
}

.lw-loc-directions {
  max-width: var(--max-content);
  margin: 60px auto 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}
.lw-loc-way {
  background: var(--ivory);
  border: 1px solid var(--hair);
  border-radius: var(--radius-lg);
  padding: 28px 26px;
}
.lw-loc-way i {
  width: 50px; height: 50px;
  background: var(--cream);
  color: var(--wine);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  margin-bottom: 18px;
}
.lw-loc-way h4 {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 20px;
  color: var(--brown-deep);
  margin-bottom: 8px;
}
.lw-loc-way p {
  font-size: 14px;
  line-height: 1.65;
  color: var(--muted);
}

/* =============== CONTACT PAGE =============== */
.lw-ct {
  padding: var(--section-y) var(--pad-x);
  background: var(--paper);
}
.lw-ct-inner {
  max-width: var(--max-content);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 50px;
  align-items: start;
}
.lw-ct-info h3 {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: clamp(28px, 3vw, 38px);
  color: var(--brown-deep);
  line-height: 1.1;
  margin-bottom: 16px;
}
.lw-ct-info p {
  font-size: 15px;
  line-height: 1.75;
  color: var(--muted);
  margin-bottom: 30px;
}
.lw-ct-blocks {
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.lw-ct-block {
  background: var(--ivory);
  border: 1px solid var(--hair);
  border-radius: var(--radius-lg);
  padding: 22px 24px;
  display: flex;
  gap: 18px;
  align-items: flex-start;
}
.lw-ct-block > i {
  width: 44px; height: 44px;
  background: var(--wine);
  color: var(--peach);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  flex: none;
}
.lw-ct-block h4 {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 18px;
  color: var(--brown-deep);
  margin-bottom: 6px;
}
.lw-ct-block p, .lw-ct-block a {
  font-size: 14px;
  line-height: 1.65;
  color: var(--muted);
}
.lw-ct-block a:hover { color: var(--wine); }

.lw-ct-form {
  background: var(--ivory);
  border: 1px solid var(--hair);
  border-radius: var(--radius-lg);
  padding: clamp(30px, 3.5vw, 44px);
  box-shadow: 0 20px 50px rgba(78,40,17,0.06);
}
.lw-ct-form h3 {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: clamp(24px, 2.6vw, 32px);
  color: var(--brown-deep);
  margin-bottom: 8px;
}
.lw-ct-form > p {
  font-size: 14px;
  color: var(--muted);
  margin-bottom: 28px;
}
.lw-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 16px;
}
.lw-form-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 16px;
}
.lw-form-field label {
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 500;
}
.lw-form-field input,
.lw-form-field select,
.lw-form-field textarea {
  font-family: var(--f-body);
  font-size: 14.5px;
  color: var(--brown-deep);
  padding: 12px 14px;
  border: 1px solid var(--hair-strong);
  border-radius: var(--radius-md);
  background: var(--paper);
  outline: none;
  transition: border-color .3s var(--ease);
}
.lw-form-field input:focus,
.lw-form-field select:focus,
.lw-form-field textarea:focus {
  border-color: var(--wine);
}
.lw-form-field textarea {
  min-height: 130px;
  resize: vertical;
}
.lw-form-submit {
  margin-top: 8px;
  width: 100%;
  justify-content: center;
}
.lw-form-note {
  margin-top: 16px;
  font-size: 12px;
  color: var(--muted);
  line-height: 1.6;
}

/* =============== FAQ PAGE =============== */
.lw-faq {
  padding: var(--section-y) var(--pad-x);
  background: var(--paper);
}
.lw-faq-cats {
  max-width: 900px;
  margin: 0 auto 40px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: center;
}
.lw-faq-cat {
  padding: 10px 20px;
  font-size: 12px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--brown-deep);
  border: 1px solid var(--hair-strong);
  border-radius: 999px;
  font-weight: 500;
  transition: all .3s var(--ease);
}
.lw-faq-cat:hover { border-color: var(--wine); color: var(--wine); }
.lw-faq-cat.is-active {
  background: var(--wine);
  border-color: var(--wine);
  color: var(--ivory);
}

.lw-faq-list {
  max-width: 900px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.lw-faq-item {
  background: var(--ivory);
  border: 1px solid var(--hair);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: box-shadow .3s var(--ease);
}
.lw-faq-item.is-open { box-shadow: 0 20px 50px rgba(78,40,17,0.08); }
.lw-faq-q {
  width: 100%;
  padding: 24px 28px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  text-align: left;
  font-family: var(--f-display);
  font-size: 18px;
  font-weight: 400;
  color: var(--brown-deep);
  transition: color .3s var(--ease);
}
.lw-faq-q:hover { color: var(--wine); }
.lw-faq-q-icon {
  width: 32px; height: 32px;
  border-radius: 50%;
  border: 1px solid var(--hair-strong);
  color: var(--brown-deep);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  transition: all .3s var(--ease);
  flex: none;
}
.lw-faq-item.is-open .lw-faq-q-icon {
  background: var(--wine);
  border-color: var(--wine);
  color: var(--ivory);
  transform: rotate(45deg);
}
.lw-faq-a {
  max-height: 0;
  overflow: hidden;
  transition: max-height .4s var(--ease);
}
.lw-faq-item.is-open .lw-faq-a { max-height: 400px; }
.lw-faq-a-inner {
  padding: 0 28px 26px;
  font-size: 15px;
  line-height: 1.75;
  color: var(--muted);
}

/* =============== BLOG PAGE =============== */
.lw-bl {
  padding: var(--section-y) var(--pad-x);
  background: var(--paper);
}

/* Blogs page — tight intro + filter chips + grid */
.lw-bl-intro { padding-bottom: clamp(30px, 4vw, 50px); }
.lw-bl-cats {
  justify-content: center;
  margin: clamp(24px, 3vw, 36px) auto 0;
  max-width: 720px;
}
.lw-bl-tight { padding-top: clamp(20px, 3vw, 40px); }

.lw-bl-featured {
  max-width: var(--max-content);
  margin: 0 auto var(--head-mb);
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  background: var(--ivory);
  border: 1px solid var(--hair);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.lw-bl-featured .lw-bl-media {
  min-height: 420px;
  position: relative;
  overflow: hidden;
}
.lw-bl-featured .lw-bl-media img {
  width: 100%; height: 100%;
  object-fit: cover;
  position: absolute;
  inset: 0;
}
.lw-bl-featured-body {
  padding: clamp(30px, 3.5vw, 48px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.lw-bl-featured-tag {
  align-self: flex-start;
  background: var(--wine);
  color: var(--ivory);
  padding: 6px 14px;
  border-radius: 999px;
  font-size: 10px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  font-weight: 600;
  margin-bottom: 20px;
}
.lw-bl-featured-body h2 {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: clamp(26px, 3.2vw, 40px);
  color: var(--brown-deep);
  line-height: 1.15;
  margin-bottom: 16px;
}
.lw-bl-featured-body .lw-bl-meta {
  font-size: 12px;
  letter-spacing: 1px;
  color: var(--muted);
  margin-bottom: 20px;
}
.lw-bl-featured-body p {
  font-size: 15.5px;
  line-height: 1.75;
  color: var(--muted);
  margin-bottom: 26px;
}

.lw-bl-grid {
  max-width: var(--max-content);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}
.lw-bl-post {
  background: var(--ivory);
  border: 1px solid var(--hair);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: all .4s var(--ease);
  display: flex;
  flex-direction: column;
}
.lw-bl-post:hover { transform: translateY(-6px); box-shadow: 0 26px 60px rgba(78,40,17,0.12); }
.lw-bl-post figure {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  position: relative;
}
.lw-bl-post figure img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1.2s var(--ease);
}
.lw-bl-post:hover figure img { transform: scale(1.06); }
.lw-bl-cat {
  position: absolute;
  top: 16px; left: 16px;
  background: var(--paper);
  color: var(--wine);
  padding: 6px 12px;
  border-radius: 999px;
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  font-weight: 600;
}
.lw-bl-body {
  padding: 26px 26px 28px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.lw-bl-meta {
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 12px;
}
.lw-bl-body h3 {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 22px;
  color: var(--brown-deep);
  line-height: 1.2;
  margin-bottom: 14px;
}
.lw-bl-body p {
  font-size: 14.5px;
  line-height: 1.7;
  color: var(--muted);
  margin-bottom: 20px;
  flex: 1;
}
.lw-bl-body .lw-op-more { align-self: flex-start; }
.lw-bl-pagination {
  max-width: var(--max-content);
  margin: 60px auto 0;
  display: flex;
  justify-content: center;
  gap: 8px;
}
.lw-bl-pg {
  width: 44px; height: 44px;
  border-radius: 50%;
  border: 1px solid var(--hair-strong);
  color: var(--brown-deep);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 500;
  transition: all .3s var(--ease);
}
.lw-bl-pg:hover, .lw-bl-pg.is-active {
  background: var(--wine);
  border-color: var(--wine);
  color: var(--ivory);
}

/* =============================================
   ABOUT / OUR STORY PAGE  (lw-abt-*)
   Custom editorial layout: cinematic hero, prologue,
   chapter spreads, stats, pillars, press, ethos, mosaic, CTA
============================================= */

/* ============ CINEMATIC HERO — unified height with .lw-pg-hero ============ */
/* .lw-abt-hero base sizing is handled by the shared .lw-pg-hero rule above.
   Keep only the animation / background overrides that are specific to it. */
.lw-abt-hero-bg {
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center;
  transform: scale(1.05);
  animation: lwAbtHeroIn 1.4s var(--ease) both;
  will-change: transform;
}
@keyframes lwAbtHeroIn {
  from { opacity: 0; transform: scale(1.15); }
  to   { opacity: 1; transform: scale(1.05); }
}
.lw-abt-hero-veil {
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(46,22,8,0.35) 0%, rgba(46,22,8,0.1) 35%, rgba(46,22,8,0.80) 100%),
    linear-gradient(90deg, rgba(46,22,8,0.55) 0%, rgba(46,22,8,0) 55%);
  z-index: 1;
}

.lw-abt-hero-vert {
  position: absolute;
  left: 32px;
  top: 50%;
  transform: rotate(-90deg) translateX(50%);
  transform-origin: left center;
  z-index: 3;
  font-family: var(--f-body);
  font-size: 11px;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: rgba(251,199,148,0.85);
  font-weight: 500;
  white-space: nowrap;
}
.lw-abt-hero-vert::before {
  content: '';
  display: inline-block;
  width: 30px; height: 1px;
  background: var(--peach);
  vertical-align: middle;
  margin-right: 14px;
}

.lw-abt-hero-inner {
  position: relative;
  z-index: 2;
  max-width: var(--max-content);
  margin: 0 auto;
  padding: 0 var(--pad-x) clamp(90px, 12vw, 150px);
  width: 100%;
  color: var(--ivory);
}
.lw-abt-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--f-body);
  font-size: 13px;
  letter-spacing: 3.5px;
  text-transform: uppercase;
  color: var(--peach);
  font-weight: 500;
  margin-bottom: 30px;
}
.lw-abt-dash {
  display: inline-block;
  width: 32px; height: 1px;
  background: var(--peach);
}
.lw-abt-hero-title {
  font-family: var(--f-display);
  font-weight: 300;
  font-size: clamp(44px, 6.4vw, 96px);
  line-height: 1.02;
  letter-spacing: -2px;
  color: var(--ivory);
  margin: 0 0 26px;
  max-width: 12ch;
}
.lw-abt-hero-title em {
  font-family: var(--f-italic);
  color: var(--peach);
  font-weight: 400;
  letter-spacing: -1px;
}
.lw-abt-hero-sub {
  font-family: var(--f-body);
  font-weight: 300;
  font-size: 16.5px;
  line-height: 1.7;
  color: rgba(254,251,245,0.85);
  max-width: 520px;
}

/* Corner year marker */
.lw-abt-hero-meta {
  position: absolute;
  right: var(--pad-x);
  bottom: clamp(90px, 12vw, 150px);
  z-index: 3;
  display: flex;
  align-items: baseline;
  gap: 18px;
  color: var(--ivory);
  border-right: 1px solid rgba(251,199,148,0.35);
  padding-right: 24px;
  text-align: right;
}
.lw-abt-hero-num {
  font-family: var(--f-display);
  font-weight: 300;
  font-size: clamp(60px, 8vw, 120px);
  line-height: 0.9;
  color: var(--ivory);
  letter-spacing: -4px;
}
.lw-abt-hero-lbl {
  font-family: var(--f-body);
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--peach);
  font-weight: 500;
  line-height: 1.5;
}

.lw-abt-hero-scroll {
  position: absolute;
  left: 50%;
  bottom: 30px;
  transform: translateX(-50%);
  z-index: 3;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  color: var(--peach);
  font-family: var(--f-body);
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  font-weight: 500;
  transition: color .3s var(--ease);
}
.lw-abt-hero-scroll:hover { color: var(--ivory); }
.lw-abt-hero-scroll-line {
  display: block;
  width: 1px; height: 42px;
  background: rgba(251,199,148,0.35);
  position: relative;
  overflow: hidden;
}
.lw-abt-hero-scroll-line::before {
  content: '';
  position: absolute;
  top: -50%; left: 0;
  width: 100%; height: 50%;
  background: var(--peach);
  animation: lw-scroll 2s ease-in-out infinite;
}

/* ============ PROLOGUE ============ */
.lw-abt-prologue {
  padding: clamp(80px, 10vw, 130px) var(--pad-x);
  background: var(--paper);
  position: relative;
}
.lw-abt-prologue::before {
  content: '';
  position: absolute;
  top: 0; left: 50%;
  width: 1px; height: 60px;
  background: var(--hair-strong);
  transform: translateX(-50%);
}
.lw-abt-prologue-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: clamp(40px, 6vw, 100px);
  align-items: start;
}
.lw-abt-prologue-side {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding-top: 8px;
  border-top: 1px solid var(--hair-strong);
}
.lw-abt-prologue-tag {
  font-family: var(--f-italic);
  font-size: 24px;
  color: var(--wine);
  line-height: 1;
}
.lw-abt-prologue-year {
  font-family: var(--f-display);
  font-weight: 300;
  font-size: 42px;
  color: var(--brown-deep);
  line-height: 1;
  letter-spacing: -1px;
}
.lw-abt-prologue-year em {
  font-family: var(--f-italic);
  color: var(--peach-deep);
  margin: 0 6px;
  font-size: 0.8em;
}
.lw-abt-prologue-place {
  font-family: var(--f-body);
  font-size: 11px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 500;
  line-height: 1.7;
}

.lw-abt-prologue-copy { max-width: 720px; }
.lw-abt-prologue-lede {
  font-family: var(--f-display);
  font-weight: 300;
  font-size: clamp(24px, 2.8vw, 36px);
  line-height: 1.35;
  letter-spacing: -0.5px;
  color: var(--brown-deep);
  margin: 0 0 30px;
}
.lw-abt-prologue-lede em {
  font-family: var(--f-italic);
  color: var(--wine);
  font-weight: 400;
}
.lw-abt-prologue-lede strong {
  font-family: var(--f-display);
  font-weight: 500;
  color: var(--brown-deep);
}
.lw-abt-prologue-text {
  font-family: var(--f-body);
  font-weight: 400;
  font-size: 17px;
  line-height: 1.8;
  color: var(--muted);
  margin: 0 0 40px;
}
.lw-abt-prologue-sign {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-top: 24px;
  border-top: 1px solid var(--hair);
  align-items: flex-start;
}
.lw-abt-sig-name {
  font-family: var(--f-italic);
  font-size: 34px;
  color: var(--wine);
  line-height: 1;
}
.lw-abt-sig-role {
  font-family: var(--f-body);
  font-size: 10.5px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 500;
}

/* ============ PROPERTY COLLAGE ============ */
.lw-abt-collage {
  padding: clamp(40px, 5vw, 70px) var(--pad-x) clamp(48px, 6vw, 80px);
  background: var(--paper);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.lw-abt-collage-head {
  max-width: var(--max-content);
  margin: 0 auto clamp(22px, 3vw, 34px);
  text-align: center;
}
.lw-abt-collage-head .lw-eyebrow { justify-content: center; }
.lw-abt-collage-title {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: clamp(30px, 3.6vw, 48px);
  line-height: 1.1;
  letter-spacing: -0.8px;
  color: var(--brown-deep);
  margin: 0;
}
.lw-abt-collage-title em {
  font-family: var(--f-italic);
  color: var(--wine);
  font-weight: 400;
  margin: 0 4px;
}

.lw-abt-collage-grid {
  max-width: 1240px;
  width: 100%;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-auto-rows: clamp(70px, 11vh, 110px);
  gap: 12px;
}

.lw-abt-pic {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
  background: var(--cream);
  box-shadow: 0 20px 44px rgba(78,40,17,0.10);
  transition: transform .5s var(--ease), box-shadow .5s var(--ease);
}
.lw-abt-pic:hover {
  transform: translateY(-4px);
  box-shadow: 0 30px 60px rgba(78,40,17,0.18);
}
.lw-abt-pic img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1.4s var(--ease);
}
.lw-abt-pic:hover img { transform: scale(1.06); }

.lw-abt-pic figcaption {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  padding: 22px 22px 20px;
  color: var(--ivory);
  background: linear-gradient(180deg, transparent 0%, rgba(46,22,8,0.85) 100%);
  display: flex;
  align-items: flex-end;
  gap: 14px;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .45s var(--ease), transform .45s var(--ease);
}
.lw-abt-pic:hover figcaption { opacity: 1; transform: none; }
.lw-abt-pic figcaption > span {
  font-family: var(--f-italic);
  font-size: 26px;
  line-height: 1;
  color: var(--peach);
  letter-spacing: 0;
}
.lw-abt-pic figcaption div {
  display: flex;
  flex-direction: column;
  gap: 2px;
  line-height: 1.3;
}
.lw-abt-pic figcaption em {
  font-family: var(--f-body);
  font-style: normal;
  font-size: 10px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: rgba(251,199,148,0.75);
  font-weight: 500;
}
.lw-abt-pic figcaption div {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 16px;
  color: var(--ivory);
  letter-spacing: -0.1px;
}

/* Editorial mosaic layout — 12-col grid, 6 tiles */
.lw-abt-pic-1 { grid-column: span 7; grid-row: span 3; }
.lw-abt-pic-2 { grid-column: span 5; grid-row: span 2; }
.lw-abt-pic-3 { grid-column: span 5; grid-row: span 3; }
.lw-abt-pic-4 { grid-column: span 4; grid-row: span 2; }
.lw-abt-pic-5 { grid-column: span 8; grid-row: span 3; }
.lw-abt-pic-6 { grid-column: span 4; grid-row: span 2; }

/* ============ ETHOS QUOTE BAND ============ */
.lw-abt-ethos {
  padding: clamp(80px, 12vw, 160px) var(--pad-x);
  background:
    radial-gradient(ellipse at 20% 20%, rgba(251,199,148,0.06), transparent 60%),
    radial-gradient(ellipse at 80% 80%, rgba(152,13,46,0.18), transparent 60%),
    var(--brown-deep);
  text-align: center;
  color: var(--ivory);
  position: relative;
}
.lw-abt-ethos-inner {
  max-width: 1000px;
  margin: 0 auto;
  position: relative;
}
.lw-abt-ethos-glyph {
  display: block;
  font-family: var(--f-italic);
  font-size: clamp(90px, 12vw, 160px);
  color: var(--peach);
  opacity: 0.4;
  line-height: 0.9;
  margin-bottom: -20px;
}
.lw-abt-ethos-quote {
  font-family: var(--f-display);
  font-weight: 300;
  font-size: clamp(32px, 5vw, 66px);
  line-height: 1.15;
  letter-spacing: -1px;
  color: var(--ivory);
  margin: 0 0 30px;
}
.lw-abt-ethos-quote em {
  font-family: var(--f-italic);
  color: var(--peach);
  font-weight: 400;
}
.lw-abt-ethos-cite {
  display: block;
  font-family: var(--f-body);
  font-style: normal;
  font-size: 12px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: rgba(251,199,148,0.7);
  font-weight: 500;
}

/* ============ INVITATION CTA ============ */
.lw-abt-invite {
  padding: clamp(80px, 10vw, 130px) var(--pad-x);
  background: var(--wine);
  position: relative;
  overflow: hidden;
}
.lw-abt-invite::before {
  content: '';
  position: absolute;
  top: -50%; right: -20%;
  width: 60%; aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(251,199,148,0.12), transparent 60%);
  pointer-events: none;
}
.lw-abt-invite-inner {
  max-width: var(--max-content);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: clamp(40px, 5vw, 80px);
  align-items: center;
  position: relative;
  z-index: 1;
}
.lw-abt-invite-copy .lw-h2 { margin-bottom: 22px; }

.lw-abt-invite-actions {
  margin-top: 34px;
  display: flex;
  align-items: center;
  gap: 26px;
  flex-wrap: wrap;
}
.lw-abt-invite-call {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  color: var(--ivory);
  padding: 10px 4px;
  transition: opacity .3s var(--ease);
}
.lw-abt-invite-call:hover { opacity: 0.8; }
.lw-abt-invite-call i {
  width: 44px; height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(251,199,148,0.4);
  color: var(--peach);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
}
.lw-abt-invite-call div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.lw-abt-invite-call span {
  font-family: var(--f-body);
  font-size: 10px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: rgba(251,199,148,0.75);
  font-weight: 500;
}
.lw-abt-invite-call strong {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 20px;
  color: var(--ivory);
}

.lw-abt-invite-card {
  background: var(--brown-deep);
  color: var(--ivory);
  padding: 44px 40px;
  border-radius: var(--radius-lg);
  box-shadow: 0 40px 80px rgba(46,22,8,0.35);
  position: relative;
  overflow: hidden;
}
.lw-abt-invite-yr {
  display: block;
  font-family: var(--f-display);
  font-weight: 300;
  font-size: 20px;
  color: var(--peach);
  letter-spacing: 3px;
  text-transform: uppercase;
  margin-bottom: 34px;
  line-height: 1.3;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(251,199,148,0.2);
}
.lw-abt-invite-yr em {
  display: block;
  font-family: var(--f-italic);
  font-style: italic;
  font-size: 54px;
  color: var(--ivory);
  letter-spacing: -2px;
  text-transform: none;
  margin-top: 6px;
}
.lw-abt-invite-lines { display: flex; flex-direction: column; gap: 18px; }
.lw-abt-invite-lines > div {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.lw-abt-invite-lines span {
  font-family: var(--f-body);
  font-size: 10.5px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: rgba(251,199,148,0.7);
  font-weight: 500;
}
.lw-abt-invite-lines strong {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 18px;
  color: var(--ivory);
}

/* =============== RESPONSIVE — INNER PAGES =============== */
@media (max-width: 1200px) {
  .lw-fc-grid { grid-template-columns: repeat(3, 1fr); }
  .lw-gl-grid { grid-template-columns: repeat(3, 1fr); }
  .lw-op-grid, .lw-mp-grid, .lw-ex-grid, .lw-bl-grid { grid-template-columns: repeat(2, 1fr); }
  .lw-loc-directions { grid-template-columns: 1fr; }

  .lw-abt-prologue-inner { grid-template-columns: 200px 1fr; gap: 40px; }
  .lw-abt-invite-inner { grid-template-columns: 1fr; gap: 40px; }
  .lw-abt-collage-grid { grid-auto-rows: clamp(64px, 10vh, 96px); gap: 10px; }
}

@media (max-width: 980px) {
  .lw-pg-hero, .lw-abt-hero, .lw-of-hero {
    height: 460px; min-height: 460px; max-height: 460px;
  }
  .lw-room, .lw-dp-item, .lw-bl-featured { grid-template-columns: 1fr; }
  .lw-room:nth-child(even), .lw-dp-item:nth-child(even) { grid-template-columns: 1fr; }
  .lw-room:nth-child(even) .lw-room-media,
  .lw-room:nth-child(even) .lw-room-body,
  .lw-dp-item:nth-child(even) .lw-dp-media,
  .lw-dp-item:nth-child(even) .lw-dp-body { order: initial; }
  .lw-room-media, .lw-dp-media, .lw-bl-featured .lw-bl-media { min-height: 300px; }
  .lw-fc-grid { grid-template-columns: repeat(2, 1fr); }
  .lw-loc-inner { grid-template-columns: 1fr; }
  .lw-loc-map { min-height: 400px; }
  .lw-ct-inner { grid-template-columns: 1fr; }

  /* .lw-abt-hero now inherits unified height from shared rule */
  .lw-abt-hero-vert { display: none; }
  .lw-abt-hero-meta { bottom: 30px; }
  .lw-abt-hero-num { font-size: 62px; letter-spacing: -2px; }
  .lw-abt-hero-scroll { display: none; }
  .lw-abt-prologue-inner { grid-template-columns: 1fr; gap: 30px; }
  .lw-abt-prologue-side { flex-direction: row; align-items: baseline; flex-wrap: wrap; gap: 20px; }
  .lw-abt-collage { min-height: auto; padding-top: clamp(30px, 5vw, 50px); padding-bottom: clamp(40px, 6vw, 70px); }
  .lw-abt-collage-grid {
    grid-template-columns: repeat(6, 1fr);
    grid-auto-rows: clamp(90px, 14vw, 130px);
  }
  .lw-abt-pic-1 { grid-column: span 6; grid-row: span 3; }
  .lw-abt-pic-2 { grid-column: span 3; grid-row: span 2; }
  .lw-abt-pic-3 { grid-column: span 3; grid-row: span 2; }
  .lw-abt-pic-4 { grid-column: span 2; grid-row: span 2; }
  .lw-abt-pic-5 { grid-column: span 4; grid-row: span 2; }
  .lw-abt-pic-6 { grid-column: span 6; grid-row: span 2; }
  .lw-abt-pic figcaption { opacity: 1; transform: none; padding: 16px 18px 14px; }
  .lw-abt-pic figcaption > span { font-size: 20px; }
}

@media (max-width: 720px) {
  .lw-pg-hero, .lw-abt-hero, .lw-of-hero {
    height: 380px; min-height: 380px; max-height: 380px;
  }
  .lw-pg-hero-inner { padding-bottom: 40px; }
  .lw-crumb { padding: 14px var(--pad-x); }
  .lw-crumb-inner { font-size: 11px; letter-spacing: 0.8px; }
  .lw-crumb,
  .lw-eyebrow,
  .lw-pg-eyebrow,
  .lw-abt-hero-eyebrow,
  .lw-panel-tag,
  .lw-tab-city,
  .lw-op-place,
  .lw-op-badge,
  .lw-rm-fact-lbl,
  .lw-rm-book-tag,
  .lw-rs-link,
  .lw-bl-cat,
  .lw-bl-meta,
  .lw-mp-cap,
  .lw-ex-place,
  .lw-ex-time,
  .lw-room-loc,
  .lw-dp-tag,
  .lw-jr-cat,
  .lw-jr-date,
  .lw-dine-place,
  .lw-dine-badge,
  .lw-offer-tag,
  .lw-ev-card-place,
  .lw-ritual-tag,
  .lw-cap-tag,
  .lw-cc-lbl,
  .lw-cc-sub,
  .lw-voice-tag,
  .lw-prop-bar-label,
  .lw-faq-cat {
    font-size: 12px !important;
  }
  .lw-pg-intro .lw-eyebrow { font-size: 12px !important; justify-content: flex-start; }
  .lw-pg-intro-inner { text-align: left; }
  .lw-pg-intro p { margin: 0; }
  .lw-op-grid, .lw-mp-grid, .lw-ex-grid, .lw-bl-grid { grid-template-columns: 1fr; }
  .lw-gl-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 200px; }
  .lw-gl-item.wide { grid-column: span 2; }
  .lw-gl-item.tall { grid-row: span 1; }
  .lw-form-row { grid-template-columns: 1fr; }
  .lw-room-foot { flex-direction: column; align-items: stretch; }
  .lw-room-actions { justify-content: flex-start; }
  .lw-room-amen { grid-template-columns: 1fr; }
  .lw-dp-meta { grid-template-columns: 1fr; }
  .lw-loc-directions { grid-template-columns: 1fr; }
  .lw-faq-q { padding: 20px 22px; font-size: 16px; }
  .lw-faq-a-inner { padding: 0 22px 22px; font-size: 14.5px; }

  /* .lw-abt-hero mobile height comes from unified rule above */
  .lw-abt-hero-title { font-size: clamp(38px, 10vw, 54px); }
  .lw-abt-hero-meta { display: none; }
  .lw-abt-prologue-lede { font-size: 22px; }
  .lw-abt-ethos-quote { font-size: 30px; }
  .lw-abt-collage-grid {
    grid-template-columns: 1fr;
    grid-auto-rows: 220px;
    gap: 12px;
  }
  .lw-abt-pic-1, .lw-abt-pic-2, .lw-abt-pic-3,
  .lw-abt-pic-4, .lw-abt-pic-5, .lw-abt-pic-6 {
    grid-column: span 1;
    grid-row: span 1;
  }
  .lw-abt-pic-1, .lw-abt-pic-3, .lw-abt-pic-5 { grid-row: span 2; }
  .lw-abt-invite-card { padding: 32px 28px; }
  .lw-abt-invite-yr em { font-size: 42px; }
  .lw-abt-invite-actions { flex-direction: column; align-items: stretch; gap: 20px; }
  .lw-abt-invite-actions .lw-btn { justify-content: center; }
}

/* ================================================================
   BODY TEXT — 16px THROUGHOUT
   Standardises paragraph body copy across all sections & cards
================================================================ */
.lw-body,
.lw-panel-desc,
.lw-ritual p,
.lw-dine-body p,
.lw-offer-body p,
.lw-ev-card-body p,
.lw-jr-body p,
.lw-voice p,
.lw-foot-brand p,
.lw-home-ed-copy p,
.lw-abt-chap-body p,
.lw-abt-prologue-text,
.lw-abt-copy p,
.lw-op-card p,
.lw-op-body p,
.lw-bl-body p,
.lw-fc-card p,
.lw-loc-info p,
.lw-pg-intro p,
.lw-faq-a-inner,
.lw-dp-body p,
.lw-home-room-body p,
.lw-story-body p,
.lw-props-lede,
.lw-of-lede,
.lw-abt-lede {
  font-size: 16px;
  line-height: 1.7;
}

/* Mobile — force 14px body text sitewide */
@media (max-width: 720px) {
  body,
  .lw-body,
  .lw-panel-desc,
  .lw-ritual p,
  .lw-dine-body p,
  .lw-offer-body p,
  .lw-ev-card-body p,
  .lw-jr-body p,
  .lw-voice p,
  .lw-foot-brand p,
  .lw-home-ed-copy p,
  .lw-abt-chap-body p,
  .lw-abt-prologue-text,
  .lw-abt-copy p,
  .lw-op-card p,
  .lw-op-body p,
  .lw-bl-body p,
  .lw-fc-card p,
  .lw-loc-info p,
  .lw-pg-intro p,
  .lw-faq-a-inner,
  .lw-dp-body p,
  .lw-home-room-body p,
  .lw-story-body p,
  .lw-props-lede,
  .lw-of-lede,
  .lw-abt-lede,
  .lw-pg-sub,
  .lw-abt-hero-lede,
  .lw-op-body,
  .lw-mp-body p,
  .lw-ex-body p,
  .lw-rs-body p,
  .lw-rm-intro-copy p,
  .lw-rm-amen-item span,
  .lw-au-lede,
  .lw-au-cta-text,
  .lw-dn-cta-inner p,
  .lw-cc-body p,
  p {
    font-size: 14px !important;
    line-height: 1.65;
  }
}

/* ================================================================
   SUB-HEADERS / EYEBROWS — 13px THROUGHOUT
   Any small uppercase label that sits above a main heading
================================================================ */
.lw-eyebrow,
.lw-pg-eyebrow,
.lw-abt-hero-eyebrow,
.lw-abt-prologue-tag,
.lw-abt-prologue-place,
.lw-abt-chap-year,
.lw-abt-chap-place,
.lw-abt-sig-role,
.lw-abt-ethos-cite,
.lw-abt-press-src,
.lw-abt-press-tag,
.lw-abt-stat-lbl,
.lw-abt-hero-lbl,
.lw-abt-pic figcaption em,
.lw-loc-info .lw-loc-city,
.lw-loc-way h4,
.lw-panel-tag,
.lw-panel-loc,
.lw-tab-city,
.lw-of-select-lbl,
.lw-of-empty .lw-eyebrow,
.lw-op-place,
.lw-op-badge,
.lw-op-link,
.lw-op-more,
.lw-op-terms,
.lw-rm-fact-lbl,
.lw-rm-book-tag,
.lw-rs-link,
.lw-bl-cat,
.lw-bl-meta,
.lw-mp-cap,
.lw-ex-place,
.lw-ex-time,
.lw-room-loc,
.lw-dp-tag,
.lw-jr-cat,
.lw-jr-date,
.lw-dine-place,
.lw-dine-badge,
.lw-offer-tag,
.lw-ev-card-place,
.lw-ritual-tag,
.lw-cap-tag,
.lw-cc-lbl,
.lw-cc-sub,
.lw-voice-tag,
.lw-hero-nums,
.lw-hero-total,
.lw-crumb,
.lw-crumb-inner,
.lw-prop-bar-label,
.lw-faq-cat {
  font-size: 13px;
}
/* Property secondary nav — consistent padding and spacing */
.lw-prop-bar-nav a { font-size: 11.5px; padding: 10px 18px; letter-spacing: 2px; }
.lw-prop-bar-menu a { font-size: 12px; }

/* =============== DINING INNER — RESERVE BAND =============== */
.lw-dn-cta {
  padding: clamp(28px, 3vw, 44px) var(--pad-x) clamp(48px, 6vw, 72px);
  background: var(--paper);
  text-align: center;
}
/* When lw-dn-cta follows a facilities grid, keep the gap tight */
.lw-fc + .lw-dn-cta { padding-top: clamp(24px, 3vw, 40px); }
.lw-dn-cta-inner {
  max-width: 720px;
  margin: 0 auto;
}
.lw-dn-cta-inner .lw-eyebrow {
  justify-content: center;
}
.lw-dn-cta-inner h2 {
  margin-bottom: 18px;
}
.lw-dn-cta-inner p {
  color: var(--muted);
  font-size: 16px;
  line-height: 1.7;
  margin-bottom: 28px;
}
.lw-dn-cta-actions {
  display: flex;
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
}

/* =============== DINING INNER — CROSS-LINK CARD =============== */
.lw-dn-cross {
  padding: clamp(50px, 6vw, 80px) var(--pad-x);
  background: var(--ivory);
}
.lw-dn-cross-card {
  max-width: 880px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 0;
  background: var(--paper);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(78, 40, 17, 0.08);
  transition: box-shadow .35s var(--ease), transform .35s var(--ease);
}
.lw-dn-cross-card:hover {
  box-shadow: 0 30px 80px rgba(78, 40, 17, 0.14);
  transform: translateY(-3px);
}
.lw-dn-cross-media {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  min-height: 0;
}
.lw-dn-cross-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.2s var(--ease);
}
.lw-dn-cross-card:hover .lw-dn-cross-media img {
  transform: scale(1.05);
}
.lw-dn-cross-body {
  padding: clamp(30px, 4vw, 56px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 14px;
}
.lw-dn-cross-tag {
  font-family: var(--f-body);
  font-size: 11px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--wine);
  font-weight: 500;
}
.lw-dn-cross-body h3 {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: clamp(28px, 3vw, 40px);
  color: var(--brown-deep);
  line-height: 1.15;
  margin: 0;
}
.lw-dn-cross-body h3 em {
  font-family: var(--f-italic);
  color: var(--wine);
  font-style: italic;
}
.lw-dn-cross-body p {
  color: var(--muted);
  font-size: 15px;
  line-height: 1.7;
  margin: 0;
}
.lw-dn-cross-body .lw-op-link {
  margin-top: 8px;
  align-self: flex-start;
}
@media (max-width: 780px) {
  .lw-dn-cross-card { grid-template-columns: 1fr; }
  .lw-dn-cross-media { min-height: 240px; }
}

/* =============================================
   ABOUT US PAGE  (lw-au-*)
   Simple editorial: hero + title/intro + 8-image grid + CTA
============================================= */

/* Title + intro paragraph */
.lw-au-intro {
  padding: clamp(60px, 8vw, 100px) var(--pad-x) clamp(30px, 4vw, 50px);
  background: var(--paper);
}
.lw-au-intro-inner {
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
}
.lw-au-title {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: clamp(42px, 5.4vw, 68px);
  line-height: 1.05;
  letter-spacing: -1px;
  color: var(--brown-deep);
  margin: 0 0 clamp(20px, 3vw, 32px);
}
.lw-au-title em {
  font-family: var(--f-italic);
  color: var(--wine);
  font-weight: 400;
}
.lw-au-lede {
  font-family: var(--f-body);
  font-size: 16px;
  line-height: 1.85;
  color: var(--muted);
  margin: 0 auto;
  max-width: 780px;
}
.lw-au-lede strong { color: var(--brown-deep); font-weight: 600; }

/* 8-image grid (2 columns) */
.lw-au-grid {
  padding: clamp(30px, 4vw, 50px) var(--pad-x) clamp(80px, 10vw, 120px);
  background: var(--paper);
}
.lw-au-grid-inner {
  max-width: 1080px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(20px, 3vw, 40px);
}
.lw-au-tile {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.lw-au-tile img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: var(--radius-lg);
  display: block;
  transition: transform 1.2s var(--ease);
}
.lw-au-tile:hover img { transform: scale(1.02); }
.lw-au-tile figcaption {
  font-family: var(--f-body);
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--muted);
  padding: 0 4px;
}

/* Contact CTA */
.lw-au-cta {
  padding: clamp(70px, 9vw, 120px) var(--pad-x);
  background: var(--cream);
  text-align: center;
}
.lw-au-cta-inner {
  max-width: 700px;
  margin: 0 auto;
}
.lw-au-cta .lw-eyebrow { justify-content: center; }
.lw-au-cta-title {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: clamp(34px, 4.4vw, 54px);
  line-height: 1.1;
  letter-spacing: -0.8px;
  color: var(--brown-deep);
  margin: 0 0 20px;
}
.lw-au-cta-title em {
  font-family: var(--f-italic);
  color: var(--wine);
  font-weight: 400;
}
.lw-au-cta-text {
  font-family: var(--f-body);
  font-size: 16px;
  line-height: 1.75;
  color: var(--muted);
  margin: 0 0 clamp(24px, 3vw, 36px);
}

@media (max-width: 720px) {
  .lw-au-grid-inner { grid-template-columns: 1fr; }
}


/* ===== ABOUT US — COLLAGE + MISSION / VISION / VALUES ===== */
.lw-au-collage {
  padding: clamp(30px, 4vw, 50px) var(--pad-x) clamp(60px, 8vw, 100px);
  background: var(--paper);
}
.lw-au-collage-grid {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: clamp(12px, 1.6vw, 20px);
}
.lw-au-cell {
  margin: 0;
  overflow: hidden;
  border-radius: var(--radius-lg);
  background: var(--cream);
}
.lw-au-cell img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 1.2s var(--ease);
}
.lw-au-cell:hover img { transform: scale(1.03); }
/* editorial rhythm: a tall lead image, two stacked, then a wide band */
.lw-au-cell-1 { grid-column: span 4; aspect-ratio: 16 / 9; }
.lw-au-cell-2 { grid-column: span 2; aspect-ratio: 4 / 5; }
.lw-au-cell-3 { grid-column: span 2; aspect-ratio: 1 / 1; }
.lw-au-cell-4 { grid-column: span 2; aspect-ratio: 1 / 1; }
.lw-au-cell-5 { grid-column: span 2; aspect-ratio: 1 / 1; }
.lw-au-cell-6 { grid-column: span 6; aspect-ratio: 21 / 9; }

@media (max-width: 900px) {
  .lw-au-collage-grid { grid-template-columns: repeat(2, 1fr); }
  .lw-au-cell-1 { grid-column: span 2; aspect-ratio: 16 / 10; }
  .lw-au-cell-2,
  .lw-au-cell-3,
  .lw-au-cell-4,
  .lw-au-cell-5 { grid-column: span 1; aspect-ratio: 1 / 1; }
  .lw-au-cell-6 { grid-column: span 2; aspect-ratio: 16 / 9; }
}
@media (max-width: 520px) {
  .lw-au-collage-grid { grid-template-columns: 1fr; }
  .lw-au-cell-1,
  .lw-au-cell-2,
  .lw-au-cell-3,
  .lw-au-cell-4,
  .lw-au-cell-5,
  .lw-au-cell-6 { grid-column: span 1; aspect-ratio: 16 / 10; }
}

/* Mission / vision / values band */
.lw-au-mv {
  padding: clamp(70px, 9vw, 110px) var(--pad-x);
  background: var(--ivory);
  border-top: 1px solid var(--hair);
}
.lw-au-mv-inner { max-width: 1180px; margin: 0 auto; }
.lw-au-mv-head { text-align: center; margin: 0 0 clamp(36px, 5vw, 60px); }
.lw-au-mv-head .lw-eyebrow { justify-content: center; }
.lw-au-mv-title {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: clamp(32px, 4.2vw, 52px);
  line-height: 1.1;
  letter-spacing: -0.8px;
  color: var(--brown-deep);
  margin: 0;
}
.lw-au-mv-title em {
  font-family: var(--f-italic);
  color: var(--wine);
  font-weight: 400;
}
.lw-au-mv-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(24px, 3.4vw, 48px);
  margin: 0 0 clamp(44px, 6vw, 72px);
}
.lw-au-mv-col {
  padding: clamp(26px, 3.2vw, 40px);
  background: var(--paper);
  border: 1px solid var(--hair);
  border-radius: var(--radius-lg);
}
.lw-au-mv-col h3 {
  font-family: var(--f-display);
  font-weight: 500;
  font-size: clamp(20px, 2.1vw, 25px);
  line-height: 1.2;
  color: var(--wine);
  margin: 0 0 14px;
}
.lw-au-mv-col p {
  font-family: var(--f-body);
  font-size: 15.5px;
  line-height: 1.85;
  color: var(--muted);
  margin: 0;
}
.lw-au-vals {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(20px, 2.6vw, 34px);
}
.lw-au-val { margin: 0; }
.lw-au-val-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: var(--peach-soft);
  color: var(--brown);
  font-size: 17px;
  margin: 0 0 16px;
}
.lw-au-val h3 {
  font-family: var(--f-display);
  font-weight: 500;
  font-size: 19px;
  line-height: 1.25;
  color: var(--brown-deep);
  margin: 0 0 9px;
}
.lw-au-val p {
  font-family: var(--f-body);
  font-size: 14.5px;
  line-height: 1.75;
  color: var(--muted);
  margin: 0;
}
@media (max-width: 900px) {
  .lw-au-mv-cols { grid-template-columns: 1fr; }
  .lw-au-vals { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .lw-au-vals { grid-template-columns: 1fr; }
}

/* ===== EMPTY-STATE BAND (journal / careers with nothing published yet) ===== */
.lw-bl-soon {
  max-width: 720px;
  margin: 0 auto;
  padding: clamp(40px, 6vw, 70px) clamp(26px, 4vw, 52px);
  background: var(--paper);
  border: 1px solid var(--hair);
  border-radius: var(--radius-lg);
  text-align: center;
}
.lw-bl-soon-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 62px;
  height: 62px;
  border-radius: 50%;
  background: var(--peach-soft);
  color: var(--brown);
  font-size: 22px;
  margin: 0 0 24px;
}
.lw-bl-soon h3 {
  font-family: var(--f-display);
  font-weight: 400;
  font-size: clamp(24px, 2.8vw, 34px);
  line-height: 1.15;
  letter-spacing: -0.5px;
  color: var(--brown-deep);
  margin: 0 0 16px;
}
.lw-bl-soon p {
  font-family: var(--f-body);
  font-size: 15.5px;
  line-height: 1.85;
  color: var(--muted);
  margin: 0 auto 30px;
  max-width: 560px;
}
.lw-bl-soon-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: center;
}

/* ===== TERMS & CONDITIONS / POLICY PROSE ===== */
.lw-tc {
  padding: clamp(20px, 3vw, 40px) var(--pad-x) clamp(80px, 10vw, 120px);
  background: var(--paper);
}
.lw-tc-inner {
  max-width: 860px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: clamp(28px, 3.4vw, 44px);
}
.lw-tc-block {
  padding: clamp(24px, 3vw, 36px);
  background: var(--ivory);
  border: 1px solid var(--hair);
  border-radius: var(--radius-lg);
}
.lw-tc-block h3 {
  font-family: var(--f-display);
  font-weight: 500;
  font-size: clamp(20px, 2.2vw, 26px);
  line-height: 1.2;
  color: var(--brown-deep);
  margin: 0 0 18px;
}
.lw-tc-block ul {
  margin: 0;
  padding: 0 0 0 22px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.lw-tc-block li {
  font-family: var(--f-body);
  font-size: 15px;
  line-height: 1.8;
  color: var(--muted);
}
.lw-tc-block li::marker { color: var(--wine); }
.lw-tc-block a { color: var(--wine); text-decoration: underline; text-underline-offset: 2px; }
.lw-tc-block a:hover { color: var(--brown-deep); }
.lw-tc-note { background: var(--cream); }
.lw-tc-note h3 { color: var(--wine); }

/* ===== ACCESSIBLE PAGE HEADING =====
   The design deliberately hides .lw-pg-hero-inner so inner pages render an
   image-only banner. That block is also where each page's <h1> lives, and
   display:none drops it from the accessibility tree, leaving those pages with
   no heading for screen readers.

   Instead of hiding the container, we collapse it to zero size and clip it:
   the banner still looks exactly as designed (nothing is painted), but the
   <h1> stays in the accessibility tree. The eyebrow and sub-line inside it
   remain hidden, since only the heading needs exposing. */
.lw-pg-hero-inner {
  display: block !important;
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0 !important;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
  pointer-events: none;
}
.lw-pg-hero-inner .lw-pg-eyebrow,
.lw-pg-hero-inner .lw-pg-sub { display: none !important; }


/* brand quote on the About page (moved off the homepage to keep that
   section within one fold) */
.lw-au-quote {
  max-width: var(--max-content);
  margin: 46px auto 0;
  padding: 30px 34px;
  border-left: 2px solid var(--peach);
  background: rgba(251,199,148,0.09);
}
.lw-au-quote p {
  font-family: var(--f-display);
  font-size: clamp(19px, 2vw, 25px);
  font-style: italic;
  font-weight: 300;
  line-height: 1.45;
  margin: 0 0 12px;
  color: var(--brown-deep);
}
.lw-au-quote cite {
  font-style: normal;
  font-size: 12px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--muted);
}

/* FUN-05: the label sits in a 1fr grid track but its text is wider than the
   track, so it bled 19px into the nav column. Let the track size to content
   and allow the nav to scroll instead of being pushed. */
.lw-prop-bar-inner {
  grid-template-columns: auto minmax(0, 1fr) auto;
}
.lw-prop-bar-label { white-space: nowrap; justify-self: start; }
.lw-prop-bar-nav {
  min-width: 0;
  overflow-x: auto;
  scrollbar-width: none;
}
.lw-prop-bar-nav::-webkit-scrollbar { display: none; }
.lw-prop-bar-nav ul { flex-wrap: nowrap; }

/* the property bar sticks under a header that is now 130px tall */
.lw-prop-bar { top: var(--header-h, 131px); }

/* The label measured 310px inside a 249px track and bled 19px into the nav.
   max-content sizes the track to the text; the nav takes what is left and
   scrolls. min-width:0 on the label prevents it forcing an overflow instead. */
.lw-prop-bar-inner {
  grid-template-columns: max-content minmax(0, 1fr) max-content;
  gap: 24px;
}
.lw-prop-bar-label { min-width: 0; }

/* ROOT CAUSE of the label/nav overlap: .lw-prop-bar-nav carries
   justify-self:center, which centres the nav INSIDE its grid track and pulls
   it back underneath the label. Track sizing was never the problem. */
.lw-prop-bar-nav { justify-self: stretch; }
.lw-prop-bar-nav ul { justify-content: flex-start; }

/* ---- slim glass property bar over the hero (must live here: inner.css
   loads after concept-2.css and its earlier rules were winning) ---- */
:root { --propbar-h: 46px; }

.lw-prop-bar {
  background: rgba(26,14,6,0.30);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-top: 0;
  border-bottom: 1px solid rgba(251,199,148,0.22);
  box-shadow: none;
  top: var(--header-h, 131px);
  transition: background .3s ease, border-color .3s ease;
}
.lw-prop-bar-inner {
  padding-top: 0;
  padding-bottom: 0;
  min-height: var(--propbar-h);
}
.lw-prop-bar-label { color: var(--peach); }
.lw-prop-bar-nav a {
  color: rgba(254,251,245,0.92);
  font-size: 10.5px;
  letter-spacing: 1.6px;
}
.lw-prop-bar-nav a:hover,
.lw-prop-bar-nav a.is-active { color: var(--peach); }
.lw-prop-bar-more-btn span { background: var(--ivory); }

.lw-prop-bar.is-stuck {
  background: var(--paper);
  border-bottom-color: var(--hair);
  box-shadow: 0 1px 0 rgba(46,22,8,0.06);
}
.lw-prop-bar.is-stuck .lw-prop-bar-label { color: var(--wine); }
.lw-prop-bar.is-stuck .lw-prop-bar-nav a { color: var(--brown-deep); }
.lw-prop-bar.is-stuck .lw-prop-bar-nav a:hover,
.lw-prop-bar.is-stuck .lw-prop-bar-nav a.is-active { color: var(--wine); }
.lw-prop-bar.is-stuck .lw-prop-bar-more-btn span { background: var(--brown-deep); }

@media (max-width: 900px) { :root { --propbar-h: 42px; } }

/* ---- 4. align the property bar to the header ----
   It was capped at max-width 1360px against the header's 1560px, so the two
   left edges were 100px apart. Same width, same padding = aligned. */
.lw-prop-bar-inner {
  max-width: 1560px;
  padding-left: var(--pad-x);
  padding-right: var(--pad-x);
}

/* the bar sticks directly under the shrunken header */
.lw-prop-bar { top: var(--header-h, 131px); transition: top .28s ease, background .3s ease; }
.lw-prop-bar.is-stuck { top: var(--header-h-sm, 96px); }

/* ---- 3b. the property bar shrinks too ---- */
:root { --propbar-h: 47px; --propbar-h-sm: 38px; --header-h-sm: 66px; }
.lw-prop-bar-inner { min-height: var(--propbar-h); transition: min-height .28s ease; }
.lw-prop-bar.is-stuck .lw-prop-bar-inner { min-height: var(--propbar-h-sm); }
.lw-prop-bar.is-stuck .lw-prop-bar-nav a { font-size: 10px; }

/* ---- 4b. Experiences folds under the overflow hamburger sooner ---- */
@media (max-width: 1340px) {
  .lw-prop-bar-nav a[href*="experiences"] { display: none; }
}
@media (max-width: 1180px) {
  .lw-prop-bar-nav a[href*="weddings"] { display: none; }
}

/* the bar sticks flush under the header in BOTH states -- measured 30px gap
   when scrolled because header-h-sm was guessed at 96 and the header is 66 */
.lw-prop-bar.is-stuck { top: 66px; }

/* ---- child bar: gradient rather than a flat tint, so the photograph reads
   through it. Darker at the top where it meets the header scrim, fading to
   near-clear at the bottom edge. A flat 30%% wash hid the image; a gradient
   keeps the text legible where it sits and lets the picture show below. ---- */
.lw-prop-bar:not(.is-stuck) {
  /* superseded: the child bar keeps ONE look in every state */
  backdrop-filter: blur(6px) saturate(1.05);
  -webkit-backdrop-filter: blur(6px) saturate(1.05);
  border-bottom-color: rgba(251,199,148,0.18);
}
/* the label and links carry a soft shadow so they stay legible where the
   gradient is lightest */
.lw-prop-bar:not(.is-stuck) .lw-prop-bar-label,
.lw-prop-bar:not(.is-stuck) .lw-prop-bar-nav a {
  text-shadow: 0 1px 6px rgba(26,14,6,0.55);
}

/* The bar sticks to a JS-measured header height so it can never detach.
   Previously its top came from a static token while the header shrank on a
   different trigger, leaving a measured 65px gap between 200px and 800px of
   scroll -- the bar floated over the hero copy. */
.lw-prop-bar,
.lw-prop-bar.is-stuck { top: var(--hdr-now, 122px); }

/* the bar compresses with the header (is-compact), while is-stuck controls
   only the solid-vs-gradient ground once past the hero */
.lw-prop-bar.is-compact .lw-prop-bar-inner { min-height: var(--propbar-h-sm); }
.lw-prop-bar.is-compact .lw-prop-bar-nav a { font-size: 10px; }

/* flush against the header at rest too -- the 9px gap came from the hero
   margin calculation, not from the bar itself */
.lw-prop-bar { margin-top: 0; }
.lw-prop-bar-inner { padding-top: 0; padding-bottom: 0; }

/* SMOOTH JOINT SHRINK.
   The bar top is driven by a live JS variable updated on every scroll frame,
   so transitioning it fought the updates and produced lag/jitter. Position is
   now instant (it must track the header exactly), while the SIZE change is
   animated on the same curve and duration as the header so the pair compress
   as one unit. */
.lw-prop-bar {
  transition: background .3s cubic-bezier(.4,0,.2,1),
              border-color .3s cubic-bezier(.4,0,.2,1);
  will-change: top;
}
.lw-prop-bar-inner {
  transition: min-height .28s cubic-bezier(.4,0,.2,1);
}
.lw-prop-bar-nav a,
.lw-prop-bar-label {
  transition: font-size .28s cubic-bezier(.4,0,.2,1),
              color .3s cubic-bezier(.4,0,.2,1);
}

/* STRUCTURAL ATTACHMENT (replaces the JS position chase).
   Both bars are wrapped in one sticky container, so the browser keeps them
   adjacent every frame -- no variable to update, nothing to lag. */
.lw-prop-bar {
  position: sticky;
  top: 0;
  margin-top: 0;
}
.lw-chrome {
  position: sticky;
  top: 0;
  z-index: 100;
}
.lw-chrome .lw-header { position: static; }
.lw-chrome .lw-prop-bar { position: static; }

/* ALIGNMENT: the label rendered at x=26 while the header hamburger sits at
   x=86, because the label overflowed its grid track to the LEFT. Sizing the
   first track to the label content, and forbidding overflow, pins it to the
   same left edge as the header. Right side matches via the same padding. */
.lw-prop-bar-inner {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr) max-content;
  align-items: center;
  gap: 28px;
  max-width: 1560px;
  margin: 0 auto;
  padding-left: var(--pad-x);
  padding-right: var(--pad-x);
}
.lw-prop-bar-label {
  grid-column: 1;
  justify-self: start;
  margin-left: 0;
  overflow: visible;
}
.lw-prop-bar-nav { grid-column: 2; justify-self: stretch; }
.lw-prop-bar-more { grid-column: 3; justify-self: end; }

/* The hero must clear the WHOLE chrome wrapper (header + bar = 170px), not
   just the header (131px) -- the 39px difference showed as a cream strip
   above the header. Deriving it from the wrapper keeps them locked together
   whatever either bar's height becomes. */
.lw-chrome ~ .lw-hero,
.lw-chrome ~ .lw-pg-hero,
.lw-chrome + * .lw-hero {
  margin-top: calc(-1 * (var(--header-h, 131px) + var(--propbar-h, 47px))) !important;
}
.lw-chrome ~ .lw-hero .lw-hero-caption {
  padding-top: calc(var(--header-h, 131px) + var(--propbar-h, 47px));
}

/* hero sits exactly under the chrome (measured -8px overshoot from a stale
   propbar token; derive from the real 48px bar) */
.lw-chrome ~ .lw-hero,
.lw-chrome ~ .lw-pg-hero {
  margin-top: calc(-1 * (var(--header-h, 122px) + 48px)) !important;
}

/* ---- CHILD BAR KEEPS ITS LOOK AT ALL TIMES ----
   Only the parent navbar changes state on scroll. The child bar stays on its
   dark gradient whether stuck or not, so it reads the same throughout. */
.lw-prop-bar,
.lw-prop-bar.is-stuck,
.lw-prop-bar.is-compact {
  background: linear-gradient(180deg,
    rgba(26,14,6,0.86) 0%,
    rgba(26,14,6,0.78) 100%);
  backdrop-filter: blur(8px) saturate(1.05);
  -webkit-backdrop-filter: blur(8px) saturate(1.05);
  border-bottom: 1px solid rgba(251,199,148,0.20);
  box-shadow: none;
}
.lw-prop-bar .lw-prop-bar-label,
.lw-prop-bar.is-stuck .lw-prop-bar-label { color: var(--peach); }
.lw-prop-bar .lw-prop-bar-nav a,
.lw-prop-bar.is-stuck .lw-prop-bar-nav a { color: rgba(254,251,245,0.92); }
.lw-prop-bar .lw-prop-bar-nav a:hover,
.lw-prop-bar.is-stuck .lw-prop-bar-nav a:hover,
.lw-prop-bar .lw-prop-bar-nav a.is-active,
.lw-prop-bar.is-stuck .lw-prop-bar-nav a.is-active { color: var(--peach); }
.lw-prop-bar .lw-prop-bar-more-btn span,
.lw-prop-bar.is-stuck .lw-prop-bar-more-btn span { background: var(--ivory); }

/* one gradient in every state, and the hero flush under the chrome
   (measured -9px overshoot) */
.lw-prop-bar,
.lw-prop-bar:not(.is-stuck),
.lw-prop-bar.is-stuck,
.lw-prop-bar.is-compact {
  background: linear-gradient(180deg,
    rgba(26,14,6,0.86) 0%,
    rgba(26,14,6,0.78) 100%) !important;
}
.lw-chrome ~ .lw-hero,
.lw-chrome ~ .lw-pg-hero {
  margin-top: calc(-1 * (122px + 48px)) !important;
}

/* child bar: shorter, and the gradient itself is shallower so it reads as a
   slim band rather than a deep wash over the photograph */
:root { --propbar-h: 38px; --propbar-h-sm: 32px; }
.lw-prop-bar-inner { min-height: var(--propbar-h) !important; }
.lw-prop-bar.is-compact .lw-prop-bar-inner { min-height: var(--propbar-h-sm) !important; }
.lw-prop-bar-nav a { padding-top: 6px !important; padding-bottom: 6px !important; }

/* shallower gradient */
.lw-prop-bar,
.lw-prop-bar:not(.is-stuck),
.lw-prop-bar.is-stuck,
.lw-prop-bar.is-compact {
  background: linear-gradient(180deg,
    rgba(26,14,6,0.80) 0%,
    rgba(26,14,6,0.72) 100%) !important;
}

/* hero clears the new chrome height */
.lw-chrome ~ .lw-hero,
.lw-chrome ~ .lw-pg-hero { margin-top: calc(-1 * (90px + 38px)) !important; }

/* child bar a touch more transparent (0.80/0.72 -> 0.62/0.52) */
.lw-prop-bar,
.lw-prop-bar:not(.is-stuck),
.lw-prop-bar.is-stuck,
.lw-prop-bar.is-compact {
  background: linear-gradient(180deg,
    rgba(26,14,6,0.62) 0%,
    rgba(26,14,6,0.52) 100%) !important;
}

/* "Experiences" clipped because the nav needed 833px in an 827px track -- a
   6px shortfall. Reclaiming it from the link padding and the column gap fits
   all seven links with room to spare, rather than hiding one behind the
   overflow menu. */
.lw-prop-bar-inner { gap: 20px !important; }
.lw-prop-bar-nav a {
  padding-left: 10px !important;
  padding-right: 10px !important;
  letter-spacing: 1.3px !important;
}
.lw-prop-bar-label { letter-spacing: 2.2px !important; }

/* the earlier width-based hides are no longer needed at 1440 */
@media (min-width: 1200px) {
  .lw-prop-bar-nav a[href*="experiences"],
  .lw-prop-bar-nav a[href*="weddings"] { display: inline-flex !important; }
}

/* The room-detail pages carry a property bar but NO photo hero, so the
   body:has(.lw-prop-bar) transparent rules made the header ivory-on-cream
   (measured 1.04:1). --solid must win over that: same specificity, so it
   needs to come later AND be more specific. */
body:has(.lw-prop-bar) .lw-header.lw-header--solid:not(.is-scrolled) {
  background: var(--paper) !important;
}
body:has(.lw-prop-bar) .lw-header.lw-header--solid::before { opacity: 0 !important; }
body:has(.lw-prop-bar) .lw-header.lw-header--solid:not(.is-scrolled) .lw-nav a,
body:has(.lw-prop-bar) .lw-header.lw-header--solid:not(.is-scrolled) .lw-head-rates {
  color: var(--brown-deep) !important;
}
body:has(.lw-prop-bar) .lw-header.lw-header--solid:not(.is-scrolled) .lw-toggle span {
  background: var(--brown-deep) !important;
}
body:has(.lw-prop-bar) .lw-header.lw-header--solid:not(.is-scrolled) .lw-btn-outline {
  border-color: var(--wine) !important; color: var(--wine) !important;
}
body:has(.lw-prop-bar) .lw-header.lw-header--solid:not(.is-scrolled) .lw-btn-outline:hover {
  background: var(--wine) !important; color: #fff !important;
}
body:has(.lw-prop-bar) .lw-header.lw-header--solid:not(.is-scrolled) .lw-contact-btn {
  color: var(--wine) !important; border-color: rgba(152,13,46,0.45) !important;
}

/* ---- dynamic property bar: no reserved gap, no hardcoded hides ---- */
.lw-prop-bar-inner { grid-template-columns: max-content minmax(0,1fr) auto !important; }
.lw-prop-bar-nav ul { display: flex; flex-wrap: nowrap; gap: 0; }
.lw-prop-bar-nav li.is-hidden { display: none !important; }

/* the overflow button collapses to nothing when it holds no items */
.lw-prop-bar-more[hidden],
.lw-prop-bar-more.is-empty { display: none !important; }
.lw-prop-bar-more { margin-left: 8px; }

/* the earlier width-based hides are replaced by measurement */
@media (max-width: 1340px) { .lw-prop-bar-nav a[href*="experiences"] { display: inline-flex !important; } }
@media (max-width: 1180px) { .lw-prop-bar-nav a[href*="weddings"] { display: inline-flex !important; } }

/* the active nav link kept peach on the solid header (measured 1.04:1) */
body:has(.lw-prop-bar) .lw-header.lw-header--solid:not(.is-scrolled) .lw-nav a.is-active,
.lw-header--solid:not(.is-scrolled) .lw-nav a.is-active { color: var(--wine) !important; }

/* The header is position:static inside .lw-chrome, so its z-index:101 was
   inert and the dropdown (z-index:auto) rendered BEHIND the property bar.
   Give the header a stacking context above the bar and lift the panel. */
.lw-chrome .lw-header { position: relative !important; z-index: 3 !important; }
.lw-chrome .lw-prop-bar { position: relative !important; z-index: 1 !important; }
.lw-nav .lw-drop { z-index: 140 !important; }
.lw-has-drop { position: relative; z-index: 5; }

/* the child bar hamburger is always present -- it opens the full property
   menu, not merely the overflow */
.lw-prop-bar-more { display: block !important; margin-left: 14px; }
.lw-prop-bar-more[hidden] { display: block !important; }

/* +1px text and +1px each side of the link padding, and close the 252px dead
   gap: the nav track was stretching to fill 1fr while its content sat left,
   so the hamburger was pushed far from the last link. Sizing the track to its
   content puts the hamburger right after the menu. */
.lw-prop-bar-nav a {
  font-size: 11.5px !important;
  padding-left: 11px !important;
  padding-right: 11px !important;
}
.lw-prop-bar-inner {
  grid-template-columns: max-content max-content auto !important;
  justify-content: start;
}
.lw-prop-bar-nav { justify-self: start !important; }
.lw-prop-bar-more { margin-left: 10px !important; justify-self: start !important; }

/* the +1px text pushed a 7th link into overflow; trim letter-spacing and the
   label gap to win it back without shrinking the type again */
.lw-prop-bar-nav a { letter-spacing: 1.1px !important; }
.lw-prop-bar-inner { gap: 16px !important; }
.lw-prop-bar-label { letter-spacing: 1.9px !important; }

/* REGRESSION FIX: max-content on the nav track let it grow past the viewport,
   so the overflow script never saw a shortage and the page scrolled sideways
   at every width below 1200. The track must be able to SHRINK (minmax 0,auto)
   for priority-plus to work; justify-content:start keeps the hamburger tight
   against the last link. */
.lw-prop-bar-inner {
  grid-template-columns: max-content minmax(0, auto) max-content !important;
  justify-content: start !important;
}
.lw-prop-bar-nav { min-width: 0 !important; overflow: hidden !important; }

/* The bar is position:relative inside .lw-chrome (for stacking), so the old
   sticky offsets became a 122px DOWNWARD nudge once .is-stuck applied -- the
   bar detached and floated over the content after the hero. Inside the
   wrapper it needs no offset at all: the wrapper does the sticking. */
.lw-chrome .lw-prop-bar,
.lw-chrome .lw-prop-bar.is-stuck,
.lw-chrome .lw-prop-bar.is-compact {
  top: auto !important;
  bottom: auto !important;
}

/* text links: comfortable hit height without altering the type or layout
   (they are wide already -- only the box height was under the floor) */
.lw-prop-bar-nav a, .lw-head-rates, .lw-prop-bar-label {
  display: inline-flex; align-items: center; min-height: 32px;
}
@media (pointer: coarse) {
  .lw-prop-bar-nav a, .lw-head-rates { min-height: 44px; }
}

/* inner-page equivalents of the same protections */
@media (max-height: 700px), (max-width: 900px) {
  .lw-pg-hero { min-height: 0 !important; height: auto !important; }
  .lw-pg-hero-inner { padding-top: calc(var(--header-h, 90px) + 40px); padding-bottom: 28px; }
  .lw-rm-intro, .lw-of-filter { padding-top: 18px; }
}
@media (max-width: 900px) {
  .lw-rooms-grid, .lw-fac-grid, .lw-gal-grid, .lw-loc-grid,
  .lw-mp-grid, .lw-home-rooms-grid { grid-template-columns: 1fr !important; }
  .lw-prop-bar-inner { padding-left: 16px !important; padding-right: 16px !important; }
}
