.inner-page {
  background: var(--paper);
}

.page-hero {
  position: relative;
  min-height: 470px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  color: var(--white);
  background: var(--dark);
}

.page-hero::before,
.page-hero::after {
  content: "";
  position: absolute;
  inset: 0;
}

.page-hero::before {
  background: var(--page-image) center / cover no-repeat;
}

.page-hero::after {
  background: linear-gradient(90deg, rgba(7, 29, 17, .88) 0%, rgba(7, 29, 17, .52) 48%, rgba(7, 29, 17, .12) 100%);
}

.page-hero--pool { --page-image: url("../img/hero-pool-design.webp"); }
.page-hero--territory { --page-image: url("../img/blog-hero-spruce-path.png"); }
.page-hero--restaurant { --page-image: url("../img/restaurant-photo.webp"); }
.page-hero--bath { --page-image: url("../img/stay-house.webp"); }
.page-hero--rules { --page-image: url("../img/stay-cottage.webp"); }
.page-hero--faq { --page-image: url("../img/blog-hero-spruce-path.png"); }

.faq-section{padding-top:72px;padding-bottom:88px}.faq-heading{max-width:720px;margin-bottom:34px}.faq-heading h2{margin:8px 0 12px;color:var(--green,#0d3020);font:400 clamp(34px,4vw,54px)/1.04 Georgia,serif}.faq-heading p{margin:0;color:#777369;font-size:16px;line-height:1.7}.faq-list{display:grid;gap:12px}.faq-item{overflow:hidden;border:1px solid #e2d8c8;border-radius:16px;background:#fffdf8;transition:border-color .2s,box-shadow .2s}.faq-item[open]{border-color:#b7c7b8;box-shadow:0 14px 38px rgba(23,48,32,.08)}.faq-item summary{min-height:78px;padding:20px 70px 20px 24px;position:relative;color:#143524;display:flex;align-items:center;font:600 20px/1.35 Georgia,serif;cursor:pointer;list-style:none}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"+";width:38px;height:38px;position:absolute;right:20px;top:50%;border-radius:50%;background:#f1ebdf;display:grid;place-items:center;transform:translateY(-50%);font:400 25px/1 Arial,sans-serif;transition:transform .2s,background .2s}.faq-item[open] summary:after{background:#123b28;color:#fff;transform:translateY(-50%) rotate(45deg)}.faq-item__answer{padding:0 78px 24px 24px;color:#6f6b63;font-size:15px;line-height:1.75}.faq-item__answer p{margin:0}.faq-empty{padding:36px;border:1px dashed #cfc5b5;border-radius:16px;color:#777369;text-align:center}.faq-contact{margin-top:40px;padding:32px 38px;border-radius:18px;background:#0d3020;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:24px}.faq-contact h2{margin:0 0 6px;font:400 30px/1.15 Georgia,serif}.faq-contact p{margin:0;color:rgba(255,255,255,.7)}.faq-contact a{min-height:48px;padding:0 22px;border-radius:10px;background:#fff;color:#0d3020;display:inline-flex;align-items:center;white-space:nowrap;font-size:13px;font-weight:800}.faq-contact a:hover{background:#f0eadd}@media(max-width:700px){.faq-section{padding-top:50px;padding-bottom:60px}.faq-item summary{min-height:70px;padding:17px 60px 17px 18px;font-size:18px}.faq-item summary:after{right:14px}.faq-item__answer{padding:0 18px 20px}.faq-contact{padding:26px 22px;align-items:flex-start;flex-direction:column}}

.page-hero__inner {
  position: relative;
  z-index: 1;
  width: var(--container);
  margin: 0 auto;
  padding: 82px 0 64px;
}

.page-hero__back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 46px;
  color: rgba(255,255,255,.78);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.page-hero h1 {
  max-width: 760px;
  margin: 0 0 18px;
  font-family: var(--serif);
  font-size: clamp(50px, 7vw, 82px);
  font-weight: 400;
  line-height: .98;
}

.page-hero p {
  max-width: 620px;
  margin: 0;
  color: rgba(255,255,255,.86);
  font-size: 16px;
  line-height: 1.65;
}

.page-content {
  width: var(--container);
  margin: 0 auto;
  padding: 76px 0 92px;
}

.page-intro {
  display: grid;
  grid-template-columns: 1.25fr .75fr;
  gap: 68px;
  align-items: start;
  margin-bottom: 72px;
}

.page-copy .eyebrow { display: block; margin-bottom: 15px; }
.page-copy h2,
.content-section h2 {
  margin: 0 0 22px;
  color: var(--text);
  font-family: var(--serif);
  font-size: clamp(34px, 4vw, 50px);
  font-weight: 400;
  line-height: 1.04;
}

.page-copy p,
.content-section p,
.rule-card li {
  color: var(--muted);
  font-size: 15px;
  line-height: 1.75;
}

.page-copy p { margin: 0 0 16px; }

.fact-card {
  padding: 28px;
  border-radius: 18px;
  background: var(--dark);
  color: var(--white);
  box-shadow: var(--shadow);
}

.fact-card__item {
  padding: 18px 0;
  border-bottom: 1px solid rgba(255,255,255,.14);
}

.fact-card__item:first-child { padding-top: 0; }
.fact-card__item:last-child { padding-bottom: 0; border-bottom: 0; }
.fact-card__item span { display: block; margin-bottom: 5px; color: rgba(255,255,255,.58); font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.fact-card__item strong { font-family: var(--serif); font-size: 26px; font-weight: 400; }

.feature-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-bottom: 76px;
}

.feature-card {
  min-height: 220px;
  padding: 30px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--white);
}

.feature-card__number {
  width: 42px;
  height: 42px;
  margin-bottom: 31px;
  border-radius: 50%;
  background: var(--cream-2);
  color: var(--dark);
  display: grid;
  place-items: center;
  font-family: var(--serif);
  font-size: 18px;
}

.feature-card h3 { margin: 0 0 10px; font-family: var(--serif); font-size: 25px; font-weight: 400; }
.feature-card p { margin: 0; color: var(--muted); line-height: 1.65; }

.page-cta {
  padding: 46px;
  border-radius: 22px;
  background: var(--cream-2);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}

.page-cta h2 { max-width: 620px; margin: 0; font-family: var(--serif); font-size: clamp(31px, 4vw, 48px); font-weight: 400; line-height: 1.05; }
.page-cta p { margin: 10px 0 0; color: var(--muted); }
.page-cta .btn { flex: 0 0 auto; }

.spa-prices { margin-bottom: 72px; }
.spa-prices .section__head { margin-bottom: 26px; }
.spa-prices__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.spa-price-card { min-height: 250px; padding: 30px; border: 1px solid var(--line); border-radius: 14px; background: #fff; display: flex; flex-direction: column; }
.spa-price-card > span { color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.spa-price-card h3 { margin: 24px 0 10px; color: var(--green); font-family: var(--serif); font-size: 34px; font-weight: 400; }
.spa-price-card p { margin: 0 0 24px; color: var(--muted); line-height: 1.6; }
.spa-price-card small { margin-top: auto; color: var(--green); font-weight: 700; }
.spa-price-card--accent { border-color: var(--green); background: var(--green); }
.spa-price-card--accent > span, .spa-price-card--accent h3, .spa-price-card--accent p, .spa-price-card--accent small { color: #fff; }

.chans-gallery {
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  grid-auto-rows: 235px;
  gap: 12px;
  margin: -30px 0 72px;
}
.chans-gallery__item {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border-radius: 14px;
  background: var(--sand);
}
.chans-gallery__item--large { grid-row: span 2; }
.chans-gallery__item button {
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: zoom-in;
}
.chans-gallery__item img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform .5s ease;
}
.chans-gallery__item:hover img { transform: scale(1.025); }

.chans-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
  padding: 24px;
  box-sizing: border-box;
  overflow: hidden;
}
.chans-lightbox.is-open { display: grid; place-items: center; }
.chans-lightbox__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(5, 20, 13, .88);
  backdrop-filter: blur(8px);
}
.chans-lightbox__dialog {
  position: relative;
  z-index: 1;
  width: min(1120px, 100%);
  height: min(880px, calc(100dvh - 48px));
  max-height: calc(100dvh - 48px);
  display: grid;
  place-items: center;
  overflow: hidden;
}
.chans-lightbox__image {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: calc(100dvh - 48px);
  border-radius: 16px;
  object-fit: contain;
  box-shadow: 0 28px 90px rgba(0, 0, 0, .42);
}
.chans-lightbox__close,
.chans-lightbox__nav {
  position: absolute;
  z-index: 2;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 253, 248, .94);
  color: var(--dark);
  box-shadow: 0 8px 28px rgba(0, 0, 0, .22);
  cursor: pointer;
}
.chans-lightbox__close {
  top: 14px;
  right: 14px;
  width: 48px;
  height: 48px;
  font-size: 28px;
}
.chans-lightbox__nav {
  top: 50%;
  width: 54px;
  height: 54px;
  font: 38px/1 var(--serif);
  transform: translateY(-50%);
}
.chans-lightbox__nav--prev { left: 16px; }
.chans-lightbox__nav--next { right: 16px; }
.chans-lightbox__counter {
  position: absolute;
  right: 18px;
  bottom: 16px;
  padding: 8px 13px;
  border-radius: 30px;
  background: rgba(8, 45, 31, .9);
  color: #fff;
  font-size: 12px;
  font-weight: 800;
}
body.chans-lightbox-open { overflow: hidden; }

