/* =====================================================================
   POTUS Rentals & Tours — complete section design system.
   Modern luxury concierge: cinematic dark-overlay heroes, generous
   whitespace, uppercase wide-tracked eyebrows, green-glow buttons,
   hover lift+scale on cards. Colours hardcoded (mirroring theme.json);
   theme.json ships blockGap:0 + zero padding, so SECTIONS OWN ALL SPACING.
   Organised by section, commented throughout.
   ===================================================================== */

/* ---------- tokens ---------- */
:root {
	--potus-r: 9px;
	--display: var(--wp--preset--font-family--display, 'Plus Jakarta Sans', 'Inter', system-ui, sans-serif);
	--body: var(--wp--preset--font-family--body, 'Inter', system-ui, -apple-system, sans-serif);

	--green: #6cc24a;
	--green-deep: #4ea336;
	--green-soft: #eef7e9;
	--ink: #212121;
	--ink-soft: #2b2b2b;
	--text: #333333;
	--muted: #6b7280;
	--line: #e5e7eb;
	--slate: #f7faf6;
	--footer-ink: #171717;
	--white: #ffffff;

	--wa: #25d366;
	--header-h: 84px;
	--glow: 0 8px 24px rgba(108, 194, 74, .35);
	--card-shadow: 0 1px 2px rgba(33, 33, 33, .05);
	--lift-shadow: 0 22px 44px rgba(33, 33, 33, .14);
	--ease: cubic-bezier(.455, .03, .515, .955);
}

/* ---------- base / reset ---------- */
html { scroll-behavior: smooth; }
*, *::before, *::after { box-sizing: border-box; }
body {
	margin: 0;
	background: #ffffff;
	color: #333333;
	font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	font-size: 16px;
	line-height: 1.68;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}
