:root {
  --stay-paper:#f8f6f2;
  --stay-white:#fff;
  --stay-ink:#26362f;
  --stay-muted:#666f69;
  --stay-green:#29483a;
  --stay-green-2:#365b49;
  --stay-orange:#c86d17;
  --stay-line:#dedfd9;
  --stay-stone:#eef0eb;
  --stay-shadow:0 18px 55px rgba(35,52,44,.10);
}

.stay-detail-page { background:var(--stay-paper); color:var(--stay-ink); }
.stay-detail-page:has(dialog[open]) { overflow:hidden; }
.stay-detail *, .stay-detail *::before, .stay-detail *::after { box-sizing:border-box; }
.stay-detail svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.stay-detail__shell { width:min(1180px,calc(100% - 40px)); margin-inline:auto; }
.stay-detail h1,.stay-detail h2,.stay-detail h3 { font-family:"DM Serif Display",Georgia,serif; font-weight:400; letter-spacing:-.015em; }
.stay-detail__eyebrow { margin:0 0 10px; color:var(--stay-orange); font-size:.74rem; font-weight:850; letter-spacing:.14em; text-transform:uppercase; }
.skip-link { position:fixed; left:16px; top:-80px; z-index:2000; background:var(--stay-ink); color:#fff; padding:10px 14px; }
.skip-link:focus { top:16px; }

.stay-detail__crumbs { display:flex; gap:9px; align-items:center; overflow:hidden; padding:20px 0 12px; color:var(--stay-muted); font-size:.82rem; white-space:nowrap; }
.stay-detail__crumbs a { color:var(--stay-green); font-weight:700; text-decoration:none; }
.stay-detail__crumbs span:last-child { overflow:hidden; text-overflow:ellipsis; }

.stay-detail__intro { display:grid; grid-template-columns:minmax(0,1.32fr) minmax(330px,.68fr); gap:56px; align-items:end; padding:30px 0 42px; }
.stay-detail__intro h1 { max-width:800px; margin:0; font-size:clamp(2.7rem,5vw,5rem); line-height:.98; }
.stay-detail__lead { max-width:720px; margin:20px 0 0; color:#48584f; font-size:1.06rem; line-height:1.72; }
.stay-detail__context { margin:16px 0 0; color:var(--stay-muted); font-size:.88rem; }
.stay-detail__booking { border-top:4px solid var(--stay-orange); background:var(--stay-white); padding:25px; box-shadow:var(--stay-shadow); }
.stay-detail__booking-label { margin:0 0 14px; color:var(--stay-muted); font-size:.76rem; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.stay-detail__facts { display:grid; grid-template-columns:1fr 1fr; gap:1px; margin-bottom:20px; background:var(--stay-line); }
.stay-detail__facts span { display:flex; min-height:56px; align-items:center; gap:9px; background:#fff; padding:10px; font-size:.78rem; font-weight:720; line-height:1.25; }
.stay-detail__facts svg { flex:0 0 20px; width:20px; height:20px; color:var(--stay-orange); }
.stay-detail__cta { display:inline-flex; min-height:52px; align-items:center; justify-content:center; gap:10px; border:1px solid var(--stay-green); border-radius:4px; background:var(--stay-green); color:#fff!important; padding:13px 18px; text-decoration:none!important; font-weight:820; text-align:center; transition:background .18s,transform .18s; }
.stay-detail__cta:hover { background:#1f382d; transform:translateY(-1px); }
.stay-detail__booking .stay-detail__cta { width:100%; }
.stay-detail__booking small { display:block; margin-top:12px; color:var(--stay-muted); font-size:.72rem; line-height:1.5; }

.stay-detail__media-section { padding:0 0 24px; }
.stay-detail__media-head { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:end; margin-bottom:18px; }
.stay-detail__media-head h2 { margin:0; font-size:clamp(1.8rem,3vw,2.65rem); line-height:1.05; }
.stay-detail__media-head>p { margin:0; color:var(--stay-muted); font-size:.84rem; line-height:1.55; }
.stay-detail__media-grid { position:relative; display:grid; grid-template-columns:1.4fr .7fr .7fr; grid-template-rows:250px 250px; gap:7px; min-height:507px; overflow:hidden; background:var(--stay-stone); }
.stay-detail__photo { position:relative; min-width:0; min-height:0; overflow:hidden; border:0; background:#dfe4df; padding:0; cursor:zoom-in; }
.stay-detail__photo:first-child { grid-row:1/3; }
.stay-detail__photo img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .35s,filter .35s; }
.stay-detail__photo:hover img { transform:scale(1.025); filter:brightness(.94); }
.stay-detail__media-grid--1 { grid-template-columns:1fr; grid-template-rows:minmax(430px,58vw); }
.stay-detail__media-grid--1 .stay-detail__photo:first-child { grid-column:1; grid-row:1; }
.stay-detail__media-grid--2 { grid-template-columns:1.35fr 1fr; grid-template-rows:507px; }
.stay-detail__media-grid--2 .stay-detail__photo:first-child { grid-row:1; }
.stay-detail__media-grid--3 { grid-template-columns:1.4fr .9fr; }
.stay-detail__media-grid--3 .stay-detail__photo:nth-child(2),.stay-detail__media-grid--3 .stay-detail__photo:nth-child(3) { grid-column:2; }
.stay-detail__media-grid--4 { grid-template-columns:1.4fr .7fr .7fr; }
.stay-detail__media-grid--4 .stay-detail__photo:nth-child(4) { grid-column:2/4; }
.stay-detail__all-photos { position:absolute; right:18px; bottom:18px; z-index:2; min-height:44px; border:1px solid rgba(34,48,41,.2); border-radius:4px; background:rgba(255,255,255,.96); color:var(--stay-ink); padding:10px 15px; box-shadow:0 8px 28px rgba(22,31,27,.15); font-weight:800; cursor:pointer; }
.stay-detail__all-photos:hover { background:#fff; }

.stay-detail__why-section { padding:0 0 42px; }
.stay-detail__why-head { display:flex; align-items:end; justify-content:space-between; gap:24px; margin:0 0 18px; }
.stay-detail__why-head h2 { margin:0; font-size:clamp(1.75rem,3vw,2.5rem); line-height:1.06; }
.stay-detail__why { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; border:1px solid var(--stay-line); background:var(--stay-line); }
.stay-detail__why article { display:grid; grid-template-columns:auto 1fr; gap:16px; align-items:center; min-height:90px; background:var(--stay-white); padding:18px 22px; }
.stay-detail__why article>span { color:var(--stay-orange); font-size:.74rem; font-weight:900; }
.stay-detail__why h3 { margin:0; font:750 .92rem/1.35 Inter,system-ui,sans-serif; letter-spacing:0; }

.stay-detail__section-nav { position:sticky; top:78px; z-index:70; border-top:1px solid var(--stay-line); border-bottom:1px solid var(--stay-line); background:rgba(248,246,242,.97); backdrop-filter:blur(13px); }
.stay-detail__section-nav .stay-detail__shell { display:flex; gap:30px; overflow-x:auto; scrollbar-width:none; }
.stay-detail__section-nav .stay-detail__shell::-webkit-scrollbar { display:none; }
.stay-detail__section-nav a { flex:0 0 auto; padding:17px 0 14px; border-bottom:3px solid transparent; color:var(--stay-ink); font-size:.82rem; font-weight:760; text-decoration:none; }
.stay-detail__section-nav a:hover { border-color:var(--stay-orange); color:var(--stay-orange); }

.stay-detail__section { scroll-margin-top:145px; padding:78px 0; }
.stay-detail__section--white { background:var(--stay-white); }
.stay-detail__section--stone { background:var(--stay-stone); }
.stay-detail__section-head { display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:end; margin-bottom:32px; }
.stay-detail__section-head h2,.stay-detail__copy-grid h2,.stay-detail__destination h2 { margin:0; font-size:clamp(2rem,3.4vw,3.35rem); line-height:1.06; }
.stay-detail__section-head>p { margin:0; color:var(--stay-muted); line-height:1.65; }
.stay-detail__copy-grid { display:grid; grid-template-columns:minmax(0,1.22fr) minmax(320px,.78fr); gap:75px; }
.stay-detail__copy-grid>div>p:not(.stay-detail__eyebrow) { margin:18px 0 0; color:#46554d; line-height:1.82; }

.stay-detail__fit { align-self:start; background:var(--stay-green); color:#fff; padding:32px; }
.stay-detail__fit h3 { margin:0 0 24px; font-size:1.7rem; }
.stay-detail__fit h4 { margin:22px 0 6px; color:#cfe0d7; font-size:.73rem; letter-spacing:.09em; text-transform:uppercase; }
.stay-detail__fit ul { list-style:none; margin:0; padding:0; }
.stay-detail__fit li { display:grid; grid-template-columns:20px 1fr; gap:10px; padding:9px 0; border-bottom:1px solid rgba(255,255,255,.16); font-size:.84rem; line-height:1.45; }
.stay-detail__fit svg { width:18px; height:18px; margin-top:1px; color:#f2b26f; }

.stay-detail__amenity-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.stay-detail__amenity-group { border:1px solid #d8ddd8; background:var(--stay-white); padding:25px; }
.stay-detail__amenity-group h3 { margin:0 0 18px; font-size:1.35rem; }
.stay-detail__amenity-group ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin:0; padding:0; list-style:none; background:var(--stay-line); }
.stay-detail__amenity-group li { display:flex; min-height:58px; align-items:center; gap:10px; background:#fff; padding:11px 12px; font-size:.83rem; line-height:1.35; }
.stay-detail__amenity-group li svg { flex:0 0 21px; color:var(--stay-orange); }
.stay-detail__amenity-group--shared { border-color:#aac0b3; background:#e6efe9; }
.stay-detail__amenity-group--shared li { background:#f7fbf8; }
.stay-detail__amenity-group>p { margin:16px 0 0; color:var(--stay-muted); font-size:.77rem; line-height:1.5; }
.stay-detail__empty-data { grid-column:1/-1; margin:0; border-left:4px solid var(--stay-orange); background:#fff; padding:22px; color:var(--stay-muted); }

.stay-detail__layout-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; border:1px solid var(--stay-line); background:var(--stay-line); }
.stay-detail__layout-grid article { min-height:165px; background:#fff; padding:25px; }
.stay-detail__layout-grid svg { width:28px; height:28px; color:var(--stay-orange); }
.stay-detail__layout-grid strong,.stay-detail__layout-grid span { display:block; }
.stay-detail__layout-grid strong { margin-top:30px; font:400 1.55rem/1.05 "DM Serif Display",Georgia,serif; }
.stay-detail__layout-grid span { margin-top:6px; color:var(--stay-muted); font-size:.78rem; }

.stay-detail__destination { display:grid; grid-template-columns:1.12fr .88fr; background:var(--stay-green); color:#fff; }
.stay-detail__destination>div,.stay-detail__destination nav { padding:44px; }
.stay-detail__destination p:not(.stay-detail__eyebrow) { color:#d7e2dc; line-height:1.68; }
.stay-detail__destination ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:24px 0 0; padding:0; list-style:none; }
.stay-detail__destination li { display:flex; align-items:center; gap:10px; min-height:50px; border:1px solid rgba(255,255,255,.16); padding:10px; font-size:.8rem; }
.stay-detail__destination li svg { flex:0 0 19px; width:19px; height:19px; color:#f3b36e; }
.stay-detail__destination nav { display:flex; flex-direction:column; justify-content:center; background:var(--stay-green-2); }
.stay-detail__destination nav a { padding:15px 0; border-bottom:1px solid rgba(255,255,255,.18); color:#fff; text-decoration:none; font-weight:740; }
.stay-detail__destination nav a:hover { color:#ffd09b; }
.stay-detail__map-link { display:inline-flex; align-items:center; gap:8px; margin-top:24px; border-bottom:1px solid rgba(255,255,255,.5); color:#fff; padding-bottom:5px; font-size:.82rem; font-weight:800; text-decoration:none; }

.stay-detail__practical { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(270px,.65fr); gap:35px; }
.stay-detail__practical>ul { list-style:none; margin:0; padding:0; border-top:1px solid var(--stay-line); }
.stay-detail__practical>ul li { display:grid; grid-template-columns:22px 1fr; gap:12px; padding:16px 0; border-bottom:1px solid var(--stay-line); color:#46554d; }
.stay-detail__practical>ul svg { width:20px; height:20px; margin-top:2px; color:var(--stay-orange); }
.stay-detail__practical aside { align-self:start; border-left:4px solid var(--stay-orange); background:var(--stay-paper); padding:25px; }
.stay-detail__practical aside span,.stay-detail__practical aside strong,.stay-detail__practical aside p { display:block; }
.stay-detail__practical aside span { color:var(--stay-muted); font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.stay-detail__practical aside strong { margin-top:10px; font:400 1.45rem "DM Serif Display",serif; }
.stay-detail__practical aside p { margin:6px 0 0; color:var(--stay-muted); font-size:.82rem; }

.stay-detail__final { background:var(--stay-orange); color:#fff; padding:58px 0; }
.stay-detail__final>.stay-detail__shell { display:flex; align-items:center; justify-content:space-between; gap:42px; }
.stay-detail__final h2 { margin:0; font-size:clamp(2rem,3.4vw,3.3rem); }
.stay-detail__final p:not(.stay-detail__eyebrow) { margin:8px 0 0; color:#fff3e5; }
.stay-detail__final .stay-detail__eyebrow { color:#fff0dc; }
.stay-detail__final .stay-detail__cta { flex:0 0 auto; border-color:#fff; background:#fff; color:var(--stay-green)!important; }
.stay-detail__sticky { display:none; }

.stay-detail__lightbox { width:min(1240px,calc(100% - 40px)); height:min(900px,calc(100dvh - 40px)); max-width:none; max-height:none; overflow:hidden; border:0; background:#16231d; color:#fff; padding:0; box-shadow:0 30px 90px rgba(0,0,0,.45); }
.stay-detail__lightbox::backdrop { background:rgba(8,15,12,.88); backdrop-filter:blur(7px); }
.stay-detail__lightbox-head { display:flex; min-height:68px; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid rgba(255,255,255,.14); padding:12px 18px; }
.stay-detail__lightbox-head strong,.stay-detail__lightbox-head span { display:block; }
.stay-detail__lightbox-head strong { max-width:70vw; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.9rem; }
.stay-detail__lightbox-head span { color:#bbc8c1; font-size:.72rem; }
.stay-detail__lightbox-head button { width:44px; height:44px; border:1px solid rgba(255,255,255,.25); border-radius:50%; background:transparent; color:#fff; font-size:1.8rem; line-height:1; cursor:pointer; }
.stay-detail__lightbox-stage { display:grid; grid-template-columns:64px minmax(0,1fr) 64px; align-items:center; height:calc(100% - 166px); }
.stay-detail__lightbox-stage figure { display:grid; grid-template-rows:minmax(0,1fr) auto; width:100%; height:100%; min-height:0; margin:0; padding:14px 0 8px; }
.stay-detail__lightbox-stage img { display:block; width:100%; height:100%; min-height:0; object-fit:contain; }
.stay-detail__lightbox-stage figcaption { overflow:hidden; padding:8px 12px 0; color:#c7d2cc; font-size:.75rem; text-align:center; text-overflow:ellipsis; white-space:nowrap; }
.stay-detail__lightbox-arrow { width:48px; height:48px; margin:auto; border:1px solid rgba(255,255,255,.22); border-radius:50%; background:rgba(255,255,255,.06); color:#fff; font-size:2rem; cursor:pointer; }
.stay-detail__lightbox-thumbs { display:flex; height:98px; gap:7px; overflow-x:auto; padding:8px 16px 14px; }
.stay-detail__lightbox-thumbs button { flex:0 0 105px; overflow:hidden; border:2px solid transparent; background:#24372e; padding:0; opacity:.58; cursor:pointer; }
.stay-detail__lightbox-thumbs button[aria-current="true"] { border-color:#f0a356; opacity:1; }
.stay-detail__lightbox-thumbs img { display:block; width:100%; height:100%; object-fit:cover; }

@media(max-width:900px) {
  .stay-detail__intro { grid-template-columns:1fr; gap:28px; padding-top:24px; }
  .stay-detail__booking { max-width:620px; }
  .stay-detail__media-head,.stay-detail__section-head,.stay-detail__copy-grid,.stay-detail__destination { grid-template-columns:1fr; }
  .stay-detail__media-grid { grid-template-columns:1fr 1fr; grid-template-rows:330px 165px 165px; min-height:674px; }
  .stay-detail__photo:first-child { grid-column:1/3; grid-row:1; }
  .stay-detail__media-grid--1 { grid-template-rows:minmax(380px,65vw); min-height:auto; }
  .stay-detail__media-grid--1 .stay-detail__photo:first-child { grid-column:1; }
  .stay-detail__media-grid--2 { grid-template-columns:1fr 1fr; grid-template-rows:440px; min-height:440px; }
  .stay-detail__media-grid--2 .stay-detail__photo:first-child { grid-column:1; }
  .stay-detail__media-grid--3 { grid-template-columns:1fr 1fr; grid-template-rows:330px 220px; min-height:557px; }
  .stay-detail__media-grid--3 .stay-detail__photo:nth-child(2),.stay-detail__media-grid--3 .stay-detail__photo:nth-child(3) { grid-column:auto; }
  .stay-detail__media-grid--4 .stay-detail__photo:nth-child(4) { grid-column:auto; }
  .stay-detail__copy-grid { gap:34px; }
  .stay-detail__amenity-groups { grid-template-columns:1fr; }
  .stay-detail__layout-grid { grid-template-columns:repeat(2,1fr); }
  .stay-detail__destination nav { padding-top:28px; }
  .stay-detail__practical { grid-template-columns:1fr; }
  .stay-detail__final>.stay-detail__shell { align-items:flex-start; flex-direction:column; }
  .stay-detail__sticky { display:flex; position:fixed; z-index:1080; left:0; right:0; bottom:0; padding:10px max(14px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left)); border-top:1px solid var(--stay-line); background:rgba(255,253,249,.97); }
  .stay-detail__sticky .stay-detail__cta { width:100%; }
  .stay-detail-page { padding-bottom:76px; }
}

@media(max-width:680px) {
  .stay-detail__shell { width:min(1180px,calc(100% - 28px)); }
  .stay-detail__crumbs { padding-top:14px; }
  .stay-detail__intro { padding-bottom:32px; }
  .stay-detail__intro h1 { font-size:clamp(2.45rem,12vw,3.8rem); }
  .stay-detail__lead { font-size:.98rem; }
  .stay-detail__booking { padding:20px; }
  .stay-detail__media-head { gap:12px; }
  .stay-detail__media-head>p { font-size:.78rem; }
  .stay-detail__media-grid { grid-template-rows:260px 125px 125px; min-height:524px; }
  .stay-detail__media-grid--1 { grid-template-rows:310px; min-height:310px; }
  .stay-detail__media-grid--2 { grid-template-rows:240px 190px; min-height:437px; }
  .stay-detail__media-grid--2 .stay-detail__photo { grid-column:1/3; }
  .stay-detail__media-grid--3 { grid-template-rows:260px 150px; min-height:417px; }
  .stay-detail__all-photos { right:12px; bottom:12px; min-height:42px; }
  .stay-detail__why { grid-template-columns:1fr; }
  .stay-detail__why article { min-height:72px; }
  .stay-detail__section-nav { top:68px; }
  .stay-detail__section-nav .stay-detail__shell { width:100%; gap:24px; padding:0 14px; }
  .stay-detail__section { scroll-margin-top:130px; padding:56px 0; }
  .stay-detail__section-head { gap:16px; margin-bottom:24px; }
  .stay-detail__amenity-group { padding:20px; }
  .stay-detail__amenity-group ul { grid-template-columns:1fr; }
  .stay-detail__layout-grid article { min-height:145px; padding:20px; }
  .stay-detail__destination>div,.stay-detail__destination nav { padding:30px 24px; }
  .stay-detail__destination ul { grid-template-columns:1fr; }
  .stay-detail__final .stay-detail__cta { width:100%; }
  .stay-detail__lightbox { width:100%; height:100dvh; }
  .stay-detail__lightbox-stage { grid-template-columns:44px minmax(0,1fr) 44px; }
  .stay-detail__lightbox-arrow { width:38px; height:38px; }
}

@media(max-width:430px) {
  .stay-detail__facts { grid-template-columns:1fr; }
  .stay-detail__layout-grid { grid-template-columns:1fr 1fr; }
  .stay-detail__layout-grid strong { margin-top:20px; font-size:1.3rem; }
  .stay-detail__photo:nth-child(n+4) { display:none; }
  .stay-detail__media-grid { grid-template-rows:240px 125px; min-height:372px; }
  .stay-detail__media-grid--1 { grid-template-rows:290px; min-height:290px; }
  .stay-detail__media-grid--2 { grid-template-rows:210px 150px; min-height:367px; }
}

@media(prefers-reduced-motion:reduce) {
  .stay-detail__photo img,.stay-detail__cta { transition:none; }
}
