.lh-scope {
  --lh-green: #0e4c4a;
  --lh-green-deep: #083836;
  --lh-ink: #182321;
  --lh-muted: #63706d;
  --lh-gold: #b6842d;
  --lh-gold-text: #7d5b1c;
  --lh-papyrus: #f7f2e6;
  --lh-ivory: #fffdf8;
  --lh-mist: #e8efeb;
  color: var(--lh-ink);
}

.lh-scope *, .lh-scope *::before, .lh-scope *::after { box-sizing: border-box; }
.lh-page { overflow-x: clip; background: var(--lh-ivory); }

.lh-breadcrumb {
  display: flex;
  align-items: center;
  gap: 10px;
  width: min(1180px, calc(100% - 40px));
  min-height: 54px;
  margin: 0 auto;
  color: var(--lh-muted);
  font-size: 13px;
}
.lh-breadcrumb a { color: var(--lh-green); text-decoration: none; }

.lh-hotel-intro { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }
.lh-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  min-height: clamp(500px, 38vw, 590px);
  overflow: hidden;
  background: var(--lh-green-deep);
}
.lh-hero.is-typographic {
  grid-template-columns: 1fr;
  min-height: 430px;
  background: radial-gradient(circle at 78% 16%, rgba(229,196,119,.15), transparent 26%), linear-gradient(135deg, var(--lh-green-deep), #062a29);
}
.lh-hero-media { position: relative; min-width: 0; min-height: 0; overflow: hidden; background: var(--lh-mist); }
.lh-hero-media::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, transparent 72%, rgba(5,47,45,.2)); }
.lh-hero-media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.lh-hero-content { display: flex; min-width: 0; flex-direction: column; justify-content: flex-end; padding: clamp(38px, 4.2vw, 62px); color: #fff; background: var(--lh-green-deep); }
.lh-hero.is-typographic .lh-hero-content { max-width: 900px; justify-content: center; }
.lh-eyebrow, .lh-kicker { margin: 0 0 12px; font-size: 11px; font-weight: 850; letter-spacing: .17em; text-transform: uppercase; }
.lh-eyebrow { color: #e5c477; }
.lh-kicker { color: var(--lh-gold-text); }
.lh-hero h1 { max-width: 18ch; margin: 0; color: #fff; font: 600 clamp(30px, 3.2vw, 44px)/1.08 var(--lr-serif, Georgia, "Times New Roman", serif); letter-spacing: -.025em; overflow-wrap: break-word; word-break: normal; hyphens: none; }
.lh-hero.is-typographic h1 { max-width: 22ch; font-size: clamp(42px, 6vw, 72px); }
.lh-former { margin: 20px 0 0; font-size: 16px; opacity: .86; }
.lh-page .lh-hero-official { align-self: flex-start; margin-top: 30px; color: #fff; text-decoration: underline; text-decoration-color: rgba(229,196,119,.78); text-decoration-thickness: 1px; text-underline-offset: 7px; }
.lh-page .lh-hero-official:hover { color: #f4dc9d; }
.lh-page .lh-hero a:focus-visible { outline-color: #f4dc9d; }

.lh-fact-rail { border-top: 3px solid var(--lh-gold); background: var(--lh-papyrus); }
.lh-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); margin: 0; }
.lh-facts > div { min-width: 0; min-height: 108px; padding: 24px clamp(22px, 3vw, 36px); border-right: 1px solid rgba(24,35,33,.14); }
.lh-facts > div:last-child { border-right: 0; }
.lh-facts dt, .lh-facts dd { margin: 0; }
.lh-facts dt { margin-bottom: 9px; color: var(--lh-gold-text); font-size: 11px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.lh-facts dd { color: var(--lh-ink); font-size: 16px; font-weight: 800; line-height: 1.45; overflow-wrap: break-word; }
.lh-official, .lh-card-link { display: inline-flex; align-items: center; min-height: 44px; color: var(--lh-green); font-weight: 850; text-decoration: none; }

.lh-container { width: min(1120px, calc(100% - 40px)); margin: 0 auto; padding: clamp(64px, 7vw, 88px) 0; }
.lh-container > section, .lh-container > aside { margin-top: clamp(68px, 7vw, 88px); }
.lh-container > :first-child { margin-top: 0; }
.lh-section-heading { max-width: 900px; margin-bottom: 30px; }
.lh-section-heading h2 { max-width: 22ch; margin: 0; font: 600 clamp(34px, 4vw, 50px)/1.08 var(--lr-serif, Georgia, "Times New Roman", serif); letter-spacing: -.025em; overflow-wrap: break-word; word-break: normal; hyphens: none; }

.lh-story { padding-bottom: clamp(58px, 6vw, 78px); border-bottom: 1px solid rgba(24,35,33,.18); }
.lh-prose { max-width: 820px; color: #44514e; font-size: clamp(18px, 1.7vw, 21px); line-height: 1.82; }
.lh-prose > :first-child { margin-top: 0; }
.lh-prose > :last-child { margin-bottom: 0; }

.lh-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.lh-gallery figure { min-width: 0; margin: 0; overflow: hidden; background: var(--lh-mist); }
.lh-gallery figure:last-child:nth-child(odd) { grid-column: 1 / -1; }
.lh-gallery img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.lh-gallery figure:last-child:nth-child(odd) img { aspect-ratio: 2 / 1; }
.lh-gallery figcaption { padding: 10px 12px; color: var(--lh-muted); font-size: 13px; line-height: 1.5; }

.lh-detail-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1px; background: rgba(24,35,33,.14); }
.lh-detail-grid article { padding: clamp(28px, 4vw, 44px); background: var(--lh-papyrus); }
.lh-detail-grid article > span { color: var(--lh-gold-text); font: 700 12px/1 sans-serif; letter-spacing: .12em; }
.lh-detail-grid h3 { margin: 20px 0 14px; font: 600 28px/1.1 var(--lr-serif, Georgia, "Times New Roman", serif); }
.lh-detail-grid p, .lh-detail-grid li { color: #4d5a57; line-height: 1.7; }
.lh-detail-grid ul { margin: 0; padding-inline-start: 20px; }

.lh-trip-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.lh-trip-links a { display: flex; align-items: center; justify-content: space-between; min-height: 72px; padding: 18px 22px; border: 1px solid rgba(24,35,33,.16); color: var(--lh-ink); font-weight: 800; text-decoration: none; }
.lh-trip-links a:hover { border-color: var(--lh-gold); background: var(--lh-papyrus); }

.lh-directory {
  --lh-green: #073c3a;
  --lh-green-deep: #052f2d;
  --lh-gold: #d2a84c;
  --lh-gold-text: #765619;
  --lh-ivory: #fff;
  width: 100%;
  padding: clamp(58px, 7vw, 84px) max(20px, calc((100% - 1120px) / 2));
  background: #fbf8f0;
}
.lh-directory-heading { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); gap: 48px; align-items: end; }
.lh-directory-heading h2 { max-width: 720px; margin: 0; font: 600 clamp(38px, 4.6vw, 58px)/1.03 var(--lr-serif, Georgia, "Times New Roman", serif); letter-spacing: -.03em; }
.lh-directory-heading > p { max-width: 460px; margin: 0; color: var(--lh-muted); font-size: 17px; line-height: 1.7; }
.lh-filter-bar { position: relative; display: flex; justify-content: space-between; gap: 28px; align-items: center; margin: 38px 0 30px; padding: 11px 0; border-bottom: 1px solid rgba(24,35,33,.16); }
.lh-filter-bar::before { content: ""; position: absolute; z-index: 0; left: 0; right: 0; top: 33px; height: 1px; background: linear-gradient(90deg, var(--lh-gold), rgba(210,168,76,.12)); }
.lh-filter-buttons { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 8px; }
.lh-filter-buttons button { min-height: 44px; padding: 10px 15px; border: 1px solid rgba(24,35,33,.16); border-radius: 0; color: var(--lh-ink); background: #fbf8f0; font-family: inherit; font-size: 13px; font-weight: 800; line-height: 1.2; cursor: pointer; }
.lh-filter-buttons button:hover { border-color: var(--lh-gold); }
.lh-filter-buttons button.is-active { border-color: var(--lh-green); color: #fff; background: var(--lh-green); box-shadow: inset 0 -3px 0 var(--lh-gold); }
.lh-result-count { position: relative; z-index: 1; flex: 0 0 auto; margin: 0; padding: 7px 0 7px 14px; color: var(--lh-muted); background: #fbf8f0; font-size: 13px; font-weight: 800; }
.lh-scope [hidden] { display: none !important; }
.lh-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
.lh-card { position: relative; display: flex; min-width: 0; flex-direction: column; overflow: hidden; background: var(--lh-ivory); border: 1px solid rgba(24,35,33,.14); transition: transform .25s ease, border-color .25s ease; }
.lh-card:hover { transform: translateY(-3px); border-color: rgba(182,132,45,.66); }
.lh-card:focus-within { outline: 3px solid var(--lh-green); outline-offset: 3px; }
.lh-card-media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--lh-mist); }
.lh-card-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.lh-card:hover .lh-card-media img { transform: scale(1.025); }
.lh-card-placeholder { display: grid; place-items: center; width: 100%; height: 100%; color: #d2a84c; font-size: 64px; background: linear-gradient(145deg, var(--lh-green), var(--lh-ink)); }
.lh-card-body { display: flex; flex: 1; flex-direction: column; padding: 22px; }
.lh-card-place { color: var(--lh-gold-text); font-size: 11px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.lh-card-title { margin: 8px 0 12px; font: 600 27px/1.15 var(--lr-serif, Georgia, "Times New Roman", serif); }
.lh-card-title a { color: var(--lh-ink); text-decoration: none; }
.lh-card-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.lh-card-title a:focus-visible { outline: 0 !important; }
.lh-card p { margin: 0 0 16px; color: var(--lh-muted); line-height: 1.68; }
.lh-card-link { margin-top: auto; color: var(--lh-green); font-size: 14px; font-weight: 850; }
.lh-empty { padding: 32px; border: 1px solid rgba(24,35,33,.14); background: var(--lh-ivory); color: #4d5a57; line-height: 1.7; }
.lh-scope a:focus-visible, .lh-scope button:focus-visible { outline: 3px solid var(--lh-green); outline-offset: 3px; }
.lh-scope .screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.lh-breadcrumb a { display: inline-flex; align-items: center; min-height: 44px; }

@media (max-width: 1024px) {
  .lh-page .lh-hero { grid-template-columns: 1fr; min-height: 0; }
  .lh-page .lh-hero-media { aspect-ratio: 16 / 9; }
  .lh-page .lh-hero-media::after { background: linear-gradient(180deg, transparent 76%, rgba(5,47,45,.16)); }
  .lh-page .lh-hero-content { min-height: 280px; justify-content: center; padding: clamp(34px, 6vw, 56px); }
  .lh-page .lh-hero h1 { max-width: 22ch; font-size: clamp(36px, 6vw, 52px); }
}

@media (max-width: 900px) {
  .lh-detail-grid { grid-template-columns: 1fr; }
  .lh-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lh-directory-heading { grid-template-columns: 1fr; gap: 18px; }
  .lh-filter-bar { align-items: flex-end; }
}

@media (max-width: 620px) {
  .lh-breadcrumb { width: min(100% - 28px, 1180px); overflow: hidden; white-space: nowrap; }
  .lh-breadcrumb [aria-current="page"] { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
  .lh-hotel-intro { width: calc(100% - 28px); }
  .lh-page .lh-hero-media { aspect-ratio: 4 / 3; }
  .lh-page .lh-hero-content { min-height: 260px; padding: 32px 24px 36px; }
  .lh-page .lh-hero h1, .lh-page .lh-hero.is-typographic h1 { font-size: clamp(32px, 10vw, 43px); }
  .lh-page .lh-hero.is-typographic { min-height: 340px; }
  .lh-page .lh-hero-official { margin-top: 22px; }
  .lh-page .lh-facts { grid-template-columns: 1fr; }
  .lh-page .lh-facts > div { min-height: auto; padding: 18px 22px; border-right: 0; border-bottom: 1px solid rgba(24,35,33,.14); }
  .lh-page .lh-facts > div:last-child { border-bottom: 0; }
  .lh-container { width: calc(100% - 28px); padding: 66px 0; }
  .lh-section-heading h2 { font-size: clamp(32px, 10vw, 42px); }
  .lh-gallery { grid-template-columns: 1fr; }
  .lh-gallery figure, .lh-gallery figure:last-child:nth-child(odd) { grid-column: 1; }
  .lh-gallery img, .lh-gallery figure:last-child:nth-child(odd) img { aspect-ratio: 4 / 3; }
  .lh-trip-links { grid-template-columns: 1fr; }
  .lh-grid { grid-template-columns: 1fr; }
  .lh-directory { padding: 54px 14px 60px; }
  .lh-directory-heading h2 { font-size: clamp(36px, 11vw, 48px); }
  .lh-filter-bar { display: block; margin-top: 28px; padding-bottom: 16px; }
  .lh-filter-bar::before { display: none; }
  .lh-filter-buttons { gap: 7px; }
  .lh-filter-buttons button { flex: 1 1 calc(50% - 7px); padding-inline: 10px; }
  .lh-result-count { margin-top: 10px; padding: 4px 0 0; }
  .lh-card-title { font-size: 24px; }
}

@media (prefers-reduced-motion: reduce) { .lh-card, .lh-card-media img { transition: none; } }