body h1, body h2, body h3, body h4, body h5, body h6,
body p, body figure, body blockquote, body ul, body ol {
	margin: 0;
}
a { color: #4ea336; text-decoration: none; transition: color .14s var(--ease); }
a:hover { color: #212121; }
img { display: block; max-width: 100%; height: auto; }
::selection { background: #6cc24a; color: #ffffff; }
input, select, textarea, button { font-family: inherit; }
input::placeholder, textarea::placeholder { color: rgba(33, 33, 33, .42); opacity: 1; }
:focus-visible { outline: 2px solid #6cc24a; outline-offset: 2px; }
[id] { scroll-margin-top: 100px; }
body.potus-lock { overflow: hidden; }
/* No UA yellow on <mark>; inline accents use has-inline-color. */
mark, mark.has-inline-color { background: none; }

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	white-space: nowrap; border: 0; padding: 0; margin: -1px;
}

/* ---------- keyframes ---------- */
@keyframes potus-rise {
	from { opacity: 0; transform: translateY(22px); }
	to   { opacity: 1; transform: translateY(0); }
}
@keyframes potus-fade {
	from { opacity: 0; }
	to   { opacity: 1; }
}
@keyframes potus-slow-zoom {
	from { transform: scale(1.08); }
	to   { transform: scale(1); }
}

/* ---------- layout primitives ---------- */
.potus-wrap { max-width: 1200px; margin-inline: auto; padding-inline: clamp(20px, 5vw, 40px); }
.potus-wrap--wide { max-width: 1320px; }
/* React-faithful cadence (py-24/32 ≈ 96–128px total between sections). */
.potus-sec { padding-block: clamp(48px, 6vw, 96px); }
.potus-sec--dark { background: #212121; color: rgba(255, 255, 255, .82); }
.potus-sec--slate { background: #f7faf6; }
.potus-sec--green { background: #6cc24a; color: #ffffff; }
.potus-sec--tight { padding-block: clamp(40px, 5vw, 68px); }

/* ---------- eyebrow ---------- */
.potus-eyebrow {
	display: inline-flex; align-items: center; gap: 10px;
	font: 600 13px/1 var(--display); letter-spacing: .16em;
	text-transform: uppercase; color: #4ea336; margin: 0;
}
.potus-eyebrow--light { color: #8fe06a; }
.potus-eyebrow--center { display: flex; justify-content: center; text-align: center; }
/* Optional pill treatment used over hero imagery. */
.potus-eyebrow--pill {
	padding: 8px 16px; border-radius: 999px;
	background: rgba(255, 255, 255, .12); color: #ffffff;
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
	border: 1px solid rgba(255, 255, 255, .22);
}

/* ---------- headings + lede ---------- */
.potus-h1 {
	font-family: var(--display); font-weight: 700;
	font-size: clamp(2.2rem, 5vw, 3.6rem); line-height: 1.05;
	letter-spacing: -.02em; color: #212121; text-wrap: balance;
}
.potus-h2 {
	font-family: var(--display); font-weight: 700;
	font-size: clamp(1.7rem, 3.5vw, 2.6rem); line-height: 1.12;
	letter-spacing: -.015em; color: #212121; text-wrap: balance;
}
.potus-h3 {
	font-family: var(--display); font-weight: 600;
	font-size: 1.25rem; line-height: 1.28; letter-spacing: -.01em; color: #212121;
}
.potus-lede {
	font-size: clamp(1.05rem, 1.6vw, 1.25rem); line-height: 1.62;
	color: #4b4b4b; max-width: 60ch;
}
.potus-sec--dark .potus-h1, .potus-sec--dark .potus-h2, .potus-sec--dark .potus-h3,
.potus-sec--green .potus-h1, .potus-sec--green .potus-h2, .potus-sec--green .potus-h3 { color: #ffffff; }
.potus-sec--dark .potus-lede { color: rgba(255, 255, 255, .82); }
.potus-sec--green .potus-lede { color: rgba(255, 255, 255, .9); }

/* Section heading unit (eyebrow + heading + lede). */
.potus-sechead { display: flex; flex-direction: column; gap: 16px; max-width: 62ch; }
.potus-sechead--center { text-align: center; margin-inline: auto; align-items: center; }
.potus-sechead--center .potus-lede { margin-inline: auto; }

/* ---------- buttons ---------- */
.potus-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	border: none; border-radius: 9px; cursor: pointer; white-space: nowrap;
	padding: 14px 26px; background: #6cc24a; color: #ffffff;
	font: 600 15px/1 var(--body); letter-spacing: .06em; text-transform: uppercase;
	box-shadow: 0 8px 24px rgba(108, 194, 74, .35);
	transition: background .16s var(--ease), color .16s var(--ease),
		transform .16s var(--ease), box-shadow .16s var(--ease), border-color .16s var(--ease);
}
.potus-btn:hover { background: #4ea336; color: #ffffff; transform: translateY(-2px); box-shadow: 0 12px 30px rgba(108, 194, 74, .45); }
.potus-btn--ghost {
	background: transparent; color: #212121; box-shadow: none;
	border: 2px solid #212121; padding: 12px 24px;
}
.potus-btn--ghost:hover { background: #212121; color: #ffffff; transform: translateY(-2px); }
.potus-btn--dark { background: #212121; box-shadow: 0 8px 24px rgba(33, 33, 33, .25); }
.potus-btn--dark:hover { background: #6cc24a; box-shadow: 0 12px 30px rgba(108, 194, 74, .4); }
.potus-btn--sm { padding: 10px 18px; font-size: 13px; }
.potus-btn--lg { padding: 17px 34px; font-size: 16px; }
/* White ghost on dark heroes / green bands. */
.potus-btn--white-ghost {
	background: transparent; color: #ffffff; box-shadow: none;
	border: 2px solid rgba(255, 255, 255, .55); padding: 12px 24px;
}
.potus-btn--white-ghost:hover { background: #ffffff; color: #212121; border-color: #ffffff; transform: translateY(-2px); }
.potus-btnrow { display: flex; flex-wrap: wrap; gap: 14px; }
.potus-btnrow--center { justify-content: center; }

/* ---------- cover scaffolding (dark scrims) ---------- */
.wp-block-cover.potus-cover { padding: 0; border-radius: 0; }
.wp-block-cover.potus-cover .wp-block-cover__inner-container { width: 100%; position: relative; z-index: 2; }
.potus-cover::after { content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.potus-cover img.wp-block-cover__image-background { object-fit: cover; }

/* ---------- header ---------- */
.potus-header {
	position: fixed; top: 0; left: 0; right: 0; z-index: 100;
	background: transparent;
	transition: background .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
	border-bottom: 1px solid transparent;
}
.potus-header.is-scrolled {
	background: rgba(255, 255, 255, .96);
	-webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
	border-bottom-color: #e5e7eb;
	box-shadow: 0 6px 22px rgba(33, 33, 33, .08);
}
.potus-header__inner {
	max-width: 1320px; margin: 0 auto; min-height: var(--header-h);
	padding: 14px clamp(20px, 5vw, 40px);
	display: flex; align-items: center; justify-content: space-between; gap: 20px;
}
.potus-header__logo { display: inline-flex; align-items: center; }
.potus-logo { height: 48px; width: auto; display: block; }
/* Logo swap: white over transparent hero, dark once scrolled. */
.potus-logo--dark { display: none; }
.potus-header.is-scrolled .potus-logo--light { display: none; }
.potus-header.is-scrolled .potus-logo--dark { display: block; }

.potus-nav { display: flex; align-items: center; gap: 26px; }
.potus-nav__link {
	font: 500 14.5px/1 var(--body); color: rgba(255, 255, 255, .92); white-space: nowrap;
	letter-spacing: .01em; transition: color .14s var(--ease); position: relative;
}
.potus-nav__link:hover { color: #ffffff; }
.potus-header.is-scrolled .potus-nav__link { color: #2b2b2b; }
.potus-header.is-scrolled .potus-nav__link:hover { color: #4ea336; }
.potus-header__cta { display: flex; align-items: center; gap: 14px; }

/* Hamburger + drawer (mobile). */
.potus-navtoggle {
	display: none; width: 44px; height: 44px; border: none; background: transparent;
	cursor: pointer; padding: 10px; border-radius: 9px;
}
.potus-navtoggle span {
	display: block; height: 2px; width: 100%; background: #ffffff; border-radius: 2px;
	transition: transform .2s var(--ease), opacity .2s var(--ease), background .2s var(--ease);
}
.potus-navtoggle span + span { margin-top: 5px; }
.potus-header.is-scrolled .potus-navtoggle span { background: #212121; }
.potus-navtoggle.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.potus-navtoggle.is-open span:nth-child(2) { opacity: 0; }
.potus-navtoggle.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.potus-drawer {
	position: fixed; top: 0; right: 0; bottom: 0; z-index: 120;
	width: min(86vw, 340px); background: #212121; color: #ffffff;
	padding: 92px 28px 32px; transform: translateX(100%);
	transition: transform .3s var(--ease); overflow-y: auto;
	box-shadow: -20px 0 50px rgba(0, 0, 0, .3);
	display: flex; flex-direction: column; gap: 4px;
}
.potus-drawer.is-open { transform: translateX(0); }
.potus-drawer__link {
	font: 500 17px/1 var(--display); color: rgba(255, 255, 255, .88);
	padding: 15px 4px; border-bottom: 1px solid rgba(255, 255, 255, .1);
}
.potus-drawer__link:hover { color: #8fe06a; }
.potus-drawer .potus-btn { margin-top: 22px; width: 100%; }
.potus-drawer__close {
	position: absolute; top: 20px; right: 20px; width: 40px; height: 40px;
	border: none; background: rgba(255, 255, 255, .08); border-radius: 9px;
	color: #fff; font-size: 22px; line-height: 1; cursor: pointer;
}
.potus-scrim {
	position: fixed; inset: 0; z-index: 110; background: rgba(10, 10, 10, .5);
	opacity: 0; visibility: hidden; transition: opacity .3s var(--ease), visibility .3s var(--ease);
}
.potus-scrim.is-open { opacity: 1; visibility: visible; }

/* ---------- WhatsApp float ---------- */
.potus-wa {
	position: fixed; right: clamp(16px, 3vw, 28px); bottom: clamp(16px, 3vw, 28px); z-index: 90;
	width: 58px; height: 58px; border-radius: 50%; background: #25d366;
	display: inline-flex; align-items: center; justify-content: center;
	box-shadow: 0 10px 26px rgba(37, 211, 102, .45); color: #fff;
	transition: transform .18s var(--ease), box-shadow .18s var(--ease);
}
.potus-wa:hover { transform: translateY(-3px) scale(1.05); color: #fff; box-shadow: 0 14px 32px rgba(37, 211, 102, .55); }
.potus-wa svg { width: 30px; height: 30px; display: block; }

/* ---------- hero ---------- */
.potus-hero { background: #171717; overflow: hidden; }
.potus-hero img.wp-block-cover__image-background { object-position: center 42%; animation: potus-slow-zoom 1.4s var(--ease) both; }
.potus-hero::after {
	background:
		linear-gradient(90deg, rgba(15, 15, 15, .84) 0%, rgba(15, 15, 15, .58) 44%, rgba(15, 15, 15, .26) 100%),
		linear-gradient(180deg, rgba(15, 15, 15, 0) 45%, rgba(15, 15, 15, .74) 100%);
}
.potus-hero__inner {
	max-width: 1200px; margin: 0 auto;
	padding: calc(var(--header-h) + clamp(60px, 12vh, 130px)) clamp(20px, 5vw, 40px) clamp(64px, 11vh, 120px);
	display: flex; flex-direction: column; align-items: flex-start; gap: 22px;
}
.potus-hero__inner > * { animation: potus-rise .7s var(--ease) both; }
.potus-hero__inner > *:nth-child(2) { animation-delay: .08s; }
.potus-hero__inner > *:nth-child(3) { animation-delay: .16s; }
.potus-hero__inner > *:nth-child(4) { animation-delay: .24s; }
.potus-hero .potus-h1 { color: #ffffff; max-width: 20ch; }
.potus-hero .potus-lede { color: rgba(255, 255, 255, .88); max-width: 56ch; }
.potus-hero__btnrow { margin-top: 6px; }

/* Sub-hero for inner pages (~52vh, centred). */
.potus-hero--page .potus-hero__inner {
	align-items: center; text-align: center;
	padding-block: calc(var(--header-h) + clamp(48px, 9vh, 96px)) clamp(48px, 9vh, 96px);
}
.potus-hero--page .potus-h1 { max-width: 22ch; }
.potus-hero--page .potus-lede { margin-inline: auto; }
.potus-hero--page::after {
	background:
		linear-gradient(180deg, rgba(15, 15, 15, .62) 0%, rgba(15, 15, 15, .5) 50%, rgba(15, 15, 15, .78) 100%);
}

/* ---------- stat / count-up row ---------- */
.potus-stats { display: flex; flex-wrap: wrap; gap: clamp(28px, 5vw, 64px); }
.potus-stat { display: flex; flex-direction: column; gap: 6px; }
.potus-stat__num {
	font: 700 clamp(2.2rem, 4vw, 3rem)/1 var(--display); letter-spacing: -.02em; color: #4ea336;
}
.potus-sec--dark .potus-stat__num, .potus-sec--green .potus-stat__num { color: #ffffff; }
.potus-stat__label { font: 500 13px/1.4 var(--body); letter-spacing: .12em; text-transform: uppercase; color: #6b7280; }
.potus-sec--dark .potus-stat__label { color: rgba(255, 255, 255, .6); }

/* ---------- inventory: filter chips ---------- */
.potus-fleet { display: flex; flex-direction: column; gap: 28px; }
.potus-filter { display: flex; flex-wrap: wrap; gap: 10px; }
.potus-chip {
	border: 1px solid #e5e7eb; background: #ffffff; color: #2b2b2b;
	padding: 9px 18px; border-radius: 999px; cursor: pointer;
	font: 600 13px/1 var(--body); letter-spacing: .02em;
	transition: background .14s var(--ease), color .14s var(--ease), border-color .14s var(--ease);
}
.potus-chip:hover { border-color: #6cc24a; color: #4ea336; }
.potus-chip.is-active { background: #212121; color: #ffffff; border-color: #212121; }

/* ---------- inventory: card grid ---------- */
.potus-grid { display: grid; gap: 28px; }
.potus-grid--3 { grid-template-columns: repeat(3, 1fr); }
.potus-grid--2 { grid-template-columns: repeat(2, 1fr); }
.potus-card {
	display: flex; flex-direction: column; overflow: hidden;
	background: #ffffff; border: 1px solid #e5e7eb; border-radius: 9px;
	box-shadow: 0 1px 2px rgba(33, 33, 33, .05);
	transition: transform .22s var(--ease), box-shadow .22s var(--ease), border-color .22s var(--ease);
}
.potus-card:hover { transform: translateY(-6px); box-shadow: 0 22px 44px rgba(33, 33, 33, .14); border-color: #d6ecc9; }
.potus-card[hidden] { display: none; }

.potus-card__media {
	position: relative; display: block; aspect-ratio: 16 / 11; overflow: hidden; background: #eef1ee;
}
.potus-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease); }
.potus-card:hover .potus-card__media img { transform: scale(1.06); }
.potus-card__badge {
	position: absolute; top: 12px; left: 12px; z-index: 2;
	display: inline-flex; align-items: center; gap: 5px;
	padding: 6px 11px 6px 9px; border-radius: 999px;
	background: #6cc24a; color: #ffffff;
	font: 600 11px/1 var(--body); letter-spacing: .06em; text-transform: uppercase;
	box-shadow: 0 4px 12px rgba(108, 194, 74, .4);
}
.potus-card__badge .potus-i { width: 13px; height: 13px; fill: #ffffff; }
.potus-card__cat {
	position: absolute; left: 12px; bottom: 12px; z-index: 2;
	padding: 6px 12px; border-radius: 999px;
	background: rgba(33, 33, 33, .82); color: #ffffff;
	-webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
	font: 600 11px/1 var(--body); letter-spacing: .06em; text-transform: uppercase;
}
.potus-card__body { display: flex; flex-direction: column; gap: 14px; padding: 20px; flex: 1; }
.potus-card__title { font: 600 1.15rem/1.25 var(--display); letter-spacing: -.01em; color: #212121; }
.potus-card__title a { color: inherit; }
.potus-card__title a:hover { color: #4ea336; }

.potus-card__specs { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.potus-spec { display: inline-flex; align-items: center; gap: 6px; font: 500 13.5px/1.3 var(--body); color: #6b7280; }
.potus-spec .potus-i { width: 17px; height: 17px; fill: #4ea336; flex: none; }
.potus-spec--stars { gap: 1px; }
.potus-spec--stars .potus-i { width: 15px; height: 15px; fill: #6cc24a; }
.potus-i { display: inline-block; vertical-align: middle; }

.potus-card__foot {
	display: flex; align-items: flex-end; justify-content: space-between; gap: 12px;
	margin-top: auto; padding-top: 14px; border-top: 1px solid #f0f2ef;
}
.potus-price { display: flex; flex-direction: column; line-height: 1.15; }
.potus-price__note { font: 500 11px/1.2 var(--body); letter-spacing: .04em; text-transform: uppercase; color: #6b7280; }
.potus-price__val { font: 700 1.3rem/1.1 var(--display); color: #4ea336; letter-spacing: -.01em; }
.potus-price__unit { font: 500 12px/1.2 var(--body); color: #6b7280; }
.potus-price--enquire { font: 600 .95rem/1.2 var(--display); color: #212121; }

.potus-empty {
	grid-column: 1 / -1; text-align: center; color: #6b7280;
	font: 400 1rem/1.6 var(--body); padding: clamp(40px, 6vw, 72px) 20px;
	background: #f7faf6; border: 1px dashed #d7ddd3; border-radius: 9px;
}

/* ---------- values ---------- */
.potus-values { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.potus-value {
	display: flex; flex-direction: column; gap: 14px; padding: 32px 28px;
	background: #ffffff; border: 1px solid #e5e7eb; border-radius: 9px;
	transition: transform .2s var(--ease), box-shadow .2s var(--ease);
}
.potus-value:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(33, 33, 33, .1); }
.potus-value__icon {
	width: 56px; height: 56px; border-radius: 50%; background: #eef7e9;
	display: inline-flex; align-items: center; justify-content: center;
}
.potus-value__icon .potus-i { width: 26px; height: 26px; fill: #4ea336; }
.potus-value h3 { font: 600 1.2rem/1.25 var(--display); color: #212121; }
.potus-value p { font: 400 15px/1.62 var(--body); color: #4b4b4b; }

/* ---------- split banners ---------- */
.potus-split { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.potus-split__item {
	position: relative; overflow: hidden; border-radius: 9px; min-height: clamp(300px, 42vw, 440px);
	display: flex; align-items: flex-end;
}
.potus-split__item img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.potus-split__item:hover img { transform: scale(1.05); }
.potus-split__item::after {
	content: ''; position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(15, 15, 15, .1) 0%, rgba(15, 15, 15, .78) 100%);
}
.potus-split__body { position: relative; z-index: 2; padding: clamp(24px, 3.5vw, 40px); display: flex; flex-direction: column; gap: 12px; }
.potus-split__eyebrow { font: 600 12px/1 var(--display); letter-spacing: .16em; text-transform: uppercase; color: #8fe06a; }
.potus-split__body h3 { font: 700 clamp(1.4rem, 2.4vw, 1.9rem)/1.15 var(--display); color: #ffffff; }
.potus-split__body p { font: 400 15px/1.6 var(--body); color: rgba(255, 255, 255, .85); max-width: 42ch; }

/* ---------- clientele ---------- */
.potus-clients { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: clamp(24px, 5vw, 56px); }
.potus-client { display: inline-flex; align-items: center; justify-content: center; }
.potus-client img {
	max-height: 52px; width: auto; opacity: .62; filter: grayscale(1);
	transition: filter .25s var(--ease), opacity .25s var(--ease);
}
.potus-client:hover img { filter: grayscale(0); opacity: 1; }
.potus-client span {
	font: 700 clamp(1.1rem, 2vw, 1.5rem)/1 var(--display); letter-spacing: .02em;
	color: #9aa2a8; transition: color .25s var(--ease);
}
.potus-client:hover span { color: #212121; }

/* ---------- testimonials ---------- */
.potus-quotes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.potus-quote {
	display: flex; flex-direction: column; gap: 18px; padding: 30px 28px;
	background: #ffffff; border: 1px solid #e5e7eb; border-radius: 9px;
	box-shadow: 0 1px 2px rgba(33, 33, 33, .05);
}
.potus-quote__stars { display: inline-flex; gap: 2px; }
.potus-quote__stars .potus-i { width: 18px; height: 18px; fill: #6cc24a; }
.potus-quote__text { font: 500 1.05rem/1.55 var(--display); color: #2b2b2b; flex: 1; }
.potus-quote__by { display: flex; flex-direction: column; gap: 2px; }
.potus-quote__name { font: 600 14px/1.3 var(--body); color: #212121; }
.potus-quote__role { font: 400 13px/1.3 var(--body); color: #6b7280; }

/* ---------- CTA band ---------- */
.potus-cta { text-align: center; }
.potus-cta__inner {
	max-width: 760px; margin: 0 auto; display: flex; flex-direction: column;
	align-items: center; gap: 20px; padding-inline: clamp(20px, 5vw, 40px);
}
.potus-cta .potus-h2 { color: #ffffff; }
.potus-cta__lede { font: 400 clamp(1.05rem, 1.6vw, 1.2rem)/1.6 var(--body); color: rgba(255, 255, 255, .9); max-width: 48ch; }
.potus-cta--ink { background: #212121; }
.potus-cta--green { background: #6cc24a; }

/* ---------- forms ---------- */
.potus-form { display: flex; flex-direction: column; gap: 16px; }
.potus-form__row { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.potus-form__field { display: flex; flex-direction: column; gap: 7px; }
.potus-form label { font: 600 13px/1.3 var(--body); letter-spacing: .02em; color: #2b2b2b; }
.potus-form input[type="text"], .potus-form input[type="email"], .potus-form input[type="tel"],
.potus-form input[type="date"], .potus-form input[type="number"], .potus-form select, .potus-form textarea {
	width: 100%; box-sizing: border-box; padding: 13px 15px;
	font: 400 15px/1.4 var(--body); color: #212121;
	background: #ffffff; border: 1px solid #e5e7eb; border-radius: 9px; outline: none;
	transition: box-shadow .14s var(--ease), border-color .14s var(--ease);
}
.potus-form textarea { min-height: 130px; resize: vertical; }
.potus-form select { appearance: none; -webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%236b7280' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 15px center; padding-right: 38px;
}
.potus-form input:focus, .potus-form select:focus, .potus-form textarea:focus {
	border-color: #6cc24a; box-shadow: 0 0 0 3px rgba(108, 194, 74, .18);
}
.potus-form .potus-btn { border: none; }
/* Honeypot — visually and assistively hidden. */
.potus-hp { position: absolute !important; left: -5000px; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
/* Notices. */
.potus-note { padding: 14px 18px; border-radius: 9px; font: 500 14.5px/1.5 var(--body); }
.potus-note--ok { background: #eef7e9; color: #2f6d1c; border: 1px solid #cbe8bb; }
.potus-note--err { background: #fdecea; color: #b3261e; border: 1px solid #f5c6c0; }

/* Info panel (contact page). */
.potus-info { display: flex; flex-direction: column; gap: 18px; }
.potus-info__row { display: flex; align-items: flex-start; gap: 14px; }
.potus-info__icon {
	width: 42px; height: 42px; border-radius: 9px; background: #eef7e9; flex: none;
	display: inline-flex; align-items: center; justify-content: center;
}
.potus-info__icon .potus-i { width: 20px; height: 20px; fill: #4ea336; }
.potus-info__label { font: 600 12px/1.2 var(--body); letter-spacing: .1em; text-transform: uppercase; color: #6b7280; }
.potus-info__val { font: 500 15.5px/1.5 var(--body); color: #212121; }
.potus-info__val a { color: #212121; }
.potus-info__val a:hover { color: #4ea336; }

/* ---------- booking wizard (steps; degrades to one scrollable form w/o JS) ---------- */
.potus-wizard { display: flex; flex-direction: column; gap: 24px; }
.potus-wizard__steps { display: flex; flex-wrap: wrap; gap: 10px; }
.potus-wizard__crumb {
	display: inline-flex; align-items: center; gap: 8px;
	font: 600 12px/1 var(--body); letter-spacing: .08em; text-transform: uppercase; color: #6b7280;
}
.potus-wizard__crumb::before {
	content: attr(data-step); display: inline-flex; align-items: center; justify-content: center;
	width: 24px; height: 24px; border-radius: 50%; background: #e5e7eb; color: #6b7280;
	font-size: 12px; font-weight: 700;
}
.potus-wizard__crumb.is-active { color: #212121; }
.potus-wizard__crumb.is-active::before { background: #6cc24a; color: #fff; }
.potus-step { display: flex; flex-direction: column; gap: 16px; border: none; padding: 0; margin: 0; min-width: 0; }
.potus-wizard--js .potus-step[hidden] { display: none; }
.potus-step__nav { display: flex; justify-content: space-between; gap: 12px; margin-top: 6px; }

/* ---------- tour detail (2-col + sticky quote card) ---------- */
.potus-tourdetail {
	display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: clamp(28px, 4vw, 56px);
	align-items: start; padding-block: clamp(40px, 6vw, 72px);
}
.potus-tourdetail__main { display: flex; flex-direction: column; gap: 22px; }
.potus-tourdetail__main .potus-h3 { margin-top: 8px; }
.potus-checklist { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px 24px; }
.potus-checklist li { position: relative; display: flex; align-items: flex-start; gap: 10px; font: 400 15px/1.5 var(--body); color: #333333; }
.potus-checklist .potus-i { width: 19px; height: 19px; fill: #4ea336; flex: none; margin-top: 1px; }
.potus-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.potus-tag {
	display: inline-flex; align-items: center; padding: 8px 15px; border-radius: 999px;
	background: #eef7e9; color: #2f6d1c; font: 600 13px/1 var(--body); letter-spacing: .02em;
}

.potus-tourdetail__aside { position: sticky; top: calc(var(--header-h) + 20px); }
.potus-quote-card {
	display: flex; flex-direction: column; gap: 16px; padding: 26px 24px;
	background: #ffffff; border: 1px solid #e5e7eb; border-radius: 9px;
	box-shadow: 0 18px 40px rgba(33, 33, 33, .1);
}
.potus-quote-card__price { display: flex; }
.potus-quote-card__price .potus-price__val { font-size: 1.7rem; }
.potus-quote-card__meta { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 11px; }
.potus-quote-card__meta li { display: flex; align-items: center; gap: 10px; font: 500 14.5px/1.4 var(--body); color: #2b2b2b; }
.potus-quote-card__meta .potus-i { width: 18px; height: 18px; fill: #4ea336; flex: none; }
.potus-quote-card .potus-btn { width: 100%; }

/* ---------- blog: archive card grid ---------- */
.potus-archive { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; list-style: none; margin: 0; padding: 0; }
.potus-archive .wp-block-post {
	display: flex; flex-direction: column; overflow: hidden;
	background: #ffffff; border: 1px solid #e5e7eb; border-radius: 9px;
	box-shadow: 0 1px 2px rgba(33, 33, 33, .05);
	transition: transform .22s var(--ease), box-shadow .22s var(--ease);
}
.potus-archive .wp-block-post:hover { transform: translateY(-5px); box-shadow: 0 20px 42px rgba(33, 33, 33, .12); }
.potus-archive .wp-block-post-featured-image { margin: 0; }
.potus-archive .wp-block-post-featured-image img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.potus-postcard__body { display: flex; flex-direction: column; gap: 12px; padding: 22px; flex: 1; }
.potus-postcard__cat, .potus-archive .wp-block-post-terms {
	font: 600 11px/1 var(--body); letter-spacing: .12em; text-transform: uppercase; color: #4ea336;
}
.potus-archive .wp-block-post-title { font: 600 1.25rem/1.28 var(--display); letter-spacing: -.01em; color: #212121; }
.potus-archive .wp-block-post-title a { color: inherit; }
.potus-archive .wp-block-post-title a:hover { color: #4ea336; }
.potus-archive .wp-block-post-excerpt { font: 400 14.5px/1.6 var(--body); color: #4b4b4b; }
.potus-archive .wp-block-post-excerpt__excerpt { margin: 0; }
.potus-archive .wp-block-post-date, .potus-archive .wp-block-post-author-name {
	font: 400 13px/1.4 var(--body); color: #6b7280;
}
.potus-postcard__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-top: auto; padding-top: 6px; }
.potus-postcard__meta .potus-byline__sep { color: #c4c9c1; }

/* pagination */
.potus-pagination { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 44px; }
.potus-pagination .wp-block-query-pagination-numbers,
.wp-block-query-pagination { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.wp-block-query-pagination a, .wp-block-query-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 42px;
	padding: 0 12px; border: 1px solid #e5e7eb; border-radius: 9px;
	font: 600 14px/1 var(--body); color: #2b2b2b;
}
.wp-block-query-pagination a:hover { border-color: #6cc24a; color: #4ea336; }
.wp-block-query-pagination .current, .wp-block-query-pagination [aria-current="page"] {
	background: #212121; color: #fff; border-color: #212121;
}

/* ---------- page head band (blog index / archive / author) ---------- */
.potus-pagehead {
	background: #212121; color: #fff; text-align: center;
	padding: calc(var(--header-h) + clamp(48px, 9vh, 96px)) clamp(20px, 5vw, 40px) clamp(40px, 6vh, 72px);
}
.potus-pagehead .potus-h1 { color: #fff; margin-inline: auto; }
.potus-pagehead__lede { font: 400 clamp(1.05rem, 1.6vw, 1.2rem)/1.6 var(--body); color: rgba(255, 255, 255, .8); max-width: 56ch; margin: 14px auto 0; }
.potus-pagehead .potus-eyebrow { color: #8fe06a; }

/* ---------- blog: single post ---------- */
.potus-post { display: flex; flex-direction: column; }
.potus-post__head {
	background: #212121; color: #fff; text-align: center;
	padding: calc(var(--header-h) + clamp(48px, 9vh, 96px)) clamp(20px, 5vw, 40px) clamp(40px, 6vh, 68px);
}
.potus-post__head .wp-block-post-title, .potus-post__head .potus-h1 { color: #fff; max-width: 24ch; margin-inline: auto; }
.potus-post__head .wp-block-post-terms, .potus-post__head .potus-postcard__cat { color: #8fe06a; }
.potus-byline {
	display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px;
	margin-top: 18px; font: 400 14px/1.4 var(--body); color: rgba(255, 255, 255, .75);
}
.potus-byline .wp-block-post-author-name, .potus-byline .wp-block-post-author-name a { color: rgba(255, 255, 255, .92); font-weight: 600; }
.potus-byline .wp-block-post-date { color: rgba(255, 255, 255, .7); }
.potus-byline__sep { opacity: .5; }
.potus-post__featured { max-width: 960px; margin: 0 auto; padding: 0 clamp(20px, 5vw, 40px); }
.potus-post__featured .wp-block-post-featured-image { margin: clamp(-40px, -5vw, -64px) auto 0; }
.potus-post__featured img { width: 100%; border-radius: 9px; box-shadow: 0 22px 50px rgba(33, 33, 33, .16); }

/* ---------- prose (post/tour body) ---------- */
.potus-prose { max-width: 720px; margin: 0 auto; padding: clamp(40px, 6vw, 64px) clamp(20px, 5vw, 40px); color: #333333; }
.potus-prose > * + * { margin-top: 1.15em; }
.potus-prose p { font: 400 1.075rem/1.75 var(--body); color: #333333; }
.potus-prose h2 { font: 700 1.7rem/1.25 var(--display); color: #212121; letter-spacing: -.01em; margin-top: 1.6em; }
.potus-prose h3 { font: 600 1.3rem/1.3 var(--display); color: #212121; margin-top: 1.4em; }
.potus-prose ul, .potus-prose ol { padding-left: 1.3em; display: flex; flex-direction: column; gap: 8px; }
.potus-prose li { font: 400 1.05rem/1.7 var(--body); color: #333333; }
.potus-prose a { color: #4ea336; text-decoration: underline; text-underline-offset: 3px; }
.potus-prose a:hover { color: #212121; }
.potus-prose img { border-radius: 9px; }
.potus-prose blockquote {
	margin: 1.4em 0; padding: 6px 0 6px 22px; border-left: 3px solid #6cc24a;
	font: italic 500 1.2rem/1.55 var(--display); color: #212121;
}
.potus-prose blockquote p { font: inherit; color: inherit; }
.potus-prose figure { margin: 1.4em 0; }
.potus-prose figcaption { margin-top: 8px; font: 400 13px/1.5 var(--body); color: #6b7280; text-align: center; }

/* ---------- author bio box ---------- */
.potus-authorbox {
	max-width: 720px; margin: 0 auto; padding: 26px; display: flex; gap: 20px; align-items: flex-start;
	background: #f7faf6; border: 1px solid #e5e7eb; border-radius: 9px;
}
.potus-authorbox .wp-block-avatar, .potus-authorbox img { width: 72px; height: 72px; border-radius: 50%; flex: none; overflow: hidden; }
.potus-authorbox__name { font: 600 1.1rem/1.3 var(--display); color: #212121; }
.potus-authorbox__bio { font: 400 14.5px/1.62 var(--body); color: #4b4b4b; margin-top: 6px; }

/* ---------- subpage / plain content ---------- */
.potus-subpage { padding: calc(var(--header-h) + 40px) clamp(20px, 5vw, 40px) clamp(48px, 7vw, 88px); }
.potus-subpage__inner { max-width: 760px; margin: 0 auto; }
.potus-subpage__inner > * + * { margin-top: 1.1em; }

/* ---------- 404 ---------- */
.potus-404 { padding: calc(var(--header-h) + clamp(60px, 12vh, 130px)) clamp(20px, 5vw, 40px) clamp(72px, 12vh, 130px); min-height: 60vh; background: #f7faf6; }
.potus-404__inner { max-width: 640px; margin: 0 auto; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 18px; }
.potus-404__code { font: 700 clamp(4rem, 12vw, 7rem)/1 var(--display); color: #6cc24a; letter-spacing: -.03em; }

/* ---------- footer ---------- */
.potus-footer { background: #171717; color: #cfcfcf; }
.potus-footer__inner { max-width: 1200px; margin: 0 auto; padding: clamp(56px, 7vw, 80px) clamp(20px, 5vw, 40px) 36px; }
.potus-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 40px; align-items: start; }
.potus-footer__brand img { height: 54px; width: auto; margin-bottom: 18px; }
.potus-footer__brand p { font: 400 14px/1.7 var(--body); color: rgba(255, 255, 255, .55); max-width: 34ch; }
.potus-footer__colhead {
	margin: 0 0 16px; font: 600 12px/1.4 var(--body); letter-spacing: .16em;
	text-transform: uppercase; color: #ffffff;
}
.potus-footer__links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.potus-footer__links li { font: 400 14px/1.6 var(--body); }
.potus-footer__links a { color: rgba(255, 255, 255, .62); }
.potus-footer__links a:hover { color: #8fe06a; }
.potus-footer__tags { display: flex; flex-wrap: wrap; gap: 8px; }
.potus-footer__tag {
	font: 500 12px/1 var(--body); letter-spacing: .02em; color: rgba(255, 255, 255, .72);
	padding: 7px 12px; border: 1px solid rgba(255, 255, 255, .14); border-radius: 999px;
}
.potus-footer__contact { display: flex; flex-direction: column; gap: 10px; }
.potus-footer__contact a, .potus-footer__contact span { font: 400 14px/1.6 var(--body); color: rgba(255, 255, 255, .62); }
.potus-footer__contact a:hover { color: #8fe06a; }
.potus-footer__social { display: flex; gap: 10px; margin-top: 6px; }
.potus-footer__social a {
	width: 38px; height: 38px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
	background: rgba(255, 255, 255, .08); color: rgba(255, 255, 255, .8);
	transition: background .16s var(--ease), color .16s var(--ease);
}
.potus-footer__social a:hover { background: #6cc24a; color: #fff; }
.potus-footer__social svg { width: 18px; height: 18px; fill: currentColor; }
.potus-footer__legal {
	margin-top: 44px; padding-top: 28px; border-top: 1px solid rgba(255, 255, 255, .1);
	display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; align-items: center;
}
.potus-footer__legal p { font: 400 12.5px/1.6 var(--body); color: rgba(255, 255, 255, .42); }
.potus-footer__legal a { color: rgba(255, 255, 255, .42); text-decoration: underline; text-underline-offset: 2px; }
.potus-footer__legal a:hover { color: #8fe06a; }

/* =====================================================================
   Responsive — tablet ~1024, mobile ~640
   ===================================================================== */
@media (max-width: 1024px) {
	.potus-nav, .potus-header__cta .potus-btn { display: none; }
	.potus-navtoggle { display: block; }
	.potus-grid--3, .potus-archive, .potus-quotes { grid-template-columns: repeat(2, 1fr); }
	.potus-values { grid-template-columns: 1fr; }
	.potus-tourdetail { grid-template-columns: 1fr; }
	.potus-tourdetail__aside { position: static; }
	.potus-footer__grid { grid-template-columns: repeat(2, 1fr); gap: 32px; }
}

@media (max-width: 640px) {
	.potus-grid--3, .potus-grid--2, .potus-archive, .potus-quotes, .potus-split { grid-template-columns: 1fr; }
	.potus-form__row { grid-template-columns: 1fr; }
	.potus-checklist { grid-template-columns: 1fr; }
	.potus-stats { gap: 26px; }
	.potus-footer__grid { grid-template-columns: 1fr; gap: 30px; }
	.potus-hero__inner { align-items: flex-start; }
	.potus-btnrow { width: 100%; }
	.potus-hero__btnrow .potus-btn, .potus-cta .potus-btn { flex: 1 1 auto; }
	.potus-logo { height: 40px; }
}

@media (prefers-reduced-motion: reduce) {
	.potus-hero img.wp-block-cover__image-background,
	.potus-hero__inner > * { animation: none; }
	* { scroll-behavior: auto; }
}

/* ============================================================
 * POST-BUILD FIXES (reconcile SKIN-B markup ↔ SKIN-A CSS)
 * ============================================================ */

/* Hero content container: patterns emit .potus-hero__content (alias of __inner). */
.potus-hero__content {
	max-width: 1200px; margin: 0 auto;
	padding: calc(var(--header-h) + clamp(60px, 12vh, 130px)) clamp(20px, 5vw, 40px) clamp(64px, 11vh, 120px);
	display: flex; flex-direction: column; align-items: flex-start; gap: 22px;
	position: relative; z-index: 2;
}
.potus-hero__content > * { animation: potus-rise .7s var(--ease) both; }
.potus-hero--page .potus-hero__content {
	align-items: center; text-align: center;
	padding-block: calc(var(--header-h) + clamp(48px, 9vh, 96px)) clamp(48px, 9vh, 96px);
}
.potus-hero--page .potus-hero__content .potus-lede { margin-inline: auto; }

/* Hero-less pages (booking, my-account): clear the fixed transparent header. */
.wp-block-post-content > .potus-sec:first-child,
main > .potus-sec:first-child,
.wp-block-post-content > .wp-block-group.potus-sec:first-child {
	padding-top: calc(var(--header-h) + clamp(40px, 7vh, 80px));
}

/* Booking-wizard step header polish. */
.potus-step__head { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.potus-step__num {
	flex: 0 0 auto; width: 30px; height: 30px; border-radius: 50%;
	background: var(--wp--preset--color--green, #6cc24a); color: #fff;
	display: inline-flex; align-items: center; justify-content: center; font: 700 15px/1 var(--display);
}
.potus-step__title { font: 600 1.05rem/1.2 var(--display); color: #212121; }

/* Tour detail: centre the quote card when the left column is empty. */
.potus-tourdetail:has(.potus-tourdetail__main:empty) { justify-items: center; }

/* ============================================================
 * SKIN-B pattern classes SKIN-A didn't style (services, safari,
 * contact, quote card, btn rows, form block). Constrain icons.
 * ============================================================ */

/* --- Services grid --- */
.potus-services { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; margin-top: clamp(32px, 5vw, 56px); }
.potus-service {
	background: #fff; border: 1px solid #e5e7eb; border-radius: 9px; padding: clamp(24px, 3vw, 34px);
	transition: transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
}
.potus-service:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(15,15,15,.09); border-color: #d7ead0; }
.potus-service__icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 54px; height: 54px; border-radius: 14px; background: #eef7e9; color: #4ea336; margin-bottom: 16px;
}
.potus-service__icon svg { width: 26px; height: 26px; }
.potus-service .potus-h3 { margin-bottom: 8px; color: #212121; }
.potus-service p { color: #4b4b4b; font-size: 15px; line-height: 1.65; }

/* --- Safari hunting --- */
.potus-safari { display: grid; grid-template-columns: 1.6fr 1fr; gap: clamp(28px, 4vw, 56px); align-items: start; margin-top: clamp(24px, 4vw, 44px); }
.potus-safari__body .potus-lede { margin-bottom: 22px; }
.potus-checks { list-style: none; margin: 0 0 22px; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 20px; }
.potus-checks .potus-check { position: relative; padding-left: 30px; color: #333; font-size: 15px; line-height: 1.5; }
.potus-checks .potus-check::before {
	content: ''; position: absolute; left: 0; top: 1px; width: 20px; height: 20px; border-radius: 50%;
	background: #eef7e9 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%234ea336'%3E%3Cpath d='M9 16.2l-3.5-3.5L4 14.2 9 19 20 8l-1.5-1.5z'/%3E%3C/svg%3E") center/13px no-repeat;
}
.potus-safari__areas { color: #6b7280; font-size: 14.5px; }
.potus-quotecard {
	background: #fff; border: 1px solid #e5e7eb; border-radius: 12px; padding: 26px; box-shadow: 0 20px 50px rgba(15,15,15,.08);
	position: sticky; top: calc(var(--header-h) + 16px);
}
.potus-quotecard .potus-price { display: block; margin-bottom: 6px; }
.potus-quotecard .potus-price__note { display: block; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: #6b7280; }
.potus-quotecard .potus-price__val { font: 700 clamp(1.6rem, 2.6vw, 2rem)/1 var(--display); color: #4ea336; }
.potus-quotecard__note { color: #6b7280; font-size: 14px; margin: 10px 0 18px; }

/* --- Button rows --- */
.potus-btnrow { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; }
.potus-btnrow--stack { flex-direction: column; align-items: stretch; }
.potus-btnrow--stack .potus-btn { text-align: center; }
.potus-btnrow--center { justify-content: center; }

/* --- Contact panel --- */
.potus-contact { display: grid; grid-template-columns: 1fr 1.15fr; gap: clamp(32px, 5vw, 72px); align-items: start; margin-top: clamp(24px, 4vw, 44px); }
.potus-contact__info .potus-h2 { margin-bottom: 22px; }
.potus-contact__list { list-style: none; margin: 0 0 24px; padding: 0; display: flex; flex-direction: column; gap: 20px; }
.potus-contact__row { display: flex; gap: 16px; align-items: flex-start; }
.potus-contact__icon {
	flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
	width: 46px; height: 46px; border-radius: 12px; background: #eef7e9; color: #4ea336;
}
.potus-contact__icon svg { width: 22px; height: 22px; }
.potus-contact__val { display: flex; flex-direction: column; color: #333; line-height: 1.5; font-size: 15.5px; }
.potus-contact__val a { color: #333; }
.potus-contact__val a:hover { color: #4ea336; }
.potus-contact__label { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: #6b7280; margin-bottom: 2px; }
.potus-social { display: flex; gap: 12px; }
.potus-social__link {
	display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%;
	background: #212121; color: #fff; transition: background .2s var(--ease), transform .2s var(--ease);
}
.potus-social__link:hover { background: #6cc24a; transform: translateY(-2px); }
.potus-social__link svg { width: 20px; height: 20px; }

/* --- Enquiry form block --- */
.potus-form-block { }
.potus-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.potus-field > label { font-size: 13px; font-weight: 600; color: #212121; }
.potus-field--full { grid-column: 1 / -1; }
.potus-field--check { flex-direction: row; align-items: center; gap: 10px; }

/* --- Responsive --- */
@media (max-width: 880px) {
	.potus-services, .potus-safari, .potus-contact, .potus-checks { grid-template-columns: 1fr; }
	.potus-quotecard { position: static; }
}

/* ==================================================================
 * AUDIT FIX PASS 2 (2026-07-15) — visual audit remediation
 * ================================================================== */

/* #5 Ghost buttons on DARK surfaces → white ghost (scoped; light/white keeps charcoal) */
.potus-hero .potus-btn--ghost,
.potus-split .potus-btn--ghost,
.potus-cta .potus-btn--ghost,
.potus-sec--dark .potus-btn--ghost {
	color: #ffffff; border-color: rgba(255, 255, 255, .6);
}
.potus-hero .potus-btn--ghost:hover,
.potus-split .potus-btn--ghost:hover,
.potus-cta .potus-btn--ghost:hover,
.potus-sec--dark .potus-btn--ghost:hover {
	background: #ffffff; color: #212121; border-color: #ffffff;
}

/* #6 One consistent, stronger hero scrim (top for nav, bottom for subtitle, left for hero copy) + text shadow */
.potus-hero::after, .potus-hero--page::after {
	background:
		linear-gradient(180deg, rgba(8,8,8,.62) 0%, rgba(8,8,8,.34) 32%, rgba(8,8,8,.30) 58%, rgba(8,8,8,.66) 100%),
		linear-gradient(90deg, rgba(8,8,8,.52) 0%, rgba(8,8,8,.12) 55%, rgba(8,8,8,0) 100%) !important;
}
.potus-hero .potus-eyebrow { text-shadow: 0 1px 8px rgba(0,0,0,.6); }
.potus-hero .potus-h1, .potus-hero .potus-lede { text-shadow: 0 1px 12px rgba(0,0,0,.42); }

/* #7 Card grids → centred flex so a trailing/orphan card never leaves an L-shaped void */
.potus-grid--3, .potus-archive, .potus-quotes {
	display: flex; flex-wrap: wrap; justify-content: center; gap: 26px;
}
.potus-grid--3 > .potus-card,
.potus-archive > li, .potus-archive > .wp-block-post,
.potus-quotes > .potus-quote {
	flex: 1 1 300px; max-width: 384px; min-width: 264px;
}

/* #8 Constrain shortcode grids to the content column (rendered outside .potus-wrap) */
.potus-invwrap { max-width: 1200px; margin-inline: auto; padding-inline: clamp(20px, 5vw, 40px); }
.potus-fleet { max-width: 1200px; margin-inline: auto; padding-inline: clamp(20px, 5vw, 40px); }
.potus-booking-wrap { max-width: 1200px; margin-inline: auto; padding: 0 clamp(20px, 5vw, 40px) clamp(56px, 8vw, 100px); }

/* #4 + #12 My Account: constrain + brand-style the native WP login form */
.potus-account { max-width: 480px; margin-inline: auto; padding: clamp(120px, 13vh, 168px) clamp(20px, 5vw, 40px) clamp(64px, 9vh, 110px); }
.potus-account h2 { font-family: var(--display); font-weight: 700; font-size: clamp(1.6rem, 3vw, 2.1rem); margin-bottom: 20px; color: #212121; }
.potus-account form { display: flex; flex-direction: column; }
.potus-account label { font-weight: 600; font-size: 14px; color: #212121; margin: 10px 0 5px; }
.potus-account input[type=text], .potus-account input[type=password], .potus-account input[type=email] {
	width: 100%; padding: 12px 14px; border: 1px solid rgba(33,33,33,.18); border-radius: 9px; font: 400 15px var(--body); background: #fff;
}
.potus-account input:focus { outline: none; border-color: #6cc24a; box-shadow: 0 0 0 3px rgba(108,194,74,.18); }
.potus-account .login-remember { display: flex; align-items: center; gap: 8px; font-size: 14px; margin: 12px 0; font-weight: 400; }
.potus-account .login-remember label { margin: 0; font-weight: 400; }
.potus-account input[type=checkbox] { accent-color: #6cc24a; width: auto; }
.potus-account #wp-submit, .potus-account .button-primary {
	background: #6cc24a; color: #fff; border: none; border-radius: 9px; padding: 14px 22px;
	font: 600 15px var(--body); text-transform: uppercase; letter-spacing: .06em; cursor: pointer; margin-top: 14px; width: 100%;
}
.potus-account #wp-submit:hover, .potus-account .button-primary:hover { background: #4ea336; }
.potus-account .potus-bookings { width: 100%; border-collapse: collapse; margin-top: 18px; }
.potus-account .potus-bookings th, .potus-account .potus-bookings td { text-align: left; padding: 9px 8px; border-bottom: 1px solid #e5e7eb; font-size: 14px; }
.potus-account p.muted { color: #6b7280; font-size: 14px; margin-top: 14px; }

/* #13 Section intros: cap the lede measure so it aligns left with the heading (no drift) */
.potus-sec .potus-lede { max-width: 62ch; }

/* #14 WhatsApp FAB: clearly above content, in the gutter */
.potus-wa { z-index: 95; right: 22px; bottom: 22px; }

/* #15 CTA band: deeper green so white heading/body clear contrast; buttons via ghost rule above */
.potus-cta.potus-sec--green { background: linear-gradient(135deg, #4ea336 0%, #3c7f2b 100%); }
.potus-cta .potus-lede { color: rgba(255,255,255,.94); }

/* #17 About value chips: kill default <ul> bullets, lay out as pills */
.potus-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 12px; }
.potus-chips .potus-chip {
	display: inline-flex; align-items: center; padding: 9px 18px; border-radius: 999px;
	background: #eef7e9; color: #2f6d1c; font: 600 14px var(--body); border: 1px solid #d7ead0; cursor: default;
}

/* #18 Clientele: distribute across the full width, normalise sizes */
.potus-clients { justify-content: space-around; gap: 30px 40px; }
.potus-client img { max-height: 44px; width: auto; max-width: 150px; object-fit: contain; }

/* #19 Testimonials: name and role on separate lines */
.potus-quote__cite { display: flex; flex-direction: column; }
.potus-quote__name { display: block; font-weight: 700; color: #212121; }
.potus-quote__role { display: block; color: #6b7280; font-size: 13.5px; margin-top: 2px; }

/* #20 Card spec rows: reserve height so footers align within a grid */
.potus-card__specs { min-height: 46px; align-content: flex-start; }

/* #23 Services: tighter icon-to-title gap; cards size to content */
.potus-services { align-items: start; }
.potus-service__icon { margin-bottom: 16px; }
.potus-service .potus-h3 { margin-top: 0; }

/* #27 Footer social: lift contrast off near-black */
.potus-footer__social a { background: rgba(255,255,255,.12); color: rgba(255,255,255,.85); }
.potus-footer__social a:hover { background: #6cc24a; color: #fff; }

/* Booking wizard step navigation */
.potus-wizard__nav { display: flex; justify-content: space-between; gap: 12px; margin-top: 24px; }
.potus-wizard__nav--end { justify-content: flex-end; }
.potus-wizard:not(.potus-wizard--js) [data-wizard-next],
.potus-wizard:not(.potus-wizard--js) [data-wizard-back] { display: none; }

/* Defensive: reserve card image box so a slow lazy-load never collapses layout */
.potus-card__media { aspect-ratio: 16 / 11; background: #eef1ee; }

/* Kill any stray page background tint on flat pages */
body { background: #ffffff; }

/* #8b Constrain tours/accommodation shortcode grids (rendered outside .potus-wrap); fleet's grid already sits in .potus-fleet */
.potus-grid--3 { max-width: 1200px; margin-inline: auto; padding-inline: clamp(20px, 5vw, 40px); }
.potus-fleet .potus-grid--3 { max-width: none; padding-inline: 0; }

/* #9 Tour detail with no inclusions/areas → hide the empty column, centre the quote card */
.potus-tourdetail__main:not(:has(h2)) { display: none; }
.potus-tourdetail:has(.potus-tourdetail__main:not(:has(h2))) { display: block; max-width: 560px; margin-inline: auto; }
.potus-tourdetail:has(.potus-tourdetail__main:not(:has(h2))) .potus-tourdetail__aside { width: 100%; }

/* Split-banner headline legibility — deeper bottom scrim */
.potus-split__item::after { background: linear-gradient(180deg, rgba(8,8,8,.14) 0%, rgba(8,8,8,.54) 54%, rgba(8,8,8,.86) 100%); }

/* ==================================================================
 * BOOKING ENGINE 2.0 (2026-07-19) — reservation wizard, home
 * booking-search widget, success panel. React BookingPage aesthetic
 * on the POTUS design system (white cards, green accents, 9px radii).
 * ================================================================== */

/* ---------- home booking-search widget (React BookingWidget) ---------- */
.potus-hero__bsw { width: 100%; margin-top: 26px; }
.potus-bsw {
	background: rgba(255, 255, 255, .92);
	-webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
	border-radius: 14px; overflow: hidden;
	box-shadow: 0 30px 70px rgba(0, 0, 0, .35);
	border: 1px solid rgba(255, 255, 255, .5);
}
.potus-bsw__tabs { display: flex; border-bottom: 1px solid rgba(33, 33, 33, .1); }
.potus-bsw__tab {
	flex: 1 1 0; display: inline-flex; align-items: center; justify-content: center; gap: 9px;
	padding: 17px 12px; border: none; cursor: pointer;
	background: rgba(247, 250, 246, .7); color: #6b7280;
	font: 700 12.5px/1 var(--body); letter-spacing: .09em; text-transform: uppercase;
	border-bottom: 2px solid transparent;
	transition: background .16s var(--ease), color .16s var(--ease), border-color .16s var(--ease);
}
.potus-bsw__tab:hover { background: rgba(255, 255, 255, .85); color: #2b2b2b; }
.potus-bsw__tab.is-active { background: #ffffff; color: #4ea336; border-bottom-color: #6cc24a; }
.potus-bsw__tab .potus-i { width: 18px; height: 18px; fill: currentColor; }
.potus-bsw__form {
	display: flex; flex-wrap: wrap; align-items: flex-end; gap: 16px;
	padding: clamp(20px, 3vw, 30px);
}
.potus-bsw__panel { display: flex; flex-wrap: wrap; gap: 16px; flex: 1 1 auto; }
.potus-bsw__panel[hidden] { display: none; }
.potus-bsw__field { display: flex; flex-direction: column; gap: 7px; flex: 1 1 170px; min-width: 0; }
.potus-bsw__field--grow { flex: 1.6 1 220px; }
.potus-bsw__label {
	font: 700 10.5px/1 var(--body); letter-spacing: .14em; text-transform: uppercase; color: #6b7280;
}
.potus-bsw__control {
	position: relative; display: flex; align-items: center;
	background: #ffffff; border: 1px solid #e5e7eb; border-radius: 10px;
	transition: border-color .14s var(--ease), box-shadow .14s var(--ease);
}
.potus-bsw__control:focus-within { border-color: #6cc24a; box-shadow: 0 0 0 3px rgba(108, 194, 74, .16); }
.potus-bsw__control .potus-i { width: 17px; height: 17px; fill: #9aa2a8; margin-left: 13px; flex: none; }
.potus-bsw__control input, .potus-bsw__control select {
	width: 100%; min-width: 0; border: none; outline: none; background: transparent;
	padding: 13px 13px 13px 10px; font: 500 14.5px/1.3 var(--body); color: #212121;
	appearance: none; -webkit-appearance: none;
}
.potus-bsw__submit { flex: 0 0 auto; padding-block: 14px; }
.potus-bsw__submit .potus-i { width: 17px; height: 17px; fill: #ffffff; }

/* ---------- wizard shell ---------- */
.potus-bw { display: flex; flex-direction: column; gap: 26px; }
.potus-bw__progress { max-width: 100%; }
.potus-bw__bar { height: 9px; border-radius: 999px; background: #e5e7eb; overflow: hidden; }
.potus-bw__fill { display: block; height: 100%; border-radius: 999px; background: #6cc24a; transition: width .45s var(--ease); }
.potus-bw__plabels { display: flex; justify-content: space-between; margin-top: 9px; }
.potus-bw__plabels span { font: 700 11px/1 var(--body); letter-spacing: .12em; text-transform: uppercase; color: #b9bfc6; }
.potus-bw__plabels span.is-active { color: #4ea336; }
/* Progress bar + tabs + chips + summary are JS-only affordances. */
.potus-bw:not(.potus-bw--js) .potus-bw__progress,
.potus-bw:not(.potus-bw--js) .potus-bw__tabs,
.potus-bw:not(.potus-bw--js) .potus-bw__cats,
.potus-bw:not(.potus-bw--js) .potus-bw__aside,
.potus-bw:not(.potus-bw--js) [data-bw-next],
.potus-bw:not(.potus-bw--js) [data-bw-back] { display: none; }
.potus-bw--js .potus-step[hidden] { display: none; }
.potus-bw--js .potus-bw__group { display: none; }
.potus-bw__group { font: 600 1.05rem/1.2 var(--display); color: #212121; margin: 10px 0 2px; }
.potus-bw__cats[hidden], .potus-bw__none[hidden], .potus-bw__aside[hidden] { display: none; }

.potus-bw__layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 30px; align-items: start; }
.potus-bw--js .potus-bw__layout { grid-template-columns: minmax(0, 1fr) 330px; }
.potus-bw--js .potus-bw__layout:has(.potus-bw__aside[hidden]) { grid-template-columns: minmax(0, 1fr); }
.potus-bw__main { min-width: 0; }

/* ---------- wizard step 1: tabs / when / list ---------- */
.potus-bw__tabs { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 4px; }
.potus-bw__tab {
	display: inline-flex; align-items: center; gap: 8px; cursor: pointer;
	padding: 11px 18px; border-radius: 999px; border: 1px solid #e5e7eb; background: #ffffff;
	font: 600 13px/1 var(--body); letter-spacing: .04em; text-transform: uppercase; color: #6b7280;
	transition: background .16s var(--ease), color .16s var(--ease), border-color .16s var(--ease);
}
.potus-bw__tab:hover { border-color: #6cc24a; color: #4ea336; }
.potus-bw__tab.is-active { background: #212121; border-color: #212121; color: #ffffff; }
.potus-bw__tab .potus-i { width: 16px; height: 16px; fill: currentColor; }

.potus-bw__when { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.potus-bw__when .potus-field { margin-bottom: 0; }
.potus-bw__when .potus-field[hidden] { display: none; }
.potus-bw__cats { margin: 2px 0 0; }

.potus-bw__list { display: flex; flex-direction: column; gap: 16px; }
.potus-bwitem {
	position: relative; display: grid; grid-template-columns: 236px minmax(0, 1fr); gap: 0;
	background: #ffffff; border: 1px solid #e5e7eb; border-radius: 12px; overflow: hidden;
	cursor: pointer; transition: border-color .18s var(--ease), box-shadow .18s var(--ease), transform .18s var(--ease);
}
.potus-bwitem:hover { box-shadow: 0 16px 36px rgba(33, 33, 33, .1); border-color: #d6ecc9; }
.potus-bwitem.is-selected {
	border-color: #6cc24a; box-shadow: 0 0 0 3px rgba(108, 194, 74, .18), 0 16px 36px rgba(33, 33, 33, .1);
	transform: scale(1.005);
}
.potus-bwitem[hidden] { display: none; }
.potus-bwitem__radio { position: absolute; opacity: 0; pointer-events: none; }
.potus-bwitem__radio:focus-visible ~ .potus-bwitem__body { outline: 2px solid #6cc24a; outline-offset: -2px; border-radius: 9px; }
.potus-bwitem__media { position: relative; display: block; min-height: 176px; background: #eef1ee; }
.potus-bwitem__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.potus-bwitem__body { display: flex; flex-direction: column; gap: 12px; padding: 18px 20px; min-width: 0; }
.potus-bwitem__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.potus-bwitem__idty { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.potus-bwitem__name { font: 600 1.15rem/1.25 var(--display); letter-spacing: -.01em; color: #212121; }
.potus-bwitem__loc { display: inline-flex; align-items: center; gap: 5px; font: 500 12.5px/1.3 var(--body); color: #6b7280; }
.potus-bwitem__loc .potus-i { width: 13px; height: 13px; fill: #9aa2a8; flex: none; }
.potus-bwitem__price { display: flex; flex-direction: column; align-items: flex-end; text-align: right; flex: none; }
.potus-bwitem__pnote { font: 600 10px/1.2 var(--body); letter-spacing: .08em; text-transform: uppercase; color: #6b7280; }
.potus-bwitem__pval { font: 700 1.45rem/1.1 var(--display); color: #212121; letter-spacing: -.01em; }
.potus-bwitem__pval--enq { font-size: 1.05rem; color: #4ea336; }
.potus-bwitem__punit { font: 500 11px/1.3 var(--body); letter-spacing: .06em; text-transform: uppercase; color: #6b7280; }
.potus-bwitem__specs { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.potus-bwitem__cta { display: flex; justify-content: flex-end; margin-top: auto; }
.potus-bwitem.is-selected .potus-bwitem__btn { background: #4ea336; }
.potus-bw:not(.potus-bw--js) .potus-bwitem__btn { display: none; }
.potus-bw:not(.potus-bw--js) .potus-bwitem__radio {
	position: static; opacity: 1; pointer-events: auto; width: 20px; height: 20px;
	margin: 16px 0 0 16px; accent-color: #6cc24a;
}

/* ---------- wizard step 2: billing note ---------- */
.potus-bw__billing {
	display: flex; gap: 16px; align-items: flex-start;
	background: #eef7e9; border: 1px solid #cbe8bb; border-radius: 12px; padding: 18px 20px;
}
.potus-bw__billicon {
	flex: none; width: 44px; height: 44px; border-radius: 50%;
	background: #ffffff; border: 1px solid #cbe8bb;
	display: inline-flex; align-items: center; justify-content: center;
}
.potus-bw__billicon .potus-i { width: 20px; height: 20px; fill: #4ea336; }
.potus-bw__billbody { display: flex; flex-direction: column; gap: 5px; font: 400 14px/1.55 var(--body); color: #3d5233; }
.potus-bw__billbody strong { font: 700 15px/1.3 var(--display); color: #212121; }
.potus-bw__billmethod {
	align-self: flex-start; margin-top: 4px; padding: 6px 10px; border-radius: 7px;
	background: rgba(255, 255, 255, .7);
	font: 700 11px/1.2 var(--body); letter-spacing: .08em; text-transform: uppercase; color: #6b7280;
}

/* ---------- wizard step 3: review ---------- */
.potus-bw__review {
	display: flex; flex-direction: column; gap: 10px;
	background: #f7faf6; border: 1px solid #e5e7eb; border-radius: 12px; padding: 18px 20px;
}
.potus-bw__reviewrow { display: flex; justify-content: space-between; gap: 18px; font: 400 14.5px/1.5 var(--body); color: #6b7280; }
.potus-bw__reviewrow strong { color: #212121; font-weight: 600; text-align: right; }
.potus-bw__reviewempty { font: 400 14.5px/1.6 var(--body); color: #6b7280; }

/* ---------- order summary (sticky aside) ---------- */
.potus-bw__aside { position: sticky; top: calc(var(--header-h) + 18px); min-width: 0; }
.potus-bw__summary {
	background: #ffffff; border: 1px solid #e5e7eb; border-radius: 12px; overflow: hidden;
	box-shadow: 0 18px 40px rgba(33, 33, 33, .1);
}
.potus-bw__sumhead { background: #212121; color: #ffffff; padding: 18px 20px; display: flex; flex-direction: column; gap: 4px; }
.potus-bw__sumhead strong { font: 700 1.05rem/1.2 var(--display); }
.potus-bw__sumhead span { font: 600 10.5px/1.3 var(--body); letter-spacing: .14em; text-transform: uppercase; color: rgba(255, 255, 255, .55); }
.potus-bw__sumbody { padding: 18px 20px; display: flex; flex-direction: column; gap: 16px; }
.potus-bw__sumitem { display: flex; gap: 13px; align-items: flex-start; }
.potus-bw__sumitem img { width: 66px; height: 66px; border-radius: 9px; object-fit: cover; flex: none; background: #eef1ee; }
.potus-bw__sumitem img[hidden] { display: none; }
.potus-bw__sumitem div { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.potus-bw__sumitem strong { font: 600 14.5px/1.3 var(--display); color: #212121; }
.potus-bw__sumitem span { font: 400 12.5px/1.4 var(--body); color: #6b7280; }
.potus-bw__sumrows { margin: 0; display: flex; flex-direction: column; gap: 9px; border-top: 1px solid #f0f2ef; padding-top: 14px; }
.potus-bw__sumrows > div { display: flex; justify-content: space-between; gap: 14px; }
.potus-bw__sumrows > div[hidden] { display: none; }
.potus-bw__sumrows dt { font: 400 13.5px/1.4 var(--body); color: #6b7280; }
.potus-bw__sumrows dd { margin: 0; font: 600 13.5px/1.4 var(--body); color: #212121; text-align: right; }
.potus-bw__sumcalc { background: #f7faf6; border-radius: 10px; padding: 14px 15px; display: flex; flex-direction: column; gap: 8px; }
.potus-bw__sumcalc > div { display: flex; justify-content: space-between; gap: 14px; font: 400 13.5px/1.4 var(--body); color: #4b4b4b; }
.potus-bw__sumcalc > div span:last-child { font-weight: 600; color: #212121; }
.potus-bw__sumtotal { border-top: 1px solid #e5e7eb; padding-top: 9px; margin-top: 2px; align-items: center; }
.potus-bw__sumtotal span:first-child { font-weight: 700; color: #212121; }
.potus-bw__sumcalc .potus-bw__sumtotal span:last-child { font: 700 1.35rem/1.1 var(--display); color: #4ea336; }
.potus-bw__sumnote { font: 400 11.5px/1.5 var(--body); color: #6b7280; margin: 0; }

/* ---------- success panel ---------- */
.potus-bw--done { align-items: center; }
.potus-bw__success { max-width: 640px; margin-inline: auto; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 18px; }
.potus-bw__check {
	width: 84px; height: 84px; border-radius: 50%; background: #eef7e9;
	display: inline-flex; align-items: center; justify-content: center;
	box-shadow: inset 0 2px 8px rgba(78, 163, 54, .18);
}
.potus-bw__check .potus-i { width: 40px; height: 40px; fill: #4ea336; }
.potus-bw__successcard {
	position: relative; overflow: hidden; width: 100%; text-align: left;
	background: #ffffff; border: 1px solid #e5e7eb; border-radius: 12px;
	box-shadow: 0 18px 40px rgba(33, 33, 33, .1); padding: 24px 26px 22px 30px;
}
.potus-bw__successcard::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: #6cc24a; }
.potus-bw__successgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.potus-bw__successlabel { display: block; font: 700 10.5px/1.3 var(--body); letter-spacing: .14em; text-transform: uppercase; color: #9aa2a8; margin-bottom: 4px; }
.potus-bw__successref { font: 700 1.3rem/1.2 var(--display); color: #212121; letter-spacing: .01em; }
.potus-bw__successstatus { font: 700 1.15rem/1.3 var(--display); color: #b58900; }
.potus-bw__successnote {
	display: flex; gap: 10px; align-items: flex-start; margin: 18px 0 0; padding-top: 16px;
	border-top: 1px solid #f0f2ef; font: 400 14px/1.6 var(--body); color: #6b7280;
}
.potus-bw__successnote .potus-i { width: 19px; height: 19px; fill: #4ea336; flex: none; margin-top: 2px; }

/* Invalid field state (wizard JS validation) */
.potus-form .is-invalid { border-color: #b3261e !important; box-shadow: 0 0 0 3px rgba(179, 38, 30, .14) !important; }

/* ---------- wizard/search responsive ---------- */
@media (max-width: 1024px) {
	.potus-bw--js .potus-bw__layout { grid-template-columns: minmax(0, 1fr); }
	.potus-bw__aside { position: static; }
}
@media (max-width: 760px) {
	.potus-bwitem { grid-template-columns: 1fr; }
	.potus-bwitem__media { min-height: 0; aspect-ratio: 16 / 9; position: relative; }
	.potus-bw__when { grid-template-columns: 1fr 1fr; }
	.potus-bw__when .potus-bw__guestsfield { grid-column: 1 / -1; }
	.potus-bwitem__top { flex-direction: column; gap: 8px; }
	.potus-bwitem__price { align-items: flex-start; text-align: left; }
	.potus-bsw__form { flex-direction: column; align-items: stretch; }
	.potus-bsw__submit { width: 100%; }
	.potus-bsw__tab span { display: none; }
	.potus-bsw__tab .potus-i { width: 20px; height: 20px; }
}

/* ==================================================================
 * MOBILE PASS (2026-07-19) — iOS zoom, tap targets, FAB clearance,
 * ≤480 tier. Plan §mobile: no <16px inputs, ≥44px targets at 640.
 * ================================================================== */
@media (max-width: 640px) {
	/* iOS Safari zooms on focus when an input is <16px. */
	.potus-form input[type="text"], .potus-form input[type="email"], .potus-form input[type="tel"],
	.potus-form input[type="date"], .potus-form input[type="number"], .potus-form select, .potus-form textarea,
	.potus-account input[type=text], .potus-account input[type=password], .potus-account input[type=email],
	.potus-bsw__control input, .potus-bsw__control select {
		font-size: 16px;
	}
	/* Primary card CTAs / filter chips / wizard tabs — comfortable thumbs. */
	.potus-btn--sm { min-height: 44px; padding-block: 12px; }
	.potus-chip { min-height: 44px; padding-block: 11px; }
	.potus-bw__tab, .potus-bsw__tab { min-height: 44px; }
	.potus-navtoggle { width: 48px; height: 48px; }
	/* Reserve space so the WhatsApp FAB (58px, bottom-right) never covers
	   the footer legal row or a final CTA. */
	.potus-footer__inner { padding-bottom: 104px; }
	.potus-bw__when { grid-template-columns: 1fr; }
	.potus-bw__when .potus-bw__guestsfield { grid-column: auto; }
}

@media (max-width: 480px) {
	.potus-wrap { padding-inline: 18px; }
	.potus-sec { padding-block: clamp(44px, 11vw, 64px); }
	.potus-h1 { font-size: clamp(1.9rem, 8.6vw, 2.4rem); }
	.potus-h2 { font-size: clamp(1.45rem, 6.4vw, 1.9rem); }
	.potus-lede { font-size: 1rem; }
	.potus-hero__content, .potus-hero__inner {
		padding-top: calc(var(--header-h) + 44px);
		padding-bottom: 48px;
	}
	.potus-card__body { padding: 16px; gap: 12px; }
	.potus-bwitem__body { padding: 15px 16px; }
	.potus-bw__sumbody, .potus-bw__sumhead { padding-inline: 16px; }
	.potus-wa { width: 52px; height: 52px; right: 16px; bottom: 16px; }
	.potus-wa svg { width: 26px; height: 26px; }
	.potus-footer__inner { padding-bottom: 96px; }
	.potus-btnrow .potus-btn { flex: 1 1 auto; }
	.potus-bw__successgrid { grid-template-columns: 1fr; }
}

/* ==================================================================
 * AUDIT FIX PASS 3 (2026-07-19) — deep-sweep remediation
 * ================================================================== */

/* Split-banner headings are h2.potus-h3 in the pattern markup — the old
   `.potus-split__body h3` element selector never matched, so headings fell
   back to dark .potus-h3 ink over photography. Cover both levels. */
.potus-split__body h2, .potus-split__body h3 {
	font: 700 clamp(1.4rem, 2.4vw, 1.9rem)/1.15 var(--display); color: #ffffff;
}
.potus-split__body .potus-eyebrow { color: #8fe06a; }

/* My Account: 16px submit label on mobile for visual parity with inputs. */
@media (max-width: 640px) {
	.potus-account #wp-submit, .potus-account .button-primary { font-size: 16px; }
}

/* ==================================================================
 * xEO CONTENT ENGINE (2026-07-19) — breadcrumbs, hero strip, entity
 * detail (specs/amenities), FAQ accordion, lite video embed, gallery,
 * related cards, card play badge.
 * ================================================================== */

/* ---------- breadcrumb bar ---------- */
.potus-crumbs { background: #ffffff; border-bottom: 1px solid #f0f2ef; }
.potus-crumbs__list {
	list-style: none; margin: 0; padding: 13px 0;
	display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px;
}
.potus-crumbs__item { display: inline-flex; align-items: center; gap: 8px; font: 500 13px/1.4 var(--body); }
.potus-crumbs__item a { color: #6b7280; }
.potus-crumbs__item a:hover { color: #4ea336; }
.potus-crumbs__item [aria-current="page"] { color: #212121; font-weight: 600; }
.potus-crumbs__sep { color: #c4c9c1; }

/* ---------- hero strip (price pill + CTA inside single heroes) ---------- */
.potus-herostrip {
	display: inline-flex; flex-wrap: wrap; align-items: center; gap: 12px 16px;
	margin-top: 18px; padding: 12px 16px; border-radius: 12px;
	background: rgba(255, 255, 255, .12);
	-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	border: 1px solid rgba(255, 255, 255, .22);
}
.potus-herostrip .potus-price { flex-direction: row; align-items: baseline; gap: 7px; }
.potus-herostrip .potus-price__note { color: rgba(255, 255, 255, .75); }
.potus-herostrip .potus-price__val { color: #ffffff; font-size: 1.35rem; }
.potus-herostrip .potus-price__unit { color: rgba(255, 255, 255, .75); }
.potus-herostrip .potus-price--enquire { color: #ffffff; }
.potus-herostrip__chip {
	padding: 6px 12px; border-radius: 999px;
	background: rgba(255, 255, 255, .16); color: #ffffff;
	font: 600 11.5px/1 var(--body); letter-spacing: .06em; text-transform: uppercase;
}

/* Centre-align the strip within the centred page-hero */
.potus-hero--page .potus-herostrip { margin-inline: auto; justify-content: center; }

/* ---------- entity detail (shares the tour-detail grid family) ---------- */
.potus-detail .potus-tourdetail__main .potus-h3 { margin-top: 8px; }

/* Specs definition table */
.potus-specs { margin: 0; border: 1px solid #e5e7eb; border-radius: 9px; overflow: hidden; }
.potus-specs__row {
	display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 14px;
	padding: 12px 16px; border-bottom: 1px solid #f0f2ef; background: #ffffff;
}
.potus-specs__row:nth-child(even) { background: #fafcf9; }
.potus-specs__row:last-child { border-bottom: none; }
.potus-specs__row dt {
	font: 600 12px/1.5 var(--body); letter-spacing: .09em; text-transform: uppercase; color: #6b7280;
	padding-top: 2px;
}
.potus-specs__row dd { margin: 0; font: 500 15px/1.55 var(--body); color: #212121; }
.potus-specs__row dd .potus-price { flex-direction: row; align-items: baseline; gap: 6px; }
.potus-specs__row dd .potus-spec--stars { margin-right: 6px; }

/* Official-site source link in the quote card */
.potus-quote-card__source { margin: 2px 0 0; font: 500 13px/1.4 var(--body); text-align: center; }
.potus-quote-card__source a { color: #6b7280; text-decoration: underline; text-underline-offset: 3px; }
.potus-quote-card__source a:hover { color: #4ea336; }

/* ---------- FAQ accordion (details/summary, JS-free) ---------- */
.potus-faqsec { background: #f7faf6; }
.potus-faqsec__head { margin-bottom: 26px; }
.potus-faq { display: flex; flex-direction: column; gap: 12px; max-width: 860px; }
.potus-faq__item {
	background: #ffffff; border: 1px solid #e5e7eb; border-radius: 9px;
	transition: border-color .16s var(--ease), box-shadow .16s var(--ease);
}
.potus-faq__item[open] { border-color: #d6ecc9; box-shadow: 0 10px 26px rgba(33, 33, 33, .07); }
.potus-faq__q {
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	padding: 17px 20px; cursor: pointer; list-style: none;
	font: 600 1.02rem/1.4 var(--display); color: #212121;
}
.potus-faq__q::-webkit-details-marker { display: none; }
.potus-faq__q:hover { color: #4ea336; }
.potus-faq__marker { position: relative; flex: none; width: 22px; height: 22px; }
.potus-faq__marker::before, .potus-faq__marker::after {
	content: ''; position: absolute; inset: 0; margin: auto; background: #4ea336; border-radius: 2px;
	transition: transform .18s var(--ease);
}
.potus-faq__marker::before { width: 14px; height: 2.5px; }
.potus-faq__marker::after { width: 2.5px; height: 14px; }
.potus-faq__item[open] .potus-faq__marker::after { transform: rotate(90deg); }
.potus-faq__a { padding: 0 20px 18px; }
.potus-faq__a p { font: 400 15px/1.7 var(--body); color: #4b4b4b; max-width: 70ch; }

/* ---------- lite video embed ---------- */
.potus-videosec { display: flex; flex-direction: column; gap: 14px; }
.potus-videosec__head { margin-top: 8px; }
.potus-video {
	position: relative; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden;
	background: #171717; box-shadow: 0 18px 40px rgba(33, 33, 33, .14);
}
.potus-video__cta { display: block; width: 100%; height: 100%; padding: 0; border: none; cursor: pointer; background: none; }
.potus-video__cta img { width: 100%; height: 100%; object-fit: cover; opacity: .85; transition: opacity .2s var(--ease), transform .4s var(--ease); }
.potus-video__cta:hover img { opacity: 1; transform: scale(1.02); }
.potus-video__play {
	position: absolute; inset: 0; margin: auto; width: 66px; height: 66px; border-radius: 50%;
	background: #6cc24a; display: inline-flex; align-items: center; justify-content: center;
	box-shadow: 0 10px 30px rgba(0, 0, 0, .35), 0 0 0 8px rgba(108, 194, 74, .25);
	transition: transform .18s var(--ease), background .18s var(--ease);
	pointer-events: none;
}
.potus-video__cta:hover .potus-video__play { transform: scale(1.08); background: #4ea336; }
.potus-video__play svg { width: 28px; height: 28px; fill: #ffffff; margin-left: 3px; }
.potus-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---------- photo gallery ---------- */
.potus-gallerysec { display: flex; flex-direction: column; gap: 14px; }
.potus-gallerysec__head { margin-top: 8px; }
.potus-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.potus-gallery__item { margin: 0; border-radius: 9px; overflow: hidden; background: #eef1ee; }
.potus-gallery__item:first-child { grid-column: span 2; grid-row: span 2; }
.potus-gallery__item a { display: block; height: 100%; }
.potus-gallery__item img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 3; transition: transform .4s var(--ease); }
.potus-gallery__item:first-child img { aspect-ratio: auto; min-height: 100%; }
.potus-gallery__item:hover img { transform: scale(1.04); }

/* ---------- related cards ---------- */
.potus-related .potus-sechead { margin-bottom: 30px; }
.potus-related__grid { margin-top: 0; }

/* ---------- card play badge ---------- */
.potus-card__play {
	position: absolute; right: 12px; bottom: 12px; z-index: 2;
	width: 38px; height: 38px; border-radius: 50%;
	background: rgba(108, 194, 74, .95); box-shadow: 0 6px 16px rgba(0, 0, 0, .3);
	display: inline-flex; align-items: center; justify-content: center;
}
.potus-card__play svg { width: 17px; height: 17px; fill: #ffffff; margin-left: 2px; }

/* ---------- responsive ---------- */
@media (max-width: 760px) {
	.potus-specs__row { grid-template-columns: 1fr; gap: 3px; padding: 11px 14px; }
	.potus-gallery { grid-template-columns: repeat(2, 1fr); }
	.potus-gallery__item:first-child { grid-column: span 2; grid-row: auto; }
	.potus-herostrip { padding: 10px 14px; gap: 10px 12px; }
	.potus-crumbs__list { padding: 11px 0; }
}
@media (max-width: 640px) {
	.potus-faq__q { min-height: 44px; padding: 14px 16px; }
	.potus-faq__a { padding: 0 16px 16px; }
	.potus-video__play { width: 56px; height: 56px; }
}
