/**
 * Tour template styles — extracted from single-tour.php on 2026-08-27.
 *
 * This shipped inline in every one of the 94 tour responses: 54,933 bytes
 * of CSS re-sent on each request and impossible to cache. inc/epl-assets.php
 * picks this file up automatically from the template basename, so no
 * enqueue code was needed.
 *
 * --ept-accent is the one value the template computed. Its current value is
 * baked in below as the default; single-tour.php still emits a small inline
 * override so a brand change in the field engine keeps working.
 */
/* ═══ tokens ═══════════════════════════════════════════════════════════ */
.ept-page{
	--ept-ink:var(--epl-ink); --ept-ink-80:var(--epl-ink-70); --ept-ink-60:var(--epl-ink-50); --ept-ink-40:var(--epl-ink-30);
	--ept-accent:var(--epl-accent); --ept-accent-dk:var(--epl-accent-dk); --ept-accent-sf:var(--epl-accent-sf);
	--ept-cream:var(--epl-cream); --ept-sand:var(--epl-sand); --ept-line:var(--epl-line); --ept-line-lt:var(--epl-line-lt);
	--ept-green:#2f7d54; --ept-green-sf:#eef6f1; --ept-red:#b4483f; --ept-red-sf:#fbf0ef;
	--ept-gold:var(--epl-gold); --ept-wa:var(--epl-wa);
	--ept-r:14px; --ept-r-sm:9px; --ept-r-lg:22px;
	--ept-sh:0 1px 2px rgba(16,16,16,.04), 0 8px 24px rgba(16,16,16,.06);
	--ept-sh-lg:0 6px 16px rgba(16,16,16,.08), 0 28px 56px rgba(16,16,16,.12);
	color:var(--ept-ink); line-height:1.6; background:#fff;
	font-size:16px; -webkit-font-smoothing:antialiased;
}
.ept-page *,.ept-page *::before,.ept-page *::after{ box-sizing:border-box; }
.ept-page h1,.ept-page h2,.ept-page h3,.ept-page h4{ margin:0 0 .5em; line-height:1.18; letter-spacing:-.015em; color:var(--ept-ink); font-weight:700; }
.ept-page p{ margin:0 0 1em; }
.ept-page p:last-child{ margin-bottom:0; }
.ept-page a{ color:var(--ept-accent-dk); }
.ept-page img{ max-width:100%; height:auto; display:block; }
.ept-wrap{ max-width:var(--epl-container); margin:0 auto; padding:0 24px; box-sizing:border-box; padding-inline:var(--epl-gutter); }

