.room-detail { padding-top:124px; padding-bottom:80px; }
.room-breadcrumb { display:flex; flex-wrap:wrap; gap:12px; font-size:12px; color:var(--muted); margin-bottom:28px; }
.room-breadcrumb a:hover { color:var(--leaf); text-decoration:underline; }
.room-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:28px; }
.room-heading h1 { font-size:clamp(2.7rem,5vw,4.6rem); margin:0 0 12px; letter-spacing:-.04em; }
.room-heading .eyebrow { font-size:10px; margin-bottom:12px; }
.room-heading p:last-child { color:var(--muted); margin-bottom:0; }
.room-heading__link { flex-shrink:0; padding-bottom:6px; border-bottom:1px solid var(--leaf); color:var(--leaf); font-size:13px; font-weight:600; }
.room-heading__link span { margin-left:20px; }
.room-photos { position:relative; display:grid; grid-template-columns:2fr 1fr 1fr; grid-template-rows:1fr 1fr; gap:8px; height:clamp(320px,38vw,480px); border-radius:14px; overflow:hidden; background:var(--stone); }
.room-photos__tile { min-width:0; min-height:0; overflow:hidden; }
.room-photos__tile[hidden] { display:none; }
.room-photos__tile:first-child { grid-row:span 2; }
.room-photos__tile img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.room-photos__tile:hover img { transform:scale(1.03); }
.room-photos--1 { grid-template-columns:1fr; }
.room-photos--2 { grid-template-columns:1.5fr 1fr; grid-template-rows:1fr; }
.room-photos--2 .room-photos__tile:first-child { grid-row:auto; }
.room-photos--3 { grid-template-columns:1.7fr 1fr; }
.room-photos--4 .room-photos__tile:nth-child(2) { grid-column:span 2; }
.room-photos__tag { position:absolute; top:20px; left:20px; padding:7px 12px; border-radius:4px; background:rgba(251,248,241,.94); font-size:10px; letter-spacing:.08em; text-transform:uppercase; pointer-events:none; }
.room-photos__all { position:absolute; right:20px; bottom:20px; background:var(--paper); border:0; border-radius:5px; padding:12px 18px; color:var(--ink); font:inherit; font-size:12px; font-weight:600; cursor:pointer; box-shadow:0 2px 15px #0002; }
.room-photos__all span { margin-right:8px; }
.room-layout { display:grid; grid-template-columns:minmax(0,1fr) 390px; gap:clamp(30px,5vw,72px); align-items:start; padding-top:40px; }
.room-story,.room-reservation { min-width:0; }
.room-sections { display:flex; gap:28px; border-bottom:1px solid var(--line); padding-bottom:16px; font-size:12px; font-weight:600; }
.room-sections a { padding:8px 0; }
.room-sections a:hover { color:var(--leaf-2); }
.room-section { padding:36px 0; border-bottom:1px solid var(--line); scroll-margin-top:110px; }
.room-section .eyebrow { font-size:10px; margin-bottom:14px; }
.room-section h2 { font-size:clamp(2rem,3.3vw,3.2rem); letter-spacing:-.03em; margin-bottom:24px; }
.room-size { font-size:13px; color:var(--muted); }
.room-specifications { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin:28px 0; gap:12px; }
.room-specifications div { padding:0 12px 0 0; border-right:1px solid var(--line); }
.room-specifications div:last-child { border:0; }
.room-specifications dt { color:var(--terracotta); font-size:10px; text-transform:uppercase; letter-spacing:.1em; margin-bottom:8px; }
.room-specifications dd { margin:0; font-size:13px; line-height:1.6; }
.room-description { color:var(--muted); font-size:15px; line-height:1.85; overflow-wrap:anywhere; }
.room-description p:last-child { margin-bottom:0; }
.room-features { display:grid; grid-template-columns:1fr 1fr; gap:16px 24px; list-style:none; padding:0; margin:24px 0; font-size:14px; }
.room-features li { display:flex; gap:12px; align-items:baseline; }
.room-features li > span { color:var(--leaf-2); }
.room-disclosure { border-bottom:1px solid var(--line); padding:16px 0; }
.room-disclosure summary { cursor:pointer; font-size:14px; font-weight:600; padding:6px 0; }
.room-disclosure summary span { float:right; color:var(--muted); font-size:11px; font-weight:400; }
.room-disclosure p { color:var(--muted); font-size:14px; margin:16px 0 0; }
.room-arrival { display:grid; grid-template-columns:1fr 1fr; background:#eeeade; border-radius:8px; padding:20px; gap:20px; margin:0 0 8px; }
.room-arrival dt { font-size:12px; color:var(--muted); }
.room-arrival dd { font-size:24px; margin:4px 0 0; font-family:Georgia,serif; }
.room-policy-note { color:var(--muted); font-size:13px; margin:20px 0 0; }
.room-concierge { background:var(--leaf); color:var(--paper); padding:28px; margin-top:32px; border-radius:10px; }
.room-concierge .eyebrow { color:#e4c4a1; font-size:10px; }
.room-concierge h3 { font-size:30px; margin:12px 0; }
.room-concierge p { font-size:14px; color:#e0e6dd; }
.room-concierge a { font-size:12px; border-bottom:1px solid #fff7; padding-bottom:4px; }
.room-reservation { scroll-margin-top:110px; }
.room-reservation .booking-card { background:#fff; border:1px solid #deded2; border-radius:12px; box-shadow:0 12px 45px #17201b0c; }
.room-reservation .booking-card__header { padding:26px 24px 0; }
.room-reservation .booking-card__header .eyebrow { font-size:10px; margin-bottom:12px; }
.room-rate { margin-bottom:12px; }
.room-rate strong { font-family:Georgia,serif; font-size:30px; font-weight:400; letter-spacing:-.025em; }
.room-rate span { display:inline-block; font-size:11px; color:var(--muted); }
.room-reservation__caption { font-size:12px; color:var(--muted); margin:0; padding-bottom:20px; border-bottom:1px solid var(--line); }
.room-reservation .direct-booking__intro { display:none; }
.room-reservation .booking-form { gap:14px; }
.room-reservation .booking-channels { padding:20px 24px 24px; }
.room-reservation .booking-form label { font-size:12px; }
.room-reservation .booking-form input,.room-reservation .booking-form select { background:#fafbf8; font-size:13px; }
.room-reservation .direct-booking__note { font-size:11px; }
.room-reservation details summary { font-size:12px; }
.room-reservation__footnote { font-size:11px; text-align:center; color:var(--muted); margin:14px 0 0; }
.room-mobile-book { display:none; }
.room-lightbox { position:fixed; inset:0; width:100vw; height:100dvh; max-width:none; max-height:none; border:0; padding:24px; background:#121b16; color:#fff; }
.room-lightbox[open] { display:grid; grid-template-rows:auto minmax(0,1fr) auto; gap:20px; }
.room-lightbox::backdrop { background:#121b16; }
.room-lightbox__bar,.room-lightbox__controls { display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:13px; }
.room-lightbox button { border:1px solid #ffffff55; background:transparent; color:inherit; padding:12px 20px; border-radius:5px; cursor:pointer; font:inherit; }
.room-lightbox img { width:100%; height:100%; min-height:0; object-fit:contain; }
.room-lightbox [data-room-counter] { display:inline-block; margin-left:16px; opacity:.65; }
.room-detail :focus-visible { outline:2px solid var(--leaf-2); outline-offset:4px; }
.room-lightbox :focus-visible { outline-color:#fff; }
body:has(.room-lightbox[open]) { overflow:hidden; }
@media(min-width:1041px) and (min-height:1000px) { .room-reservation { position:sticky; top:104px; } }
@media(max-width:1040px) { .room-layout { grid-template-columns:minmax(0,1fr) 340px; gap:28px; } .room-specifications { grid-template-columns:1fr 1fr; gap:20px; } .room-specifications div:nth-child(2) { border:0; } }
@media(max-width:767px) {
  .room-detail { padding-top:100px; padding-bottom:48px; }
  .room-breadcrumb { font-size:10px; gap:8px; margin-bottom:22px; }
  .room-heading { margin-bottom:24px; } .room-heading__link { display:none; }
  .room-heading h1 { font-size:42px; } .room-heading p:last-child { font-size:13px; }
  .room-photos { height:340px; grid-template-columns:1fr 1fr; grid-template-rows:2fr 1fr; gap:5px; }
  .room-photos .room-photos__tile:first-child { grid-column:span 2; grid-row:auto; }
  .room-photos .room-photos__tile:nth-child(2) { grid-column:auto; }
  .room-photos .room-photos__tile:nth-child(n+4) { display:none; }
  .room-photos--1 { grid-template-rows:1fr; }
  .room-photos--2 { grid-template-rows:1fr; }
  .room-photos--2 .room-photos__tile:first-child { grid-column:auto; }
  .room-photos__tag { top:12px; left:12px; font-size:8px; }
  .room-photos__all { right:12px; bottom:12px; padding:10px 12px; }
  .room-layout { grid-template-columns:1fr; padding-top:24px; }
  .room-sections { gap:24px; }
  .room-section { padding:28px 0; }
  .room-section h2 { font-size:34px; }
  .room-features { gap:14px; font-size:13px; }
  .room-mobile-book { display:flex; position:fixed; bottom:0; left:0; right:0; z-index:20; align-items:center; justify-content:space-between; gap:12px; padding:12px 20px calc(12px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:var(--paper); box-shadow:0 -4px 20px #17201b08; }
  .room-mobile-book > div { min-width:0; }
  .room-mobile-book strong,.room-mobile-book span { display:block; }
  .room-mobile-book strong { font-size:13px; }
  .room-mobile-book span { font-size:10px; color:var(--muted); }
  .room-mobile-book .button { flex-shrink:0; font-size:11px; padding:12px 16px; }
  body:has(.room-detail) { padding-bottom:90px; }
  .room-lightbox { padding:16px; }
  .room-lightbox__bar { align-items:start; }
}
.room-rate span { margin-left:6px; }
.gallery-page-hero h1{font-size:clamp(44px,6vw,82px);letter-spacing:-.035em;max-width:850px}.gallery-page-hero .eyebrow{font-size:11px}.gallery-tile>a{display:block;width:100%;height:100%}.gallery-tile>a>img{width:100%;height:100%;object-fit:cover}.gallery-tile figcaption{pointer-events:none}.gallery-open-all{grid-column:1/-1;border:1px solid #174f38;border-radius:6px;background:#fbf8f1;color:#174f38;padding:14px;font:inherit;cursor:pointer}.gallery-filter button{min-height:44px}.gallery-tile>a:focus-visible{outline:3px solid #174f38;outline-offset:-5px}
