/* ==========================================================================
   Aloria Ceylon Travels — main stylesheet
   Values are taken from the 1440px design artboard.
   ========================================================================== */

:root {
	--bg: #E9E7D2;
	--green: #215B48;
	--green-tab: #006635;
	--green-bright: #1FAF38;
	--gold: #C09951;
	--text: #404040;
	--ink: #021B17;
	--grey: #626262;
	--grey-title: #5E5E5E;
	--chip: #D9D9D9;
	--circle: #D3D1BC;
	--rule: rgba(64, 64, 64, .28);
	--white: #FFFFFF;

	--f-body: 'Open Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--f-ui: 'Bricolage Grotesque', 'Open Sans', system-ui, sans-serif;

	--container: 1180px;
	--gutter: 16px;
}

/* ---------- Reset & base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--bg);
	color: var(--text);
	font-family: var(--f-body);
	font-size: 14px;
	line-height: 20px;
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}
img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
h1, h2, h3, h4, p, ul, ol, dl, dd, figure, blockquote { margin: 0; }
ul, ol { padding: 0; list-style: none; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }

.screen-reader-text, .hp {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}
.skip-link { position: absolute; left: -9999px; top: 8px; z-index: 1000; background: var(--green); color: #fff; padding: 8px 16px; }
.skip-link:focus { left: 8px; }
.text-center { text-align: center; }

.container { width: 100%; max-width: calc(var(--container) + var(--gutter) * 2); margin: 0 auto; padding: 0 var(--gutter); }
.container--wide { max-width: calc(1252px + var(--gutter) * 2); }
.container--narrow { max-width: calc(820px + var(--gutter) * 2); }

/* Open Sans Condensed = Open Sans at 75% width */
.cond,
.h2, .h3,
.site-nav, .mobile-nav,
.feature__title, .rt__title, .tabs--box .tabs__btn, .tabs--pill .tabs__btn,
.dest-slide__title, .dt-slide__cat, .dt-slide__title, .value__title, .story__title,
.cta-band__title, .page-hero__title, .about-box h2, .step__title,
.badge, .pk-intro__title, .timeline__day, .incl__title, .incl__list, .dti__heading, .article .entry-content h2, .article .entry-content h3 {
	font-family: var(--f-body);
	font-stretch: 75%;
}

.h2 {
	font-size: 48px;
	line-height: 53px;
	font-weight: 700;
	color: var(--text);
}
.h2--xl { font-size: 48px; line-height: 53px; }
.h3 { font-size: 32px; line-height: 38px; font-weight: 600; color: var(--green); }

.section-head { text-align: center; }
.section-head__intro { max-width: 880px; margin: 8px auto 0; font-size: 14px; line-height: 20px; }

/* Italic "Label →" links */
.arrow-link {
	display: inline-block;
	font-size: 16px; line-height: 22px; font-style: italic; font-weight: 600;
	transition: opacity .2s;
}
/* Inline arrow so it stays at the end of the words when a long label wraps */
.arrow-link__arrow { display: inline-block; margin-left: 1px; font-style: normal; white-space: nowrap; transition: translate .2s; }
.arrow-link:hover .arrow-link__arrow { translate: 4px 0; }
.arrow-link--gold { color: var(--gold); }
.arrow-link--white { color: var(--white); }
.arrow-link--green { color: var(--green); }
.arrow-link--muted { color: rgba(64, 64, 64, .55); font-size: 14px; }
.arrow-link--bold { font-weight: 700; }

/* Feature icons (alpha mask PNGs, coloured with currentColor) */
.ficon {
	display: inline-block; flex: none;
	width: 34px; aspect-ratio: 1;
	background-color: currentColor;
	-webkit-mask: var(--icon) center / contain no-repeat;
	mask: var(--icon) center / contain no-repeat;
}
.ficon--guide { width: 30px; aspect-ratio: 123 / 136; }
.ficon--jeep { width: 44px; aspect-ratio: 184 / 100; }
.ficon--leopard { width: 44px; aspect-ratio: 189 / 98; }

.icon { width: 1em; height: 1em; flex: none; }

/* ==========================================================================
   Header
   ========================================================================== */
.site-header { position: absolute; inset: 0 0 auto; z-index: 50; }
.site-header__inner { display: flex; align-items: flex-start; justify-content: space-between; padding-top: 15px; }
.site-logo { flex: none; width: 96px; margin: 0 auto; }
.site-logo img { width: 96px; height: auto; }

.site-nav { flex: 1; padding-top: 19px; }
.site-nav .menu { display: flex; justify-content: space-between; }
.site-nav--left .menu { max-width: 368px; padding-left: 2px; }
.site-nav--right .menu { max-width: 382px; margin-left: auto; }
.site-nav .menu > li { position: relative; }
.site-nav a {
	display: inline-flex; align-items: center; gap: 12px;
	padding: 6px 0;
	font-size: 14px; line-height: 20px; font-weight: 700; text-transform: uppercase;
	color: var(--ink);
	transition: color .2s;
}
.site-nav a:hover, .site-nav .current-menu-item > a, .site-nav .current-menu-ancestor > a { color: var(--green); }
.menu-chevron { width: 14px; height: 14px; stroke-width: 2.6; }

.site-nav .sub-menu {
	position: absolute; left: -16px; top: 100%;
	min-width: 190px; padding: 10px 0;
	background: var(--bg); border-radius: 6px;
	box-shadow: 0 12px 30px rgba(2, 27, 23, .15);
	opacity: 0; visibility: hidden; transform: translateY(6px);
	transition: opacity .2s, transform .2s, visibility .2s;
}
.site-nav .menu > li:hover > .sub-menu,
.site-nav .menu > li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.site-nav .sub-menu a { display: block; padding: 8px 16px; }