/* ═══ buttons ══════════════════════════════════════════════════════════ */
.ept-btn{
	display:inline-flex; align-items:center; justify-content:center; gap:9px;
	padding:14px 24px; border-radius:100px; border:1.5px solid transparent;
	font-size:15px; font-weight:700; line-height:1; text-decoration:none !important;
	cursor:pointer; transition:.18s ease; white-space:nowrap;
}
.ept-btn:hover{ transform:translateY(-1px); box-shadow:var(--ept-sh); }
.ept-btn-primary{ background:var(--ept-accent); color:#fff !important; }
.ept-btn-primary:hover{ background:var(--ept-accent-dk); color:#fff !important; }
.ept-btn-wa{ background:var(--ept-wa); color:#fff !important; }
.ept-btn-wa:hover{ background:#1eb958; color:#fff !important; }
.ept-btn-ghost{ background:#fff; color:var(--ept-ink) !important; border-color:var(--ept-line); }
.ept-btn-ghost:hover{ border-color:var(--ept-accent); }
.ept-btn-block{ width:100%; }

/* ═══ breadcrumb + head ════════════════════════════════════════════════ */
.ept-crumb{ background:var(--ept-cream); border-bottom:1px solid var(--ept-line-lt); }
.ept-crumb ol{ list-style:none; margin:0; padding:13px 0; display:flex; flex-wrap:wrap; align-items:center; gap:7px; font-size:13px; color:var(--ept-ink-60); }
.ept-crumb-yoast{ display:block; padding:5px 0; font-size:13px; line-height:1.5; color:var(--ept-ink-60); }
.ept-crumb-yoast a{ color:var(--ept-ink-60); text-decoration:none; }
.ept-crumb-yoast a:hover{ color:var(--ept-accent-dk); }
.ept-crumb-yoast .breadcrumb_last{ color:var(--ept-ink); font-weight:600; }
.ept-crumb li{ display:flex; align-items:center; gap:7px; }
.ept-crumb li+li::before{ content:'›'; color:var(--ept-ink-40); }
.ept-crumb a{ color:var(--ept-ink-60); text-decoration:none; }
.ept-crumb a:hover{ color:var(--ept-accent-dk); }
.ept-crumb li[aria-current]{ color:var(--ept-ink); font-weight:600; }

.ept-head{ padding:30px 0 18px; }
.ept-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.ept-chip{
	display:inline-flex; align-items:center; gap:6px; padding:5px 13px; border-radius:100px;
	background:var(--ept-sand); border:1px solid var(--ept-line); font-size:12.5px; font-weight:600; color:var(--ept-ink-80);
	text-decoration:none;
}
.ept-chip-promo{ background:var(--ept-accent-sf); border-color:#efd6c0; color:var(--ept-accent-dk); }
.ept-head h1{ font-size:44px; margin-bottom:14px; max-width:30ch; }
.ept-headmeta{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 22px; font-size:14.5px; color:var(--ept-ink-60); }
.ept-headmeta strong{ color:var(--ept-ink); }
.ept-rate{ display:inline-flex; align-items:center; gap:7px; }
.ept-star{ color:#d8d4cb; font-size:16px; line-height:1; }
.ept-star.is-on{ color:var(--ept-gold); }
.ept-star.is-half{ background:linear-gradient(90deg,var(--ept-gold) 50%,#d8d4cb 50%); -webkit-background-clip:text; background-clip:text; color:transparent; }
.ept-meta-i{ display:inline-flex; align-items:center; gap:7px; }
.ept-meta-i svg{ width:16px; height:16px; flex:none; stroke:var(--ept-ink-40); }

/* ═══ gallery mosaic ═══════════════════════════════════════════════════ */
.ept-mosaic{ position:relative; display:grid; gap:8px; border-radius:var(--ept-r-lg); overflow:hidden; margin-bottom:8px;
	grid-template-columns:2fr 1fr 1fr; grid-template-rows:repeat(2,minmax(0,1fr)); height:clamp(300px,42vw,480px); }
.ept-mosaic figure{ margin:0; overflow:hidden; background:var(--ept-sand); }
.ept-mosaic figure:first-child{ grid-row:span 2; }
.ept-mosaic img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; cursor:zoom-in; }
.ept-mosaic figure:hover img{ transform:scale(1.045); }
.ept-mosaic-solo{ grid-template-columns:1fr; grid-template-rows:1fr; }
.ept-mosaic-solo figure:first-child{ grid-row:span 1; }
.ept-allphotos{
	position:absolute; right:16px; bottom:16px; z-index:3;
	background:rgba(255,255,255,.95); border:1px solid var(--ept-line); border-radius:100px;
	padding:10px 18px; font-size:13.5px; font-weight:700; cursor:pointer; color:var(--ept-ink);
	display:inline-flex; align-items:center; gap:8px; backdrop-filter:blur(6px);
}
.ept-allphotos:hover{ background:#fff; box-shadow:var(--ept-sh); }

/* ═══ section nav (scroll spy) ═════════════════════════════════════════ */
.ept-nav{ position:sticky; top:0; z-index:60; background:rgba(255,255,255,.96); backdrop-filter:blur(10px);
	border-bottom:1px solid var(--ept-line); margin-top:22px; }
.ept-nav-in{ display:flex; align-items:center; gap:4px; overflow-x:auto; scrollbar-width:none; }
.ept-nav-in::-webkit-scrollbar{ display:none; }
.ept-nav a{
	flex:none; padding:16px 16px 14px; font-size:14.5px; font-weight:650; color:var(--ept-ink-60);
	text-decoration:none; border-bottom:2.5px solid transparent; white-space:nowrap;
}
.ept-nav a:hover{ color:var(--ept-ink); }
.ept-nav a.is-active{ color:var(--ept-accent-dk); border-bottom-color:var(--ept-accent); }
.ept-nav-price{ margin-left:auto; display:none; align-items:center; gap:14px; padding-left:20px; }
.ept-nav.is-stuck .ept-nav-price{ display:flex; }
.ept-nav-price b{ font-size:19px; }
.ept-nav-price .ept-btn{ padding:10px 20px; font-size:14px; }

/* ═══ body grid ════════════════════════════════════════════════════════ */
.ept-body{ display:grid; grid-template-columns:minmax(0,1fr) 372px; gap:52px; padding:44px 0 20px; align-items:start; }
/* something in the stack caps bare <main> at 600px, which would strand the
   content column at 78% of the width it is given. */
.ept-page .ept-main{ max-width:none; width:auto; margin:0; }
.ept-sec{ padding:0 0 40px; scroll-margin-top:78px; }
.ept-sec:last-child{ padding-bottom:20px; }
.ept-kicker{ font-size:12.5px; font-weight:750; letter-spacing:.12em; text-transform:uppercase; color:var(--ept-accent-dk); margin-bottom:9px; }
.ept-sec h2{ font-size:clamp(23px,2.4vw,30px); margin-bottom:18px; }
.ept-lede{ font-size:17.5px; color:var(--ept-ink-80); line-height:1.7; }
.ept-prose{ color:var(--ept-ink-80); font-size:16.5px; line-height:1.75; }
.ept-prose a{ text-decoration:underline; text-underline-offset:2px; }

/* highlights */
.ept-hl{ margin-top:26px; }
.ept-hl ul{ margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr)); gap:12px; }
.ept-hl li{ list-style:none; display:flex; gap:12px; padding:16px 18px; background:var(--ept-cream);
	border:1px solid var(--ept-line-lt); border-radius:var(--ept-r); font-size:15px; line-height:1.55; color:var(--ept-ink-80); }
.ept-hl-ico{ flex:none; width:22px; height:22px; border-radius:50%; background:var(--ept-accent); color:#fff;
	display:grid; place-items:center; font-size:12px; font-weight:800; margin-top:1px; }

/* ═══ itinerary timeline ═══════════════════════════════════════════════ */
.ept-itin-head{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
.ept-itin-toggle{ background:none; border:1px solid var(--ept-line); border-radius:100px; padding:8px 16px;
	font-size:13.5px; font-weight:700; cursor:pointer; color:var(--ept-ink-80); }
.ept-itin-toggle:hover{ border-color:var(--ept-accent); color:var(--ept-accent-dk); }
.ept-itin-group+.ept-itin-group{ margin-top:34px; }
.ept-itin-glabel{ font-size:15px; font-weight:750; color:var(--ept-ink); margin-bottom:14px;
	display:inline-block; padding:6px 15px; border-radius:100px; background:var(--ept-accent-sf); color:var(--ept-accent-dk); }
.ept-tl{ position:relative; margin:0; padding:0 0 0 46px; list-style:none; }
.ept-tl::before{ content:''; position:absolute; left:15px; top:8px; bottom:8px; width:2px; background:var(--ept-line); }
.ept-day{ position:relative; margin-bottom:12px; }
.ept-day::before{
	content:attr(data-n); position:absolute; left:-46px; top:12px; width:32px; height:32px; border-radius:50%;
	background:#fff; border:2px solid var(--ept-line); color:var(--ept-ink-60);
	display:grid; place-items:center; font-size:13px; font-weight:800; z-index:1; transition:.2s;
}
.ept-day.is-open::before{ background:var(--ept-accent); border-color:var(--ept-accent); color:#fff; }
.ept-day-btn{
	width:100%; text-align:left; background:#fff; border:1px solid var(--ept-line); border-radius:var(--ept-r);
	padding:16px 52px 16px 20px; cursor:pointer; position:relative; transition:.18s; font:inherit;
}
.ept-day-btn:hover{ border-color:var(--ept-accent); box-shadow:var(--ept-sh); }
.ept-day.is-open .ept-day-btn{ border-color:var(--ept-accent); border-bottom-left-radius:0; border-bottom-right-radius:0; }
.ept-day-kicker{ font-size:12px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--ept-accent-dk); display:block; margin-bottom:4px; }
.ept-day-title{ font-size:17px; font-weight:700; color:var(--ept-ink); line-height:1.35; }
.ept-day-btn::after{
	content:''; position:absolute; right:22px; top:50%; width:9px; height:9px; margin-top:-6px;
	border-right:2px solid var(--ept-ink-40); border-bottom:2px solid var(--ept-ink-40);
	transform:rotate(45deg); transition:.2s;
}
.ept-day.is-open .ept-day-btn::after{ transform:rotate(-135deg); margin-top:-2px; border-color:var(--ept-accent); }
.ept-day-body{ display:none; border:1px solid var(--ept-accent); border-top:0; border-radius:0 0 var(--ept-r) var(--ept-r);
	padding:18px 22px 20px; background:#fff; color:var(--ept-ink-80); font-size:15.5px; line-height:1.72; }
.ept-day.is-open .ept-day-body{ display:block; }
.ept-day-body ul{ padding-left:20px; }
.ept-day-body img{ border-radius:var(--ept-r-sm); margin:0 0; width:100%; aspect-ratio:20/8; object-fit:cover; }
.ept-day-body i.fa{ color:var(--ept-accent); margin-right:7px; }

/* ═══ included / excluded ══════════════════════════════════════════════ */
.ept-inc{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.ept-inc-panel{ border:1px solid var(--ept-line); border-radius:var(--ept-r); overflow:hidden; background:#fff; }
.ept-inc-head{ padding:15px 20px; font-size:15px; font-weight:750; display:flex; align-items:center; gap:9px; }
.ept-inc-yes .ept-inc-head{ background:var(--ept-green-sf); color:var(--ept-green); border-bottom:1px solid #dceadf; }
.ept-inc-no .ept-inc-head{ background:var(--ept-red-sf); color:var(--ept-red); border-bottom:1px solid #f0dbd9; }
.ept-inc-panel ul{ list-style:none; margin:0; padding:8px 20px 18px; }
.ept-inc-panel li{ display:flex; gap:11px; padding:8px 0; font-size:15px; line-height:1.55; color:var(--ept-ink-80); border-bottom:1px solid var(--ept-line-lt); }
.ept-inc-panel li:last-child{ border-bottom:0; }
.ept-inc-mark{ flex:none; font-weight:800; font-size:14px; margin-top:1px; }
.ept-inc-yes .ept-inc-mark{ color:var(--ept-green); }
.ept-inc-no .ept-inc-mark{ color:var(--ept-red); }
.ept-inc-grp{ margin:14px 20px 0; font-size:12px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--ept-ink-40); }
.ept-inc-grp:first-of-type{ margin-top:16px; }

/* ═══ rates ════════════════════════════════════════════════════════════ */
.ept-rates{ display:grid; grid-template-columns:repeat(auto-fit,minmax(272px,1fr)); gap:18px; }
.ept-rate-card{ border:1px solid var(--ept-line); border-radius:var(--ept-r); background:#fff; padding:24px; display:flex; flex-direction:column; }
.ept-rate-card.is-feat{ border-color:var(--ept-accent); box-shadow:var(--ept-sh); position:relative; }
.ept-rate-card.is-feat::before{ content:attr(data-badge); position:absolute; top:-11px; left:24px; background:var(--ept-accent);
	color:#fff; font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; padding:4px 12px; border-radius:100px; }
.ept-rate-card h3{ font-size:19px; margin-bottom:8px; }
.ept-rate-prop{ font-size:13.5px; color:var(--ept-ink-60); line-height:1.6; margin-bottom:16px; padding-bottom:16px; border-bottom:1px solid var(--ept-line-lt); }
.ept-rate-rows{ list-style:none; margin:0 0 20px; padding:0; }
.ept-rate-rows li{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:9px 0; font-size:14.5px; color:var(--ept-ink-60); border-bottom:1px dashed var(--ept-line-lt); }
.ept-rate-rows li:last-child{ border-bottom:0; }
.ept-rate-rows b{ font-size:20px; font-weight:750; color:var(--ept-ink); white-space:nowrap; }
.ept-rate-card .ept-btn{ margin-top:auto; }
.ept-rate-note{ margin-top:22px; font-size:14px; color:var(--ept-ink-60); line-height:1.65; }

/* ═══ good to know (accordion) ═════════════════════════════════════════ */
.ept-know{ border:1px solid var(--ept-line); border-radius:var(--ept-r); overflow:hidden; background:#fff; }
.ept-know-item+.ept-know-item{ border-top:1px solid var(--ept-line-lt); }
.ept-know-q{ width:100%; text-align:left; background:none; border:0; padding:17px 50px 17px 20px; font:inherit;
	font-size:16px; font-weight:650; color:var(--ept-ink); cursor:pointer; position:relative; }
.ept-know-q::after{ content:'+'; position:absolute; right:20px; top:50%; transform:translateY(-50%);
	font-size:20px; font-weight:400; color:var(--ept-accent); }
.ept-know-item.is-open .ept-know-q::after{ content:'–'; }
.ept-know-a{ display:none; padding:0 20px 20px; font-size:15.5px; line-height:1.72; color:var(--ept-ink-60); }
.ept-know-item.is-open .ept-know-a{ display:block; }
.ept-know-intro{ background:var(--ept-cream); border:1px solid var(--ept-line-lt); border-radius:var(--ept-r);
	padding:20px 22px; margin-bottom:18px; font-size:15.5px; line-height:1.7; color:var(--ept-ink-80); }

/* ═══ sticky rail ══════════════════════════════════════════════════════ */
.ept-card{ border:1px solid var(--ept-line); border-radius:var(--ept-r-lg); background:#fff; box-shadow:var(--ept-sh); overflow:hidden; }
.ept-card-top{ padding:22px 24px 18px; border-bottom:1px solid var(--ept-line-lt); background:linear-gradient(180deg,var(--ept-cream),#fff); }
.ept-price-lbl{ font-size:12.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--ept-ink-40); }
.ept-price{ display:flex; align-items:baseline; gap:8px; margin:5px 0 3px; }
.ept-price b{ font-size:36px; font-weight:750; letter-spacing:-.02em; line-height:1; }
.ept-price span{ font-size:14px; color:var(--ept-ink-60); }
.ept-price-sub{ font-size:13.5px; color:var(--ept-ink-60); }
.ept-card-body{ padding:20px 24px 24px; }

/* TourMaster's own enquiry form, re-skinned to sit inside the rail card. */
.ept-form .tourmaster-page-wrapper{ margin:0 !important; padding:0 !important; }
.ept-form .tourmaster-tour-booking-bar-wrap{ margin:0 !important; padding:0 !important; width:100% !important; float:none !important; }
.ept-form .tourmaster-header-price3-head{ display:none !important; }
.ept-form .tourmaster-button,.ept-form input[type=submit]{ border-radius:100px !important; font-weight:700 !important; }

/* ═══ related ══════════════════════════════════════════════════════════ */
.ept-rel{ background:var(--ept-cream); border-top:1px solid var(--ept-line); padding:56px 0 60px; margin-top:24px; }
.ept-rel h2{ font-size:clamp(22px,2.3vw,28px); margin-bottom:6px; }
.ept-rel-lede{ color:var(--ept-ink-60); font-size:16px; margin-bottom:26px; }
.ept-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(248px,1fr)); gap:20px; }
.ept-tcard{ background:#fff; border:1px solid var(--ept-line); border-radius:var(--ept-r); overflow:hidden;
	text-decoration:none !important; color:inherit !important; display:flex; flex-direction:column; transition:.2s; }
.ept-tcard:hover{ transform:translateY(-3px); box-shadow:var(--ept-sh-lg); border-color:var(--ept-accent); }
.ept-tcard-img{ aspect-ratio:16/10; overflow:hidden; background:var(--ept-sand); }
.ept-tcard-img img{ width:100%; height:100%; object-fit:cover; }
.ept-tcard-b{ padding:16px 18px 18px; display:flex; flex-direction:column; flex:1; }
.ept-tcard-dur{ font-size:12px; font-weight:750; letter-spacing:.07em; text-transform:uppercase; color:var(--ept-accent-dk); margin-bottom:7px; }
.ept-tcard h3{ font-size:16.5px; line-height:1.35; margin-bottom:12px; }
.ept-tcard-foot{ margin-top:auto; display:flex; align-items:baseline; justify-content:space-between; gap:10px; padding-top:12px; border-top:1px solid var(--ept-line-lt); }
.ept-tcard-price b{ font-size:19px; font-weight:750; }
.ept-tcard-price span{ font-size:12.5px; color:var(--ept-ink-60); }
.ept-tcard-go{ font-size:13.5px; font-weight:700; color:var(--ept-accent-dk); }

/* ═══ reviews ══════════════════════════════════════════════════════════
   Own markup (.ept-review-*), replacing TourMaster's .tourmaster-single-
   review-* — see inc/epl-tour-reviews.php (Phase 5, TOURS-MODULE-BRIEF.md). */
.ept-reviews{ padding:52px 0 10px; }
.ept-reviews h2{ font-size:clamp(22px,2.3vw,28px); }
.ept-review-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px; margin-top:24px; }
.ept-review-item{ border:1px solid var(--ept-line); border-radius:var(--ept-r); padding:18px 20px; background:#fff; }
.ept-review-user{ display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.ept-review-avatar{ flex:0 0 auto; width:40px; height:40px; border-radius:50%; background:var(--ept-accent-sf); color:var(--ept-accent-dk);
	display:flex; align-items:center; justify-content:center; font-weight:750; font-size:16px; text-transform:uppercase; }
.ept-review-name{ margin:0; font-size:14.5px; }
.ept-review-type{ font-size:12px; color:var(--ept-ink-40); }
.ept-review-desc{ font-size:13.5px; color:var(--ept-ink-60); line-height:1.55; }
.ept-review-desc p{ margin:0 0 .6em; }
.ept-review-desc p:last-child{ margin-bottom:0; }
.ept-review-meta{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:12px; padding-top:12px; border-top:1px solid var(--ept-line-lt); }
.ept-review-stars{ color:#e0a13a; font-size:13px; letter-spacing:1px; }
.ept-review-stars .ept-star-empty{ color:var(--ept-line); }
.ept-review-stars .ept-star-half{ opacity:.55; }
.ept-review-date{ font-size:12px; color:var(--ept-ink-40); }

/* ═══ mobile sticky bar ════════════════════════════════════════════════ */
.ept-mbar{
	position:fixed; left:0; right:0; bottom:0; z-index:9998; display:none;
	background:#fff; border-top:1px solid var(--ept-line); padding:10px 14px;
	box-shadow:0 -6px 24px rgba(0,0,0,.10); align-items:center; gap:12px;
	transform:translateY(110%); transition:transform .28s ease;
	padding-bottom:calc(10px + env(safe-area-inset-bottom));
}
.ept-mbar.is-on{ transform:translateY(0); }
.ept-mbar-price{ flex:1; min-width:0; line-height:1.25; }
.ept-mbar-price small{ display:block; font-size:12px; color:var(--ept-ink-40); text-transform:uppercase; letter-spacing:.06em; }
.ept-mbar-price b{ font-size:19px; }
.ept-mbar .ept-btn{ padding:12px 18px; font-size:14px; }

/* ═══ lightbox ═════════════════════════════════════════════════════════ */
.ept-lb{ position:fixed; inset:0; z-index:99999; background:rgba(10,10,10,.94); display:none; align-items:center; justify-content:center; }
.ept-lb.is-on{ display:flex; }
.ept-lb img{ max-width:92vw; max-height:82vh; border-radius:8px; }
.ept-lb-close,.ept-lb-prev,.ept-lb-next{
	position:absolute; background:rgba(255,255,255,.12); border:0; color:#fff; cursor:pointer;
	width:48px; height:48px; border-radius:50%; font-size:24px; line-height:1; display:grid; place-items:center;
}
.ept-lb-close:hover,.ept-lb-prev:hover,.ept-lb-next:hover{ background:rgba(255,255,255,.24); }
.ept-lb-close{ top:20px; right:20px; }
.ept-lb-prev{ left:22px; top:50%; margin-top:-24px; }
.ept-lb-next{ right:22px; top:50%; margin-top:-24px; }
.ept-lb-count{ position:absolute; bottom:24px; left:50%; transform:translateX(-50%); color:#fff; font-size:14px; opacity:.8; }

/* ═══ route strip ══════════════════════════════════════════════════════
   The trip drawn as a line before it is drawn as prose, so a reader knows
   the shape of the day (or the week) before committing to reading it. */
.ept-route{ background:var(--ept-ink); color:#fff; border-radius:var(--ept-r-lg); padding:22px 26px 8px; margin-bottom:26px; }
.ept-route-top{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:20px; }
.ept-route-kicker{ font-size:12px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:#f0c19d; }
.ept-route-meta{ display:flex; align-items:center; gap:18px; font-size:13.5px; color:rgba(255,255,255,.78); }
.ept-route-meta span{ display:inline-flex; align-items:center; gap:7px; }
.ept-route-meta svg{ width:14px; height:14px; stroke:#f0c19d; fill:none; }
.ept-route-rail{ position:relative; display:flex; align-items:flex-start; overflow-x:auto; padding-bottom:22px; scrollbar-width:thin; }
.ept-route-rail::-webkit-scrollbar{ height:4px; }
.ept-route-rail::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.2); border-radius:4px; }
.ept-route-node{ flex:1 1 0; min-width:92px; position:relative; text-align:center; padding-top:16px; }
.ept-route-node::before{ content:''; position:absolute; top:4px; left:50%; transform:translateX(-50%);
	width:11px; height:11px; border-radius:50%; background:var(--ept-accent); z-index:2; }
.ept-route-node.is-end::before{ background:var(--ept-ink); border:2px solid rgba(255,255,255,.45); }
.ept-route-node::after{ content:''; position:absolute; top:9px; left:50%; width:100%; height:2px; background:rgba(255,255,255,.18); z-index:1; }
.ept-route-node:last-child::after{ display:none; }
.ept-route-lbl{ display:block; font-size:12px; line-height:1.35; color:rgba(255,255,255,.9); padding:0 6px; overflow-wrap:anywhere; }
.ept-route-node.is-end .ept-route-lbl{ color:rgba(255,255,255,.6); }
.ept-route-num{ display:block; font-size:12px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:#f0c19d; margin-bottom:3px; }

/* ═══ stops timeline (day tours) ═══════════════════════════════════════ */
.ept-stops{ list-style:none; margin:0; padding:0 0 0 58px; position:relative; }
.ept-stops::before{ content:''; position:absolute; left:21px; top:14px; bottom:14px; width:2px; background:var(--ept-line); }
.ept-stop{ position:relative; margin-bottom:16px; }
.ept-stop-badge{
	position:absolute; left:-58px; top:16px; width:44px; height:44px; border-radius:13px;
	background:var(--ept-accent); color:#fff; display:grid; place-items:center; z-index:2;
	box-shadow:0 4px 10px rgba(212,134,82,.32);
}
.ept-stop-badge small{ display:block; font-size:12px; font-weight:800; letter-spacing:.1em; line-height:1; opacity:.85; }
.ept-stop-badge b{ display:block; font-size:17px; font-weight:800; line-height:1.1; }
.ept-stop-card{ background:#fff; border:1px solid var(--ept-line); border-radius:var(--ept-r); padding:22px 24px 20px; }
.ept-stop-card h3{ font-size:19px; margin:0 0 12px; }
.ept-stop-fig{ margin:0 0 14px; border-radius:var(--ept-r-sm); overflow:hidden; background:var(--ept-sand); }
.ept-stop-fig img{ width:100%; aspect-ratio:16/8; object-fit:cover; }
.ept-stop-card .ept-prose{ font-size:15.5px; }
.ept-stop-bookend{
	position:relative; display:flex; gap:15px; align-items:flex-start;
	background:var(--ept-cream); border:1px solid var(--ept-line-lt); border-radius:var(--ept-r);
	padding:18px 22px; margin-bottom:16px;
}
.ept-bookend-ico{
	position:absolute; left:-58px; top:14px; width:44px; height:44px; border-radius:13px;
	background:#fff; border:2px solid var(--ept-line); display:grid; place-items:center; z-index:2;
}
.ept-bookend-ico svg{ width:20px; height:20px; stroke:var(--ept-ink-60); fill:none; }
.ept-bookend-t{ font-size:15.5px; font-weight:750; margin-bottom:3px; }
.ept-bookend-d{ font-size:14.5px; color:var(--ept-ink-60); line-height:1.6; }
.ept-bookend-d p{ margin:0; }

/* chips shared by stop cards and day cards */
.ept-chips-row{ display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; padding-top:15px; border-top:1px solid var(--ept-line-lt); }
.ept-daychip{ display:inline-flex; align-items:center; gap:7px; padding:6px 13px; border-radius:100px;
	background:var(--ept-sand); font-size:13px; font-weight:600; color:var(--ept-ink-80); }
.ept-daychip svg{ width:14px; height:14px; stroke:var(--ept-accent-dk); fill:none; flex:none; }
.ept-daychip.is-stay{ background:var(--ept-accent-sf); color:var(--ept-accent-dk); }

/* ═══ nested stops inside a multi-day card ═════════════════════════════ */
.ept-substops-lbl{ font-size:12px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--ept-ink-40); margin:26px 0 0; }
.ept-substops{ list-style:none; margin:14px 0 0; padding:0 0 0 30px; position:relative; }
.ept-substops::before{ content:''; position:absolute; left:8px; top:10px; bottom:10px; width:2px; background:var(--ept-line-lt); }
.ept-substop{ position:relative; padding-bottom:16px; }
.ept-substop::before{ content:''; position:absolute; left:-26px; top:7px; width:9px; height:9px; border-radius:50%;
	background:#fff; border:2px solid var(--ept-accent); z-index:2; }
.ept-substop h4{ font-size:16px; margin:0 0 5px; }
.ept-substop-body{ font-size:15px; line-height:1.7; color:var(--ept-ink-60); }
.ept-substop-body p{ margin:0 0 .7em; }
.ept-substop-fig{ margin:10px 0 0; border-radius:var(--ept-r-sm); overflow:hidden; }
.ept-substop-fig img{ width:100%; aspect-ratio:16/8; object-fit:cover; }
.ept-day-sum{ display:block; margin-top:7px; font-size:13.5px; color:var(--ept-ink-60); line-height:1.5; font-weight:400; }
.ept-day.is-open .ept-day-sum{ display:none; }

/* ═══ facilities ═══════════════════════════════════════════════════════ */
.ept-fac{ display:grid; grid-template-columns:repeat(auto-fit,minmax(148px,1fr)); gap:12px; }
.ept-fac-card{
	display:flex; flex-direction:column; align-items:center; text-align:center; gap:11px;
	padding:22px 14px 18px; background:#fff; border:1px solid var(--ept-line); border-radius:var(--ept-r);
	transition:.2s;
}
.ept-fac-card:hover{ border-color:var(--ept-accent); box-shadow:var(--ept-sh); transform:translateY(-2px); }
.ept-fac-ico{
	width:50px; height:50px; border-radius:50%; background:var(--ept-accent-sf);
	display:grid; place-items:center; color:var(--ept-accent-dk); font-size:22px; line-height:1;
}
.ept-page .ept-fac-ico i{ font-size:24px; line-height:1; color:var(--ept-accent-dk); }
.ept-fac-card > span:last-child{ font-size:14px; font-weight:650; line-height:1.35; color:var(--ept-ink-80); }
.ept-fac-more{ margin-top:22px; border:1px solid var(--ept-line); border-radius:var(--ept-r); background:var(--ept-cream); padding:22px 24px; }
.ept-fac-more h3{ font-size:12px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--ept-ink-40); margin:0 0 14px; }
.ept-fac-more ul{ list-style:none; margin:0; padding:0; columns:2; column-gap:32px; }
.ept-fac-more li{ break-inside:avoid; display:flex; gap:10px; align-items:flex-start; padding:6px 0; font-size:14.5px; color:var(--ept-ink-80); line-height:1.5; }
.ept-fac-more li svg{ width:15px; height:15px; margin-top:3px; flex:none; stroke:var(--ept-green); fill:none; }

/* ═══ rate tiers (packages) ════════════════════════════════════════════
   The builder ships these as a price-table whose cells are an <ul> of
   "Per person in DBL Room = $1640". Read into rows, the headline rate can
   lead and the hotels and boats behind each tier can be named properly. */
.ept-tiers{ display:grid; grid-template-columns:repeat(auto-fit,minmax(310px,1fr)); gap:20px; }
.ept-tier{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--ept-line);
	border-radius:var(--ept-r-lg); overflow:hidden; transition:.2s; }
.ept-tier:hover{ box-shadow:var(--ept-sh); }
.ept-tier.is-feat{ border-color:var(--ept-accent); box-shadow:var(--ept-sh); }
.ept-tier-head{ position:relative; padding:24px 26px 20px; background:linear-gradient(180deg,var(--ept-cream),#fff); border-bottom:1px solid var(--ept-line-lt); }
.ept-tier.is-feat .ept-tier-head{ background:linear-gradient(180deg,var(--ept-accent-sf),#fff); }
.ept-tier-flag{ position:absolute; top:0; right:0; background:var(--ept-accent); color:#fff;
	font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; padding:6px 14px; border-bottom-left-radius:12px; }
.ept-tier-stars{ color:var(--ept-gold); font-size:13px; letter-spacing:2px; line-height:1; margin-bottom:8px; }
.ept-tier-head h3{ font-size:19px; margin:0 0 14px; }
.ept-tier-price{ display:flex; align-items:baseline; gap:8px; }
.ept-tier-price b{ font-size:34px; font-weight:750; letter-spacing:-.02em; line-height:1; }
.ept-tier-price span{ font-size:13.5px; color:var(--ept-ink-60); }
.ept-tier-body{ flex:1; padding:20px 26px 4px; }
.ept-tier-rows{ list-style:none; margin:0 0 18px; padding:0; }
.ept-tier-rows li{ display:flex; justify-content:space-between; align-items:baseline; gap:14px;
	padding:9px 0; font-size:14.5px; color:var(--ept-ink-60); border-bottom:1px dashed var(--ept-line-lt); }
.ept-tier-rows li:last-child{ border-bottom:0; }
.ept-tier-rows b{ font-size:17px; font-weight:750; color:var(--ept-ink); white-space:nowrap; }
.ept-tier-props{ list-style:none; margin:0; padding:0; border-top:1px solid var(--ept-line-lt); }
.ept-tier-props li{ display:flex; gap:11px; padding:13px 0; border-bottom:1px solid var(--ept-line-lt); }
.ept-tier-props li:last-child{ border-bottom:0; }
.ept-tier-props svg{ width:17px; height:17px; margin-top:2px; flex:none; stroke:var(--ept-accent-dk); fill:none; }
.ept-tier-plabel{ display:block; font-size:12px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--ept-ink-40); margin-bottom:2px; }
.ept-tier-pval{ display:block; font-size:14.5px; color:var(--ept-ink-80); line-height:1.5; }
.ept-tier-foot{ padding:18px 26px 24px; }

/* ═══ cabin rates (cruise boats) ═══════════════════════════════════════ */
.ept-crates{ display:grid; grid-template-columns:repeat(auto-fit,minmax(268px,1fr)); gap:18px; }
.ept-crate{ background:#fff; border:1px solid var(--ept-line); border-radius:var(--ept-r-lg); overflow:hidden; display:flex; flex-direction:column; }
.ept-crate-head{ padding:20px 24px 18px; background:var(--ept-cream); border-bottom:1px solid var(--ept-line-lt); }
.ept-crate-len{ font-size:22px; font-weight:750; letter-spacing:-.01em; line-height:1.2; }
.ept-crate-season{ display:inline-block; margin-top:8px; padding:4px 12px; border-radius:100px;
	background:#fff; border:1px solid var(--ept-line); font-size:12px; font-weight:600; color:var(--ept-ink-60); }
.ept-crate-rows{ list-style:none; margin:0; padding:6px 24px 4px; flex:1; }
.ept-crate-rows li{ display:flex; justify-content:space-between; align-items:baseline; gap:12px;
	padding:13px 0; border-bottom:1px solid var(--ept-line-lt); font-size:14.5px; color:var(--ept-ink-60); }
.ept-crate-rows li:last-child{ border-bottom:0; }
.ept-crate-rows li.is-lead{ padding-top:16px; }
.ept-crate-rows li.is-lead span{ color:var(--ept-ink); font-weight:650; }
.ept-crate-rows li.is-lead b{ font-size:26px; color:var(--ept-accent-dk); }
.ept-crate-rows b{ font-size:17px; font-weight:750; color:var(--ept-ink); white-space:nowrap; }
.ept-crate-unit{ padding:0 24px 16px; font-size:12px; color:var(--ept-ink-40); text-transform:uppercase; letter-spacing:.08em; font-weight:700; }
.ept-crate-foot{ padding:0 24px 22px; }

/* ═══ inclusion group icons ════════════════════════════════════════════ */
.ept-inc-grp{ display:flex; align-items:center; gap:9px; }
.ept-inc-grp svg{ width:15px; height:15px; stroke:var(--ept-accent-dk); fill:none; flex:none; }

/* ═══ why book (moved out of the rail) ═════════════════════════════════ */
.ept-why{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.ept-why-item{ display:flex; gap:12px; padding:18px 20px; background:#fff; border:1px solid var(--ept-line); border-radius:var(--ept-r); }
.ept-why-item svg{ width:19px; height:19px; flex:none; margin-top:2px; stroke:var(--ept-green); fill:none; }
.ept-why-t{ display:block; font-size:15px; font-weight:700; margin-bottom:3px; }
.ept-why-d{ display:block; font-size:13.5px; color:var(--ept-ink-60); line-height:1.5; }
.ept-advisor{ margin-top:18px; border:1px solid var(--ept-line); border-radius:var(--ept-r); padding:22px 24px;
	background:var(--ept-sand); display:flex; gap:18px; align-items:center; flex-wrap:wrap; }
.ept-advisor-row{ display:flex; align-items:center; gap:13px; }
/* The source is a wide group selfie with no generated crops, and Maro is the
   man on the left — a centre crop framed the pyramid behind him.
   The image plugin rewrites <img> into <picture><img>, moving the class onto
   the wrapper, so the crop has to be declared on both: the wrapper clips and
   the inner image does the cropping. */
.ept-advisor-av{ width:52px; height:52px; flex:none; display:block;
	border-radius:50%; overflow:hidden; background:#e6e2d9;
	object-fit:cover; object-position:33% 47%; }
.ept-page .ept-advisor-av img{ width:100%; height:100%; display:block;
	border-radius:50%; object-fit:cover; object-position:33% 47%; }
.ept-advisor-name{ font-size:15px; font-weight:750; line-height:1.3; }
.ept-advisor-role{ font-size:12.5px; color:var(--ept-ink-60); }
.ept-advisor p{ flex:1; min-width:220px; font-size:14.5px; color:var(--ept-ink-80); line-height:1.6; margin:0; }
.ept-advisor .ept-btn{ flex:none; }

/* ═══ rail: one card, the enquiry form ═════════════════════════════════ */
/* The enquiry form is taller than a laptop viewport, so the rail sticks to
   the BOTTOM of the card rather than the top: scroll down and the card rides
   up until its last field is visible, then pins. An internally scrollable
   rail was the alternative and it reads as a broken panel. `--ept-rail-top`
   is set by script from the measured height; 74px is the short-card case. */
.ept-rail{ position:sticky; top:var(--ept-rail-top,74px); }
/* traveltour wraps the whole page in two `overflow:hidden` divs, and an
   overflow-hidden ancestor makes every descendant `position:sticky` inert —
   which is why the rail and the section nav scrolled away. `overflow-x:clip`
   still contains sideways overflow but creates no scroll container, so
   sticky works again. Browsers without `clip` keep the theme's hidden and
   simply behave as before. Scoped to tour pages: this sheet only loads here. */
.traveltour-body-outer-wrapper,
.traveltour-body-wrapper{ overflow-x:clip; overflow-y:visible; }
.ept-quote-h{ font-size:16px; font-weight:750; margin:0 0 4px; }
.ept-quote-sub{ font-size:13.5px; color:var(--ept-ink-60); margin:0 0 4px; }
.ept-page .ept-form .tourmaster-header-price3{ display:none !important; }
.ept-page .ept-form .tourmaster-tour-booking-bar-outer{ border:0 !important; border-radius:0 !important; box-shadow:none !important; }
.ept-page .ept-form .tourmaster-tour-booking-bar-wrap{ padding:0 !important; }
.ept-rail-wa{ margin-top:12px; }

/* ═══ stay plan inside a rate tier ═════════════════════════════════════
   A programme can sleep in three places, so each leg is named with its city
   and its nights — the hotel names alone said nothing about where. */
.ept-stay{ list-style:none; margin:0; padding:0; border-top:1px solid var(--ept-line-lt); }
.ept-stay li{ display:flex; gap:12px; padding:14px 0; border-bottom:1px solid var(--ept-line-lt); }
.ept-stay li:last-child{ border-bottom:0; }
.ept-stay-ico{ flex:none; width:30px; height:30px; border-radius:9px; background:var(--ept-accent-sf);
	display:grid; place-items:center; margin-top:1px; }
.ept-stay-ico svg{ width:16px; height:16px; stroke:var(--ept-accent-dk); fill:none; }
.ept-stay-where{ display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; margin-bottom:3px; }
.ept-stay-city{ font-size:14.5px; font-weight:750; color:var(--ept-ink); }
.ept-stay-n{ font-size:12px; font-weight:700; color:var(--ept-accent-dk); background:var(--ept-accent-sf);
	padding:2px 9px; border-radius:100px; }
.ept-stay-names{ font-size:14px; color:var(--ept-ink-60); line-height:1.5; }
.ept-stay-tbd{ font-size:13.5px; color:var(--ept-ink-40); font-style:italic; }

/* ═══ day-tour rates ═══════════════════════════════════════════════════ */
.ept-dayrate{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:20px; align-items:start; }
.ept-dayrate-card{ border:1px solid var(--ept-accent); border-radius:var(--ept-r-lg); background:#fff; box-shadow:var(--ept-sh); overflow:hidden; }
.ept-dayrate-head{ padding:24px 26px 22px; background:linear-gradient(180deg,var(--ept-accent-sf),#fff); }
.ept-dayrate-lbl{ font-size:12px; font-weight:800; letter-spacing:.11em; text-transform:uppercase; color:var(--ept-ink-40); }
.ept-dayrate-price{ display:flex; align-items:baseline; gap:9px; margin-top:6px; }
.ept-dayrate-price b{ font-size:40px; font-weight:750; letter-spacing:-.02em; line-height:1; }
.ept-dayrate-price span{ font-size:14px; color:var(--ept-ink-60); }
.ept-dayrate-meta{ list-style:none; margin:0; padding:14px 26px 20px; }
.ept-dayrate-meta li{ display:flex; gap:10px; padding:7px 0; font-size:14.5px; color:var(--ept-ink-80); }
.ept-dayrate-meta svg{ width:16px; height:16px; margin-top:3px; flex:none; stroke:var(--ept-accent-dk); fill:none; }
.ept-dayrate-cta{ padding:0 26px 24px; }
.ept-ages{ width:100%; margin-top:24px; border:1px solid var(--ept-line);
	border-radius:var(--ept-r-lg); background:#fff; overflow:hidden; }
.ept-ages-h{ display:flex; align-items:center; gap:13px; padding:18px 22px;
	background:linear-gradient(180deg,var(--ept-cream),#fff); border-bottom:1px solid var(--ept-line-lt); }
.ept-ages-ico{ flex:none; width:38px; height:38px; border-radius:11px; background:var(--ept-accent-sf);
	display:grid; place-items:center; }
.ept-ages-ico svg{ width:20px; height:20px; stroke:var(--ept-accent-dk); fill:none; }
.ept-ages-t{ display:block; font-size:16px; font-weight:750; color:var(--ept-ink); line-height:1.25; }
.ept-ages-s{ display:block; font-size:12.5px; color:var(--ept-ink-60); margin-top:3px; line-height:1.4; }
/* the theme styles bare <td> with its own padding and centring, at a
   specificity these rules would otherwise lose to */
.ept-page .ept-ages table{ width:100%; border-collapse:collapse; background:transparent; }
/* the theme sets `padding:5px 0` on bare <td> from a later stylesheet, which
   outranks these on load order alone — hence !important on the padding */
.ept-page .ept-ages td{ padding:14px 22px !important; border:0; border-bottom:1px solid var(--ept-line-lt);
	font-size:15px; color:var(--ept-ink-80); text-align:left !important; background:#fff; vertical-align:middle; }
.ept-page .ept-ages tr:last-child td{ border-bottom:0; }
.ept-page .ept-ages td:last-child{ text-align:right !important; white-space:nowrap; font-weight:750; color:var(--ept-ink); }
.ept-ages-age{ font-weight:650; color:var(--ept-ink); }
.ept-ages-pct{ display:inline-block; margin-left:9px; font-size:12px; font-weight:700; letter-spacing:.04em;
	color:var(--ept-ink-60); background:var(--ept-sand); padding:3px 9px; border-radius:100px; }
.ept-ages-free{ color:var(--ept-green) !important; }
.ept-ages-foot{ padding:15px 22px 18px; font-size:13px; line-height:1.65; color:var(--ept-ink-60);
	background:var(--ept-cream); border-top:1px solid var(--ept-line-lt); }

/* ═══ enquiry form ═════════════════════════════════════════════════════ */
.ept-enq{ margin:0; }
.ept-enq-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.ept-enq-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px 12px; }
.ept-enq-field{ grid-column:span 2; min-width:0; }
.ept-enq-field.is-half{ grid-column:span 1; }
.ept-enq-field label{ display:block; font-size:12px; font-weight:750; letter-spacing:.07em; text-transform:uppercase;
	color:var(--ept-ink-60); margin-bottom:6px; }
.ept-req{ color:var(--ept-accent-dk); margin-left:3px; }
.ept-page .ept-enq input[type=text],
.ept-page .ept-enq input[type=email],
.ept-page .ept-enq input[type=tel],
.ept-page .ept-enq input[type=date],
.ept-page .ept-enq input[type=number],
.ept-page .ept-enq select,
.ept-page .ept-enq textarea{
	width:100%; box-sizing:border-box; padding:11px 13px; font:inherit; font-size:14.5px; line-height:1.4;
	color:var(--ept-ink); background:#fff; border:1px solid var(--ept-line); border-radius:var(--ept-r-sm);
	margin:0; box-shadow:none; -webkit-appearance:none; appearance:none; min-height:0; height:auto;
}
.ept-page .ept-enq select{
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%236a6a6a' stroke-width='1.8' d='M1 1.5 6 6.5l5-5'/%3E%3C/svg%3E");
	background-repeat:no-repeat; background-position:right 13px center; background-size:11px; padding-right:34px;
}
.ept-page .ept-enq input:focus,.ept-page .ept-enq select:focus,.ept-page .ept-enq textarea:focus{
	outline:none; border-color:var(--ept-accent); box-shadow:0 0 0 3px rgba(212,134,82,.15);
}
.ept-page .ept-enq textarea{ resize:vertical; min-height:74px; }
.ept-phone{ display:grid; grid-template-columns:132px minmax(0,1fr); gap:8px; }
.ept-page .ept-phone select{ padding-left:11px; padding-right:26px; background-position:right 9px center; }
.ept-enq-field.is-filled input,
.ept-enq-field.is-filled select{ border-color:var(--ept-accent); box-shadow:0 0 0 3px rgba(212,134,82,.15); }
.ept-enq-consent{ display:flex; gap:9px; align-items:flex-start; margin:14px 0 4px; font-size:13px; line-height:1.5; color:var(--ept-ink-60); }
.ept-enq-consent input{ margin-top:2px; flex:none; accent-color:var(--ept-accent); }
.ept-page .ept-enq-submit{ margin-top:14px; }
.ept-enq-foot{ margin:11px 0 0; font-size:12.5px; color:var(--ept-ink-40); text-align:center; }
.ept-enq-note{ margin:0 0 14px; padding:13px 15px; border-radius:var(--ept-r-sm); font-size:14px; line-height:1.55; }
.ept-enq-note.is-ok{ background:var(--ept-green-sf); border:1px solid #cfe4d7; color:var(--ept-green); }
.ept-enq-note.is-bad{ background:var(--ept-red-sf); border:1px solid #f0dbd9; color:var(--ept-red); }

/* ═══ group-size price ladder (day tours) ══════════════════════════════
   A private day tour costs the same to run whoever is in the car, so the
   per-person price falls as the party grows. Rows rather than cards: the
   reader is comparing one number down a column. */
.ept-gp-lead{ font-size:16.5px; color:var(--ept-ink-60); line-height:1.7; margin:0 0 22px; max-width:62ch; }
.ept-gp{ display:grid; gap:12px; }
.ept-gp-row{
	display:flex; align-items:center; gap:16px; flex-wrap:wrap;
	padding:18px 22px; background:#fff; border:1px solid var(--ept-line);
	border-radius:var(--ept-r); position:relative; transition:.18s;
}
.ept-gp-row:hover{ border-color:var(--ept-accent); box-shadow:var(--ept-sh); }
.ept-gp-row.is-best{ border-color:var(--ept-accent); box-shadow:var(--ept-sh); }
.ept-gp-flag{
	position:absolute; top:-11px; left:20px; background:var(--ept-accent); color:#fff;
	font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
	padding:4px 12px; border-radius:100px;
}
.ept-gp-ico{ flex:none; width:34px; height:34px; border-radius:10px; background:var(--ept-accent-sf);
	display:grid; place-items:center; }
.ept-gp-ico svg{ width:17px; height:17px; stroke:var(--ept-accent-dk); fill:none; }
.ept-gp-label{ flex:1; min-width:120px; font-size:16px; font-weight:700; color:var(--ept-ink); }
.ept-gp-price{ display:flex; align-items:baseline; gap:5px; }
.ept-gp-price b{ font-size:24px; font-weight:750; letter-spacing:-.02em; }
.ept-gp-price span{ font-size:13px; color:var(--ept-ink-60); }
.ept-gp-row .ept-btn{ padding:11px 26px; font-size:14px; }
.ept-gp-note{ margin:16px 0 0; font-size:13.5px; color:var(--ept-ink-40); font-style:italic; }
.ept-gp-provisional{
	display:flex; gap:10px; align-items:flex-start; margin:0 0 20px; padding:13px 16px;
	background:var(--ept-red-sf); border:1px solid #f0dbd9; border-radius:var(--ept-r-sm);
	font-size:13.5px; line-height:1.6; color:var(--ept-red);
}
.ept-gp-provisional svg{ width:16px; height:16px; flex:none; margin-top:2px; stroke:currentColor; fill:none; }
@media (max-width:560px){
	.ept-gp-row{ padding:16px 18px; }
	.ept-gp-label{ flex:1 0 100%; }
	.ept-gp-row .ept-btn{ margin-left:auto; }
}

/* ═══ authored tables ══════════════════════════════════════════════════
   The rate tables inside the builder's accordions carry inline colours from
   whoever typed them — a black grid that fights everything around it. These
   normalise them, which needs !important because the colours are inline. */
.ept-page .ept-know-a table,
.ept-page .ept-day-body table,
.ept-page .ept-prose table{
	width:100% !important; border-collapse:collapse; margin:6px 0 4px; font-size:15px;
	background:transparent !important;
}
.ept-page .ept-know-a table td, .ept-page .ept-know-a table th,
.ept-page .ept-day-body table td, .ept-page .ept-day-body table th,
.ept-page .ept-prose table td, .ept-page .ept-prose table th{
	background:#fff !important; color:var(--ept-ink-80) !important;
	border:1px solid var(--ept-line) !important; padding:11px 14px !important;
	text-align:left !important; font-weight:400 !important;
}
.ept-page .ept-know-a table tr:first-child td, .ept-page .ept-know-a table th,
.ept-page .ept-day-body table tr:first-child td, .ept-page .ept-day-body table th,
.ept-page .ept-prose table tr:first-child td, .ept-page .ept-prose table th{
	background:var(--ept-sand) !important; color:var(--ept-ink) !important; font-weight:700 !important;
}
.ept-page .ept-know-a table tr:nth-child(even) td{ background:var(--ept-cream) !important; }
.ept-table-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; }

/* ═══ parent-theme button reset ════════════════════════════════════════
   traveltour styles bare <button> with the accent fill, uppercase text and
   its own padding, at a specificity our single-class rules lose to. These
   re-declare the same values one level up so the components survive. */
.ept-page .ept-day-btn,
.ept-page .ept-know-q,
.ept-page .ept-itin-toggle,
.ept-page .ept-allphotos,
.ept-page .ept-lb-close,
.ept-page .ept-lb-prev,
.ept-page .ept-lb-next{
	font:inherit; text-transform:none; letter-spacing:normal;
	-webkit-appearance:none; appearance:none; text-shadow:none; box-shadow:none;
}
.ept-page .ept-day-btn{
	background:#fff; color:var(--ept-ink); border:1px solid var(--ept-line);
	border-radius:var(--ept-r); padding:16px 52px 16px 20px; width:100%; text-align:left;
}
.ept-page .ept-day-btn:hover{ background:#fff; color:var(--ept-ink); border-color:var(--ept-accent); box-shadow:var(--ept-sh); }
.ept-page .ept-day.is-open .ept-day-btn{ border-color:var(--ept-accent); border-bottom-left-radius:0; border-bottom-right-radius:0; }
.ept-page .ept-know-q{
	background:transparent; color:var(--ept-ink); border:0; border-radius:0;
	padding:17px 50px 17px 20px; width:100%; text-align:left; font-size:16px; font-weight:650;
}
.ept-page .ept-know-q:hover{ background:var(--ept-cream); color:var(--ept-ink); }
.ept-page .ept-itin-toggle{
	background:#fff; color:var(--ept-ink-80); border:1px solid var(--ept-line);
	border-radius:100px; padding:8px 16px; font-size:13.5px; font-weight:700;
}
.ept-page .ept-itin-toggle:hover{ background:#fff; border-color:var(--ept-accent); color:var(--ept-accent-dk); }
.ept-page .ept-allphotos{
	background:rgba(255,255,255,.95); color:var(--ept-ink); border:1px solid var(--ept-line);
	border-radius:100px; padding:10px 18px; font-size:13.5px; font-weight:700;
}
.ept-page .ept-allphotos:hover{ background:#fff; color:var(--ept-ink); }
.ept-page .ept-lb-close,.ept-page .ept-lb-prev,.ept-page .ept-lb-next{
	background:rgba(255,255,255,.12); color:#fff; border:0; border-radius:50%;
	width:48px; height:48px; padding:0; font-size:24px;
}
.ept-page .ept-lb-close:hover,.ept-page .ept-lb-prev:hover,.ept-page .ept-lb-next:hover{ background:rgba(255,255,255,.24); color:#fff; }

/* ═══ responsive ═══════════════════════════════════════════════════════ */
@media (max-width:1080px){
	.ept-body{ grid-template-columns:minmax(0,1fr); gap:0; }
	.ept-rail{ position:static; top:auto; margin-top:8px; }
}
@media (max-width:1080px){
}
@media (max-width:860px){
	.ept-wrap{ padding:0 18px; padding-inline:var(--epl-gutter); }
	.ept-stops{ padding-left:46px; }
	.ept-stops::before{ left:17px; }
	.ept-stop-badge,.ept-bookend-ico{ left:-46px; width:36px; height:36px; border-radius:11px; }
	.ept-stop-badge b{ font-size:15px; }
	.ept-fac-more ul{ columns:1; }
	.ept-why{ grid-template-columns:1fr; }
	.ept-advisor{ flex-direction:column; align-items:flex-start; }
	.ept-mosaic{ grid-template-columns:1fr 1fr; grid-template-rows:1.4fr 1fr; height:auto; aspect-ratio:4/3; }
	.ept-mosaic figure:first-child{ grid-column:span 2; grid-row:span 1; }
	.ept-mosaic figure:nth-child(n+4){ display:none; }
	.ept-inc{ grid-template-columns:1fr; }
	/* the site's floating WhatsApp bubble is fixed bottom-left and sits on
	   top of this bar, so the price is inset clear of it. */
	.ept-mbar{ display:flex; padding-left:68px; }
	.ept-mbar-price b{ font-size:17px; }
	.ept-nav-price{ display:none !important; }
	.ept-body{ padding-top:30px; }
	.ept-tl{ padding-left:38px; }
	.ept-tl::before{ left:13px; }
	.ept-day::before{ left:-38px; width:28px; height:28px; font-size:12px; }
	.ept-page{ padding-bottom:76px; }
}
@media (max-width:520px){
	.ept-mosaic{ aspect-ratio:1/1; }
	.ept-rates{ grid-template-columns:1fr; }
	/* The price was the only flexible item in the bar, so on a 390px screen
	   it absorbed a ~1px shortfall and broke "$5,110" across two lines mid-
	   number. Trimming the gap and button padding buys the ~30px that makes
	   the row fit down to 360px; nowrap guarantees a price never splits. */
	.ept-mbar{ gap:8px; padding-left:64px; padding-right:12px; }
	.ept-mbar-price{ flex:0 1 auto; }
	.ept-mbar-price b{ white-space:nowrap; }
	.ept-mbar .ept-btn{ padding:12px 14px; font-size:13.5px; }
}
@media (max-width:344px){
	/* Below this the two CTAs alone need the whole row; the price is already
	   stated in the page above, so the bar keeps the actions. */
	.ept-mbar-price{ display:none; }
	.ept-mbar{ padding-left:60px; }
}

/* Structural wrappers added 2026-08-27 with the semantic fix: the tour is now
   <main> > <article>, so the h1 sits inside both.

   Deliberately NOT display:contents — that drops the element from the
   accessibility tree in several browsers, which would remove the very main and
   article landmarks this change exists to add. They are plain blocks wrapping
   block-level children, so they need no styling at all. */
.ept-main-outer,
.ept-tour-article{ display:block; }

/* ═══ 2026-09-11 mobile fixes ═══════════════════════════════════════════ */

/* Review stars: every star is .ept-star, whose base rule paints it grey, so a
   5-star review showed five empty-looking stars. Full and half stars take the
   gold of .ept-review-stars instead; .ept-star-empty keeps its own colour. */
.ept-review-stars .ept-star-full,
.ept-review-stars .ept-star-half{ color:inherit; }

/* Reviews: four lines, then "Read more". The clamp class is added by the page
   script only where a review really runs longer, so without JS every review
   shows in full. Cards no longer stretch to the tallest one in their row. */
.ept-review-grid{ align-items:start; }
.ept-review-desc.is-clamped{
	max-height:calc(1.55em * 4); overflow:hidden;
	-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 1.55em),transparent);
	mask-image:linear-gradient(to bottom,#000 calc(100% - 1.55em),transparent);
}
.ept-review-desc.is-clamped.is-open{ max-height:none; -webkit-mask-image:none; mask-image:none; }
.ept-review-more{
	display:inline-block; margin-top:8px; padding:4px 0; background:none; border:0; cursor:pointer;
	font:inherit; font-size:13px; font-weight:700; color:var(--ept-accent-dk);
}
.ept-review-more:hover{ text-decoration:underline; }

@media (max-width:860px){
	/* "STOP" was 12px with wide tracking inside a 36px badge, so it broke into
	   "STO / P" and the badge content spilled out above and below it. */
	.ept-stop-badge small{ font-size:8.5px; letter-spacing:.06em; white-space:nowrap; }
}

@media (max-width:560px){
	/* Group-size prices: icon and group size on one line, price under the label,
	   button on the right across both — two lines per row instead of three. */
	.ept-gp-row{
		display:grid; grid-template-columns:34px minmax(0,1fr) auto;
		grid-template-areas:"ico lbl btn" "ico prc btn";
		column-gap:12px; row-gap:2px; padding:16px;
	}
	.ept-gp-ico{ grid-area:ico; }
	.ept-gp-label{ grid-area:lbl; font-size:15.5px; }
	.ept-gp-price{ grid-area:prc; }
	.ept-gp-price b{ font-size:21px; }
	.ept-gp-row .ept-btn{ grid-area:btn; margin-left:0; padding:10px 18px; }
}

/* ═══ 2026-09-11 reviews polish ════════════════════════════════════════ */

/* The parent theme styles every <button> (".traveltour-body button": orange
   fill, uppercase, 15px 33px padding), and that selector outranks a single
   class, so "Read more" looked like a call-to-action. Scoped under .ept-page
   so it wins, with every inherited property reset explicitly. */
.ept-page .ept-review-item .ept-review-more{
	display:inline-flex; align-items:center; gap:4px; margin-top:8px; padding:2px 0;
	background:transparent; border:0; border-radius:0; box-shadow:none;
	color:var(--ept-accent-dk); font-size:13px; font-weight:700; line-height:1.4;
	letter-spacing:0; text-transform:none; cursor:pointer;
}
.ept-page .ept-review-item .ept-review-more:hover,
.ept-page .ept-review-item .ept-review-more:focus-visible{
	background:transparent; color:var(--ept-accent); text-decoration:underline;
}

/* The reviewer name is an <h4>, and ".traveltour-body h4" (26px) outranked
   .ept-review-name (14.5px), so names rendered as large as section titles. */
.ept-page .ept-review-name{ font-size:15.5px; line-height:1.3; }
