/* ─────────────────────────────────────────────────────────────────────────
   SHORT STAYS — page-specific styles
   Loaded conditionally via functions.php on is_page( 'short-stays' ).
   Depends on: tokens.css, base.css, components.css, modal.css, style.css.

   Variables used (defined in tokens.css):
     --hub-shortstays, --surface-cream, --surface-forest, --surface-deep,
     --on-light-h, --on-light-body, --on-dark-body, --on-cream-label,
     --font-heading
   ───────────────────────────────────────────────────────────────────── */


/* ── BROW + HEADING UTILITIES (page-scoped fallbacks) ────────────────── */
.brow{font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;}
.brow-stay{color:var(--hub-shortstays);}
.brow-light{color:#9FE1CB;}

.h2{
	font-family:var(--font-heading);
	font-size:clamp(28px,3.5vw,44px);
	font-weight:500;line-height:1.15;
	text-wrap:balance;margin-bottom:20px;
}
.h2-dark{color:var(--on-light-h);}
.h2-light{color:#fff;}

.lead{
	font-size:18px;line-height:1.85;
	color:var(--on-light-body);
	text-wrap:pretty;margin-bottom:24px;
}
.body-p{
	font-size:17px;line-height:1.85;
	color:var(--on-light-body);
	text-wrap:pretty;margin-bottom:20px;
}

/* ── ACF body wrappers ─────────────────────────────────────────────
   When a wysiwyg field's value lands in the page, the <p> tags it
   generates have no class. These wrapper selectors target paragraphs
   by descendant so the body classes can be applied to the wrapper div
   in PHP, and styling flows to every <p> inside.
   ──────────────────────────────────────────────────────────────── */
.overview-body p{
	font-size:17px;line-height:1.85;
	color:var(--on-light-body);
	text-wrap:pretty;margin-bottom:20px;
}
.overview-body p:last-child{margin-bottom:0;}

.dining-body p{
	font-size:15px;
	color:rgba(200,216,192,.7);
	line-height:1.85;
	text-wrap:pretty;
	margin-bottom:14px;
}
.dining-body p:last-child{margin-bottom:0;}

.enquire-body p{
	font-size:15px;
	color:var(--on-light-body);
	line-height:1.75;
	margin-bottom:24px;text-wrap:pretty;
}
.enquire-body p:last-child{margin-bottom:0;}


/* ── SECTION SHELL ────────────────────────────────────────────────────── */
.sec{padding:96px 64px;}
.sec-inner{max-width:1152px;margin:0 auto;}
.sec-cream{background:var(--surface-cream);}
.sec-dark{background:var(--surface-forest);}
.sec-white{background:#fff;}

.two-wide{
	display:grid;grid-template-columns:3fr 2fr;
	gap:80px;align-items:center;
}
.img-ph{
	border-radius:12px;
	display:flex;align-items:center;justify-content:center;
	background:linear-gradient(145deg,#DAEEDF,#B0BFA1);
}
.img-ph-label{
	font-size:10px;letter-spacing:.07em;
	color:rgba(27,58,45,.25);
	text-align:center;line-height:2;
}


/* ── HERO ─────────────────────────────────────────────────────────────── */
.ss-hero{
	background:var(--surface-forest);
	min-height:88vh;
	display:grid;grid-template-columns:2fr 3fr;
	align-items:center;
	overflow:hidden;
	position:relative;
}
.ss-hero::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:0;}
.hero-copy{
	padding:100px 64px 80px;
	display:flex;flex-direction:column;justify-content:center;
	position:relative;z-index:1;
}
.hero-brow{
	font-size:11px;font-weight:500;letter-spacing:.12em;
	text-transform:uppercase;color:#9FE1CB;
	margin-bottom:20px;
}
.hero-h{
	font-family:var(--font-heading);
	font-size:clamp(40px,5vw,64px);
	font-weight:500;color:#fff;
	line-height:1.1;text-wrap:balance;
	margin-bottom:24px;
}
.hero-sub{
	font-size:18px;color:rgba(200,216,192,.75);
	line-height:1.8;max-width:480px;
	text-wrap:pretty;margin-bottom:40px;
}
.hero-ctas{display:flex;gap:16px;align-items:center;flex-wrap:wrap;}
.hero-btn{
	background:var(--surface-cream);color:var(--surface-forest);
	padding:0 28px;height:52px;
	border-radius:6px;
	font-size:15px;font-weight:500;
	display:inline-flex;align-items:center;
	transition:opacity .2s;
}
.hero-btn:hover{opacity:.85;}
.hero-link{
	color:#9FE1CB;
	font-size:15px;font-weight:500;
	display:inline-flex;align-items:center;gap:8px;
	height:52px;
	transition:opacity .2s;cursor:pointer;
}
.hero-link::after{content:'\2192';}
.hero-link:hover{opacity:.7;}
.hero-img{
	height:88vh;
	background:linear-gradient(160deg,#2D5C45,#1B3A2D);
	display:flex;align-items:center;justify-content:center;
	position:relative;z-index:0;
}
.hero-img-ph{
	font-size:11px;letter-spacing:.07em;
	color:rgba(200,216,192,.2);
	text-align:center;line-height:2;
}

/* Looping hero video. Sits as a child of .hero-img and covers the
   div with object-fit cover. Hidden on mobile to save bandwidth —
   the hero image (used as poster) shows there instead. */
.hero-video{
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	object-fit:cover;
	z-index:0;
}
@media(max-width:860px){
	.hero-video{display:none;}
}

/* Desktop only: short gradient overlay on the image's left edge to soften
   the transition from the dark forest copy column to the photo. */
@media(min-width:861px){
	.hero-img::before{
		content:'';
		position:absolute;
		inset:0;
		background:linear-gradient(to right,
			var(--surface-forest) 0%,
			transparent 12%);
		pointer-events:none;
		z-index:1;
	}
}


/* ── IN-PAGE NAV (sticky, scroll spy) ─────────────────────────────────── */
.ipnav{
	position:sticky;top:80px;z-index:90;
	background:var(--surface-cream);
	border-bottom:1px solid rgba(27,58,45,.1);
	min-height:53px;
	display:flex;align-items:stretch;
}
.ipnav-inner{
	display:flex;
	overflow-x:auto;scrollbar-width:none;
	-webkit-overflow-scrolling:touch;
	touch-action:pan-x;
	overscroll-behavior-x:contain;
	padding:0 40px;
}
.ipnav-inner::-webkit-scrollbar{display:none;}
.ipnav-link{
	font-size:13px;font-weight:500;
	color:rgba(27,58,45,.5);
	padding:16px 20px;
	white-space:nowrap;
	border:none;background:none;
	border-bottom:2px solid transparent;
	transition:color .2s,border-color .2s;
	font-family:inherit;cursor:pointer;
	-webkit-appearance:none;
	-webkit-tap-highlight-color:transparent;
	touch-action:manipulation;
}
.ipnav-link:hover{color:var(--on-light-h);}
.ipnav-link.active{
	color:var(--hub-shortstays);
	border-bottom-color:var(--hub-shortstays);
}


/* ── CTA: stay (text-link style with arrow) ───────────────────────────── */
.cta-stay{
	font-size:15px;font-weight:500;
	color:var(--hub-shortstays);
	display:inline-flex;align-items:center;gap:8px;
	min-height:44px;margin-top:auto;
	transition:opacity .2s;
}
.cta-stay::after{content:'\2192';font-size:16px;}
.cta-stay:hover{opacity:.7;}


/* ── SUITE CARDS ──────────────────────────────────────────────────────── */
.suite-grid{
	display:grid;grid-template-columns:repeat(4,1fr);
	gap:24px;margin-top:48px;
}

/* Smart desktop stacking — column count adapts to card count so no card sits alone.
   Defaults to 4-col. Specific counts shift to 3-col where 4-col would orphan cards:
     1 card  → 1 col          2 cards → 2 col          3 cards → 3 col
     4 cards → 4 col (def)    5 cards → 3+2            6 cards → 3+3
     7 cards → 4+3 (def)      8 cards → 4+4 (def)      9 cards → 3+3+3
   10+ cards use 4-col default. Tablet/mobile rules below override this entirely. */
@media (min-width:861px){
	.suite-grid:has(.suite-card:nth-child(1):last-child){grid-template-columns:1fr;}
	.suite-grid:has(.suite-card:nth-child(2):last-child){grid-template-columns:repeat(2,1fr);}
	.suite-grid:has(.suite-card:nth-child(3):last-child){grid-template-columns:repeat(3,1fr);}
	.suite-grid:has(.suite-card:nth-child(5):last-child){grid-template-columns:repeat(3,1fr);}
	.suite-grid:has(.suite-card:nth-child(6):last-child){grid-template-columns:repeat(3,1fr);}
	.suite-grid:has(.suite-card:nth-child(9):last-child){grid-template-columns:repeat(3,1fr);}
}

.suite-card{
	background:#fff;
	border:1px solid rgba(27,58,45,.08);
	border-radius:12px;overflow:hidden;
	display:flex;flex-direction:column;
}
.suite-photo{
	height:260px;
	background:linear-gradient(145deg,#DAEEDF,#B0BFA1);
	position:relative;
	display:flex;align-items:center;justify-content:center;
}
.suite-photo-ph{
	font-size:10px;letter-spacing:.07em;
	color:rgba(27,58,45,.2);
	text-align:center;line-height:2;
}
.suite-photo-loft{
	background:linear-gradient(145deg,#D9CFAE,#E8E0C5);
}
.view-photos-btn{
	position:absolute;bottom:12px;right:12px;
	background:rgba(255,255,255,.92);
	border:none;border-radius:20px;
	padding:6px 14px;
	font-size:12px;font-weight:500;
	color:var(--on-light-h);
	cursor:pointer;
	display:flex;align-items:center;gap:6px;
	min-height:44px;
	-webkit-tap-highlight-color:transparent;
	touch-action:manipulation;
	font-family:inherit;
}
.suite-body{
	padding:28px;
	display:flex;flex-direction:column;flex:1;
}
.suite-name{
	font-family:var(--font-heading);
	font-size:24px;font-weight:500;
	color:var(--on-light-h);
	margin-bottom:4px;
}
.suite-size{
	font-size:13px;
	color:rgba(27,58,45,.45);
	margin-bottom:16px;
	text-wrap:pretty;
}
.suite-desc{
	font-size:15px;
	color:var(--on-light-body);
	line-height:1.75;
	text-wrap:pretty;
	margin-bottom:20px;
	flex:1;
}
.suite-cta{
	display:inline-flex;align-items:center;gap:6px;
	font-size:14px;font-weight:500;
	color:var(--hub-shortstays);
	min-height:44px;
	transition:opacity .2s;
	align-self:flex-start;
}
.suite-cta:hover{opacity:.7;}
.suite-cta::after{content:'\2192';font-size:15px;}

.suite-footer{
	margin-top:auto;padding-top:16px;
	border-top:1px solid rgba(27,58,45,.08);
	display:flex;flex-direction:column;gap:14px;
}
.suite-includes{
	font-size:12px;
	color:var(--on-light-body);
	line-height:1.55;
}
.suite-includes-label{
	font-size:10px;font-weight:500;
	letter-spacing:.12em;text-transform:uppercase;
	color:var(--hub-shortstays);
	margin-bottom:6px;
}
.suite-includes-list{
	list-style:none;padding:0;margin:0;
	display:flex;flex-direction:column;gap:4px;
}
.suite-includes-list li{
	position:relative;padding-left:14px;
}
.suite-includes-list li::before{
	content:'';position:absolute;left:0;top:8px;
	width:4px;height:4px;border-radius:50%;
	background:var(--hub-shortstays);opacity:.5;
}

/* Spacer between suite grid and photo strip */
.suite-grid-spacer{
	height:64px;
	background:var(--surface-cream);
}


/* ── PHOTO STRIP ──────────────────────────────────────────────────────── */
.photo-strip{
	background:var(--surface-deep);
	padding:72px 0 56px;
	overflow:hidden;
}
.photo-strip-inner{
	display:flex;gap:12px;
	overflow-x:auto;scrollbar-width:none;
	padding:0 64px;
	cursor:grab;user-select:none;
}
.photo-strip-inner::-webkit-scrollbar{display:none;}
.photo-strip-inner.dragging{cursor:grabbing;}
.photo-frame{
	flex:0 0 320px;height:400px;
	border-radius:8px;
	position:relative;overflow:hidden;
	background:linear-gradient(145deg,#2D5C45,#1B3A2D);
}

/* ── Clickable photo-frame (when an image is uploaded) ──────────────── */
.photo-frame.is-clickable{
	appearance:none;-webkit-appearance:none;
	border:0;padding:0;font-family:inherit;color:inherit;
	cursor:pointer;
	-webkit-tap-highlight-color:transparent;
	touch-action:manipulation;
	transition:transform .25s ease, box-shadow .25s ease;
}
.photo-frame.is-clickable:hover{
	transform:scale(1.012);
	box-shadow:0 8px 32px rgba(0,0,0,.25);
}
.photo-frame.is-clickable:focus-visible{
	outline:2px solid #fff;
	outline-offset:-4px;
}
/* Suppress hover transform during drag — would feel janky */
.photo-strip-inner.dragging .photo-frame.is-clickable:hover{
	transform:none;
	box-shadow:none;
}

/* ─────────────────────────────────────────────────────────────────────
   PHOTO STRIP LIGHTBOX
   Full-screen overlay. Image rendered uncropped (object-fit:contain).
   ───────────────────────────────────────────────────────────────────── */
.strip-lb{
	position:fixed;inset:0;
	background:rgba(8,18,12,.96);
	z-index:9999;
	display:none;
	align-items:center;justify-content:center;
	padding:48px;
}
.strip-lb:not([aria-hidden="true"]){display:flex;}
.strip-lb.is-open{display:flex;}

.strip-lb-stage{
	position:relative;
	display:flex;align-items:center;justify-content:center;
	max-width:100%;max-height:100%;
	width:100%;height:100%;
}
.strip-lb-img{
	max-width:100%;max-height:100%;
	width:auto;height:auto;
	object-fit:contain;
	box-shadow:0 16px 48px rgba(0,0,0,.5);
	user-select:none;
	-webkit-user-drag:none;
}

/* Controls */
.strip-lb-close,
.strip-lb-prev,
.strip-lb-next{
	position:absolute;
	appearance:none;-webkit-appearance:none;
	border:0;background:rgba(0,0,0,.4);
	color:#fff;
	cursor:pointer;
	font-family:inherit;
	-webkit-tap-highlight-color:transparent;
	touch-action:manipulation;
	transition:background .2s ease;
	z-index:2;
}
.strip-lb-close:hover,
.strip-lb-prev:hover,
.strip-lb-next:hover{background:rgba(0,0,0,.7);}

.strip-lb-close{
	top:20px;right:20px;
	width:48px;height:48px;
	border-radius:50%;
	font-size:28px;line-height:1;
	display:flex;align-items:center;justify-content:center;
}
.strip-lb-prev,
.strip-lb-next{
	top:50%;transform:translateY(-50%);
	width:56px;height:56px;
	border-radius:50%;
	font-size:32px;line-height:1;
	display:flex;align-items:center;justify-content:center;
}
.strip-lb-prev{left:24px;}
.strip-lb-next{right:24px;}

/* Meta strip at bottom */
.strip-lb-meta{
	position:absolute;
	left:0;right:0;bottom:48px;
	display:flex;align-items:center;justify-content:space-between;
	padding:0 96px;
	color:#fff;
	pointer-events:none;
	z-index:2;
}
.strip-lb-pill{
	display:inline-block;
	background:rgba(255,255,255,.12);
	backdrop-filter:blur(8px);
	-webkit-backdrop-filter:blur(8px);
	border:1px solid rgba(255,255,255,.18);
	border-radius:999px;
	padding:8px 16px;
	font-size:13px;letter-spacing:.04em;
	color:rgba(255,255,255,.95);
	min-height:24px;
}
.strip-lb-pill:empty{display:none;}
.strip-lb-counter{
	font-size:13px;
	color:rgba(255,255,255,.7);
	letter-spacing:.06em;
	font-variant-numeric:tabular-nums;
}

/* Tablet (≤860px) */
@media(max-width:860px){
	.strip-lb{padding:16px;}
	.strip-lb-close{top:12px;right:12px;width:44px;height:44px;font-size:24px;}
	.strip-lb-prev{left:12px;width:44px;height:44px;font-size:28px;}
	.strip-lb-next{right:12px;width:44px;height:44px;font-size:28px;}
	.strip-lb-meta{padding:0 16px;bottom:16px;}
}

/* Mobile (≤480px) — prev/next move to bottom corners, more thumb-friendly */
@media(max-width:480px){
	.testimonials{padding:48px 20px;}
	.strip-lb-prev,
	.strip-lb-next{
		top:auto;bottom:16px;transform:none;
	}
	.strip-lb-prev{left:16px;}
	.strip-lb-next{right:16px;}
	.strip-lb-meta{
		position:absolute;
		left:50%;transform:translateX(-50%);
		bottom:32px;
		padding:0;
		flex-direction:column;
		gap:8px;
		width:auto;
		right:auto;
	}
}

/* Honour reduced motion */
@media(prefers-reduced-motion:reduce){
	.photo-frame.is-clickable{transition:none;}
	.photo-frame.is-clickable:hover{transform:none;}
}
.photo-frame-pill{
	position:absolute;
	bottom:14px;left:14px;
	padding:6px 14px;
	background:rgba(12,27,18,.6);
	backdrop-filter:blur(10px) saturate(140%);
	-webkit-backdrop-filter:blur(10px) saturate(140%);
	border-radius:100px;
	font-size:11px;
	font-weight:500;
	color:#fff;
	letter-spacing:.03em;
	line-height:1.3;
	max-width:calc(100% - 28px);
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
}
.photo-frame-ph{
	font-size:10px;letter-spacing:.07em;
	color:rgba(200,216,192,.12);
	position:absolute;top:50%;left:50%;
	transform:translate(-50%,-50%);
	text-align:center;line-height:2;
	pointer-events:none;
}


/* ── FEATURED STAYS BAND ──────────────────────────────────────────────── */
.fs-band{
	background:var(--surface-cream);
	padding:96px 64px;
	border-top:3px solid var(--hub-shortstays);
	position:relative;
}
.fs-inner{
	max-width:1152px;margin:0 auto;
	display:grid;grid-template-columns:1.6fr 1fr;
	gap:48px;align-items:center;
}
.fs-brow{
	font-size:12px;font-weight:500;letter-spacing:.14em;
	text-transform:uppercase;color:var(--hub-shortstays);
	margin-bottom:14px;
}
.fs-h{
	font-family:var(--font-heading);
	font-size:clamp(28px,3.4vw,40px);
	font-weight:400;color:var(--on-light-h);
	line-height:1.15;letter-spacing:-.01em;
	margin-bottom:18px;text-wrap:balance;
}
.fs-sub{
	font-size:16px;color:var(--on-light-body);
	line-height:1.6;
}
.fs-cta{
	display:flex;align-items:center;justify-content:space-between;
	background:var(--hub-shortstays);color:#fff;
	padding:18px 22px;border-radius:4px;
	font-size:15px;font-weight:500;
	transition:opacity .2s;
}
.fs-cta:hover{opacity:.85;}
.fs-cta-arrow{font-size:18px;line-height:1;}


/* ── INTENT GRID (6 cards on dark) ────────────────────────────────────── */
.intent-grid{
	display:grid;grid-template-columns:1fr 1fr 1fr;
	gap:2px;
}
.intent-card{
	background:rgba(255,255,255,.04);
	padding:32px;
	display:flex;flex-direction:column;gap:16px;
	position:relative;
}
.intent-card:nth-child(1){border-radius:12px 0 0 0;}
.intent-card:nth-child(3){border-radius:0 12px 0 0;}
.intent-card:nth-child(4){border-radius:0 0 0 12px;}
.intent-card:last-child{border-radius:0 0 12px 0;}

/* Accent bar top-left of each card. Colour comes from each card's currentColor.
   See intent-card-1..5 below for the colour assignments. */
.intent-card::before{
	content:'';
	position:absolute;top:0;left:32px;
	width:32px;height:3px;
	border-radius:0 0 2px 2px;
	background:currentColor;
}
.intent-card-1{color:#C0DD97;}     /* Bamboo */
.intent-card-2{color:#A8D5E3;}     /* Blue Breeze */
.intent-card-3{color:#9FE1CB;}     /* Serene Green */
.intent-card-4{color:#F5C9A1;}     /* Sweet Peach */
.intent-card-5{color:#9787C7;}     /* Morning Glory */
.intent-card-events{
	color:#E8B8C8;                  /* Pink companion (Red Merlot fails contrast on dark) */
	background:rgba(93,0,44,.08);
	border:1px solid rgba(93,0,44,.2);
}

.intent-card-1 .intent-icon{background:rgba(192,221,151,.15);}
.intent-card-2 .intent-icon{background:rgba(168,213,227,.15);}
.intent-card-3 .intent-icon{background:rgba(159,225,203,.15);}
.intent-card-4 .intent-icon{background:rgba(245,201,161,.15);}
.intent-card-5 .intent-icon{background:rgba(151,135,199,.15);}
.intent-icon-events,
.intent-card-events .intent-icon{background:rgba(232,184,200,.15);}

/* SVG stroke colour follows the card colour via currentColor */
.intent-card .intent-icon svg [stroke]{stroke:currentColor;}

.intent-icon{
	width:48px;height:48px;
	display:flex;align-items:center;justify-content:center;
	background:rgba(157,225,203,.08);
	border-radius:8px;
}
.intent-h{
	font-family:var(--font-heading);
	font-size:22px;color:#fff;font-weight:500;
	line-height:1.2;
}
.intent-p{
	font-size:15px;color:rgba(200,216,192,.7);
	line-height:1.75;text-wrap:pretty;flex:1;
}
.intent-list{
	margin:12px 0 0 0;padding:0;
	list-style:none;
	display:flex;flex-direction:column;gap:7px;
}
.intent-list li{
	font-size:14px;color:rgba(200,216,192,.7);
	line-height:1.5;
	padding-left:14px;position:relative;
}
.intent-list li::before{
	content:'';position:absolute;left:0;top:8px;
	width:5px;height:5px;border-radius:50%;
	background:currentColor;
}

/* Events cross-promo card variants */
.intent-brow-events{
	font-size:10px;font-weight:500;
	letter-spacing:.12em;text-transform:uppercase;
	color:#E8B8C8;
}
.intent-p-events{color:rgba(200,216,192,.7);}
.intent-link-events{
	font-size:14px;font-weight:500;
	color:#E8B8C8;
	display:inline-flex;align-items:center;gap:6px;
	min-height:44px;
	margin-top:auto;
}


/* ── DINING (two-column band inside the dark section) ─────────────────── */
.ss-dining{
	margin-top:48px;
	display:grid;grid-template-columns:1fr 1fr;
	gap:2px;
}
.ss-dining-card{
	background:rgba(255,255,255,.05);
	padding:40px;
}
.ss-dining-card:first-child{border-radius:12px 0 0 12px;}
.ss-dining-card:last-child{border-radius:0 12px 12px 0;}
.ss-dining-brow{
	font-size:10px;font-weight:500;
	letter-spacing:.12em;text-transform:uppercase;
	color:#9FE1CB;
	margin-bottom:16px;
}
.ss-dining-h{
	font-family:var(--font-heading);
	font-size:26px;color:#fff;
	margin-bottom:16px;line-height:1.2;
}
.ss-dining-p{
	font-size:15px;
	color:rgba(200,216,192,.7);
	line-height:1.85;
	text-wrap:pretty;
}


/* ── TESTIMONIALS (duplicated from home per pragmatic rule) ───────────── */
.testimonials{
	background:var(--surface-cream);
	padding:80px 64px;
}
.testi-inner{max-width:1152px;margin:0 auto;}
.testi-header{
	display:flex;align-items:center;justify-content:space-between;
	margin-bottom:32px;
}
.testi-h{
	font-family:var(--font-heading);
	font-size:36px;font-weight:500;
	color:var(--on-light-h);
	text-wrap:balance;
}
.testi-track{
	display:flex;gap:20px;
	overflow-x:scroll;
	scroll-snap-type:x mandatory;
	-webkit-overflow-scrolling:touch;
	scroll-behavior:smooth;
	scrollbar-width:none;
	padding-bottom:4px;
}
.testi-track::-webkit-scrollbar{display:none;}
@media(min-width:861px){
	.testi-track{justify-content:safe center;}
	.testi-track.has-overflow{justify-content:flex-start;}
}
.testi-card{
	min-width:340px;max-width:340px;
	border-radius:12px;overflow:hidden;
	border:1px solid rgba(27,58,45,.1);
	flex-shrink:0;
	display:flex;flex-direction:column;
	background:#fff;
	scroll-snap-align:start;
}
.testi-img{
	height:180px;flex-shrink:0;
	position:relative;
	display:flex;align-items:center;justify-content:center;
}
.testi-img--highlight{background:#B0BFA1;}
.testi-pull{
	font-family:var(--font-heading);
	font-size:18px;font-weight:400;
	color:#1B3A2D;
	line-height:1.5;
	text-align:center;
	padding:0 28px;
	text-wrap:balance;
}
.testi-body{
	padding:24px;
	display:flex;flex-direction:column;flex:1;
}
.testi-bar{
	width:24px;height:2px;
	border-radius:1px;
	margin-bottom:14px;flex-shrink:0;
}
.testi-quote{
	font-family:var(--font-heading);
	font-size:15px;font-weight:400;
	color:var(--on-light-h);
	line-height:1.7;
	flex:1;margin-bottom:14px;
	text-wrap:pretty;
}
.testi-name{
	font-size:13px;font-weight:500;
	color:var(--on-light-h);
}
.testi-attr{
	font-size:12px;
	color:var(--on-cream-label);
	margin-top:2px;
}
.testi-dots{
	display:flex;gap:7px;
	margin-top:24px;
	justify-content:center;
}
.testi-dot{
	cursor:pointer;background:none;border:none;
	padding:4px;
	width:7px;height:7px;border-radius:50%;
	background:rgba(27,58,45,.2);
	transition:background .2s;
	-webkit-tap-highlight-color:transparent;
}
.testi-dot.active{background:var(--on-light-h);}


/* ── SURROUNDS / VICINITY ─────────────────────────────────────────────── */
.ss-loc .loc-cards{
	display:grid;grid-template-columns:repeat(3,1fr);
	gap:2px;margin-top:48px;
}
.loc-tile{
	background:#fff;
	padding:28px;
}
.ss-loc .loc-cards > .loc-tile:first-child{border-radius:12px 0 0 0;}
.ss-loc .loc-cards > .loc-tile:nth-child(3){border-radius:0 12px 0 0;}
.ss-loc .loc-cards > .loc-tile:nth-child(4){border-radius:0 0 0 12px;}
.ss-loc .loc-cards > .loc-tile:last-child{border-radius:0 0 12px 0;}
.loc-tile-label{
	font-size:11px;font-weight:500;
	letter-spacing:.1em;text-transform:uppercase;
	color:var(--on-cream-label);
	margin-bottom:6px;
}
.loc-tile-name{
	font-family:var(--font-heading);
	font-size:22px;
	color:var(--on-light-h);
	margin-bottom:10px;
}
.loc-tile-p{
	font-size:15px;
	color:var(--on-light-body);
	line-height:1.75;text-wrap:pretty;
}


/* ── ENQUIRE (two-column band) ────────────────────────────────────────── */
.enq-wrap{
	background:var(--surface-cream);
	padding:80px 64px;
}
.enq-inner{
	max-width:1152px;margin:0 auto;
	display:grid;grid-template-columns:1fr 1fr;
	gap:2px;
}
.enq-col{
	padding:40px;
	background:#fff;
	display:flex;flex-direction:column;
}
.enq-col:first-child{border-radius:12px 0 0 12px;}
.enq-col:last-child{border-radius:0 12px 12px 0;}
.enq-label{
	font-size:10px;font-weight:500;
	letter-spacing:.12em;text-transform:uppercase;
	color:var(--on-cream-label);
	margin-bottom:12px;
}
.enq-h{
	font-family:var(--font-heading);
	font-size:24px;
	color:var(--on-light-h);
	margin-bottom:12px;text-wrap:balance;
}
.enq-p{
	font-size:15px;
	color:var(--on-light-body);
	line-height:1.75;
	margin-bottom:24px;text-wrap:pretty;
}
.enq-cta{
	font-size:15px;font-weight:500;
	color:var(--hub-shortstays);
	display:inline-flex;align-items:center;gap:8px;
	min-height:44px;
	margin-top:auto;
}
.enq-cta::after{content:'\2192';}
.enq-cta-res{color:var(--hub-residency);}


/* ── DIRECT BOOKING ──────────────────────────────────────────────────── */
.ss-db-sec{padding-top:64px;padding-bottom:64px;}
.direct-booking{
	background:var(--surface-cream);
	border-radius:12px;
	padding:40px;
	display:grid;grid-template-columns:1fr auto;
	gap:48px;align-items:center;
}
.db-badge{
	display:inline-flex;align-items:center;gap:8px;
	background:rgba(164,137,48,.08);
	border:1px solid rgba(164,137,48,.2);
	border-radius:20px;
	padding:6px 16px;
	font-size:12px;font-weight:500;
	color:var(--hub-shortstays);
	letter-spacing:.04em;
	margin-bottom:16px;
}
.db-h{
	font-family:var(--font-heading);
	font-size:clamp(24px,3vw,36px);
	font-weight:500;
	color:var(--on-light-h);
	margin-bottom:16px;
	text-wrap:balance;line-height:1.2;
}
.db-perks{
	display:flex;flex-direction:column;gap:10px;
	margin-bottom:28px;
}
.db-perk{
	font-size:15px;
	color:var(--on-light-body);
	padding-left:20px;
	position:relative;
	line-height:1.6;
}
.db-perk::before{
	content:'';position:absolute;
	left:0;top:9px;
	width:6px;height:6px;border-radius:50%;
	background:var(--hub-shortstays);
}
.db-fine-print{
	font-size:13px;
	color:var(--on-light-body);
	opacity:.6;
	margin-bottom:16px;
}
.db-btn{
	height:52px;padding:0 32px;
	background:var(--hub-shortstays);color:#fff;
	border:none;border-radius:6px;
	font-size:15px;font-weight:500;
	font-family:inherit;cursor:pointer;
	display:inline-flex;align-items:center;
	margin-right:16px;
	transition:opacity .2s;
	-webkit-appearance:none;
	-webkit-tap-highlight-color:transparent;
	touch-action:manipulation;
}
.db-btn:hover{opacity:.85;}
.db-link{
	font-size:14px;font-weight:500;
	color:var(--hub-shortstays);
	display:inline-flex;align-items:center;gap:6px;
	min-height:44px;
}
.db-link::after{content:'\2192';}


/* ── FLOATING BOOK DIRECT ─────────────────────────────────────────────── */
.float-book{
	position:fixed;
	top:calc(80px + 53px + 16px);   /* nav + ipnav + buffer */
	right:24px;
	z-index:150;
	display:inline-flex;align-items:center;gap:10px;
	padding:0 22px;height:48px;
	background:var(--hub-shortstays);color:#fff;
	font-size:14px;font-weight:500;letter-spacing:.02em;
	border-radius:24px;
	box-shadow:0 6px 20px rgba(27,58,45,.18), 0 2px 6px rgba(27,58,45,.08);
	opacity:0;transform:translateY(-8px);
	pointer-events:none;
	transition:opacity .3s ease, transform .3s ease, background .2s;
	-webkit-tap-highlight-color:transparent;
	touch-action:manipulation;
}
.float-book.is-visible{
	opacity:1;transform:translateY(0);
	pointer-events:auto;
}
.float-book:hover{background:#8A7028;}
.float-book:focus-visible{outline:2px solid #fff;outline-offset:2px;}
.float-book-arrow{font-size:16px;line-height:1;}


/* ── SUITE LIGHTBOX ──────────────────────────────────────────────────── */
.vlb-overlay{
	display:none;
	position:fixed;inset:0;
	background:rgba(0,0,0,.92);
	z-index:500;
	align-items:center;justify-content:center;
}
.vlb-overlay.open{display:flex;}
.vlb-box{
	background:#fff;
	border-radius:12px;overflow:hidden;
	width:min(920px,94vw);max-height:90vh;
	display:grid;grid-template-columns:1fr 360px;
}
.vlb-img-side{
	background:var(--surface-forest);
	display:flex;flex-direction:column;
	position:relative;
}
.vlb-img-main{
	flex:1;
	display:flex;align-items:center;justify-content:center;
	background:linear-gradient(145deg,#2D5C45,#1B3A2D);
	min-height:360px;
}
.vlb-img-ph{
	font-size:10px;letter-spacing:.07em;
	color:rgba(200,216,192,.2);
	text-align:center;
}
.vlb-arrow{
	position:absolute;top:50%;
	transform:translateY(-50%);
	width:44px;height:44px;
	background:rgba(255,255,255,.12);
	border:none;color:#fff;
	font-size:20px;cursor:pointer;
	display:flex;align-items:center;justify-content:center;
	border-radius:50%;
	transition:background .2s;
	-webkit-tap-highlight-color:transparent;
}
.vlb-arrow:hover{background:rgba(255,255,255,.25);}
.vlb-arrow-l{left:12px;}
.vlb-arrow-r{right:12px;}
.vlb-thumbs{
	display:flex;gap:6px;
	padding:10px 12px;
	overflow-x:auto;scrollbar-width:none;
	background:rgba(0,0,0,.3);
}
.vlb-thumbs::-webkit-scrollbar{display:none;}
.vlb-thumb{
	width:48px;height:36px;border-radius:4px;
	flex-shrink:0;cursor:pointer;
	border:2px solid transparent;
	background:rgba(255,255,255,.15);
	transition:border-color .15s;
	-webkit-tap-highlight-color:transparent;
	-webkit-appearance:none;
}
.vlb-thumb.active{border-color:#9FE1CB;}
.vlb-info-side{
	padding:32px;
	display:flex;flex-direction:column;
	overflow-y:auto;
}
.vlb-close{
	align-self:flex-end;
	width:44px;height:44px;
	background:none;
	border:1px solid rgba(27,58,45,.15);
	border-radius:50%;
	font-size:18px;
	color:var(--on-light-h);
	cursor:pointer;
	display:flex;align-items:center;justify-content:center;
	-webkit-tap-highlight-color:transparent;
}
.vlb-suite-tag{
	font-size:10px;font-weight:500;
	letter-spacing:.1em;text-transform:uppercase;
	color:var(--hub-shortstays);
	margin-top:16px;margin-bottom:4px;
}
.vlb-counter{
	font-family:var(--font-heading);
	font-size:16px;
	color:rgba(27,58,45,.35);
	margin-bottom:16px;
}
.vlb-photo-name{
	font-family:var(--font-heading);
	font-size:22px;
	color:var(--on-light-h);
	margin-bottom:8px;
}
.vlb-photo-desc{
	font-size:14px;
	color:var(--on-light-body);
	line-height:1.75;
	flex:1;
}


/* ── CLUSTER SLOT (illustration placeholder) ─────────────────────────── */
.cluster-slot{
	width:var(--cluster-w, clamp(180px,20vw,260px));
	aspect-ratio:var(--cluster-aspect, 1);
	border:1.5px dashed rgba(27,58,45,.22);
	border-radius:12px;
	display:flex;align-items:center;justify-content:center;
	flex-shrink:0;
	background-repeat:no-repeat;
	background-position:center;
	background-size:contain;
	pointer-events:none;
	position:relative;
}
.cluster-slot::before{
	content:'Illustration cluster';
	font-size:11px;letter-spacing:.1em;
	text-transform:uppercase;
	color:rgba(27,58,45,.4);
	font-family:var(--font-body, 'DM Sans', sans-serif);
}

/* When an illustration is uploaded, drop the placeholder border + label
   and let the single composite image fill the slot. */
.cluster-slot.is-populated{
	border:none;
}
.cluster-slot.is-populated::before{
	display:none;
}

.cluster-img-single{
	width:100%;
	height:100%;
	object-fit:contain;
	display:block;
	pointer-events:none;
	user-select:none;
}


/* ── INTENT ICON IMAGE (overrides SVG when ACF image is uploaded) ────── */
.intent-icon-img{
	width:100%;height:100%;
	object-fit:contain;
}


/* ═════════════════════════════════════════════════════════════════════
   RESPONSIVE — tablet (≤860px)
   ═════════════════════════════════════════════════════════════════════ */
@media(max-width:860px){
	.sec{padding:64px 24px;}

	/* Hero on mobile: stacked. Image in its own zone above (grid-row:1),
	   copy in dark forest band below (grid-row:2). No darkening overlay —
	   photo is the photo. Focal point dropdown per image field handles
	   which part of the photo shows when the zone crops to cover. */
	.ss-hero{
		grid-template-columns:1fr;
		grid-template-rows:auto auto;
		min-height:auto;
		align-items:stretch;
	}
	.ss-hero::after{
		background:none;
	}
	.hero-img{
		grid-row:1;
		position:relative;
		width:100%;
		height:60vh;
		min-height:360px;
		max-height:580px;
	}
	.hero-copy{
		grid-row:2;
		position:relative;
		z-index:auto;
		padding:48px 24px 56px;
	}
	.hero-h{font-size:clamp(34px,8vw,52px);}
	.hero-ctas{flex-direction:column;align-items:flex-start;}
	.hero-btn{width:100%;justify-content:center;height:56px;font-size:16px;}
	.hero-link{height:56px;font-size:16px;}

	.two-wide{grid-template-columns:1fr;gap:40px;}

	/* IPnav clears the shorter mobile nav */
	.ipnav{top:64px;}
	.ipnav-inner{padding:0 16px;}
	.ipnav-link{padding:14px 14px;font-size:14px;}

	/* Suite + intent grids → 2 columns on tablet */
	.suite-grid{grid-template-columns:1fr 1fr;}
	.suite-photo{height:220px;}
	.intent-grid{grid-template-columns:1fr 1fr;}

	/* Photo strip: narrower, taller-feeling frames; tighter side padding */
	.photo-strip-inner{padding:0 24px;gap:10px;}
	.photo-frame{flex:0 0 260px;height:320px;}

	/* Dining stacks */
	.ss-dining{grid-template-columns:1fr;}
	.ss-dining-card:first-child{border-radius:12px 12px 0 0;}
	.ss-dining-card:last-child{border-radius:0 0 12px 12px;}

	/* Testimonials */
	.testimonials{padding:64px 24px;}
	.testi-card{min-width:280px;max-width:280px;}

	/* Vicinity */
	.ss-loc .loc-cards{grid-template-columns:1fr;}
	.ss-loc .loc-cards > .loc-tile:first-child,
	.ss-loc .loc-cards > .loc-tile:nth-child(3),
	.ss-loc .loc-cards > .loc-tile:nth-child(4),
	.ss-loc .loc-cards > .loc-tile:last-child{border-radius:0;}
	.ss-loc .loc-cards > .loc-tile:first-child{border-radius:12px 12px 0 0;}
	.ss-loc .loc-cards > .loc-tile:last-child{border-radius:0 0 12px 12px;}

	/* Direct booking */
	.direct-booking{
		grid-template-columns:1fr;
		gap:32px;padding:28px;
	}
	.cluster-slot{display:none;}

	/* Enquire */
	.enq-wrap{padding:64px 24px;}
	.enq-inner{grid-template-columns:1fr;gap:2px;}
	.enq-col:first-child{border-radius:12px 12px 0 0;}
	.enq-col:last-child{border-radius:0 0 12px 12px;}

	/* Lightbox */
	.vlb-box{grid-template-columns:1fr;max-height:95vh;}
	.vlb-img-side{min-height:240px;}
	.vlb-info-side{padding:20px;}

	/* Featured stays band */
	.fs-band{padding:64px 24px;}
	.fs-inner{grid-template-columns:1fr;gap:32px;}

	/* Floating Book Direct repositioned below mobile in-page nav */
	.float-book{
		top:calc(64px + 48px + 12px);
		right:16px;
		height:44px;padding:0 18px;font-size:13px;
	}
}


/* ═════════════════════════════════════════════════════════════════════
   RESPONSIVE — mobile (≤480px)
   ═════════════════════════════════════════════════════════════════════ */
@media(max-width:480px){
	.sec{padding:48px 20px;}
	.h2{font-size:clamp(26px,6vw,36px);}

	/* Single-column grids */
	.suite-grid{grid-template-columns:1fr;}
	.intent-grid{grid-template-columns:1fr;}
	.intent-card:nth-child(1),
	.intent-card:nth-child(3),
	.intent-card:nth-child(4),
	.intent-card:last-child{border-radius:0;}
	.intent-card:first-child{border-radius:12px 12px 0 0;}
	.intent-card:last-child{border-radius:0 0 12px 12px;}

	.fs-band{padding:48px 20px;}
	.fs-cta{padding:16px 20px;font-size:14px;}
}

/* ── FAQ (.faq-* prefix — harmonised with Events & Residency) ────────── */
.sec-inner.ss-faq-inner{max-width:800px;}

.faq-toggle-section{
	display:flex;align-items:center;justify-content:space-between;
	cursor:pointer;padding:0;
	background:none;border:none;
	width:100%;font-family:inherit;
	text-align:left;
	-webkit-tap-highlight-color:transparent;
	touch-action:manipulation;
	-webkit-appearance:none;
}
.faq-section-h{margin:0;}
.faq-toggle-icon{
	font-size:13px;font-weight:500;
	color:var(--hub-shortstays);
	display:flex;align-items:center;gap:8px;
	white-space:nowrap;flex-shrink:0;
}
.faq-toggle-icon::after{content:'\2193';transition:transform .25s;}
.faq-toggle-section[aria-expanded="true"] .faq-toggle-icon::after{transform:rotate(180deg);}

.faq-collapsible{
	max-height:0;overflow:hidden;
	transition:max-height .4s ease;
}
.faq-collapsible.open{max-height:4000px;}

.faq-list{margin-top:32px;}
.faq-item{
	border-bottom:1px solid rgba(27,58,45,.1);
}
.faq-trigger{
	width:100%;text-align:left;
	padding:24px 0;
	background:none;border:none;
	font-family:inherit;cursor:pointer;
	display:flex;align-items:center;justify-content:space-between;gap:16px;
	font-size:16px;font-weight:500;
	color:var(--on-light-h);
	-webkit-tap-highlight-color:transparent;
	touch-action:manipulation;
	-webkit-appearance:none;
}
.faq-trigger:hover{color:var(--hub-shortstays);}
.faq-icon{
	font-size:20px;color:var(--hub-shortstays);
	flex-shrink:0;transition:transform .25s;
	font-weight:300;
}
.faq-trigger[aria-expanded="true"] .faq-icon{transform:rotate(45deg);}
.faq-answer{
	max-height:0;overflow:hidden;
	transition:max-height .3s ease;
}
.faq-answer-inner{
	padding-bottom:24px;
	font-size:16px;color:var(--on-light-body);
	line-height:1.8;text-wrap:pretty;
}
.faq-answer-inner a{color:var(--hub-shortstays);}
.faq-answer-inner p{margin:0 0 1em;}
.faq-answer-inner p:last-child{margin-bottom:0;}
.faq-trigger[aria-expanded="true"] + .faq-answer{max-height:600px;}

/* Mobile: "Show all" sits under the heading, not to its right */
@media(max-width:860px){
	.faq-toggle-section{flex-direction:column;align-items:flex-start;gap:16px;}
	.faq-trigger{padding:20px 0;font-size:17px;}
	.faq-icon{font-size:22px;}
}