.nav-toggle { display: none; width: 44px; height: 44px; align-items: center; justify-content: center; color: var(--ink); background: rgba(233, 231, 210, .85); border-radius: 50%; }
.nav-toggle .icon { width: 24px; height: 24px; }
.nav-toggle__close { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__open { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__close { display: block; }

.mobile-nav { background: var(--bg); padding: 12px var(--gutter) 24px; box-shadow: 0 16px 30px rgba(0, 0, 0, .12); }
.mobile-nav a { display: block; padding: 10px 0; font-size: 18px; font-weight: 700; text-transform: uppercase; color: var(--ink); border-bottom: 1px solid var(--rule); }
.mobile-nav .menu-chevron { display: none; }
.mobile-nav .sub-menu a { padding-left: 18px; font-size: 16px; }

/* Floating elements */
.social-rail {
	position: absolute; z-index: 40; right: 39px; top: 165px;
	display: flex; flex-direction: column; gap: 9px;
}
.is-home .social-rail { top: 260px; }
.social-rail a {
	display: flex; align-items: center; justify-content: center;
	width: 42px; height: 42px; border-radius: 50%;
	background: var(--green); color: var(--white);
	transition: background .2s, transform .2s;
}
.social-rail a:hover { background: var(--gold); transform: scale(1.06); }
.social-rail .icon { width: 19px; height: 19px; }


/* ==========================================================================
   Page hero (inner pages)
   ========================================================================== */
.page-hero {
	position: relative;
	height: 588px;
	background: var(--green) center / cover no-repeat;
}
.page-hero__inner { padding-top: 155px; }
.page-hero--center .page-hero__inner { padding-top: 238px; text-align: center; }
.page-hero__title {
	max-width: 640px;
	font-size: 48px; line-height: 44px; font-weight: 700; text-transform: uppercase;
	white-space: pre-wrap; color: var(--text);
}
.page-hero--center .page-hero__title { max-width: none; }
.page-hero__subtitle { margin-top: 20px; padding-left: 8px; font-size: 14px; line-height: 20px; color: var(--text); }
.page-hero--center .page-hero__subtitle { padding-left: 0; }
.page-hero--light .page-hero__title, .page-hero--light .page-hero__subtitle { color: var(--white); }
.page-hero--light::before { content: ""; position: absolute; inset: 0; background: linear-gradient(rgba(0,0,0,.05), rgba(0,0,0,.18)); }
.page-hero--light .page-hero__inner { position: relative; }

/* ==========================================================================
   Home — hero & highlight boxes
   ========================================================================== */
.home-hero {
	position: relative;
	height: 780px;
	background: #6d7f6a center / cover no-repeat;
	display: flex; align-items: center; justify-content: center;
}
.play-btn {
	position: relative; top: -6px;
	display: flex; align-items: center; justify-content: center;
	width: 142px; height: 142px; border-radius: 50%;
	background: rgba(255, 255, 255, .18);
	transition: transform .25s, background .25s;
}
.play-btn__inner {
	display: flex; align-items: center; justify-content: center;
	width: 104px; height: 104px; border-radius: 50%;
	background: rgba(255, 255, 255, .2); color: var(--white);
}
.play-btn .icon { width: 34px; height: 34px; margin-left: 4px; }
.play-btn:not([disabled]):hover { transform: scale(1.05); background: rgba(255, 255, 255, .28); }
.play-btn[disabled] { cursor: default; }

.features { position: relative; z-index: 2; margin-top: -57px; }
.features__row { display: grid; grid-template-columns: repeat(3, 1fr); }
.feature {
	display: flex; align-items: flex-start; gap: 23px;
	min-height: 250px; padding: 58px 30px 30px 35px;
	color: var(--white);
}
.feature--gold { background: var(--gold); }
.feature--green { background: var(--green); }
.feature__icon { margin-top: 2px; }
.feature .ficon--passport { width: 36px; }
.feature .ficon--guide { width: 33px; margin-left: 1px; margin-right: 2px; }
.feature .ficon--leopard { width: 48px; margin-top: 6px; }
.feature .ficon--jeep { width: 46px; margin-top: 6px; }
.feature__title { font-size: 20px; line-height: 20px; font-weight: 700; text-transform: uppercase; }
.feature__text { margin-top: 26px; font-size: 14px; line-height: 20px; }

/* ==========================================================================
   Home — round tours preview
   ========================================================================== */
.section--rt { padding-top: 84px; }
.rt { display: flex; align-items: stretch; margin-top: 57px; }
.rt__media { flex: 0 0 calc(50% - 61px); min-height: 564px; }
.rt__media img { width: 100%; height: 100%; object-fit: cover; }
.rt__content {
	flex: 1; min-width: 0;
	padding: 25px max(var(--gutter), calc(50vw - 590px)) 0 48px;
}
.tabs--box { display: flex; }
.tabs--box .tabs__btn {
	height: 44px; padding: 0 20px; flex: 1 1 auto;
	border: 1px solid var(--text); margin-left: -1px;
	font-size: 15px; font-weight: 600; color: var(--text);
	transition: background .2s, color .2s;
}
.tabs--box .tabs__btn:first-child { margin-left: 0; flex-basis: 215px; }
.tabs--box .tabs__btn:nth-child(2) { flex-basis: 208px; }
.tabs--box .tabs__btn:nth-child(3) { flex-basis: 177px; }
.tabs--box .tabs__btn.is-active { background: #222; border-color: #222; color: var(--white); }
.tabs--box .tabs__btn:not(.is-active):hover { background: rgba(64, 64, 64, .08); }
.rt__title { margin-top: 44px; font-size: 24px; line-height: 30px; font-weight: 700; color: var(--text); }
.rt__desc { margin-top: 12px; font-size: 14px; line-height: 20px; }
.rt__list { margin: 41px 0 0 -10px; }
.rt__item {
	display: flex; align-items: flex-end; justify-content: space-between; gap: 24px;
	padding: 14px 0 17px 10px;
	border-bottom: 1px solid rgba(64, 64, 64, .25);
}
.rt__item + .rt__item { padding-top: 32px; }
.rt__name { max-width: 300px; font-size: 14px; line-height: 19px; font-weight: 600; text-transform: uppercase; color: var(--text); }
.rt__name:hover { color: var(--green); }
.rt__item .arrow-link { flex: none; }
.rt__all { margin-top: 35px; }

/* ==========================================================================
   Home — destinations slider
   ========================================================================== */
.section--dest { padding-top: 98px; }
.dest-slider {
	--w: min(1055px, calc(100vw - 2 * var(--gutter) - 60px));
	--gap: 62px;
	--inset: 47px; /* side slides are 387px tall: (481 - 387) / 2 */
	--ease: cubic-bezier(.45, .05, .2, 1);
	--dur: .8s;
	position: relative; height: 481px; margin-top: 62px; overflow: hidden;
}
.dest-slider__track { position: absolute; inset: 0; }
.dest-slide {
	position: absolute; top: 0; left: 50%;
	width: var(--w); height: 481px;
	margin-left: calc(var(--w) / -2);
	overflow: hidden;
	transform: translate3d(calc(var(--offset, 0) * (var(--w) + var(--gap))), 0, 0);
	clip-path: inset(var(--inset) 0 var(--inset) 0);
	transition: transform var(--dur) var(--ease), clip-path var(--dur) var(--ease);
	will-change: transform, clip-path;
	backface-visibility: hidden;
}
.dest-slide.is-active { clip-path: inset(0 0 0 0); z-index: 2; }
.dest-slide.no-anim, .dest-slide.no-anim .dest-slide__overlay { transition: none; }
.dest-slide img { width: 100%; height: 100%; object-fit: cover; }
.dest-slide__overlay {
	position: absolute; inset: 0;
	display: flex; align-items: flex-end; justify-content: space-between; gap: 30px;
	padding: 0 38px 21px;
	background: linear-gradient(to top, var(--green) 0%, rgba(33, 91, 72, .55) 18%, rgba(33, 91, 72, 0) 38%);
	transform: translate3d(0, calc(var(--inset) * -1), 0);
	transition: transform var(--dur) var(--ease);
}
.dest-slide.is-active .dest-slide__overlay { transform: none; }
.dest-slide__title { max-width: 380px; font-size: 24px; line-height: 28px; font-weight: 700; text-transform: uppercase; color: var(--white); }
.dest-slide__link { margin-bottom: 26px; flex: none; }
/* Arrows sit in the gap beside the centre slide (39px outside its edges) */
.dest-slider__nav {
	position: absolute; z-index: 3; top: 50%;
	width: 40px; height: 48px; margin-top: -24px;
	display: flex; align-items: center; justify-content: center;
	color: #000; transition: color .2s, transform .2s;
}
.dest-slider__nav .icon { width: 12px; height: 20px; }
.dest-slider__nav:hover { color: var(--green); }
.dest-slider__nav--prev { left: calc(50% - var(--w) / 2 - 39px - 20px); }
.dest-slider__nav--next { right: calc(50% - var(--w) / 2 - 39px - 20px); }
.dest-slider__nav--prev:hover { transform: translateX(-3px); }
.dest-slider__nav--next:hover { transform: translateX(3px); }
.section--dest .arrow-link--gold { margin-top: 25px; }

/* ==========================================================================
   Home — day tours preview
   ========================================================================== */
.section--dt { padding: 105px 0 125px; overflow-x: clip; }
.dt {
	display: grid; grid-template-columns: 290px minmax(0, 1fr);
	column-gap: 27px;
	max-width: calc(1250px + var(--gutter) * 2);
	margin-left: max(0px, calc(50% - 590px - var(--gutter)));
}
.dt__intro { display: flex; flex-direction: column; }
.dt__intro .h2 { margin-top: 12px; line-height: 52px; }
.dt__text { margin-top: 34px; font-size: 14px; line-height: 20px; }
.dt__arrows { display: flex; gap: 12px; margin-top: auto; margin-bottom: 19px; }
.round-btn {
	width: 80px; height: 80px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	background: var(--bg);
	box-shadow: 3px 5px 12px rgba(91, 86, 45, .12), -2px -2px 6px rgba(255, 255, 255, .55), inset 0 0 0 1px rgba(255, 255, 255, .35);
	transition: transform .2s;
}
.round-btn span {
	width: 52px; height: 52px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	background: linear-gradient(145deg, #F6F4E6, #E4E2CB);
	box-shadow: 3px 5px 9px rgba(91, 86, 45, .2);
}
.round-btn .icon { width: 16px; height: 16px; color: var(--text); }
.round-btn[data-next] .icon { transform: scaleX(-1); }
.round-btn:hover { transform: translateY(-2px); }

/* Day tours queue: main image + next three tours as thumbnails */
.dt__stage {
	--ease: cubic-bezier(.25, .1, .25, 1);
	--dur: .7s;
	--info: 380px; --g: 16px; --t: calc((var(--info) - 2 * var(--g)) / 3);
	--mw: calc(100% - var(--info) - var(--g)); --mh: 542px;
	position: relative; min-width: 0; height: var(--mh);
}
.dt__imgs { position: absolute; inset: 0; }
.dt-img {
	position: absolute; z-index: 1; overflow: hidden;
	left: calc(var(--mw) + var(--g) + 3 * (var(--t) + var(--g)));
	top: calc(var(--mh) - var(--t));
	width: var(--t); height: var(--t);
	opacity: 0; pointer-events: none;
	transition: left var(--dur) var(--ease), top var(--dur) var(--ease), width var(--dur) var(--ease), height var(--dur) var(--ease), opacity var(--dur) var(--ease);
}
.dt-img img { width: 100%; height: 100%; object-fit: cover; }
.dt-img[data-pos="main"] { z-index: 2; left: 0; top: 0; width: var(--mw); height: var(--mh); opacity: 1; pointer-events: auto; }
.dt-img[data-pos="t1"], .dt-img[data-pos="t2"], .dt-img[data-pos="t3"] { opacity: 1; pointer-events: auto; cursor: pointer; }
.dt-img[data-pos="t1"] { left: calc(var(--mw) + var(--g)); }
.dt-img[data-pos="t2"] { left: calc(var(--mw) + var(--g) + var(--t) + var(--g)); }
.dt-img[data-pos="t3"] { left: calc(var(--mw) + var(--g) + 2 * (var(--t) + var(--g))); }
.dt-img[data-pos="prev"] { left: calc(-1 * (var(--t) + var(--g))); }
.dt-img.no-anim { transition: none; }
.dt__info { position: absolute; z-index: 3; top: 0; right: 0; bottom: calc(var(--t) + 10px); width: var(--info); display: grid; pointer-events: none; }
.dt-info {
	grid-area: 1 / 1; display: flex; flex-direction: column; min-width: 0;
	opacity: 0; visibility: hidden;
	transition: opacity calc(var(--dur) * .6) var(--ease), visibility 0s linear calc(var(--dur) * .6);
}
.dt-info.is-active { opacity: 1; visibility: visible; pointer-events: auto; transition: opacity var(--dur) var(--ease) calc(var(--dur) * .15), visibility 0s; }
.dt-slide__cat { padding-right: 68px; margin-top: 12px; text-align: right; font-size: 14px; line-height: 18px; font-weight: 700; color: var(--green); }
.dt-slide__cat span { margin-left: 3px; }
.dt-slide__title {
	position: relative; z-index: 2;
	margin: 18px 68px 0 -80px; text-align: right;
	font-size: 36px; line-height: 39px; font-weight: 700; color: var(--text);
	-webkit-text-stroke: 3px var(--bg); paint-order: stroke fill;
}
.dt-slide__title a:hover { color: var(--green); }
.dt-slide__facts { margin: 42px 68px 0 9px; }
.dt-slide__facts li { position: relative; padding-left: 13px; font-size: 14px; line-height: 20px; }
.dt-slide__facts li + li { margin-top: 7px; }
.dt-slide__facts li::before { content: ""; position: absolute; left: 0; top: 8px; width: 4px; height: 4px; border-radius: 50%; background: var(--text); }
.dt-slide__facts strong { font-weight: 600; margin-right: 4px; }
.dt-info > .arrow-link { align-self: flex-start; margin: 30px 0 0 21px; }

/* ==========================================================================
   Home — about band (gold)
   ========================================================================== */
.about-band { background: var(--gold); color: var(--white); padding: 55px 0 72px; }
.about-band__banner { max-width: 1330px; margin: 0 auto; height: 325px; padding: 0 var(--gutter); }
.about-band__banner img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 1362px) { .about-band__banner { padding: 0; } }
.about-band__grid {
	display: grid; grid-template-columns: 472px minmax(0, 1fr); column-gap: 93px;
	max-width: calc(1250px + var(--gutter) * 2);
	margin-left: max(0px, calc(50% - 590px - var(--gutter)));
	padding-top: 80px;
}
.about-band__text .h2 { color: var(--white); }
.about-band__text p { margin-top: 18px; text-align: justify; font-size: 14px; line-height: 21px; }
.about-band__text h2 + p { margin-top: 40px; }
.about-band__text .arrow-link { margin-top: 36px; }

.values .value { display: grid; grid-template-columns: 62px minmax(0, 1fr); column-gap: 24px; }
.values .value + .value { margin-top: 18px; }
.value__icon {
	width: 62px; height: 62px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
}
.value__body { padding: 12px 0 30px; border-bottom: 1px solid currentColor; }
.value__title { font-size: 20px; line-height: 24px; font-weight: 600; }
.value__text { margin-top: 9px; max-width: 520px; font-size: 14px; line-height: 21px; }
.values--light .value__icon { background: rgba(255, 255, 255, .2); color: var(--white); }
.values--light .value__body { border-color: rgba(255, 255, 255, .45); }
.values--dark { margin-top: 60px; }
.values--dark .value__icon { background: var(--circle); color: var(--text); }
.values--dark .value__body { border-color: rgba(64, 64, 64, .4); padding-top: 16px; padding-bottom: 28px; }
.values--dark .value__text { max-width: 960px; }
.values--dark .value + .value { margin-top: 20px; }

/* ==========================================================================
   Home — tailor-made
   ========================================================================== */
.tailor { padding: 86px 0 104px; }
.tailor__grid { position: relative; }
.tailor__media { width: 75.1%; height: 508px; }
.tailor__media img { width: 100%; height: 100%; object-fit: cover; }
.tailor__box {
	position: relative; z-index: 2;
	width: 553px; max-width: 100%;
	margin: -287px 0 0 auto; min-height: 287px;
	padding: 34px 70px 0 41px;
	background: var(--bg);
}
.tailor__box p { margin-top: 18px; font-size: 14px; line-height: 20px; }
.tailor__box .h2 + p { margin-top: 14px; }
.tailor__box .arrow-link { margin-top: 18px; }

/* ==========================================================================
   Stories
   ========================================================================== */
.stories { background: var(--green); padding: 64px 0 102px; }
.stories .h2, .stories .section-head__intro { color: var(--white); }
.story-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin-top: 50px; }
.story { display: flex; flex-direction: column; background: var(--bg); }
.story__media { display: block; height: 283px; overflow: hidden; }
.story__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.story:hover .story__media img { transform: scale(1.04); }
.story__body { flex: 1; display: flex; flex-direction: column; align-items: center; padding: 25px 56px 19px; text-align: center; }
.story__title { font-size: 20px; line-height: 22px; font-weight: 600; color: var(--text); }
.story__text { margin-top: 15px; font-size: 14px; line-height: 21px; }
.story__rule { width: 100%; margin: 20px 0 10px; border: 0; border-top: 1px solid rgba(64, 64, 64, .3); }
.story__body .arrow-link { margin-top: auto; }
.story-grid--light .story { box-shadow: 0 10px 30px rgba(64, 64, 64, .1); border: 1px solid rgba(64, 64, 64, .12); }

/* ==========================================================================
   Testimonials
   ========================================================================== */
.testimonials { padding: 64px 0 103px; }
.testi-track {
	display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 28px) / 3);
	gap: 14px; margin-top: 40px;
	overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
}
.testi-track::-webkit-scrollbar { display: none; }
.testi {
	scroll-snap-align: start;
	padding: 19px 26px 29px;
	border-radius: 5px; background: var(--gold); color: var(--white);
}
.testi__head { display: flex; align-items: center; gap: 23px; }
.testi__avatar { flex: none; width: 53px; height: 53px; border-radius: 50%; overflow: hidden; background: var(--bg); }
.testi__avatar img { width: 100%; height: 100%; object-fit: cover; }
.testi__name { display: block; font-size: 18px; line-height: 22px; font-weight: 700; }
.testi__date { display: block; font-size: 14px; line-height: 18px; }
.bubbles { display: flex; gap: 2px; margin-top: 17px; }
.bubble {
	position: relative; width: 22px; height: 22px; border-radius: 50%;
	border: 2px solid #1C8C00;
}
.bubble::after { content: ""; position: absolute; inset: 3px; border-radius: 50%; }
.bubble.is-on::after { background: #1C8C00; }
.testi__title { margin-top: 22px; font-size: 14px; line-height: 20px; font-weight: 700; }
.testi__quote p:last-child { margin-top: 6px; font-size: 14px; line-height: 19px; }

/* ==========================================================================
   CTA band & footer
   ========================================================================== */
.cta-band { background: var(--green); padding: 62px 0 0; text-align: center; color: var(--white); }
.cta-band__title { font-size: 48px; line-height: 56px; font-weight: 600; font-style: italic; }
.cta-band .arrow-link { margin-top: 26px; }

.site-footer { background: var(--green); color: var(--white); padding-top: 125px; }
.site-footer--rounded { border-radius: 60px 60px 0 0; padding-top: 115px; }
.site-footer__inner { display: grid; grid-template-columns: 289px minmax(0, 1fr); }
.site-footer__logo img { width: 175px; height: auto; }
.site-footer__social { display: flex; gap: 38px; margin-top: 40px; }
.site-footer__social a { display: block; color: var(--white); transition: opacity .2s; }
.site-footer__social a:hover { opacity: .7; }
.site-footer__social .icon { width: 20px; height: 20px; }
.site-footer__cols { display: flex; justify-content: space-between; gap: 32px; }
.site-footer__cols--contacts { gap: 24px; }
.site-footer__title { margin-top: 4px; font-size: 18px; line-height: 24px; font-weight: 700; letter-spacing: .02em; }
.site-footer__menu { margin-top: 21px; }
.site-footer__menu li + li { margin-top: 20px; }
.site-footer__menu a { font-size: 16px; line-height: 23px; letter-spacing: .03em; color: rgba(255, 255, 255, .93); transition: color .2s; }
.site-footer__menu a:hover { color: var(--gold); }
.site-footer__col--contacts { flex: 0 1 285px; }
.site-footer__contacts { margin-top: 22px; font-family: var(--f-ui); font-size: 14px; line-height: 17px; letter-spacing: .01em; }
.site-footer__contacts li { display: grid; grid-template-columns: 16px 1fr; column-gap: 22px; align-items: start; }
.site-footer__contacts li + li { margin-top: 19px; }
.site-footer__contacts .icon { width: 16px; height: 16px; margin-top: 0; }
.site-footer__contacts a:hover { color: var(--gold); }
.site-footer__copy { grid-column: 1 / -1; margin-top: 67px; padding-bottom: 37px; text-align: right; font-size: 13px; line-height: 18px; }

/* Video modal */
.video-modal { position: fixed; inset: 0; z-index: 200; display: flex; align-items: center; justify-content: center; padding: 24px; }
.video-modal__backdrop { position: absolute; inset: 0; background: rgba(2, 27, 23, .85); }
.video-modal__dialog { position: relative; width: min(1100px, 100%); aspect-ratio: 16 / 9; background: #000; }
.video-modal__frame, .video-modal__frame iframe, .video-modal__frame video { width: 100%; height: 100%; border: 0; }
.video-modal__close { position: absolute; right: 0; top: -46px; width: 40px; height: 40px; color: #fff; }
.video-modal__close .icon { width: 28px; height: 28px; margin: auto; }

/* ==========================================================================
   Listing pages — tabs & cards
   ========================================================================== */
.listing { padding: 89px 0 92px; }
.listing:not(.listing--tabs) { padding-top: 84px; }
.tabs--pill, .tabs--caps { display: flex; gap: 8px; margin: 0 -29px; }
.tabs--pill .tabs__btn {
	flex: 1 1 auto; height: 44px; padding: 0 16px;
	border: 1px solid var(--text); border-radius: 10px;
	font-size: 15px; font-weight: 600; color: #474747;
	transition: background .2s, color .2s, border-color .2s;
}
.tabs--pill .tabs__btn.is-active { background: var(--green-tab); border-color: var(--green-tab); color: var(--white); box-shadow: 0 2px 4px rgba(0, 0, 0, .12); }
.tabs--pill .tabs__btn:not(.is-active):hover { background: rgba(0, 102, 53, .08); }
.tabs--caps { gap: 26px; margin: 0 -24px 0 -24px; padding: 0 29px; }
.tabs--caps .tabs__btn {
	flex: 1 1 0; height: 42px; padding: 0 16px;
	border: 1px solid var(--text); border-radius: 8px;
	font-family: var(--f-ui); font-size: 14px; font-weight: 600; text-transform: uppercase; color: var(--text);
	transition: background .2s, color .2s;
}
.tabs--caps .tabs__btn:nth-child(1) { flex-grow: 418; }
.tabs--caps .tabs__btn:nth-child(2) { flex-grow: 362; }
.tabs--caps .tabs__btn:nth-child(3) { flex-grow: 408; }
.tabs--caps .tabs__btn.is-active { background: var(--green); border-color: var(--green); color: var(--white); }
.tabs--caps .tabs__btn:not(.is-active):hover { background: rgba(33, 91, 72, .08); }

.listing__intro { max-width: 880px; margin: 40px auto 0; text-align: center; }
.card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 60px 28px; margin-top: 62px; }
.listing--tabs .tabs--caps + .card-grid { margin-top: 69px; }
.listing:not(.listing--tabs) .card-grid { margin-top: 0; gap: 54px 28px; }
.card { display: flex; flex-direction: column; box-shadow: 0 18px 30px rgba(120, 112, 60, .09); }
.card.is-hidden { display: none; }
.card__media { display: block; height: 295px; overflow: hidden; }
.card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.card:hover .card__media img { transform: scale(1.03); }
.card__body {
	flex: 1;
	padding: 34px 29px 66px;
	border: 2px solid #3B3B3B; border-top: 0;
}
.card__body--simple { padding: 28px 45px 40px; }
.card__title { padding: 0 16px; font-size: 24px; line-height: 30px; font-weight: 400; color: var(--grey-title); }
.card__body--simple .card__title { padding: 0; }
.card__title a:hover { color: var(--green); }
.card__meta { margin-top: 8px; padding: 0 16px; font-size: 14px; line-height: 20px; font-weight: 600; color: var(--grey); }
.card__duration { margin-top: 6px; padding: 0 16px; font-size: 14px; line-height: 20px; font-weight: 600; color: var(--green); }
.card__rule { margin: 20px 0 0; border: 0; border-top: 1px solid rgba(64, 64, 64, .2); }
.card__pad { padding: 20px 16px 0; }
.card__pad--tight { padding-top: 22px; padding-bottom: 15px; }
.card__label { font-family: var(--f-ui); font-size: 13px; line-height: 18px; font-weight: 500; color: var(--grey); }
.chips { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.chip {
	padding: 2px 17px; background: var(--chip);
	font-family: var(--f-ui); font-size: 13px; line-height: 19px; font-weight: 500; color: var(--grey);
}
.card__text { margin-top: 30px; font-size: 14px; line-height: 22px; font-weight: 300; color: var(--grey); }
.card__body--simple .card__text { margin-top: 10px; }
.card__pad .card__text:first-child { margin-top: 0; }
.card__foot { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; padding-top: 28px; }
.card:has(.card__foot) .card__body { padding-bottom: 38px; }
.card:has(.card__duration) .card__body { padding-bottom: 38px; }
.card:has(.card__duration) .card__rule { margin-top: 0; }
.card:has(.card__duration) .card__text { margin-top: 10px; line-height: 23px; }
.see-link {
	display: inline-flex; align-items: center; gap: 7px; margin-top: 14px;
	font-family: var(--f-ui); font-size: 15px; line-height: 20px; font-weight: 600; color: var(--green);
	transition: gap .2s;
}
.see-link:hover { gap: 11px; }
.see-link .icon { width: 14px; height: 14px; }
.see-link--bright { color: var(--green-bright); margin-top: 0; padding-bottom: 2px; }
.listing__empty { margin-top: 40px; text-align: center; }

/* ==========================================================================
   Round tour detail
   ========================================================================== */
.pk-intro { padding-top: 63px; }
.pk-intro__grid {
	display: grid; grid-template-columns: minmax(0, 487px) minmax(0, 647px); justify-content: space-between; align-items: start;
	max-width: calc(1240px + var(--gutter) * 2);
}
.pk-intro__text { padding-top: 15px; }
.badge {
	display: inline-block; padding: 2px 24px; border-radius: 20px;
	background: var(--green); color: var(--white);
	font-size: 17px; line-height: 24px; font-weight: 600;
}
.pk-intro__title { margin-top: 10px; font-size: 48px; line-height: 52px; font-weight: 600; color: var(--green); }
.pk-intro__desc { margin-top: 26px; max-width: 440px; font-size: 14px; line-height: 23px; font-weight: 300; color: var(--grey); }
.pk-intro__content { margin-top: 24px; }
.pk-intro .card__meta, .pk-intro .card__label { padding: 0; margin-top: 18px; }
.pk-intro .chips { margin-bottom: 8px; }
.facts {
	margin-top: 41px; padding: 26px 32px;
	border: 1px solid rgba(64, 64, 64, .55); border-radius: 16px;
}
.fact { display: grid; grid-template-columns: 30px 1fr; column-gap: 19px; align-items: center; }
.fact + .fact { margin-top: 22px; }
.fact__icon {
	width: 30px; height: 30px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	background: var(--gold); color: var(--white);
}
.fact__icon .icon { width: 16px; height: 16px; }
.fact__label { display: block; font-size: 9px; line-height: 12px; text-transform: uppercase; color: var(--grey); }
.fact__value { display: block; font-size: 14px; line-height: 17px; font-weight: 500; color: var(--grey); }
.pk-intro__media img {
	width: 100%; height: 483px; object-fit: cover;
	border-radius: 12px; box-shadow: 0 14px 22px rgba(64, 60, 30, .2);
}

.timeline { padding: 100px 0 0; }
.timeline__list { position: relative; padding-top: 58px; padding-bottom: 54px; max-width: calc(1241px + var(--gutter) * 2); }
.timeline__list::before {
	content: ""; position: absolute; top: 0; bottom: 0;
	left: calc(var(--gutter) + 150px); width: 1px; background: #1E1E1E;
}
.timeline__item { position: relative; display: grid; grid-template-columns: 150px minmax(0, 1fr); column-gap: 76px; }
.timeline__item + .timeline__item { margin-top: 84px; }
.timeline__day { padding-left: 6px; font-size: 32px; line-height: 32px; font-weight: 600; color: var(--green); }
.timeline__dot {
	position: absolute; left: 141px; top: 9px;
	width: 18px; height: 18px; border-radius: 50%; background: var(--gold);
}
.is-first .timeline__dot { left: 132px; top: 0; width: 36px; height: 36px; background: var(--bg); border: 3px solid var(--gold); }
.is-first .timeline__dot::after { content: ""; position: absolute; inset: 6px; border-radius: 50%; background: var(--gold); }
.timeline__title { font-size: 20px; line-height: 26px; font-weight: 600; color: #3D3E48; }
.timeline__text { margin-top: 6px; font-size: 16px; line-height: 25px; color: #4D4D4D; }

.incl { padding: 98px 0 66px; }
.incl__grid { display: grid; grid-template-columns: 564px 610px; gap: 51px; max-width: calc(1225px + var(--gutter) * 2); justify-content: space-between; }
.incl__box { padding: 58px 75px 52px; border: 1px solid var(--gold); border-radius: 16px; }
.incl__title { font-size: 20px; line-height: 26px; font-weight: 600; color: #3D3E48; }
.incl__list { margin-top: 20px; font-size: 16px; line-height: 25px; font-weight: 600; color: #4D4D4D; }
.incl__list li { position: relative; padding-left: 15px; }
.incl__list li::before { content: "•"; position: absolute; left: 0; }

/* ==========================================================================
   Day tour detail
   ========================================================================== */
.dti { padding-top: 85px; }
.dti__grid {
	display: grid; grid-template-columns: minmax(0, 620px) minmax(0, 505px); justify-content: space-between; align-items: start;
	max-width: calc(1182px + var(--gutter) * 2);
}
.dti__heading { display: flex; align-items: center; gap: 4px; margin-top: 50px; font-size: 32px; line-height: 38px; font-weight: 600; color: var(--green); }
.dti__heading .icon { width: 20px; height: 20px; margin-top: -8px; }
.dti__overview { margin-top: 26px; font-size: 16px; line-height: 22px; color: #1E1E1E; }
.dti__overview p + p { margin-top: 14px; }
.dti__heading + .highlights { margin-top: 26px; }
.highlights { padding: 40px 28px 36px; border-radius: 16px; background: var(--gold); color: var(--white); }
.highlights dt { font-size: 14px; line-height: 20px; font-weight: 700; color: #FCFCFC; }
.highlights dd { margin: 9px 0 0; max-width: 520px; font-size: 14px; line-height: 19px; }
.highlights dd + dt { margin-top: 11px; }
.dti__media img { width: 100%; height: 660px; object-fit: cover; border-radius: 16px; }

.ie { padding: 70px 0 55px; }
.ie__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; max-width: calc(1184px + var(--gutter) * 2); }
.ie__box { padding: 36px 30px 34px; border-radius: 16px; border: 1px solid; }
.ie__box--in { background: #E5EFE1; border-color: #8FD3A0; }
.ie__box--out { background: #F2E5E0; border-color: #F1A9A9; }
.ie__title { display: flex; align-items: center; gap: 14px; font-size: 20px; line-height: 26px; font-weight: 700; }
.ie__title .icon { width: 22px; height: 22px; }
.ie__box--in .ie__title { color: #268C3F; }
.ie__box--out .ie__title { color: #C43535; }
.ie__list { margin-top: 18px; padding-left: 4px; font-size: 16px; line-height: 34px; color: #000; }
.ie__list li { position: relative; padding-left: 15px; }
.ie__list li::before { content: "•"; position: absolute; left: 0; }

/* ==========================================================================
   About page
   ========================================================================== */
.about-intro { padding-top: 65px; }
.about-intro__grid { display: grid; grid-template-columns: minmax(0, 728px) minmax(0, 450px); }
.about-intro__text { padding: 60px 40px 80px 2px; max-width: 590px; }
.about-intro__text p { margin-top: 22px; font-size: 14px; line-height: 21px; }
.about-intro__text .h2 + p { margin-top: 30px; }
.about-intro__tall img { width: 100%; height: 494px; object-fit: cover; }
.about-intro__wide { margin-left: 2px; }
.about-intro__wide img { width: 100%; height: 346px; object-fit: cover; }
.about-intro__logo { display: flex; align-items: center; justify-content: center; }
.about-intro__logo img { width: 278px; }

.about-boxes { padding-top: 102px; }
.about-boxes__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.about-box { min-height: 305px; padding: 50px 95px 40px; text-align: center; color: var(--white); }
.about-box--green { background: var(--green); }
.about-box--gold { background: var(--gold); }
.about-box h2 { color: var(--white); }
.about-box p { margin-top: 16px; font-size: 14px; line-height: 20px; }

.steps { padding-top: 98px; }
.steps__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 21px 36px; margin-top: 27px; padding: 0 2px; }
.step {
	position: relative;
	margin-top: 37px; padding: 0 45px 33px;
	border-radius: 0 24px 24px 24px;
	background: var(--green); color: var(--white);
	box-shadow: 0 6px 10px rgba(0, 0, 0, .14);
}
.step::before {
	content: ""; position: absolute; left: 0; bottom: calc(100% - 1px);
	width: 213px; height: 38px; border-radius: 24px 0 0 0;
	background: var(--green);
	clip-path: polygon(0 0, 170px 0, 100% 100%, 0 100%);
}
.step__title { position: relative; top: -10px; font-size: 20px; line-height: 24px; font-weight: 700; }
.step__text { margin-top: 14px; font-size: 14px; line-height: 20px; }

.stand { padding: 150px 0 100px; }

/* ==========================================================================
   Enquiry (tailor-made / contact), articles, generic content
   ========================================================================== */
.enquiry { padding: 90px 0 100px; }
.enquiry__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 600px); gap: 64px; align-items: start; }
.enquiry__text .entry-content { font-size: 16px; line-height: 26px; }
.enquiry__form { padding: 40px; border: 1px solid rgba(64, 64, 64, .3); border-radius: 16px; background: rgba(255, 255, 255, .25); }
.enquiry__intro { margin-top: 10px; font-size: 14px; line-height: 21px; }
.enquiry-form { margin-top: 24px; }
.enquiry-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 20px; }
.field--wide { grid-column: 1 / -1; }
.field label, .field legend { display: block; margin-bottom: 6px; font-family: var(--f-ui); font-size: 13px; font-weight: 500; color: var(--grey); }
.field fieldset { margin: 0; padding: 0; border: 0; }
.field input, .field select, .field textarea {
	width: 100%; min-height: 46px; padding: 10px 14px;
	border: 1px solid rgba(64, 64, 64, .4); border-radius: 8px;
	background: rgba(255, 255, 255, .5); color: var(--text);
	font: 14px/20px var(--f-body);
}
.field textarea { resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--green); box-shadow: 0 0 0 3px rgba(33, 91, 72, .15); }
.field__checks { display: flex; flex-wrap: wrap; gap: 8px; }
.check { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid rgba(64, 64, 64, .35); border-radius: 20px; font-size: 13px; cursor: pointer; }
.check:has(input:checked) { background: var(--green); border-color: var(--green); color: #fff; }
.check input { accent-color: var(--green); }
.btn {
	display: inline-flex; align-items: center; gap: 8px; margin-top: 26px;
	padding: 13px 28px; border-radius: 30px;
	font-family: var(--f-ui); font-size: 15px; font-weight: 600;
	transition: background .2s, transform .2s;
}
.btn--green { background: var(--green); color: #fff; }
.btn--green:hover { background: var(--ink); }
.form-notice { margin-bottom: 18px; padding: 12px 16px; border-radius: 8px; font-size: 14px; }
.form-notice--ok { background: #E5EFE1; color: #1E6B30; border: 1px solid #8FD3A0; }
.form-notice--error { background: #F2E5E0; color: #A12A2A; border: 1px solid #F1A9A9; }
.contact-list { margin-top: 32px; }
.contact-list li { display: flex; align-items: flex-start; gap: 16px; font-size: 16px; line-height: 24px; }
.contact-list li + li { margin-top: 18px; }
.contact-list__icon { flex: none; width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--green); color: #fff; margin-top: -8px; }
.contact-list__icon .icon { width: 18px; height: 18px; }
.contact-list a:hover { color: var(--green); }

.article { padding: 80px 0 100px; }
.article__head { margin-bottom: 30px; }
.article__meta { margin-bottom: 10px; font-family: var(--f-ui); font-size: 14px; color: var(--grey); }
.article__meta a { color: var(--green); }
.entry-content { font-size: 16px; line-height: 27px; }
.entry-content > * + * { margin-top: 18px; }
.entry-content h2 { margin-top: 36px; font-size: 32px; line-height: 38px; font-weight: 600; color: var(--green); }
.entry-content h3 { margin-top: 28px; font-size: 24px; line-height: 30px; font-weight: 600; color: var(--text); }
.entry-content a { color: var(--green); text-decoration: underline; }
.entry-content ul { list-style: disc; padding-left: 22px; }
.entry-content ol { list-style: decimal; padding-left: 22px; }
.entry-content img { border-radius: 12px; }
.entry-content blockquote { padding-left: 20px; border-left: 3px solid var(--gold); font-style: italic; }
.enquiry__text .entry-content h2:first-child, .entry-content > :first-child { margin-top: 0; }
.entry-content--narrow { max-width: 900px; margin-top: 50px; }

.gallery-strip { padding-top: 70px; }
.gallery-strip__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.gallery-strip__grid img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.related { padding: 90px 0 100px; }
.related .card-grid { margin-top: 50px; }
.stories--related { padding-top: 70px; }

section.blog { padding: 84px 0 100px; }
section.blog .story-grid { margin-top: 0; gap: 40px 32px; }
.nav-links { display: flex; justify-content: center; gap: 8px; margin-top: 50px; }
.page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; border: 1px solid var(--text); border-radius: 8px; font-family: var(--f-ui); font-weight: 600; }
.page-numbers.current { background: var(--green); border-color: var(--green); color: #fff; }
.page-numbers .icon { width: 18px; height: 18px; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1360px) {
	.dt { grid-template-columns: 260px minmax(0, 1fr); margin-left: auto; margin-right: auto; padding: 0 var(--gutter); }
	.about-band__grid { margin: 0 auto; padding-left: var(--gutter); padding-right: var(--gutter); grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); column-gap: 60px; }
	.tabs--pill, .tabs--caps { margin-left: 0; margin-right: 0; padding: 0; }
}

@media (max-width: 1180px) {
	/* Small laptops / landscape tablets: keep the desktop layouts, let them flex */
	.features__row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.feature { padding: 48px 22px 30px 24px; gap: 16px; }
	.dt { grid-template-columns: 230px minmax(0, 1fr); column-gap: 24px; }
	.dt__stage { --info: 300px; --mh: 480px; }
	.dt-slide__title { margin-right: 0; margin-left: -60px; font-size: 32px; line-height: 35px; }
	.dt-slide__cat { padding-right: 0; }
	.dt-slide__facts { margin-right: 0; }
	.about-band__grid { column-gap: 40px; }
	.tailor__box { width: min(553px, 62%); }
	.pk-intro__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 40px; }
	.dti__grid { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 40px; }
	.enquiry__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 40px; }
	.incl__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
	.incl__box { padding: 44px 40px; }
	.about-intro__grid { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); }
	.about-box { padding: 44px 48px 36px; }
	.site-footer__inner { grid-template-columns: 220px minmax(0, 1fr); }
	.site-footer__cols { gap: 20px; }
}

@media (max-width: 1020px) {
	.site-nav { display: none; }
	.nav-toggle { display: inline-flex; position: absolute; right: var(--gutter); top: 40px; }
	.site-header__inner { position: relative; }
	.mobile-nav:not([hidden]) { display: block; }
	.social-rail { right: 14px; }
}
@media (max-width: 860px) {

	.features__row { grid-template-columns: 1fr; }
	.feature { min-height: 0; padding: 36px 30px; }

	.rt { flex-direction: column; }
	.rt__media { flex-basis: auto; min-height: 0; height: 420px; }
	.rt__content { padding: 32px var(--gutter) 0; }

	.dt { grid-template-columns: 1fr; row-gap: 30px; }
	.dt__arrows { margin-top: 24px; }
	.dt__stage { height: auto; container-type: inline-size; --mw: 100cqw; --mh: min(420px, 62cqw); --t: calc((100cqw - 2 * var(--g)) / 3); }
	.dt__info { position: static; width: auto; margin-bottom: 24px; }
	.dt__imgs { position: relative; height: calc(var(--mh) + var(--g) + var(--t)); }
	.dt-img { top: calc(var(--mh) + var(--g)); left: calc(3 * (var(--t) + var(--g))); }
	.dt-img[data-pos="t1"] { left: 0; }
	.dt-img[data-pos="t2"] { left: calc(var(--t) + var(--g)); }
	.dt-img[data-pos="t3"] { left: calc(2 * (var(--t) + var(--g))); }
	.dt-img[data-pos="prev"] { left: calc(-1 * (var(--t) + var(--g))); }
	.dt-slide__title { margin: 12px 0 0; text-align: left; -webkit-text-stroke: 0; }
	.dt-slide__cat { text-align: left; padding: 0; }
	.dt-slide__facts { margin: 24px 0 0; }
	.dt-info > .arrow-link { margin-left: 0; }

	.about-band__grid { grid-template-columns: 1fr; row-gap: 50px; padding-top: 60px; }
	.tailor__media { width: 100%; height: 420px; }
	.tailor__box { width: auto; margin: -80px 24px 0; padding: 30px; }

	.pk-intro__grid, .dti__grid, .enquiry__grid { grid-template-columns: 1fr; gap: 40px; }
	.pk-intro__media img, .dti__media img { height: auto; aspect-ratio: 4 / 3; }
	.incl__grid { grid-template-columns: 1fr; gap: 24px; }
	.about-intro__grid { grid-template-columns: 1fr 1fr; }
	.about-intro__text { grid-column: 1 / -1; max-width: none; padding: 30px 0 40px; }
	.about-intro__logo { grid-column: 1 / -1; padding: 40px 0; }

	.h2 { font-size: 38px; line-height: 42px; }
	.h2--xl { font-size: 40px; line-height: 44px; }
	.home-hero { height: 640px; }
	.page-hero { height: 480px; }
	.page-hero__title { font-size: 38px; line-height: 38px; }
	.page-hero__inner { padding-top: 150px; }
	.page-hero--center .page-hero__inner { padding-top: 170px; }
	.social-rail { display: none; }

	.dest-slider { --w: calc(100vw - 2 * var(--gutter)); --gap: 16px; height: 360px; }
	.dest-slider { --inset: 0px; }
	.dest-slide { height: 360px; }
	.dest-slide__overlay { flex-direction: column; align-items: flex-start; justify-content: flex-end; gap: 10px; padding: 0 20px 20px; }
	.dest-slide__link { margin: 0; }
	.dest-slider__nav { width: 40px; height: 40px; margin-top: -20px; border-radius: 50%; background: rgba(233, 231, 210, .9); }
	.dest-slider__nav--prev { left: calc(var(--gutter) + 10px); }
	.dest-slider__nav--next { right: calc(var(--gutter) + 10px); }

	.card-grid { grid-template-columns: 1fr; gap: 40px; }
	.tabs--pill, .tabs--caps, .tabs--box { flex-wrap: wrap; gap: 8px; }
	.tabs--box .tabs__btn { margin-left: 0; }
	.tabs--pill .tabs__btn, .tabs--caps .tabs__btn { flex: 1 1 calc(50% - 8px); }
	.story-grid { grid-template-columns: 1fr; max-width: 480px; margin-left: auto; margin-right: auto; }
	.testi-track { grid-auto-columns: 85%; }
	.about-boxes__grid, .steps__grid, .ie__grid, .gallery-strip__grid { grid-template-columns: 1fr; }
	.about-box { padding: 40px 28px; }
	.about-intro__grid { grid-template-columns: 1fr; row-gap: 12px; }
	.about-intro__wide { margin-left: 0; }
	.about-intro__tall img, .about-intro__wide img { height: auto; aspect-ratio: 4 / 3; }
	.timeline__list::before { left: calc(var(--gutter) + 9px); }
	.timeline__item { grid-template-columns: 1fr; padding-left: 40px; }
	.timeline__day { padding-left: 0; font-size: 26px; }
	.timeline__dot, .is-first .timeline__dot { left: 0; }
	.is-first .timeline__dot { left: -9px; }
	.timeline__body { margin-top: 10px; }
	.incl__box { padding: 36px 28px; }
	.enquiry-form__grid { grid-template-columns: 1fr; }
	.enquiry__form { padding: 26px 20px; }
	.cta-band__title { font-size: 36px; line-height: 42px; }
	.site-footer__inner { grid-template-columns: 1fr; row-gap: 40px; }
	.site-footer__cols { flex-wrap: wrap; justify-content: flex-start; gap: 36px 48px; }
	.site-footer__copy { text-align: left; margin-top: 40px; }
	.stand { padding-top: 90px; }
	.listing { padding-top: 60px; }
}

@media (max-width: 520px) {
	.page-hero__title { font-size: 32px; line-height: 34px; }
	.card__body { padding: 26px 12px 40px; }
	.card__body--simple { padding: 24px 24px 32px; }
	.card__foot { flex-direction: column; align-items: flex-start; }
	.feature { flex-direction: column; gap: 16px; }
	.feature__text { margin-top: 14px; }
	.rt__item { flex-direction: column; align-items: flex-start; gap: 8px; }
	.dt-slide__title { font-size: 30px; line-height: 33px; }
	.tailor__box { margin: -60px 12px 0; padding: 24px 20px; }
	.tailor__media { height: 300px; }
	.about-band__banner { height: 200px; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* ==========================================================================
   Motion — hero layers, entrance animations, hover interactions
   ========================================================================== */
:root {
	--e-out: cubic-bezier(.22, 1, .36, 1);
	--e-soft: cubic-bezier(.45, .05, .2, 1);
}

/* Hero background layer: settles from a slight zoom on load, parallax on scroll (--py from JS) */
.home-hero, .page-hero { overflow: hidden; isolation: isolate; }
.hero-bg {
	position: absolute; inset: 0; z-index: -1;
	background: center / cover no-repeat;
	translate: 0 var(--py, 0px);
	will-change: translate, scale;
}
.page-hero--light::before { z-index: 0; }
.page-hero__inner { position: relative; z-index: 1; }
.play-btn { z-index: 1; }

/* Play button: soft pulsing rings */
.play-btn::before, .play-btn::after {
	content: ""; position: absolute; inset: 0; border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, .55);
	opacity: 0; pointer-events: none;
}

/* Underline that grows under header links */
.site-nav .menu > li > a { position: relative; }
.site-nav .menu > li > a::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 2px; height: 2px;
	background: var(--gold); transform: scaleX(0); transform-origin: right;
	transition: transform .45s var(--e-out);
}
.site-nav .menu > li > a:hover::after,
.site-nav .menu > li.current-menu-item > a::after { transform: scaleX(1); transform-origin: left; }
.menu-chevron { transition: transform .3s var(--e-out); }
.site-nav .menu > li:hover .menu-chevron { transform: rotate(180deg); }

/* ---------- Hover / interaction ---------- */
.card, .story, .testi, .feature, .step, .about-box, .incl__box, .ie__box, .highlights {
	transition: transform .45s var(--e-out), box-shadow .45s var(--e-out);
}
.card__body { transition: border-color .35s ease; }
.card__title a, .story__title a, .rt__name, .dt-slide__title a { transition: color .3s ease; }

@media (hover: hover) {
	.card:hover { transform: translateY(-8px); box-shadow: 0 28px 44px rgba(64, 60, 30, .16); }
	.card:hover .card__body { border-color: var(--green); }
	.story:hover { transform: translateY(-8px); box-shadow: 0 24px 40px rgba(0, 0, 0, .28); }
	.story:hover .story__title a { color: var(--green); }
	.testi:hover { transform: translateY(-6px); box-shadow: 0 20px 34px rgba(91, 70, 30, .25); }
	.feature:hover { transform: translateY(-6px); box-shadow: 0 22px 36px rgba(0, 0, 0, .18); z-index: 1; position: relative; }
	.feature:hover .feature__icon { transform: translateY(-4px) scale(1.08); }
	.step:hover, .about-box:hover { transform: translateY(-6px); box-shadow: 0 18px 30px rgba(0, 0, 0, .2); }
	.incl__box:hover, .ie__box:hover, .highlights:hover { transform: translateY(-4px); box-shadow: 0 16px 30px rgba(64, 60, 30, .12); }

	.value:hover .value__icon { transform: scale(1.1) rotate(-6deg); }
	.values--light .value:hover .value__icon { background: rgba(255, 255, 255, .32); }
	.values--dark .value:hover .value__icon { background: var(--gold); color: var(--white); }
	.value:hover .value__title { transform: translateX(6px); }

	.rt__item:hover .rt__name { color: var(--green); transform: translateX(6px); }
	.rt__item:hover .arrow-link--muted { color: var(--gold); }

	.chip:hover { background: var(--green); color: var(--white); }
	.fact:hover .fact__icon { transform: rotate(-12deg) scale(1.1); }

	.rt__media:hover img, .tailor__media:hover img, .about-band__banner:hover img,
	.about-intro__tall:hover img, .about-intro__wide:hover img,
	.pk-intro__media:hover img, .dti__media:hover img, .gallery-strip__grid img:hover { transform: scale(1.05); }

	.dt-img[data-pos^="t"]:hover img { transform: scale(1.1); filter: brightness(1.08); }
	.dt-img[data-pos="main"]:hover img { transform: scale(1.03); }
	.dest-slide:not(.is-active) { cursor: pointer; }
	.dest-slide:not(.is-active):hover img { filter: brightness(1.1); }

	.site-footer__menu a:hover { padding-left: 6px; }
	.site-footer__social a:hover { transform: translateY(-3px); opacity: 1; color: var(--gold); }
	.btn:hover { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(2, 27, 23, .2); }
	.badge:hover { background: var(--gold); }
}
.feature__icon, .value__icon, .value__title, .rt__name, .chip, .fact__icon, .badge,
.site-footer__social a, .btn { transition: transform .4s var(--e-out), background .3s ease, color .3s ease, box-shadow .3s ease, opacity .3s ease; }
.site-footer__menu a { transition: color .2s, padding .3s var(--e-out); }
.rt__media, .tailor__media, .about-band__banner, .about-intro__tall, .about-intro__wide, .gallery-strip__grid { overflow: hidden; }
.rt__media img, .tailor__media img, .about-band__banner img, .about-intro__tall img, .about-intro__wide img,
.pk-intro__media img, .dti__media img, .gallery-strip__grid img, .dt-img img, .dest-slide img { transition: transform 1.2s var(--e-out), filter .5s ease; }
/* Rounded media keep their corners + shadow while the image zooms */
.pk-intro__media { overflow: hidden; border-radius: 12px; box-shadow: 0 14px 22px rgba(64, 60, 30, .2); }
.pk-intro__media img { box-shadow: none; border-radius: 0; }
.dti__media { overflow: hidden; border-radius: 16px; }
.dti__media img { border-radius: 0; }

.tabs__btn { transition: background .25s, color .25s, border-color .25s, transform .2s var(--e-out); }
.tabs__btn:active, .round-btn:active, .btn:active, .play-btn:active { transform: scale(.96); }
.arrow-link__arrow, .see-link .icon { transition: transform .35s var(--e-out); }
.arrow-link:hover .arrow-link__arrow, .see-link:hover .icon { transform: translateX(4px); }

/* Cards fading between tab filters */
.card.is-filtering { animation: cardIn .6s var(--e-out) both; }
@keyframes cardIn { from { opacity: 0; translate: 0 24px; } to { opacity: 1; translate: none; } }

/* ---------- Entrance animations (only when motion is allowed) ---------- */
@media (prefers-reduced-motion: no-preference) {
	/* Load sequence */
	html.js .hero-bg { animation: heroSettle 2.4s var(--e-out) both; }
	html.js .site-header { animation: dropIn 1s var(--e-out) .1s both; }
	html.js .page-hero__title { animation: riseIn 1.1s var(--e-out) .35s both; }
	html.js .page-hero__subtitle { animation: riseIn 1.1s var(--e-out) .55s both; }
	html.js .play-btn { animation: popIn 1s var(--e-out) .6s both; }
	html.js .play-btn::before { animation: ring 2.8s ease-out 1.6s infinite; }
	html.js .play-btn::after { animation: ring 2.8s ease-out 3s infinite; }
	html.js .social-rail li { animation: slideInR .8s var(--e-out) both; }
	html.js .social-rail li:nth-child(1) { animation-delay: .7s; }
	html.js .social-rail li:nth-child(2) { animation-delay: .78s; }
	html.js .social-rail li:nth-child(3) { animation-delay: .86s; }
	html.js .social-rail li:nth-child(4) { animation-delay: .94s; }

	/* Scroll reveals: hidden from first paint, JS adds .is-in (and a stagger delay via --rv-d). Keep in sync with REVEAL in main.js. */
	html.js :is(.section-head > *, .features__row > .feature, .rt__content, .section--dest .text-center, .dt__intro > *, .about-band__text > *, .values .value, .story, .testi, .site-footer__brand, .site-footer__col, .cta-band .container > *, .listing .tabs, .card, .about-intro__text > *, .about-box, .steps .h2, .step, .stand .h2, .pk-intro__text > *, .incl__box, .dti__text > *, .ie__box, .enquiry__text, .enquiry__form, .article .container > *, .related .h2, .gallery-strip__grid > *, .listing__intro, section.blog .nav-links, .timeline__item, .tailor__box, .dest-slider, .about-intro__logo, .dt__stage, .rt__media, .about-band__banner, .tailor__media, .about-intro__tall, .about-intro__wide, .pk-intro__media, .dti__media, .site-footer__bottom) {
		transition:
			opacity 1s var(--e-out) var(--rv-d, 0s),
			translate 1.1s var(--e-out) var(--rv-d, 0s),
			scale 1.2s var(--e-out) var(--rv-d, 0s),
			clip-path 1.3s var(--e-soft) var(--rv-d, 0s),
			transform .45s var(--e-out),
			box-shadow .45s var(--e-out);
	}
	html.js :is(.section-head > *, .features__row > .feature, .rt__content, .section--dest .text-center, .dt__intro > *, .about-band__text > *, .values .value, .story, .testi, .site-footer__brand, .site-footer__col, .cta-band .container > *, .listing .tabs, .card, .about-intro__text > *, .about-box, .steps .h2, .step, .stand .h2, .pk-intro__text > *, .incl__box, .dti__text > *, .ie__box, .enquiry__text, .enquiry__form, .article .container > *, .related .h2, .gallery-strip__grid > *, .listing__intro, section.blog .nav-links):not(.is-in) { opacity: 0; translate: 0 44px; }
	html.js :is(.timeline__item):not(.is-in) { opacity: 0; translate: -60px 0; }
	html.js :is(.tailor__box):not(.is-in) { opacity: 0; translate: 60px 0; }
	html.js :is(.dest-slider, .about-intro__logo, .dt__stage):not(.is-in) { opacity: 0; scale: .94; }
	html.js :is(.site-footer__bottom):not(.is-in) { opacity: 0; }
	html.js :is(.rt__media, .about-band__banner, .tailor__media, .about-intro__tall, .about-intro__wide, .pk-intro__media, .dti__media):not(.is-in) { clip-path: inset(0 100% 0 0); }
	html.js :is(.rt__media, .about-band__banner, .tailor__media, .about-intro__tall, .about-intro__wide, .pk-intro__media, .dti__media).is-in { clip-path: inset(-40px -40px -40px -40px); }
	html.js :is(.rt__media, .about-band__banner, .tailor__media, .about-intro__tall, .about-intro__wide, .pk-intro__media, .dti__media) img { transition: scale 1.6s var(--e-out) var(--rv-d, 0s), transform 1.2s var(--e-out), filter .5s ease; }
	html.js :is(.rt__media, .about-band__banner, .tailor__media, .about-intro__tall, .about-intro__wide, .pk-intro__media, .dti__media):not(.is-in) img { scale: 1.18; }

	/* Timeline dots pop as each day arrives */
	html.js .timeline__item.is-in .timeline__dot { animation: dotPop .7s var(--e-out) calc(var(--rv-d, 0s) + .35s) both; }
	html.js .timeline__item.is-in.is-first .timeline__dot::before {
		content: ""; position: absolute; inset: -3px; border-radius: 50%; border: 2px solid var(--gold);
		animation: ring 2.4s ease-out 1.2s infinite;
	}
}

@keyframes heroSettle { from { scale: 1.12; } to { scale: 1; } }
@keyframes dropIn { from { opacity: 0; translate: 0 -30px; } to { opacity: 1; translate: none; } }
@keyframes riseIn { from { opacity: 0; translate: 0 34px; } to { opacity: 1; translate: none; } }
@keyframes popIn { 0% { opacity: 0; scale: .6; } 70% { scale: 1.05; } 100% { opacity: 1; scale: 1; } }
@keyframes slideInR { from { opacity: 0; translate: 40px 0; } to { opacity: 1; translate: none; } }
@keyframes ring { 0% { opacity: .7; scale: 1; } 100% { opacity: 0; scale: 1.45; } }
@keyframes dotPop { 0% { scale: 0; } 70% { scale: 1.25; } 100% { scale: 1; } }

/* Tab panels / day-tour text settle in when switched */
@media (prefers-reduced-motion: no-preference) {
	.rt__panel:not([hidden]) { animation: riseIn .7s var(--e-out) both; }
	.rt__panel:not([hidden]) .rt__item { animation: riseIn .7s var(--e-out) both; }
	.rt__panel:not([hidden]) .rt__item:nth-child(2) { animation-delay: .08s; }
	.rt__panel:not([hidden]) .rt__item:nth-child(3) { animation-delay: .16s; }
	.rt__panel:not([hidden]) .rt__item:nth-child(n+4) { animation-delay: .24s; }
	.dt-info.is-active .dt-slide__facts li { animation: riseIn .7s var(--e-out) both; }
	.dt-info.is-active .dt-slide__facts li:nth-child(2) { animation-delay: .2s; }
	.dt-info.is-active .dt-slide__facts li:nth-child(3) { animation-delay: .28s; }
	.dt-info.is-active .dt-slide__facts li:nth-child(4) { animation-delay: .36s; }
	.dt-info.is-active .dt-slide__facts li:first-child { animation-delay: .12s; }
}

/* Entrance offsets (e.g. slide-in from the side) must never cause sideways scrolling on phones */
.site-main, .site-footer, .cta-band { overflow-x: clip; }

/* ---------- Responsive refinements ---------- */
@media (max-width: 860px) {
	/* Day tours: arrows sit under the photos they control */
	.dt { display: flex; flex-direction: column; }
	.dt__intro { display: contents; }
	.dt__intro .h2 { order: 1; }
	.dt__text { order: 2; margin-top: 16px; }
	.dt__all { order: 2; }
	.dt__stage { order: 3; margin-top: 30px; }
	.dt__arrows { order: 4; margin: 24px 0 0; }
	.rt__list { margin-left: 0; }
	.rt__item { padding-left: 0; }
}
@media (max-width: 860px) {
	.about-band__text p { text-align: left; }
}
@media (max-width: 860px) {
	.tabs--caps .tabs__btn { height: auto; min-height: 42px; padding: 8px 12px; font-size: 13px; line-height: 18px; }
	.tabs--pill .tabs__btn { height: auto; min-height: 44px; padding: 8px 12px; }
}
@media (max-width: 520px) {
	.tabs--caps .tabs__btn { flex: 1 1 100%; }
	.tabs--box .tabs__btn { flex: 1 1 100%; }
}
@media (max-width: 860px) {
	.dti, .pk-intro { padding-top: 48px; }
	.dti__text > .dti__heading:first-of-type { margin-top: 0; }
	.timeline { padding-top: 50px; }
	.incl { padding-top: 60px; }
}

/* ==========================================================================
   Content build — elements added for the finalised copy
   ========================================================================== */

/* Home hero text */
.home-hero--text { align-items: center; }
.home-hero--text .hero-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(2, 27, 23, .15) 0%, rgba(2, 27, 23, .25) 45%, rgba(2, 27, 23, .55) 100%); }
.home-hero__inner { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; text-align: center; padding-top: 60px; }
.home-hero__inner .play-btn { margin-bottom: 26px; }
.home-hero__title {
	max-width: 900px;
	font-stretch: 75%; font-size: 56px; line-height: 60px; font-weight: 700;
	color: var(--white); text-shadow: 0 2px 18px rgba(0, 0, 0, .25);
}
.home-hero__sub { max-width: 680px; margin-top: 18px; font-size: 18px; line-height: 28px; color: var(--white); text-shadow: 0 1px 12px rgba(0, 0, 0, .3); }
.home-hero__ctas { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 32px; }
.hero-btn {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 13px 26px; border: 1px solid rgba(255, 255, 255, .85); border-radius: 30px;
	font-family: var(--f-ui); font-size: 15px; font-weight: 600; color: var(--white);
	backdrop-filter: blur(2px);
	transition: background .3s, color .3s, border-color .3s, transform .3s var(--e-out);
}
.hero-btn--solid { background: var(--gold); border-color: var(--gold); }
.hero-btn:hover { background: var(--white); border-color: var(--white); color: var(--green); transform: translateY(-2px); }
@media (prefers-reduced-motion: no-preference) {
	html.js .home-hero__title { animation: riseIn 1.1s var(--e-out) .35s both; }
	html.js .home-hero__sub { animation: riseIn 1.1s var(--e-out) .55s both; }
	html.js .home-hero__ctas { animation: riseIn 1.1s var(--e-out) .75s both; }
}

/* Home sections */
.dt__all { margin-top: 18px; align-self: flex-start; }
.dt-slide__featured { margin-top: 12px; text-align: right; font-family: var(--f-ui); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--gold); padding-right: 68px; }
.dt-slide__featured + .dt-slide__cat { margin-top: 4px; }
.stories__more { margin-top: 44px; }
.testi__initials { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; font-stretch: 75%; font-size: 20px; font-weight: 700; color: var(--gold); }
.tailor__title { font-size: 40px; line-height: 44px; }

/* Listing category intro */
.listing__intro { margin: 0 auto 50px; }
.listing__cat { max-width: 880px; margin: 46px auto 0; text-align: center; }
.listing__cat-title { font-stretch: 75%; font-size: 28px; line-height: 34px; font-weight: 700; color: var(--green); }
.listing__cat-text { margin-top: 12px; font-size: 15px; line-height: 24px; }
.listing__cat + .card-grid, .listing__cat ~ .card-grid { margin-top: 50px; }
.listing__cat.is-filtering { animation: riseIn .6s var(--e-out) both; }

/* Cards */
.card__tagline { margin-top: 6px; font-size: 15px; line-height: 22px; font-style: italic; color: var(--green); }
.card__body--simple .see-link { margin-top: 16px; }
.card__label--gap { margin-top: 14px; }
.card__text-label { font-weight: 600; color: var(--text); }

/* Tour detail */
.timeline__head { padding-bottom: 10px; max-width: calc(1241px + var(--gutter) * 2); }
.incl__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; max-width: calc(1225px + var(--gutter) * 2); }
.incl__box { padding: 40px 36px 36px; }
.incl__list li + li { margin-top: 6px; }
.incl__text { margin-top: 18px; font-size: 16px; line-height: 25px; color: #4D4D4D; }
.enquire-cta { padding: 10px 0 80px; }
.btn--lg { padding: 16px 32px; font-size: 16px; line-height: 22px; text-align: left; }
.pk-intro__tagline { margin-top: 14px; font-size: 18px; line-height: 27px; font-style: italic; color: var(--green); }
.pk-intro__text .facts { margin-top: 30px; }

/* Day tour detail */
.dti__facts { margin: 0 0 6px; }
.dti__facts li + li { margin-top: 8px; }
.highlights { list-style: none; }
.highlights li { position: relative; padding-left: 18px; font-size: 15px; line-height: 22px; }
.highlights li + li { margin-top: 10px; }
.highlights li::before { content: ""; position: absolute; left: 2px; top: 9px; width: 6px; height: 6px; border-radius: 50%; background: var(--white); }
.ie__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ie__box--note { background: #F4ECDB; border-color: var(--gold); }
.ie__box--note .ie__title { color: #8A6A2C; }
.ie__list { line-height: 26px; }
.ie__list li + li { margin-top: 8px; }

/* Destination / activity detail */
.detail-body { padding: 70px 0 20px; }
.detail-body__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 420px); gap: 50px; align-items: start; max-width: calc(1240px + var(--gutter) * 2); }
.detail-body__side { display: grid; gap: 24px; }

/* Lead / quote blocks */
.lead { padding: 80px 0 10px; text-align: center; }
.lead__quote { margin: 0 auto; max-width: 820px; font-stretch: 75%; font-size: 34px; line-height: 42px; font-style: italic; font-weight: 600; color: var(--green); }
.lead__quote + .lead__text { margin-top: 22px; }
.lead__text { max-width: 820px; margin: 0 auto; font-size: 17px; line-height: 28px; }
.lead__quote--left, .lead__text--left { margin-left: 0; text-align: left; }
.enquiry__text .lead__quote { font-size: 30px; line-height: 38px; }
.enquiry__text .lead__text { font-size: 16px; line-height: 26px; margin-top: 18px; }

/* Tailor-made */
.build { padding: 80px 0 10px; }
.build__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 18px; margin-top: 36px; }
.build__item {
	position: relative; padding: 24px 24px 24px 56px;
	border: 1px solid rgba(64, 64, 64, .2); border-radius: 14px; background: rgba(255, 255, 255, .3);
	font-size: 15px; line-height: 23px;
	transition: transform .4s var(--e-out), box-shadow .4s var(--e-out), border-color .3s;
}
.build__item::before { content: ""; position: absolute; left: 22px; top: 27px; width: 16px; height: 16px; border-radius: 50%; border: 2px solid var(--gold); background: radial-gradient(circle, var(--gold) 0 3px, transparent 4px); }
@media (hover: hover) { .build__item:hover { transform: translateY(-4px); box-shadow: 0 14px 26px rgba(64, 60, 30, .12); border-color: var(--gold); } }
.steps--tight { padding-top: 80px; }
.steps--tight .steps__grid { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.container--form { max-width: calc(900px + var(--gutter) * 2); }
.enquiry__note { margin-top: 22px; font-size: 15px; line-height: 24px; }
.enquiry__note a { color: var(--green); }

/* Contact */
.contact-list__title { margin-top: 36px; }
.contact-list--plain { margin-top: 16px; }
.contact-list--plain li { display: block; font-size: 16px; line-height: 26px; }
.contact-list--plain li + li { margin-top: 10px; }
.contact-list__label { font-weight: 600; margin-right: 6px; }

/* Footer tagline */
.site-footer__tagline { max-width: 240px; margin-top: 18px; font-size: 13px; line-height: 20px; color: rgba(255, 255, 255, .85); }

/* ---------- Contact Form 7, styled like the design's form ---------- */
.wpcf7 { margin-top: 24px; }
.wpcf7 form.enquiry-form { margin: 0; }
.wpcf7 .enquiry-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 20px; }
.wpcf7 .field label, .wpcf7 .field .field__label { display: block; margin-bottom: 6px; font-family: var(--f-ui); font-size: 13px; font-weight: 500; color: var(--grey); }
.wpcf7 .wpcf7-form-control-wrap { display: block; }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 input[type="number"], .wpcf7 input[type="date"], .wpcf7 select, .wpcf7 textarea {
	width: 100%; min-height: 46px; padding: 10px 14px;
	border: 1px solid rgba(64, 64, 64, .4); border-radius: 8px;
	background: rgba(255, 255, 255, .5); color: var(--text);
	font: 14px/20px var(--f-body);
	transition: border-color .2s, box-shadow .2s;
}
.wpcf7 textarea { min-height: 120px; resize: vertical; }
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus { outline: none; border-color: var(--green); box-shadow: 0 0 0 3px rgba(33, 91, 72, .15); }
.wpcf7 .wpcf7-checkbox, .wpcf7 .wpcf7-radio { display: flex; flex-wrap: wrap; gap: 8px; }
.wpcf7 .wpcf7-list-item { margin: 0; }
.wpcf7 .wpcf7-list-item label { display: inline-flex; align-items: center; gap: 6px; margin: 0; padding: 6px 12px; border: 1px solid rgba(64, 64, 64, .35); border-radius: 20px; font-family: var(--f-body); font-size: 13px; color: var(--text); cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.wpcf7 .wpcf7-list-item label:has(input:checked) { background: var(--green); border-color: var(--green); color: #fff; }
.wpcf7 .wpcf7-list-item input { accent-color: var(--green); }
.wpcf7 .wpcf7-submit {
	display: inline-flex; align-items: center; gap: 8px; margin-top: 26px;
	padding: 13px 28px; border: 0; border-radius: 30px; cursor: pointer;
	background: var(--green); color: #fff;
	font-family: var(--f-ui); font-size: 15px; font-weight: 600;
	transition: background .2s, transform .2s var(--e-out), box-shadow .3s;
}
.wpcf7 .wpcf7-submit:hover { background: var(--ink); transform: translateY(-2px); box-shadow: 0 10px 20px rgba(2, 27, 23, .2); }
.wpcf7 .wpcf7-submit:disabled { opacity: .6; cursor: wait; }
.wpcf7 .wpcf7-spinner { margin: 0 0 0 14px; vertical-align: middle; }
.wpcf7 .wpcf7-not-valid { border-color: #C43535 !important; }
.wpcf7 .wpcf7-not-valid-tip { margin-top: 4px; font-size: 12px; color: #C43535; }
.wpcf7 form .wpcf7-response-output { margin: 20px 0 0; padding: 12px 16px; border-radius: 8px; font-size: 14px; }
.wpcf7 form.sent .wpcf7-response-output { background: #E5EFE1; color: #1E6B30; border: 1px solid #8FD3A0; }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output { background: #FBF3E3; color: #8A6A2C; border: 1px solid var(--gold); }
.wpcf7 form.failed .wpcf7-response-output, .wpcf7 form.aborted .wpcf7-response-output, .wpcf7 form.spam .wpcf7-response-output { background: #F2E5E0; color: #A12A2A; border: 1px solid #F1A9A9; }

/* Responsive for the additions */
@media (max-width: 1180px) {
	.incl__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ie__grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.detail-body__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 340px); gap: 36px; }
	.home-hero__title { font-size: 48px; line-height: 52px; }
	.dt-slide__featured { padding-right: 0; }
}
@media (max-width: 860px) {
	.incl__grid, .ie__grid--3, .detail-body__grid { grid-template-columns: 1fr; }
	.home-hero__title { font-size: 38px; line-height: 42px; }
	.home-hero__sub { font-size: 16px; line-height: 25px; }
	.lead { padding-top: 56px; }
	.lead__quote { font-size: 28px; line-height: 34px; }
	.tailor__title { font-size: 32px; line-height: 36px; }
	.dt-slide__featured { text-align: left; }
	.wpcf7 .enquiry-form__grid { grid-template-columns: 1fr; }
	.build, .steps--tight { padding-top: 56px; }
}
@media (max-width: 520px) {
	.home-hero__title { font-size: 32px; line-height: 36px; }
	.hero-btn { padding: 12px 20px; font-size: 14px; }
	.btn--lg { padding: 14px 22px; font-size: 15px; }
}
/* Checkboxes inside CF7 pills must not inherit the text-input sizing */
.wpcf7 .wpcf7-list-item input[type="checkbox"], .wpcf7 .wpcf7-list-item input[type="radio"] { width: 14px; height: 14px; min-height: 0; padding: 0; margin: 0; flex: none; }
.wpcf7 .wpcf7-list-item label { white-space: nowrap; }
.wpcf7 .wpcf7-list-item-label { line-height: 18px; }

/* ==========================================================================
   Design-match pass
   ========================================================================== */

/* The design sets headings, intros, cards and preview copy in Title Case */
.page-hero__subtitle, .section-head__intro, .feature__text, .rt__desc, .dt__text,
.dt-slide__facts li, .about-band__text p, .value__title, .value__text, .tailor__box p,
.story__title, .story__text, .about-intro__text p, .about-box p, .step__text, .step__title,
.card__title, .card__text, .card__meta, .card__label, .chip, .card__tagline, .pk-intro__tagline,
.h2, .cta-band__title, .arrow-link, .see-link, .fact__value, .listing__cat-text, .listing__intro p {
	text-transform: capitalize;
}
.feature__title, .rt__name, .dest-slide__title, .page-hero__title { text-transform: uppercase; }

/* No "current page" highlight in the header (design shows plain links) */
.site-nav .current-menu-item > a, .site-nav .current-menu-ancestor > a { color: var(--ink); }
.site-nav .menu > li.current-menu-item > a::after { transform: scaleX(0); }
.site-nav .menu > li > a:hover::after { transform: scaleX(1); transform-origin: left; }

/* Testimonial avatar: plain light circle as in the design */
.testi__avatar { background: var(--bg); }

/* Round tour detail: two columns of boxes like Inclusions / Not Included */
.incl__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 51px 26px; }
.incl__box { padding: 58px 75px 52px; }
.incl__list { font-family: var(--f-body); font-stretch: 75%; font-size: 16px; line-height: 25px; }
.incl__list li + li { margin-top: 0; }

/* Day tour detail: Inclusions / Exclusions pair, practical notes full width below */
.ie__box--wide { grid-column: 1 / -1; }
.dti__facts { margin: 22px 0 0; }
.dti__overview + .dti__facts { margin-top: 22px; }
.highlights { padding: 40px 28px 36px; }
.highlights li { font-size: 14px; line-height: 19px; font-weight: 700; color: #FCFCFC; padding-left: 0; }
.highlights li::before { display: none; }
.highlights li + li { margin-top: 18px; }

/* Listing intros sit closer to the tabs, as the design's hero → tabs gap */
.listing { padding-top: 60px; }
.listing__intro { margin: 0 auto 36px; font-size: 14px; line-height: 21px; }
.listing__intro p { font-size: 14px; line-height: 21px; }
.listing__cat { margin-top: 34px; }
.listing__cat-title { font-size: 24px; line-height: 30px; }
.listing__cat-text { font-size: 14px; line-height: 21px; }

@media (max-width: 860px) {
	.incl__grid { grid-template-columns: 1fr; gap: 24px; }
	.incl__box { padding: 36px 28px; }
}
.card__text { font-weight: 400; }
.card__body--simple .card__text { color: var(--text); }
[data-terms] .card__pad .card__text-label + * { font-weight: 300; }
/* Measured against the artboard: menu text cap-top at 37px; centred banner title cap-top at 252px */
.site-nav { padding-top: 11px; }
.page-hero--center .page-hero__inner { padding-top: 246px; }
.page-hero--center .page-hero__subtitle { margin-top: 12px; }

/* ==========================================================================
   Full photos — no cropping anywhere
   The .fit box takes the photo's own proportions (--ar). Where a layout needs a
   fixed shape, the whole photo is shown over a blurred copy of itself.
   ========================================================================== */
.fit { position: relative; display: block; width: 100%; aspect-ratio: var(--ar, 3 / 2); overflow: hidden; background: #cfcdb6; }
.fit--empty { aspect-ratio: 3 / 2; }
.fit__bg {
	position: absolute; inset: -30px;
	background: center / cover no-repeat;
	filter: blur(26px) saturate(1.1) brightness(.92);
	transform: scale(1.08);
}
.fit > img.fit__img {
	position: absolute; inset: 0;
	width: 100%; height: 100%; max-width: none;
	object-fit: contain; object-position: center;
	border-radius: 0; box-shadow: none;
}

/* Natural-shape images (old fixed heights removed) */
.rt__media { align-self: flex-start; min-height: 0; }
.about-band__banner, .tailor__media, .story__media, .card__media,
.pk-intro__media, .dti__media, .about-intro__tall, .about-intro__wide { height: auto; }
.pk-intro__media .fit { border-radius: 12px; }
.dti__media .fit { border-radius: 16px; }
.about-intro__wide { align-self: start; }
.tailor__media { width: 75.1%; }

/* Uniform 3:2 card & story images — whole photo, blurred fill if a photo has another shape */
.card__media .fit, .story__media .fit, .gallery-strip__grid .fit { aspect-ratio: 3 / 2; }

/* ---------- Banners: as tall as the photo's own shape (within limits) ---------- */
.page-hero, .home-hero { height: auto; display: block; }
.hero-bg { position: relative; inset: auto; z-index: 0; translate: none; }
.hero-bg .fit { aspect-ratio: var(--ar); min-height: 588px; max-height: 92vh; background: #2b3a33; }
.home-hero .hero-bg .fit { min-height: 680px; max-height: 100vh; }
html.js .hero-bg { animation: none; }
html.js .hero-bg .fit__img { animation: heroSettle 2.4s var(--e-out) both; }
.page-hero__inner { position: absolute; inset: 0; z-index: 1; margin: 0 auto; }
.page-hero--light::before { z-index: 1; pointer-events: none; }
.home-hero__inner { position: absolute; inset: 0; z-index: 1; display: flex; justify-content: center; padding-top: 0; }
.home-hero:not(.home-hero--text) .home-hero__inner { align-items: center; }
.home-hero--text .hero-bg .fit::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(2,27,23,.15), rgba(2,27,23,.25) 45%, rgba(2,27,23,.55)); }


/* ---------- Destinations slider: 16:10 slides, full photo ---------- */
.dest-slider { --h: calc(var(--w) / 1.6); --inset: calc(var(--h) * .1); height: var(--h); }
.dest-slide { height: var(--h); }
.dest-slide .fit { position: absolute; inset: 0; aspect-ratio: auto; height: 100%; }
.dest-slider__nav { top: 50%; }

/* ---------- Day tours queue: fixed slots, full photo ---------- */
.dt-img .fit { position: absolute; inset: 0; aspect-ratio: auto; height: 100%; }

@media (max-width: 860px) {
	.page-hero, .home-hero { height: auto; }
	.hero-bg .fit { min-height: 420px; }
	.home-hero .hero-bg .fit { min-height: 520px; }
	.tailor__media { width: 100%; }
	.dest-slider { --h: calc(var(--w) / 1.5); height: var(--h); }
	.dest-slide, .dest-slide.is-active { height: var(--h); }
}

/* ---------- Sticky header ---------- */
.site-header { transition: background .35s ease, box-shadow .35s ease; }
.site-header.is-stuck {
	position: fixed; top: var(--wp-admin--admin-bar--height, 0px); left: 0; right: 0; z-index: 100;
	background: rgba(233, 231, 210, .94);
	-webkit-backdrop-filter: blur(12px) saturate(1.2); backdrop-filter: blur(12px) saturate(1.2);
	box-shadow: 0 8px 28px rgba(2, 27, 23, .12);
	animation: headerSlide .55s var(--e-out) both;
}
.site-header.is-stuck .site-header__inner { align-items: center; padding-top: 8px; padding-bottom: 8px; }
.site-header.is-stuck .site-nav { padding-top: 0; }
.site-logo, .site-logo img { transition: width .45s var(--e-out); }
.site-header.is-stuck .site-logo, .site-header.is-stuck .site-logo img { width: 60px; }
.site-header.is-stuck .nav-toggle { top: 50%; translate: 0 -50%; background: transparent; }
@keyframes headerSlide { from { transform: translateY(-110%); } to { transform: none; } }
@media (prefers-reduced-motion: reduce) { .site-header.is-stuck { animation: none; } }

/* ==========================================================================
   Tailor-Made page
   ========================================================================== */
.tm-intro { padding: 90px 0 40px; }
.tm-intro__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 520px); gap: 70px; align-items: center; }
.tm-intro__quote {
	position: relative; padding-left: 26px; border-left: 3px solid var(--gold);
	font-stretch: 75%; font-size: 40px; line-height: 46px; font-style: italic; font-weight: 600; color: var(--green);
}
.tm-intro__lead { margin-top: 24px; font-size: 17px; line-height: 28px; }
.tm-intro__text .btn { margin-top: 30px; }
.tm-intro__media .fit { border-radius: 18px; box-shadow: 0 24px 50px rgba(64, 60, 30, .22); }
.perks { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 28px; }
.perk { display: inline-flex; align-items: center; gap: 9px; font-family: var(--f-ui); font-size: 14px; font-weight: 500; color: var(--green); }
.perk__icon { display: inline-flex; width: 30px; height: 30px; align-items: center; justify-content: center; border-radius: 50%; background: rgba(33, 91, 72, .1); }
.perk__icon .icon { width: 16px; height: 16px; }

.build { padding: 70px 0 20px; }
.build__tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin-top: 40px; }
.build-tile { position: relative; border-radius: 16px; overflow: hidden; box-shadow: 0 14px 28px rgba(64, 60, 30, .14); transition: transform .45s var(--e-out), box-shadow .45s var(--e-out); }
.build-tile:nth-child(1), .build-tile:nth-child(5) { grid-column: span 2; }
.build-tile .fit { aspect-ratio: 3 / 2; height: 100%; }
.build-tile__text {
	position: absolute; left: 0; right: 0; bottom: 0; padding: 60px 20px 18px;
	background: linear-gradient(to top, rgba(2, 27, 23, .9), rgba(2, 27, 23, .55) 55%, transparent);
	font-size: 14px; line-height: 20px; font-weight: 600; color: var(--white);
}
@media (hover: hover) { .build-tile:hover { transform: translateY(-6px); box-shadow: 0 24px 40px rgba(64, 60, 30, .22); } }

.how { padding: 80px 0 30px; }
.how__steps { position: relative; display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: 24px; margin-top: 50px; counter-reset: none; }
.how__steps::before { content: ""; position: absolute; top: 27px; left: 10%; right: 10%; height: 2px; background: repeating-linear-gradient(90deg, var(--gold) 0 10px, transparent 10px 18px); }
.how-step { position: relative; text-align: center; }
.how-step__num {
	position: relative; display: inline-flex; width: 56px; height: 56px; align-items: center; justify-content: center;
	border-radius: 50%; background: var(--green); color: var(--white); box-shadow: 0 0 0 8px var(--bg);
	font-stretch: 75%; font-size: 24px; font-weight: 700;
}
.how-step__title { margin-top: 18px; font-stretch: 75%; font-size: 20px; font-weight: 700; color: var(--green); }
.how-step__text { margin-top: 8px; font-size: 14px; line-height: 21px; }

.tm-form { padding: 70px 0 110px; }
.tm-form__grid { display: grid; grid-template-columns: minmax(0, 400px) minmax(0, 1fr); gap: 34px; align-items: start; }
.tm-form__panel { position: sticky; top: 110px; border-radius: 20px; overflow: hidden; background: var(--green); color: var(--white); box-shadow: 0 24px 50px rgba(2, 27, 23, .25); }
.tm-form__panel-body { padding: 30px 30px 34px; }
.tm-form__title { font-stretch: 75%; font-size: 36px; line-height: 40px; font-weight: 700; }
.tm-form__intro { margin-top: 12px; font-size: 15px; line-height: 23px; opacity: .92; }
.tm-form__note { margin-top: 18px; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, .2); font-size: 14px; line-height: 22px; }
.tm-form__note a { color: #F3DDAE; text-decoration: underline; }
.tm-form__quick { display: flex; gap: 10px; margin-top: 22px; }
.quick-btn { display: inline-flex; align-items: center; gap: 8px; padding: 11px 18px; border-radius: 30px; border: 1px solid rgba(255, 255, 255, .5); font-family: var(--f-ui); font-size: 14px; font-weight: 600; color: var(--white); transition: background .25s, color .25s, transform .25s var(--e-out); }
.quick-btn .icon { width: 16px; height: 16px; }
.quick-btn--wa { background: #1FAF38; border-color: #1FAF38; }
.quick-btn:hover { transform: translateY(-2px); background: var(--white); color: var(--green); }
.tm-form__card { padding: 34px 38px 40px; border-radius: 20px; background: rgba(255, 255, 255, .45); border: 1px solid rgba(64, 64, 64, .14); box-shadow: 0 20px 44px rgba(64, 60, 30, .1); }
.tm-form__card .wpcf7 { margin-top: 0; }
.journey-chip { display: flex; align-items: center; gap: 10px; margin-bottom: 24px; padding: 14px 18px; border-radius: 12px; background: rgba(192, 153, 81, .16); border: 1px solid rgba(192, 153, 81, .5); font-size: 15px; color: var(--text); }
.journey-chip .icon { flex: none; width: 20px; height: 20px; color: var(--gold); }
.form-step + .form-step { margin-top: 30px; padding-top: 26px; border-top: 1px dashed rgba(64, 64, 64, .2); }
.form-step__title { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; font-stretch: 75%; font-size: 22px; font-weight: 700; color: var(--green); }
.form-step__title span { display: inline-flex; width: 30px; height: 30px; align-items: center; justify-content: center; border-radius: 50%; background: var(--gold); color: var(--white); font-size: 15px; font-stretch: 100%; }
.tm-form .wpcf7 .wpcf7-submit { margin-top: 30px; padding: 16px 34px; font-size: 16px; }
.tm-form .wpcf7 input:not([type="checkbox"]):not([type="submit"]), .tm-form .wpcf7 textarea { background: rgba(255, 255, 255, .7); }

@media (max-width: 1180px) {
	.tm-intro__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 420px); gap: 40px; }
	.build__tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.build-tile:nth-child(1), .build-tile:nth-child(5) { grid-column: auto; }
	.build-tile:last-child:nth-child(odd) { grid-column: span 2; }
	.tm-form__grid { grid-template-columns: 1fr; }
	.tm-form__panel { position: static; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
@media (max-width: 860px) {
	.tm-intro { padding-top: 56px; }
	.tm-intro__grid { grid-template-columns: 1fr; }
	.tm-intro__quote { font-size: 30px; line-height: 36px; }
	.how__steps { grid-template-columns: 1fr; gap: 26px; }
	.how__steps::before { top: 0; bottom: 0; left: 27px; right: auto; width: 2px; height: auto; background: repeating-linear-gradient(180deg, var(--gold) 0 10px, transparent 10px 18px); }
	.how-step { display: grid; grid-template-columns: 56px 1fr; column-gap: 18px; text-align: left; }
	.how-step__num { grid-row: span 2; }
	.how-step__title { margin-top: 4px; }
	.tm-form__panel { grid-template-columns: 1fr; }
	.tm-form__card { padding: 24px 18px 28px; }
}
@media (max-width: 520px) {
	.build__tiles { grid-template-columns: 1fr; }
	.build-tile:last-child:nth-child(odd) { grid-column: auto; }
}
@media (prefers-reduced-motion: no-preference) {
	html.js :is(.tm-intro__text > *, .build-row, .how-step, .tm-form__panel, .tm-form__card) {
		transition: opacity 1s var(--e-out) var(--rv-d, 0s), translate 1.1s var(--e-out) var(--rv-d, 0s), transform .45s var(--e-out), box-shadow .45s var(--e-out);
	}
	html.js :is(.tm-intro__text > *, .build-row, .how-step, .tm-form__panel, .tm-form__card):not(.is-in) { opacity: 0; translate: 0 44px; }
	html.js .tm-intro__media { transition: clip-path 1.3s var(--e-soft) var(--rv-d, 0s); }
	html.js .tm-intro__media:not(.is-in) { clip-path: inset(0 0 0 100%); }
	html.js .tm-intro__media.is-in { clip-path: inset(-40px); }
}
/* What We Build: even grid, caption under the photo so the whole photo stays visible */
.build__tiles { align-items: start; }
.build-tile:nth-child(1), .build-tile:nth-child(5), .build-tile:last-child:nth-child(odd) { grid-column: auto; }
.build-tile { background: rgba(255, 255, 255, .5); }
.build-tile .fit { height: auto; }
.build-tile__text { position: static; padding: 16px 18px 20px; background: none; color: var(--text); font-weight: 600; }
/* Banner text always sits on the photo; wide photos keep their natural (shorter) height */
.page-hero .page-hero__inner, .page-hero--light .page-hero__inner { position: absolute; inset: 0; }
.page-hero { background: none; }
.hero-bg .fit { min-height: 440px; max-height: 100vh; }
.home-hero .hero-bg .fit { min-height: 600px; max-height: 100vh; }
@media (max-width: 860px) { .hero-bg .fit { min-height: 380px; } .home-hero .hero-bg .fit { min-height: 480px; } }
html.js .site-header.is-stuck, .site-header.is-stuck { animation: headerSlide .55s var(--e-out) both; }
@media (prefers-reduced-motion: reduce) { html.js .site-header.is-stuck, .site-header.is-stuck { animation: none; } }

/* ==========================================================================
   Images: object-fit cover, centred, in the design's exact boxes (no blurred fill)
   ========================================================================== */
.fit__bg { display: none; }
.fit { background: none; }
.fit > img.fit__img { object-fit: cover; object-position: center center; }

/* Banners back to design heights */
.page-hero { height: 588px; }
.home-hero { height: 780px; }
.hero-bg { position: absolute; inset: 0; z-index: 0; }
.hero-bg .fit, .home-hero .hero-bg .fit { aspect-ratio: auto; height: 100%; min-height: 0; max-height: none; }

/* Design box sizes */
.card__media { height: 295px; }
.story__media { height: 283px; }
.card__media .fit, .story__media .fit, .gallery-strip__grid .fit,
.rt__media .fit, .about-band__banner .fit, .tailor__media .fit,
.pk-intro__media .fit, .dti__media .fit, .about-intro__tall .fit, .about-intro__wide .fit { aspect-ratio: auto; height: 100%; }
.rt__media { align-self: stretch; min-height: 564px; }
.about-band__banner { height: 325px; }
.tailor__media { height: 508px; }
.pk-intro__media { height: 483px; }
.dti__media { height: 660px; }
.about-intro__tall { height: 494px; }
.about-intro__wide { height: 346px; }
.gallery-strip__grid .fit { aspect-ratio: 4 / 3; height: auto; }
.build-tile .fit { aspect-ratio: 3 / 2; height: auto; }
.tm-intro__media .fit, .tm-form__photo .fit { aspect-ratio: 3 / 2; height: auto; }

/* Destinations slider back to the design (1055 × 481 active, 387 sides) */
.dest-slider { --h: 481px; --inset: 47px; height: 481px; }
.dest-slide { height: 481px; }

@media (max-width: 860px) {
	.page-hero { height: 480px; }
	.home-hero { height: 640px; }
	.card__media { height: auto; aspect-ratio: 3 / 2; }
	.story__media { height: auto; aspect-ratio: 3 / 2; }
	.rt__media { min-height: 0; height: 420px; }
	.about-band__banner { height: 200px; }
	.tailor__media { height: 300px; }
	.pk-intro__media, .dti__media, .about-intro__tall, .about-intro__wide { height: auto; aspect-ratio: 4 / 3; }
	.dest-slider { --h: 360px; --inset: 0px; height: 360px; }
	.dest-slide, .dest-slide.is-active { height: 360px; }
}

/* ==========================================================================
   Footer — exact design geometry (1440 artboard)
   Columns: inner pages 418 / 677 / 947 / 1196, home 418 / 567 / 727 / 866 / 1025
   ========================================================================== */
.site-footer { padding-top: 129px; }
.site-footer--rounded { padding-top: 119px; }
.site-footer__cols { display: grid; grid-template-columns: 259px 270px 249px auto; gap: 0; justify-content: start; }
.site-footer__cols--contacts { grid-template-columns: 149px 160px 139px 159px auto; gap: 0; }
.site-footer__menu { margin-top: 23px; }
.site-footer__menu a { letter-spacing: .02em; }
.site-footer__copy { margin-top: 63px; }

@media (max-width: 1180px) {
	.site-footer__cols, .site-footer__cols--contacts { grid-template-columns: repeat(4, auto); justify-content: space-between; gap: 24px; }
	.site-footer__cols--contacts { grid-template-columns: repeat(5, auto); }
}
@media (max-width: 860px) {
	.site-footer__cols, .site-footer__cols--contacts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 24px; justify-content: stretch; }
	.site-footer__col--contacts { grid-column: 1 / -1; }
	.site-footer { padding-top: 80px; }
	.site-footer--rounded { padding-top: 80px; border-radius: 36px 36px 0 0; }
}
/* Fine-tune (measured against the artboard) */
.site-footer { padding-top: 127px; }
.site-footer--rounded { padding-top: 117px; }
.site-footer__copy { margin-top: 66px; padding-bottom: 39px; }
.site-footer__social { margin-top: 37px; }
.site-footer__cols { grid-template-columns: 256px 270px 249px auto; }
.site-footer__cols--contacts { grid-template-columns: 147px 160px 139px 159px auto; }
@media (max-width: 1180px) {
	.site-footer__cols { grid-template-columns: repeat(4, auto); }
	.site-footer__cols--contacts { grid-template-columns: repeat(5, auto); }
}
@media (max-width: 860px) {
	.site-footer__cols, .site-footer__cols--contacts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.site-footer { padding-top: 80px; }
	.site-footer--rounded { padding-top: 80px; }
}

/* ==========================================================================
   Pixel-match pass 2 — every value below is measured from the 1440px PDF
   artboards (text baselines + vector boxes), not estimated.
   ========================================================================== */
@media (min-width: 1181px) {
	/* Header menu: design letterfit is ~0.33px tighter per glyph */
	.site-nav a { letter-spacing: -.33px; }
	.site-nav .menu { justify-content: flex-start; }
	/* Design spacing as minimum widths, so longer (e.g. translated) labels push along instead of wrapping */
	.site-nav a { white-space: nowrap; }
	.site-nav--right .menu { max-width: none; justify-content: flex-end; }
	.site-nav .menu > li { padding-right: 20px; }
	.site-nav .menu > li:last-child { padding-right: 0; }
	.site-nav--left .menu > li:nth-child(1) { min-width: 81px; }
	.site-nav--left .menu > li:nth-child(2) { min-width: 97px; }
	.site-nav--left .menu > li:nth-child(3) { min-width: 135px; }
	.site-nav--right .menu > li:nth-child(1) { min-width: 103.4px; }
	.site-nav--right .menu > li:nth-child(2) { min-width: 128.4px; }
	.site-nav--right .menu > li:nth-child(3) { min-width: 86.8px; }

	/* Floating UI */
	.play-btn { top: 7px; background: rgba(255, 255, 255, .15); }
	.play-btn__inner { width: 105px; height: 105px; background: rgba(255, 255, 255, .15); }

	/* Home highlight boxes: 3 × 393.3 × 251, text column at a fixed inset */
	.feature { position: relative; display: block; min-height: 251px; padding: 57px 30px 20px 94px; }
	.feature:nth-child(2) { padding-left: 97px; }
	.feature:nth-child(3) { padding-left: 93px; }
	.feature .feature__icon { position: absolute; margin: 0; }
	.feature .ficon--passport { width: 34px; left: 36px; top: 58px; }
	.feature .ficon--guide { width: 28px; left: 37px; top: 58px; }
	.feature .ficon--leopard { width: 48px; left: 31px; top: 61px; }
	.feature .ficon--jeep { width: 48px; left: 31px; top: 61px; }
	.feature__title { font-size: 18px; line-height: 20px; }
	.feature__text { margin-top: 16px; }

	/* Home round tours preview */
	.section--rt { padding-top: 83px; }
	.section--rt .section-head__intro { margin-top: 12px; }
	.rt { margin-top: 55px; }
	.rt__content { padding-top: 24px; }
	.tabs--box { margin-left: -1px; }
	.tabs--box .tabs__btn { height: 46px; flex: none; margin-left: -3px; border-color: #858585; font-size: 14px; }
	.tabs--box .tabs__btn:first-child { margin-left: 0; flex: 0 0 218px; }
	.tabs--box .tabs__btn:nth-child(2) { flex: 0 0 211px; }
	.tabs--box .tabs__btn:nth-child(3) { flex: 0 0 180px; }
	.tabs--box .tabs__btn.is-active { background: #242424; border-color: #858585; }
	.rt__title { margin-top: 41px; }
	.rt__desc { margin-top: 16px; }
	.rt__list { margin-top: 41px; }
	.rt__item { padding: 13px 0 19px 10px; border-bottom-color: rgba(133, 133, 133, .5); }
	.rt__item + .rt__item { padding-top: 24px; }
	.arrow-link--muted { color: rgba(0, 0, 0, .38); }
	.rt__all { margin-top: 34px; }

	/* Section intros sit 35px (baseline to baseline) under the 48px titles */
	.section-head__intro { margin-top: 12px; }

	/* Home destinations slider */
	.section--dest { padding-top: 93px; }
	.dest-slider { margin-top: 61px; }
	.dest-slide__overlay { padding: 0 41px 21px 38px; background: linear-gradient(to top, #215B48 0, #215B48 6px, rgba(33, 91, 72, .62) 42px, rgba(33, 91, 72, 0) 118px); }
	.dest-slide__link { margin-bottom: 16px; }
	.dest-slider__nav--prev { left: calc(50% - var(--w) / 2 - 39px - 17px); }
	.section--dest .arrow-link--gold { margin-top: 20px; }

	/* Home day tours preview */
	.section--dt { padding-top: 104px; }
	.dt { grid-template-columns: 296px minmax(0, 1fr); column-gap: 21px; }
	.dt__intro .h2 { margin-top: 9.4px; }
	.dt__text { margin-top: 29px; }
	.dt__arrows { margin-bottom: 17px; }
	.dt-slide__cat { margin-top: 10.5px; }
	.dt-slide__title { margin-top: 13.5px; line-height: 38px; }
	.dt-slide__facts { margin-top: 40.5px; }

	/* Home gold "why Aloria" band */
	.about-band { padding-bottom: 73px; }
	.about-band__banner { max-width: none; width: min(1330px, calc(100% - 32px)); margin: 0 0 0 max(16px, calc(50% - 670px)); padding: 0; }
	.about-band__grid { padding-top: 77.9px; }
	.about-band__text p { margin-top: 21px; }
	.about-band__text h2 + p { margin-top: 36.2px; }
	.about-band__text .arrow-link { margin-top: 29.7px; }
	.values--light { margin-top: 4.1px; }
	.values--light .value__body { padding: 7.2px 0 28.7px; border-color: rgba(255, 255, 255, .5); }
	.values--light .value__text { margin-top: 11.9px; }
	.values--light .value:last-child .value__body { border-bottom: 0; }

	/* Home tailor-made strip */
	.tailor__box { padding-top: 38.9px; }
	.tailor__title { font-size: 48px; line-height: 53px; }
	.tailor__box .h2 + p { margin-top: 11.7px; }
	.tailor__box p { margin-top: 20px; }
	.tailor__box .arrow-link { margin-top: 17.2px; }

	/* Stories */
	.stories { padding-top: 60px; }
	.story__body { padding-top: 24.2px; }
	.story__title { margin: 0 -14px; }
	.story__text { margin: 16.9px -10px 0; }
	.story__rule { margin: 21.7px 0 10px; border-top-color: rgba(133, 133, 133, .5); }

	/* Testimonials */
	.testimonials { padding-top: 61px; }
	.testi-track { margin: 39.1px 0 0 -1px; gap: 14.5px; grid-auto-columns: calc((100% - 29px) / 3); }
	.testi { padding: 19px 26px 30px 27px; }
	.bubbles { gap: 0; margin-left: -1px; }
	.bubble { width: 24px; height: 24px; border-color: #1B8B00; }
	.bubble::after { inset: 2.4px; }
	.bubble.is-on::after { background: #1B8B00; }

	/* Footer */
	.site-footer--rounded { padding-top: 116px; }
	.site-footer:not(.site-footer--rounded) { padding-top: 90px; }
	.site-footer__menu li + li { margin-top: 21px; }
	.site-footer__cols--contacts { grid-template-columns: 148px 160px 139px 159px auto; }
	.site-footer__cols:not(.site-footer__cols--contacts) { grid-template-columns: 258px 270px 249px auto; }
	.listing { padding-bottom: 121px; }
	.cta-band { padding-top: 82px; }
	.cta-band .arrow-link { margin-top: 21px; }

	/* Inner page banner */
	.page-hero--center .page-hero__inner { padding-top: 248px; }
	.page-hero--center .page-hero__subtitle { margin-top: 14px; }

	/* Listing tabs (caps style): 420 / 364 / 410 × 44, 24px gaps */
	.listing { padding-top: 56px; }
	.tabs--caps { gap: 24px; }
	.tabs--caps .tabs__btn { height: 44px; flex-basis: 0; padding: 0 4px; }
	.tabs--caps .tabs__btn:nth-child(1) { flex-grow: 420; }
	.tabs--caps .tabs__btn:nth-child(2) { flex-grow: 364; }
	.tabs--caps .tabs__btn:nth-child(3) { flex-grow: 410; }
	.listing--tabs .tabs--caps + .card-grid { margin-top: 68px; }
	.listing .card-grid { position: relative; left: 1px; }

	/* Round tour card */
	.card__body { padding-top: 33px; padding-left: 27px; padding-right: 27px; border-color: #404040; }
	.card__pad { padding-top: 15.5px; }
	.card__duration { margin-top: 5px; }
	.card__pad--tight { padding-top: 20px; padding-bottom: 16.5px; }
	.chips { margin-top: 9px; }
	.card:has(.card__duration) .card__body { padding-bottom: 34px; }
	.listing--tabs .card-grid { row-gap: 46px; }

	/* Round tour detail — the artboard's content block runs 126 → 1366 */
	.pk-intro__grid { max-width: none; width: min(1240px, calc(100% - 32px)); margin: 0 0 0 max(16px, calc(50% - 594px)); padding: 0; grid-template-columns: minmax(0, 492px) minmax(0, 648px); }
	.badge { font-size: 16px; }
	.pk-intro__title { margin-top: 7.9px; font-size: 44px; line-height: 52px; }
	.pk-intro__desc { margin-top: 18.2px; max-width: 440px; font-size: 14px; line-height: 23px; font-weight: 400; color: #626262; }
	.pk-intro__text .facts { width: 489px; margin: 37.9px 0 0 -1px; padding: 33px 33px 34px; border-color: #828282; }
	.fact { align-items: start; }
	.fact + .fact { margin-top: 26px; }
	.timeline__list { max-width: none; width: min(1246px, calc(100% - 32px)); margin: 0 0 0 max(16px, calc(50% - 594px)); padding: 59.5px 0 50.2px; }
	.timeline__list::before { left: 150px; }
	.timeline__item + .timeline__item { margin-top: 70px; }
	.timeline__day { padding-top: 2px; }
	.timeline__body { padding-top: 6px; }
	.timeline__text { margin-top: 7px; }
	.timeline__dot { left: 140px; top: 8px; width: 20px; height: 20px; }
	.incl__grid { max-width: none; width: min(1227px, calc(100% - 32px)); margin: 0 0 0 max(16px, calc(50% - 585px)); padding: 0; grid-template-columns: minmax(0, 566px) minmax(0, 612px); column-gap: 49px; }
	.incl__box { padding: 58px 40px 57.7px 76px; }
	.incl__list { margin: 22px 0 0 -15px; }
	.incl { padding-top: 96px; }
	.incl__box:nth-child(even) { padding-left: 60.5px; }

	/* Left-aligned banner (listing pages) */
	.page-hero--left .page-hero__inner { padding-top: 164px; }
	.page-hero--left .page-hero__title { padding-left: 2px; }
	.page-hero--left .page-hero__subtitle { margin-top: 16px; }

	/* Day tour card */
	.card:has(.card__foot) .card__rule { margin-top: 14.5px; }
	.card__foot { padding-top: 21.5px; }
	.card:has(.card__foot) .card__body { padding-bottom: 37px; }
	.listing:not(.listing--tabs) .card-grid { row-gap: 52px; }
	.page-template-day-tours .listing { padding-bottom: 203px; }

	/* Day tour detail — content block 126 → 1308 */
	.dti__grid { max-width: none; width: min(1182px, calc(100% - 32px)); margin: 0 0 0 max(16px, calc(50% - 594px)); padding: 0; }
	.dti__heading { margin-top: 57.8px; }
	.dti__text > .dti__heading:first-of-type { margin-top: 44px; }
	.dti__heading + .highlights { margin-top: 23.4px; }
	.dti__overview { margin-top: 21.2px; color: #1D1D1D; }
	.dti__overview, .dti__overview p { line-height: 22px; }
	.dti__overview > * + * { margin-top: 22px; }
	.highlights { padding-top: 38px; }
	.ie__grid { max-width: none; width: min(1186px, calc(100% - 32px)); margin: 0 0 0 max(16px, calc(50% - 595px)); padding: 0; grid-template-columns: minmax(0, 588px) minmax(0, 583px); gap: 15px; }
	.ie__box { padding-bottom: 43px; }
	.ie__box--in { border-color: #91D5A6; background: #E4EFE1; }
	.ie__box--out { border-color: #FFAFAF; background: #F2E6E1; }
	.ie__title { gap: 15.5px; }
	.ie__list { margin-top: 26.8px; padding-left: 6px; }

	/* Pill tabs (destinations / activities): 46px tall, 6px apart, 117 → 1321 */
	.tabs--pill { gap: 6px; margin: 0 25px 0 23px; }
	.tabs--pill .tabs__btn { height: 46px; }
	.tabs--pill .tabs__btn.is-active { background: #006634; border-color: #006634; }

	/* Destination card */
	.card__body--simple { padding: 37px 43px 33.4px; }
	.card__body--simple .card__text { margin-top: 7.9px; color: #626262; }
	.card__tagline { margin-top: 7.9px; }
	.page-template-destinations .card-grid { row-gap: 40px; }

	/* Activity card */
	.card__rule { border-top-color: #BCBCBC; }
	.card__meta + .card__rule { margin-top: 16.5px; }
	.card__meta + .card__rule + .card__pad { padding-top: 14.5px; }
	.card__meta + .card__rule + .card__pad .card__text { margin-top: 26px; }
	.card:has(.card__meta) .card__body { padding-bottom: 67px; }

	/* Activities banner: two-line title sits 10px higher, flush at 130 */
	.page-template-activities .page-hero--left .page-hero__inner { padding-top: 154px; }
	.page-template-activities .page-hero--left .page-hero__title,
	.page-template-activities .page-hero--left .page-hero__subtitle { padding-left: 0; }

	/* About page */
	.about-intro__text { padding-top: 54px; }
	.about-intro__text p { max-width: 540px; }
	.about-intro__text .h2 + p { margin-top: 17px; }
	.about-intro__tall { margin: 0 -2px 0 2px; }
	.about-intro__wide { margin-right: -2px; }
	.about-intro__logo img { position: relative; left: 17px; top: 13px; }
	.about-box { padding-top: 48px; }
	.about-box p { margin-top: 12px; }
	.steps { padding-top: 108px; }
	.steps__grid { margin-top: 29px; padding: 0 0 0 2px; column-gap: 36px; }
	.step { padding-bottom: 31px; }
	.step__title { top: -13px; }
	.step__text { margin-top: 11px; }
	.values--dark { margin: 63px -11px 0 0; }
	.values--dark .value__body { padding: 8px 0 28.7px; border-bottom-width: .5px; border-color: #404040; }
	.values--dark .value__text { margin-top: 11px; }
	.values--dark .value + .value { margin-top: 21px; }
}

/* ==========================================================================
   Round tour timeline — the ring marker travels to the day in view
   (JS adds .has-marker; without JS the first day keeps the static ring)
   ========================================================================== */
.timeline__list.has-marker .is-first .timeline__dot { left: 140px; top: 8px; width: 20px; height: 20px; background: var(--gold); border: 0; }
.timeline__list.has-marker .is-first .timeline__dot::after { content: none; }
.timeline__list.has-marker .timeline__dot { transition: opacity .3s ease; }
.timeline__list.has-marker .timeline__item.is-active .timeline__dot { opacity: 0; }
.timeline__list.has-marker .timeline__item.is-active .timeline__day { color: var(--gold); }
.timeline__day { transition: color .4s ease; }
.timeline__progress {
	position: absolute; z-index: 1; top: 0; width: 2px; margin-left: -1px;
	height: var(--progress, 0px); background: var(--gold);
	transition: height .7s cubic-bezier(.22, 1, .36, 1);
	pointer-events: none;
}
.timeline__marker {
	position: absolute; z-index: 2; top: 0; left: 0;
	width: 36px; height: 36px; border-radius: 50%;
	background: var(--bg); border: 3px solid var(--gold);
	transform: translate3d(var(--mx, 0px), var(--my, 0px), 0);
	transition: transform .7s cubic-bezier(.22, 1, .36, 1);
	pointer-events: none;
}
.timeline__marker::after { content: ""; position: absolute; inset: 6px; border-radius: 50%; background: var(--gold); }
.timeline__marker::before {
	content: ""; position: absolute; inset: -3px; border-radius: 50%;
	border: 2px solid var(--gold); opacity: 0;
}
.timeline__marker.is-moving::after { animation: markerSquash .7s cubic-bezier(.22, 1, .36, 1); }
@media (prefers-reduced-motion: no-preference) {
	.timeline__marker::before { animation: ring 2.4s ease-out 1s infinite; }
}
@media (prefers-reduced-motion: reduce) {
	.timeline__marker, .timeline__progress { transition: none; }
}
@keyframes markerSquash { 0%, 100% { scale: 1; } 40% { scale: .55 1.25; } }
@media (max-width: 860px) {
	.timeline__list.has-marker .is-first .timeline__dot { left: 0; }
}

/* ==========================================================================
   Footer credit — Ignite Media Vision, centred between the floating language
   switcher (bottom-left) and WhatsApp button (bottom-right) so neither covers it.
   The row's margins absorb the taller logo, keeping the footer height as designed.
   ========================================================================== */
.site-footer__bottom {
	grid-column: 1 / -1;
	display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px 32px;
	margin-top: 51px; padding-bottom: 24px;
}
.site-footer__bottom .site-credit { grid-column: 2; }
.site-footer__bottom .site-footer__copy { grid-column: 3; justify-self: end; margin: 0; padding: 0; }
.site-credit { display: inline-flex; align-items: center; gap: 12px; color: rgba(255, 255, 255, .8); font-size: 12px; line-height: 18px; letter-spacing: .02em; transition: color .25s ease; }
.site-credit__logo { width: auto; height: 48px; transition: transform .35s var(--e-out, ease); }
.site-credit:hover { color: var(--white); }
.site-credit:hover .site-credit__logo { transform: scale(1.06); }
@media (max-width: 860px) {
	.site-footer__bottom { grid-template-columns: 1fr; justify-items: start; margin-top: 40px; padding-bottom: 92px; }
	.site-footer__bottom .site-credit, .site-footer__bottom .site-footer__copy { grid-column: 1; justify-self: start; }
	.site-footer__bottom .site-credit { grid-row: 2; }
}

/* ==========================================================================
   Phones & small tablets (no Figma frame below desktop): banner text sits on a plain
   fill at the top and the whole banner photo follows underneath at its own shape,
   so nothing is cut off and no text runs over the photo.
   ========================================================================== */
@media (max-width: 860px) {
	.page-hero, .home-hero { --hero-fill: var(--bg); display: flex; flex-direction: column; height: auto; background: var(--hero-fill); }
	/* Cream behind the logo on every banner; "light" banners switch to dark text here */
	.page-hero--light::before { display: none; }
	.page-hero--light .page-hero__title, .page-hero--light .page-hero__subtitle { color: var(--text); }
	.page-hero .hero-bg, .home-hero .hero-bg { position: relative; inset: auto; order: 2; align-self: stretch; width: 100%; }
	.page-hero .hero-bg .fit, .home-hero .hero-bg .fit { aspect-ratio: var(--ar); height: auto; background: var(--hero-fill); }
	.page-hero .page-hero__inner, .page-hero--light .page-hero__inner { position: relative; inset: auto; order: 1; width: 100%; padding: 128px var(--gutter) 28px; }
	.page-hero--center .page-hero__inner { padding-top: 128px; }
	.home-hero { padding-top: 116px; }
	.home-hero .home-hero__inner { top: 116px; }
	.features { margin-top: 0; }
	.fact__label { font-size: 10px; }
}
/* Laptops/tablets where the side slides don't fit: round buttons inside the active slide */
@media (min-width: 861px) and (max-width: 1240px) {
	.dest-slider__nav { width: 44px; height: 44px; margin-top: -22px; border-radius: 50%; background: rgba(233, 231, 210, .9); box-shadow: 0 4px 14px rgba(2, 27, 23, .15); }
	.dest-slider .dest-slider__nav--prev { left: calc(50% - var(--w) / 2 + 16px); }
	.dest-slider .dest-slider__nav--next { right: calc(50% - var(--w) / 2 + 16px); }
}
/* Portrait tablets: stories two-up instead of one narrow column */
@media (min-width: 600px) and (max-width: 860px) {
	.story-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: none; gap: 28px 24px; }
	.story-grid > .story:last-child:nth-child(odd) { grid-column: 1 / -1; justify-self: center; width: calc(50% - 12px); }
}
@media (min-width: 600px) and (max-width: 860px) {
	.incl__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
	.incl__box { padding: 32px 28px; }
}
@media (max-width: 400px) {
	.page-hero__title { font-size: 28px; line-height: 31px; }
}
/* Floating WhatsApp / language buttons step aside while the mobile menu is open */
html.nav-open .joinchat, html.nav-open #gt_float_wrapper { opacity: 0; visibility: hidden; transition: opacity .2s, visibility 0s .2s; }

/* ==========================================================================
   Images: object-fit cover, centre centre, in the design's box sizes (no blur).
   The fill colours below only show while a photo is still loading.
   ========================================================================== */
.fit { --img-fill: #DEDBC3; background: var(--img-fill); }
.fit > img.fit__img { object-fit: cover; object-position: center center; }
/* Green/gold sections get a matching fill */
.dest-slide .fit, .stories .fit, .tm-form__photo .fit { --img-fill: var(--green); }
.about-band .fit { --img-fill: var(--gold); }
/* Banners: page cream, so the logo, menu and banner text stay readable beside the photo */
.page-hero, .home-hero { background: var(--bg); }
.hero-bg .fit, .home-hero .hero-bg .fit { --img-fill: var(--bg); background: var(--img-fill); }
/* White banner text: shadow on the words instead of tinting the whole banner (keeps the fill clean) */
.page-hero--light::before { display: none; }
.page-hero--light .page-hero__title, .page-hero--light .page-hero__subtitle { text-shadow: 0 2px 14px rgba(2, 27, 23, .45), 0 1px 3px rgba(2, 27, 23, .35); }
@media (max-width: 860px) { .page-hero--light .page-hero__title, .page-hero--light .page-hero__subtitle { text-shadow: none; } }

/* Home hero background video: same box and crop as the hero image (cover, centre) */
.fit > video.fit__img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center center; pointer-events: none; }
/* Footer tagline under the logo */
.site-footer__tagline { max-width: 240px; margin-top: 18px; font-size: 13px; line-height: 20px; color: rgba(255, 255, 255, .8); }
@media (max-width: 860px) { .site-footer__tagline { max-width: 320px; } }
.entry-content [id] { scroll-margin-top: 120px; }
/* Home hero with headline text on phones/tablets: text sits over the photo/video (cover, centre) */
@media (max-width: 860px) {
	.home-hero--text { display: block; padding-top: 0; min-height: 620px; }
	.home-hero--text .hero-bg { position: absolute; inset: 0; width: auto; }
	.home-hero--text .hero-bg .fit { aspect-ratio: auto; height: 100%; }
	.home-hero--text .home-hero__inner { position: relative; top: auto; inset: auto; min-height: 620px; padding: 140px var(--gutter) 80px; justify-content: center; }
	.home-hero__title { font-size: 34px; line-height: 38px; }
	.home-hero__sub { font-size: 15px; line-height: 23px; }
}
/* Many category tabs (e.g. Activities): one line per label, the row wraps and stays centred */
@media (min-width: 861px) {
	.tabs--pill:has(> .tabs__btn:nth-child(7)) { flex-wrap: wrap; justify-content: center; row-gap: 10px; }
	.tabs--pill:has(> .tabs__btn:nth-child(7)) .tabs__btn { flex: 0 0 auto; width: auto; white-space: nowrap; padding-left: 22px; padding-right: 22px; }
}

/* ==========================================================================
   Tailor-Made: What We Build - text-only list on a green band
   ========================================================================== */
.build.build--list { margin-top: 70px; padding: 90px 0 96px; background: var(--green); color: var(--white); }
.build__layout { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 40px 80px; align-items: start; }
.build__title { color: var(--white); text-align: left; position: sticky; top: 120px; }
.build__title::after { content: ""; display: block; width: 64px; height: 3px; margin-top: 22px; background: var(--gold); border-radius: 2px; }
.build__list { margin: 0; padding: 0; list-style: none; counter-reset: none; border-top: 1px solid rgba(255, 255, 255, .18); }
.build-row { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 20px; align-items: baseline; padding: 24px 0; border-bottom: 1px solid rgba(255, 255, 255, .18); transition: padding-left .35s var(--e-out); }
.build-row__num { font-family: var(--f-ui); font-size: 15px; font-weight: 600; letter-spacing: .08em; color: var(--gold); }
.build-row__text { margin: 0; font-size: 15px; line-height: 24px; color: rgba(255, 255, 255, .78); }
.build-row__name { font-stretch: 75%; font-size: 24px; line-height: 30px; font-weight: 700; color: var(--white); }
.build-row__sep { color: var(--gold); }
@media (hover: hover) {
	.build-row:hover { padding-left: 10px; }
	.build-row:hover .build-row__name { color: #f3e3c2; }
}
@media (max-width: 860px) {
	.build.build--list { margin-top: 48px; padding: 56px 0 60px; }
	.build__layout { grid-template-columns: 1fr; gap: 24px; }
	.build__title { position: static; }
	.build-row { grid-template-columns: 44px minmax(0, 1fr); gap: 12px; padding: 18px 0; }
	.build-row__name { font-size: 20px; line-height: 26px; }
	.build-row__text { font-size: 14px; line-height: 22px; }
}
@media (prefers-reduced-motion: no-preference) {
	html.js .build-row { transition: opacity .7s var(--e-out), translate .7s var(--e-out), padding-left .35s var(--e-out); }
}
.build-row { align-items: start; }
.build-row__num { padding-top: 7px; }
.build-row__name { display: block; }
.build-row__sep { display: none; }
.build-row__detail { display: block; margin-top: 6px; }
@media (max-width: 860px) { .build-row__num { padding-top: 5px; } }

/* ==========================================================================
   Phones & tablets (≤1020px): header bar + full-screen menu
   ========================================================================== */
@media (max-width: 1020px) {
	.site-header { background: rgba(233, 231, 210, .96); box-shadow: 0 1px 0 rgba(2, 27, 23, .08); }
	.site-header__inner { align-items: center; justify-content: space-between; min-height: 84px; padding-top: 10px; padding-bottom: 10px; }
	.site-logo { margin: 0; width: auto; }
	.site-logo img { width: 62px; }
	.nav-toggle { position: static; top: auto; translate: none; width: 46px; height: 46px; color: var(--white); background: var(--green); box-shadow: 0 6px 16px rgba(33, 91, 72, .25); transition: background .25s, transform .25s var(--e-out); }
	.nav-toggle:hover { background: var(--ink); }
	.nav-toggle:active { transform: scale(.94); }
	.nav-toggle .icon { width: 22px; height: 22px; }
	/* Scrolled: slimmer bar */
	.site-header.is-stuck .site-header__inner { min-height: 64px; padding-top: 6px; padding-bottom: 6px; }
	.site-header.is-stuck .site-logo, .site-header.is-stuck .site-logo img { width: 46px; }
	.site-header.is-stuck .nav-toggle { width: 42px; height: 42px; background: var(--green); translate: none; }
	.social-rail { display: none; }
}

/* Full-screen menu panel */
.mobile-nav[hidden] { display: none !important; }
.mobile-nav {
	position: fixed; inset: 0; z-index: 400;
	display: flex; flex-direction: column;
	padding: 0 0 max(24px, env(safe-area-inset-bottom));
	background: var(--bg); box-shadow: none;
	overflow-y: auto; overscroll-behavior: contain;
}
.mobile-nav__bar { display: flex; align-items: center; justify-content: space-between; min-height: 84px; padding-top: 10px; padding-bottom: 10px; border-bottom: 1px solid var(--rule); }
.mobile-nav__logo img { width: 62px; height: auto; }
.mobile-nav__close { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 50%; color: var(--white); background: var(--green); }
.mobile-nav__close .icon { width: 22px; height: 22px; }
.mobile-nav__menu { padding-top: 12px; padding-bottom: 24px; }
.mobile-nav .menu { margin: 0; padding: 0; list-style: none; }
.mobile-nav .menu > li { position: relative; border-bottom: 1px solid var(--rule); }
.mobile-nav .menu > li > a {
	display: block; padding: 16px 56px 16px 0; border: 0;
	font-stretch: 75%; font-size: 30px; line-height: 34px; font-weight: 700; text-transform: uppercase; color: var(--ink);
	transition: color .2s, padding-left .3s var(--e-out);
}
.mobile-nav .menu > li > a:hover, .mobile-nav .menu > li > a:focus-visible { color: var(--green); padding-left: 6px; }
.mobile-nav .current-menu-item > a, .mobile-nav .current-menu-ancestor > a, .mobile-nav .current_page_item > a { color: var(--gold); }
.mobile-nav .menu-chevron { display: none; }
.mobile-nav__sub-toggle {
	position: absolute; top: 12px; right: 0; width: 44px; height: 44px; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center; color: var(--ink); border: 1px solid var(--rule);
	transition: transform .3s var(--e-out), background .2s;
}
.mobile-nav__sub-toggle .icon { width: 18px; height: 18px; }
.mobile-nav__sub-toggle[aria-expanded="true"] { transform: rotate(180deg); background: rgba(33, 91, 72, .08); }
.mobile-nav .sub-menu { margin: 0; padding: 0 0 14px 16px; list-style: none; border-left: 2px solid var(--gold); margin-left: 2px; margin-bottom: 14px; }
.mobile-nav .sub-menu[hidden] { display: none; }
.mobile-nav .sub-menu a { display: block; padding: 9px 0 9px 4px; border: 0; font-stretch: 75%; font-size: 21px; line-height: 26px; font-weight: 600; text-transform: uppercase; color: var(--text); }
.mobile-nav .sub-menu a:hover { color: var(--green); }
.mobile-nav__contact { margin: auto 0 0; padding-top: 20px; padding-bottom: 8px; list-style: none; display: grid; gap: 12px; border-top: 1px solid var(--rule); }
.mobile-nav__contact a { display: inline-flex; align-items: center; gap: 12px; font-family: var(--f-ui); font-stretch: 100%; font-size: 15px; font-weight: 500; text-transform: none; color: var(--ink); }
.mobile-nav__contact .icon { width: 18px; height: 18px; color: var(--gold); }
html.nav-open, html.nav-open body { overflow: hidden; }
@media (min-width: 600px) and (max-width: 1020px) {
	.mobile-nav .menu > li > a { font-size: 36px; line-height: 40px; padding-top: 18px; padding-bottom: 18px; }
}
@media (prefers-reduced-motion: no-preference) {
	.mobile-nav:not([hidden]) { animation: navIn .35s var(--e-out) both; }
	.mobile-nav:not([hidden]) .menu > li { animation: riseIn .5s var(--e-out) both; }
	.mobile-nav:not([hidden]) .menu > li:nth-child(2) { animation-delay: .04s; }
	.mobile-nav:not([hidden]) .menu > li:nth-child(3) { animation-delay: .08s; }
	.mobile-nav:not([hidden]) .menu > li:nth-child(4) { animation-delay: .12s; }
	.mobile-nav:not([hidden]) .menu + .menu > li { animation-delay: .16s; }
}
@keyframes navIn { from { opacity: 0; transform: translateY(-12px); } to { opacity: 1; transform: none; } }
@media (min-width: 1021px) { .mobile-nav { display: none !important; } }
.mobile-nav .mobile-nav__logo, .mobile-nav .mobile-nav__contact a { display: inline-flex; padding: 0; border: 0; }