.rules-layout { display: grid; grid-template-columns: 250px 1fr; gap: 42px; align-items: start; }
.rules-nav { position: sticky; top: 24px; padding: 24px; border: 1px solid var(--line); border-radius: 16px; background: var(--white); }
.rules-nav strong { display: block; margin-bottom: 15px; color: var(--dark); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }
.rules-nav a { display: block; padding: 9px 0; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 13px; line-height: 1.35; }
.rules-nav a:last-child { border: 0; }
.rules-nav a:hover { color: var(--dark); }

.rules-lead { margin-bottom: 28px; padding: 28px 30px; border-left: 4px solid var(--dark); border-radius: 0 14px 14px 0; background: var(--cream-2); }
.rules-lead p { margin: 0; color: var(--text); font-family: var(--serif); font-size: 22px; line-height: 1.45; }
.rule-card { margin-bottom: 18px; padding: 32px; border: 1px solid var(--line); border-radius: 18px; background: var(--white); scroll-margin-top: 24px; }
.rule-card h2 { margin: 0 0 20px; color: var(--dark); font-family: var(--serif); font-size: 32px; font-weight: 400; }
.rule-card h3 { margin: 25px 0 10px; color: var(--text); font-size: 15px; }
.rule-card p { margin: 0 0 13px; color: var(--muted); line-height: 1.75; }
.rule-card ul { margin: 0; padding-left: 20px; }
.rule-card li { margin-bottom: 9px; }
.rule-card li::marker { color: var(--dark); }
.rule-highlight { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 20px 0; }
.rule-highlight div { padding: 20px; border-radius: 13px; background: var(--cream-2); }
.rule-highlight span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.rule-highlight strong { color: var(--dark); font-family: var(--serif); font-size: 25px; font-weight: 400; }
.rules-warning { margin-top: 26px; padding: 25px; border-radius: 14px; background: var(--dark); color: var(--white); font-weight: 800; line-height: 1.55; text-align: center; text-transform: uppercase; }
.booking-terms-content { max-width: 820px; }
.booking-terms-content .rule-card { margin-bottom: 22px; }
.stay-detail-hero--hotel { --page-image: url("../img/stay-hotel.webp"); }
.stay-detail-hero--cottage { --page-image: url("../img/stay-cottage.webp"); }
.stay-detail-hero--house { --page-image: url("../img/stay-house.webp"); }
.stay-price { display: inline-flex; margin-top: 28px; padding: 12px 18px; border: 1px solid rgba(255,255,255,.35); border-radius: 12px; background: rgba(7,29,17,.35); font-size: 15px; font-weight: 800; backdrop-filter: blur(8px); }
.stay-overview { display: grid; grid-template-columns: 1fr 360px; gap: 65px; align-items: start; margin-bottom: 68px; }
.stay-summary { padding: 30px; border-radius: 18px; background: var(--dark); color: var(--white); }
.stay-summary h3 { margin: 0 0 22px; font-family: var(--serif); font-size: 28px; font-weight: 400; }
.stay-summary dl { margin: 0; }
.stay-summary div { display: flex; justify-content: space-between; gap: 15px; padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,.14); }
.stay-summary div:last-child { border: 0; }
.stay-summary dt { color: rgba(255,255,255,.62); }
.stay-summary dd { margin: 0; font-weight: 800; text-align: right; }
.stay-summary .btn { width: 100%; margin-top: 22px; background: var(--white); color: var(--dark); }
.other-stays { margin-top: 70px; }
.other-stays h2 { margin: 0 0 25px; font-family: var(--serif); font-size: 38px; font-weight: 400; }
.other-stays__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.other-stay { min-height: 230px; padding: 28px; border-radius: 18px; color: var(--white); display: flex; align-items: flex-end; background: linear-gradient(0deg, rgba(0,0,0,.68), rgba(0,0,0,.06)), var(--other-image) center/cover; }
.other-stay strong { display: block; font-family: var(--serif); font-size: 30px; font-weight: 400; }
.other-stay span { display: block; margin-top: 6px; font-weight: 800; }
.other-stay--hotel { --other-image: url("../img/stay-hotel.webp"); }
.other-stay--cottage { --other-image: url("../img/stay-cottage.webp"); }
.other-stay--house { --other-image: url("../img/stay-house.webp"); }
.live-units{margin:70px 0}.live-units__head h2{margin:10px 0 26px;font:400 40px/1.05 var(--serif)}.live-units__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.live-units__loading,.live-units__empty{grid-column:1/-1;padding:35px;border:1px dashed var(--line);border-radius:16px;color:var(--muted);text-align:center}.unit-card{min-width:0;padding:0;border:1px solid var(--line);border-radius:18px;background:#fff;color:var(--text);overflow:hidden;text-align:left;box-shadow:0 10px 35px rgba(30,35,29,.07);cursor:pointer;transition:transform .2s,box-shadow .2s}.unit-card:hover{transform:translateY(-4px);box-shadow:0 20px 48px rgba(30,35,29,.13)}.unit-card>img{width:100%;height:220px;object-fit:cover}.unit-card__body{padding:20px;display:block}.unit-card__body>small{color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.12em}.unit-card__body>strong{display:block;margin:5px 0;font:400 27px var(--serif)}.unit-card__body>em{color:var(--muted);font-size:12px;font-style:normal}.unit-card__prices{margin-top:18px;padding-top:15px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:10px}.unit-card__prices b{color:var(--dark);font-size:13px}.unit-card__prices i{display:block;margin-bottom:3px;color:var(--muted);font-size:8px;font-style:normal;text-transform:uppercase}.unit-gallery{width:min(900px,calc(100% - 24px));max-height:calc(100vh - 24px);padding:0;border:0;border-radius:20px;background:var(--paper);box-shadow:0 30px 120px #0006}.unit-gallery::backdrop{background:rgba(7,25,16,.72);backdrop-filter:blur(6px)}.unit-gallery__head{position:sticky;top:0;z-index:2;padding:20px 24px;border-bottom:1px solid var(--line);background:rgba(255,253,248,.94);display:flex;justify-content:space-between;align-items:center}.unit-gallery__head small{color:var(--muted);font-weight:900}.unit-gallery__head h2{margin:3px 0 0;font:400 31px var(--serif)}.unit-gallery__head button{width:40px;height:40px;border:0;border-radius:50%;background:var(--cream-2);font-size:23px;cursor:pointer}.unit-gallery__images{padding:18px}.unit-gallery__stage{position:relative;overflow:hidden;border-radius:14px;background:#e9e4da}.unit-gallery__stage>img{display:block;width:100%;height:min(55vh,540px);object-fit:cover}.unit-gallery__nav{position:absolute;top:50%;width:46px;height:46px;border:0;border-radius:50%;background:rgba(255,253,248,.9);color:var(--dark);font:32px/1 var(--serif);box-shadow:0 4px 20px #0003;cursor:pointer;transform:translateY(-50%)}.unit-gallery__nav--prev{left:16px}.unit-gallery__nav--next{right:16px}.unit-gallery__counter{position:absolute;right:14px;bottom:14px;padding:7px 11px;border-radius:30px;background:#092e21d9;color:#fff;font-size:11px;font-weight:800}.unit-gallery__thumbs{display:flex;gap:9px;margin-top:10px;overflow-x:auto;padding:2px 1px 5px}.unit-gallery__thumbs button{flex:0 0 92px;height:65px;padding:0;border:2px solid transparent;border-radius:9px;background:none;overflow:hidden;opacity:.62;cursor:pointer}.unit-gallery__thumbs button.is-active{border-color:var(--dark);opacity:1}.unit-gallery__thumbs img{width:100%;height:100%;object-fit:cover}.unit-gallery__images--empty p{padding:50px;text-align:center;color:var(--muted)}.unit-gallery__foot{position:sticky;bottom:0;padding:16px 22px;border-top:1px solid var(--line);background:var(--paper);display:flex;align-items:center;gap:28px}.unit-gallery__foot span{color:var(--muted);font-size:10px}.unit-gallery__foot b{display:block;color:var(--dark);font-size:16px}.unit-gallery__foot .btn{margin-left:auto}

@media (max-width: 980px) {
  .page-intro { grid-template-columns: 1fr; gap: 30px; }
  .fact-card { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
  .fact-card__item { padding: 0; border-bottom: 0; border-right: 1px solid rgba(255,255,255,.14); }
  .fact-card__item:last-child { border-right: 0; }
  .feature-grid { grid-template-columns: 1fr 1fr; }
  .rules-layout { grid-template-columns: 1fr; }
  .rules-nav { position: static; display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 20px; }
  .rules-nav strong { grid-column: 1 / -1; }
  .stay-overview { grid-template-columns: 1fr; gap: 30px; }
  .live-units__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px) {
  .page-hero { min-height: 420px; }
  .page-hero__inner { padding: 62px 0 42px; }
  .page-hero__back { margin-bottom: 34px; }
  .page-hero h1 { font-size: 48px; }
  .page-hero p { font-size: 14px; }
  .page-content { padding: 50px 0 65px; }
  .page-intro, .feature-grid { margin-bottom: 48px; }
  .fact-card, .feature-grid { grid-template-columns: 1fr; }
  .fact-card__item { padding: 15px 0; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.14); }
  .page-cta { padding: 30px; align-items: flex-start; flex-direction: column; }
  .spa-prices__grid { grid-template-columns: 1fr; }
  .chans-gallery { grid-template-columns: 1fr 1fr; grid-auto-rows: 220px; margin-top: -12px; }
  .chans-gallery__item--large { grid-column: span 2; grid-row: auto; height: 360px; }
  .chans-lightbox { padding: 12px; }
  .chans-lightbox__dialog { height: calc(100dvh - 24px); max-height: calc(100dvh - 24px); }
  .chans-lightbox__image { max-height: calc(100dvh - 24px); }
  .chans-lightbox__nav { width: 44px; height: 44px; font-size: 32px; }
  .chans-lightbox__nav--prev { left: 8px; }
  .chans-lightbox__nav--next { right: 8px; }
  .rules-nav { grid-template-columns: 1fr; }
  .rule-card { padding: 24px 20px; }
  .rule-highlight { grid-template-columns: 1fr; }
  .other-stays__grid { grid-template-columns: 1fr; }
  .live-units__grid { grid-template-columns: 1fr; }
  .unit-gallery__stage>img { height: 300px; }
  .unit-gallery__foot { align-items:stretch;flex-direction:column;gap:10px; }
  .unit-gallery__foot .btn { width:100%;margin-left:0; }
}

/* Keep the gallery shell rounded while only its content scrolls. */
.unit-gallery {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.unit-gallery__head,
.unit-gallery__foot {
  position: relative;
  flex: 0 0 auto;
}

.unit-gallery__scroll {
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
}
