/*
 * The homepage.
 *
 * Loaded on the homepage only, on top of the tokens and the cards. The
 * page is image-led and spacious: large photographs, one accent, short
 * runs of text, rules rather than boxes wherever a rule will do. Every
 * measure is fluid; the phone layout is drawn, not squeezed.
 */

/* The tour stylesheet is not loaded on the homepage, so the variables it
   would define are given here: the accent (overridden by the site's own
   colour when one is set in Settings), its dark step, and the inks. */
.wptm-home {
	--wptm-accent: #b8853a;
	--wptm-on-accent: #fff;
	--wptm-hairline: rgba(0, 0, 0, .1);
	--wptm-muted: #5b6472;
	--wptm-faint: #8b93a1;
	--wptm-text: #1b1f24;
	--wptm-tint: rgba(184, 133, 58, .12);
	--home-wrap: 1180px;
	--home-pad: clamp(18px, 3vw, 32px);
	--home-gap: clamp(48px, 7vw, 104px);
	--home-ink: var(--wptm-text, #1b1f24);
	--home-muted: var(--wptm-muted, #5b6472);
	--home-line: var(--wptm-hairline, rgba(0, 0, 0, .1));
	--home-radius: 14px;
	color: var(--home-ink);
}

/* The dark step follows whatever accent is in force. */
.wptm-home {
	--wptm-accent-dark: color-mix(in srgb, var(--wptm-accent) 78%, #000);
}

@supports not (color: color-mix(in srgb, red 50%, transparent)) {
	.wptm-home {
		--wptm-accent-dark: #94682a;
	}
}

.wptm-home *,
.wptm-home *::before,
.wptm-home *::after {
	box-sizing: border-box;
}

.wptm-home ul,
.wptm-home li {
	list-style: none;
	margin: 0;
	padding: 0;
}

.wptm-home a {
	color: inherit;
}

.wptm-home__wrap {
	max-width: var(--home-wrap);
	margin: 0 auto;
	padding-inline: var(--home-pad);
}

.wptm-home__section {
	padding-block: var(--home-gap) 0;
}

.wptm-home__section:last-child {
	padding-block-end: var(--home-gap);
}

/* A band that ends the page (the call to action, most often) is pulled
   down over the theme's own space before the footer by the script, so
   the dark band meets the footer and no white gap sits between them. A
   white section ending the page keeps its air. */
.wptm-home__section--cta:last-child {
	margin-block-end: var(--wptm-home-footer-gap, 0px);
}

/* --- Headings ----------------------------------------------------------- */
.wptm-home__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 12px 32px;
	margin: 0 0 clamp(22px, 3vw, 34px);
}

.wptm-home__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 8px;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--wptm-accent);
}

.wptm-home__eyebrow::before {
	content: "";
	width: 22px;
	height: 2px;
	background: var(--wptm-accent);
}

.wptm-home__title {
	margin: 0;
	font-size: clamp(1.7rem, 3.2vw, 2.5rem);
	font-weight: 700;
	line-height: 1.12;
	letter-spacing: -.02em;
	max-width: 22ch;
	text-wrap: balance;
}

.wptm-home__lead {
	margin: 10px 0 0;
	max-width: 56ch;
	font-size: 1.02rem;
	line-height: 1.65;
	color: var(--home-muted);
	text-wrap: pretty;
}

.wptm-home__more {
	display: inline-flex;
	align-items: center;
	min-height: 42px;
	padding: 0 18px;
	border: 1.5px solid var(--home-line);
	border-radius: 999px;
	font-size: .9rem;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	transition: border-color .18s ease, background-color .18s ease, color .18s ease;
}

.wptm-home__more:hover {
	border-color: var(--wptm-accent);
	background: color-mix(in srgb, var(--wptm-accent) 8%, transparent);
	color: var(--wptm-accent-dark, var(--wptm-accent));
}

/* --- Buttons ------------------------------------------------------------ */
.wptm-home__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 50px;
	padding: 14px 26px;
	border-radius: 999px;
	font-size: .95rem;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	transition: transform .18s ease, background-color .18s ease, border-color .18s ease;
}

.wptm-home__btn--primary {
	background: var(--wptm-accent);
	color: var(--wptm-on-accent, #fff);
	box-shadow: 0 10px 24px -10px var(--wptm-accent);
}

.wptm-home__btn--primary:hover {
	background: var(--wptm-accent-dark, var(--wptm-accent));
	transform: translateY(-2px);
	color: var(--wptm-on-accent, #fff);
}

.wptm-home__btn--ghost {
	border: 1.5px solid currentColor;
	background: transparent;
}

.wptm-home__btn--ghost:hover {
	transform: translateY(-2px);
	background: color-mix(in srgb, currentColor 8%, transparent);
}

.wptm-home__btn:focus-visible,
.wptm-home__more:focus-visible {
	outline: 2px solid var(--wptm-accent);
	outline-offset: 3px;
}

/* --- Hero --------------------------------------------------------------- */
/* The hero is the width of the window whatever container the theme puts
   the page in: it is pulled out to the viewport's edges from the centre,
   and the body is told to clip the few pixels a scrollbar would add, so no
   sideways scroll appears. clip, unlike hidden, leaves sticky and fixed
   elements alone. */
body:has(.wptm-home) {
	overflow-x: clip;
}

.wptm-home__hero {
	position: relative;
	display: flex;
	align-items: center;
	width: 100vw;
	max-width: 100vw;
	margin-inline: calc(50% - 50vw);
	min-height: clamp(520px, 78vh, 760px);
	overflow: hidden;
	isolation: isolate;
	color: #fff;
	background: #1a1c22;
}

.wptm-home__hero--plain {
	min-height: auto;
	background: linear-gradient(160deg, var(--wptm-accent-dark, var(--wptm-accent)), var(--wptm-accent));
}

.wptm-home__herobg {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.wptm-home__herobg img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 55%;
}

.wptm-home__hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(180deg, rgba(8, 10, 14, .45) 0%, rgba(8, 10, 14, .12) 40%, rgba(8, 10, 14, .7) 100%);
}

.wptm-home__hero--shade-light::after {
	background: linear-gradient(180deg, rgba(8, 10, 14, .3) 0%, rgba(8, 10, 14, .05) 40%, rgba(8, 10, 14, .55) 100%);
}

.wptm-home__hero--shade-dark::after {
	background: linear-gradient(180deg, rgba(8, 10, 14, .6) 0%, rgba(8, 10, 14, .35) 40%, rgba(8, 10, 14, .82) 100%);
}

.wptm-home__hero--plain::after {
	display: none;
}

.wptm-home__heroinner {
	position: relative;
	z-index: 2;
	width: 100%;
	padding-block: clamp(64px, 9vw, 120px) clamp(40px, 6vw, 72px);
}

.wptm-home__hero:has(.wptm-home__down) .wptm-home__heroinner {
	padding-block-end: clamp(96px, 10vw, 120px);
}

.wptm-home__herocopy {
	max-width: 640px;
	margin-block-end: clamp(28px, 4vw, 44px);
}

.wptm-home__hero--center .wptm-home__herocopy {
	margin-inline: auto;
	text-align: center;
}

.wptm-home__heroeyebrow {
	margin: 0 0 16px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .85);
}

.wptm-home__herotitle {
	margin: 0 0 16px;
	font-size: clamp(2.1rem, 5.4vw, 4rem);
	font-weight: 700;
	line-height: 1.04;
	letter-spacing: -.03em;
	color: #fff;
	text-wrap: balance;
	text-shadow: 0 2px 30px rgba(0, 0, 0, .35);
}

.wptm-home__herotext {
	margin: 0 0 24px;
	max-width: 52ch;
	font-size: clamp(1rem, 1.5vw, 1.15rem);
	line-height: 1.7;
	color: rgba(255, 255, 255, .88);
	text-wrap: pretty;
}

.wptm-home__hero--center .wptm-home__herotext {
	margin-inline: auto;
}

.wptm-home__heroctas {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.wptm-home__hero--center .wptm-home__heroctas {
	justify-content: center;
}

.wptm-home__hero .wptm-home__btn--ghost {
	border-color: rgba(255, 255, 255, .6);
	color: #fff;
	background: rgba(255, 255, 255, .06);
	backdrop-filter: blur(4px);
}

/* The search: one horizontal bar. Each field is a column of equal width
   with a thin rule between, the button is a fixed block at the end. The
   select is drawn plain with its own chevron so every browser shows the
   same control. */
.wptm-home__search {
	display: flex;
	align-items: stretch;
	max-width: 1080px;
	padding: 6px;
	border-radius: 18px;
	background: rgba(255, 255, 255, .97);
	box-shadow: 0 24px 60px rgba(0, 0, 0, .28), 0 0 0 1px rgba(255, 255, 255, .6) inset;
	color: var(--home-ink);
}

.wptm-home__hero--center .wptm-home__search {
	margin-inline: auto;
}

.wptm-home__field {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	flex: 1 1 0;
	min-width: 0;
	padding: 10px 18px;
	border-inline-end: 1px solid var(--home-line);
	cursor: pointer;
}

.wptm-home__field:last-of-type {
	border-inline-end: 0;
}

.wptm-home__fieldicon {
	display: inline-flex;
	flex: 0 0 auto;
	color: var(--wptm-accent);
	line-height: 0;
}

.wptm-home__fieldcopy {
	display: flex;
	flex-direction: column;
	min-width: 0;
	flex: 1 1 auto;
}

.wptm-home__fieldlabel {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--home-muted);
}

.wptm-home__field select {
	width: 100%;
	min-height: 32px;
	padding: 0 24px 0 0;
	border: 0;
	background:
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23777' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>") no-repeat right center / 18px 18px;
	font: inherit;
	font-size: 15px;
	font-weight: 600;
	color: inherit;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	text-overflow: ellipsis;
	white-space: nowrap;
}

[dir="rtl"] .wptm-home__field select {
	padding: 0 0 0 24px;
	background-position: left center;
}

.wptm-home__field select:focus-visible {
	outline: 2px solid var(--wptm-accent);
	outline-offset: 2px;
	border-radius: 4px;
}

.wptm-home__searchbtn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	gap: 10px;
	min-height: 58px;
	padding: 0 28px;
	margin: 0 0 0 6px;
	border: 0;
	border-radius: 13px;
	background: var(--wptm-accent);
	color: var(--wptm-on-accent, #fff);
	font: inherit;
	font-size: .95rem;
	font-weight: 700;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color .18s ease;
}

[dir="rtl"] .wptm-home__searchbtn {
	margin: 0 6px 0 0;
}

.wptm-home__searchbtn:hover {
	background: var(--wptm-accent-dark, var(--wptm-accent));
}

.wptm-home__searchbtn:focus-visible {
	outline: 2px solid #fff;
	outline-offset: -5px;
}

/* --- Tiles (destinations, tour types) ----------------------------------- */
.wptm-home__tiles {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}

.wptm-home__tiles--types {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.wptm-home__tile a {
	position: relative;
	display: block;
	aspect-ratio: 4 / 5;
	border-radius: var(--home-radius);
	overflow: hidden;
	background: #22252b;
	color: #fff;
	text-decoration: none;
	isolation: isolate;
}

.wptm-home__tiles--types .wptm-home__tile a {
	aspect-ratio: 16 / 10;
}

.wptm-home__tileimg {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .7s ease;
}

.wptm-home__tile a:hover .wptm-home__tileimg {
	transform: scale(1.05);
}

.wptm-home__tile a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, .72) 100%);
}

.wptm-home__tile--plain a {
	background: linear-gradient(160deg, var(--wptm-accent-dark, var(--wptm-accent)), var(--wptm-accent));
}

.wptm-home__tile--plain a::after {
	background: linear-gradient(180deg, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, .35) 100%);
}

.wptm-home__tilecopy {
	position: absolute;
	inset: auto 0 0 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 18px;
}

.wptm-home__tilename {
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -.01em;
}

.wptm-home__tilecount {
	font-size: .82rem;
	color: rgba(255, 255, 255, .8);
}

.wptm-home__tile a:focus-visible {
	outline: 3px solid var(--wptm-accent);
	outline-offset: 3px;
}

/* --- Signature ---------------------------------------------------------- */
.wptm-home__sig {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
	align-items: center;
	gap: clamp(24px, 4vw, 56px);
}

.wptm-home__sigmedia {
	display: block;
	aspect-ratio: 4 / 3;
	border-radius: var(--home-radius);
	overflow: hidden;
	background: #22252b;
}

.wptm-home__sigimg {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .8s ease;
}

.wptm-home__sig:hover .wptm-home__sigimg {
	transform: scale(1.04);
}

.wptm-home__sigtitle {
	margin: 0 0 14px;
	font-size: clamp(1.6rem, 2.8vw, 2.3rem);
	line-height: 1.12;
	letter-spacing: -.02em;
}

.wptm-home__sigtitle a {
	text-decoration: none;
}

.wptm-home__sigtitle a:hover {
	color: var(--wptm-accent);
}

.wptm-home__siglead {
	margin: 0 0 20px;
	font-size: 1.02rem;
	line-height: 1.7;
	color: var(--home-muted);
	text-wrap: pretty;
}

.wptm-home__sigfacts {
	display: flex;
	flex-wrap: wrap;
	gap: 14px 28px;
	margin: 0 0 24px;
	padding: 16px 0;
	border-block: 1px solid var(--home-line);
}

.wptm-home__sigfacts div {
	margin: 0;
}

.wptm-home__sigfacts dt {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--home-muted);
}

.wptm-home__sigfacts dd {
	margin: 2px 0 0;
	font-size: 1rem;
	font-weight: 600;
}

.wptm-home__sigprice {
	color: var(--wptm-accent);
	font-size: 1.25rem;
}

/* --- Activities, guides ------------------------------------------------- */
.wptm-home__acts,
.wptm-home__guides {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.wptm-home__act a,
.wptm-home__guide a {
	display: block;
	text-decoration: none;
}

.wptm-home__actimg,
.wptm-home__guideimg {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border-radius: var(--home-radius);
	background: #e9e6df;
	transition: transform .5s ease, box-shadow .5s ease;
}

.wptm-home__act a:hover .wptm-home__actimg,
.wptm-home__guide a:hover .wptm-home__guideimg {
	transform: translateY(-4px);
	box-shadow: 0 18px 34px -16px rgba(0, 0, 0, .35);
}

.wptm-home__actcopy,
.wptm-home__guidecopy {
	display: block;
	padding: 14px 4px 0;
}

.wptm-home__actname,
.wptm-home__guidetitle {
	display: block;
	font-size: 1.08rem;
	font-weight: 700;
	line-height: 1.3;
}

.wptm-home__act a:hover .wptm-home__actname,
.wptm-home__guide a:hover .wptm-home__guidetitle {
	color: var(--wptm-accent);
}

.wptm-home__actnote {
	display: block;
	margin-top: 6px;
	font-size: .9rem;
	line-height: 1.55;
	color: var(--home-muted);
}

.wptm-home__guidedate {
	display: block;
	margin-bottom: 6px;
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--home-muted);
}

/* --- Trust: four styles ------------------------------------------------- */
.wptm-home__trust {
	display: grid;
	gap: 14px;
}

.wptm-home__trustinner {
	display: flex;
	align-items: center;
	gap: 14px;
	height: 100%;
	text-decoration: none;
}

.wptm-home__trusticon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--wptm-accent) 12%, transparent);
	color: var(--wptm-accent-dark, var(--wptm-accent));
	line-height: 0;
}

.wptm-home__trustlogo img {
	display: block;
	max-height: 44px;
	width: auto;
}

.wptm-home__trustcopy {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.wptm-home__trusttitle {
	font-size: .98rem;
	font-weight: 700;
	line-height: 1.3;
}

.wptm-home__trustvalue {
	font-size: 1.35rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -.02em;
	color: var(--wptm-accent-dark, var(--wptm-accent));
	margin-bottom: 4px;
}

.wptm-home__trustnote {
	font-size: .85rem;
	line-height: 1.5;
	color: var(--home-muted);
}

/* bar: one row, rules between */
.wptm-home__trust--bar .wptm-home__trust {
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 0;
	padding: 18px 0;
	border-block: 1px solid var(--home-line);
}

.wptm-home__trust--bar .wptm-home__trustitem {
	padding: 8px 20px;
	border-inline-end: 1px solid var(--home-line);
}

.wptm-home__trust--bar .wptm-home__trustitem:last-child {
	border-inline-end: 0;
}

.wptm-home__trust--bar .wptm-home__trustvalue {
	font-size: 1.15rem;
}

/* grid: cards */
.wptm-home__trust--grid .wptm-home__trust {
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
}

.wptm-home__trust--grid .wptm-home__trustinner {
	align-items: flex-start;
	flex-direction: column;
	gap: 14px;
	padding: 22px;
	border: 1px solid var(--home-line);
	border-radius: var(--home-radius);
	background: color-mix(in srgb, var(--wptm-accent) 4%, #fff);
}

/* certs: logos and licences, centred */
.wptm-home__trust--certs .wptm-home__trust {
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 24px;
	padding: 28px;
	border-radius: var(--home-radius);
	background: color-mix(in srgb, var(--wptm-accent) 6%, #fff);
}

.wptm-home__trust--certs .wptm-home__trustinner {
	flex-direction: column;
	text-align: center;
	gap: 10px;
}

.wptm-home__trust--certs .wptm-home__trustlogo img {
	max-height: 56px;
}

/* metrics: large numbers */
.wptm-home__trust--metrics .wptm-home__trust {
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 24px;
	padding: 34px 0;
	border-block: 1px solid var(--home-line);
}

.wptm-home__trust--metrics .wptm-home__trustinner {
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
}

.wptm-home__trust--metrics .wptm-home__trusticon,
.wptm-home__trust--metrics .wptm-home__trustlogo {
	display: none;
}

.wptm-home__trust--metrics .wptm-home__trustvalue {
	font-size: clamp(2rem, 4vw, 3rem);
}

/* --- Why ---------------------------------------------------------------- */
.wptm-home__head--center {
	justify-content: center;
	text-align: center;
}

.wptm-home__head--center .wptm-home__eyebrow {
	justify-content: center;
}

.wptm-home__head--center .wptm-home__title {
	margin-inline: auto;
}

.wptm-home__why {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0;
	counter-reset: none;
	border-block-start: 1px solid var(--home-line);
}

.wptm-home__why--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.wptm-home__why--3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.wptm-home__whyitem {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 30px 24px 30px 0;
	margin-inline-end: 28px;
	border-block-end: 1px solid var(--home-line);
}

.wptm-home__whymark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	border-radius: 16px;
	background: color-mix(in srgb, var(--wptm-accent) 12%, transparent);
	color: var(--wptm-accent-dark, var(--wptm-accent));
	line-height: 0;
}

.wptm-home__whymark--image {
	background: none;
	overflow: hidden;
	border-radius: 18px;
	width: 72px;
	height: 72px;
}

.wptm-home__whymark--image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.wptm-home__whynum {
	position: absolute;
	top: 30px;
	inset-inline-end: 24px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	color: var(--home-muted);
	opacity: .6;
}

.wptm-home__whytitle {
	margin: 4px 0 0;
	font-size: 1.12rem;
	line-height: 1.3;
	letter-spacing: -.01em;
}

.wptm-home__whytext {
	margin: 0;
	font-size: .95rem;
	line-height: 1.65;
	color: var(--home-muted);
	text-wrap: pretty;
}

/* --- CTA ---------------------------------------------------------------- */
/* A dark band from edge to edge, the copy centred on it, the buttons in a
   row beneath. A faint radial glow in the site colour on one side, and a
   thin line of it along the top, are all the decoration it carries. */
.wptm-home__section--cta {
	position: relative;
	width: 100vw;
	max-width: 100vw;
	margin-inline: calc(50% - 50vw);
	margin-block-start: var(--home-gap);
	padding-block: clamp(56px, 8vw, 110px) !important;
	color: #fff;
	background:
		radial-gradient(ellipse 55% 80% at 85% 100%, color-mix(in srgb, var(--wptm-accent) 40%, transparent), transparent 70%),
		linear-gradient(160deg, #14161b 0%, #1c1f26 60%, #23262d 100%);
}

.wptm-home__section--cta::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 3px;
	background: linear-gradient(90deg, transparent, var(--wptm-accent), transparent);
}

@supports not (color: color-mix(in srgb, red 50%, transparent)) {
	.wptm-home__section--cta {
		background: linear-gradient(160deg, #14161b 0%, #1c1f26 60%, #23262d 100%);
	}

	.wptm-home__section--destinations,
	.wptm-home__section--trust,
	.wptm-home__section--gallery,
	.wptm-home__section--why {
		background: #faf7f2;
	}
}

.wptm-home__cta {
	display: flex;
	flex-direction: column;
	align-items: center;
	max-width: 720px;
	margin: 0 auto;
	text-align: center;
}

.wptm-home__eyebrow--light {
	justify-content: center;
	color: color-mix(in srgb, var(--wptm-accent) 70%, #fff);
}

.wptm-home__eyebrow--light::before {
	background: currentColor;
}

.wptm-home__ctatitle {
	margin: 0 0 12px;
	font-size: clamp(1.7rem, 3.4vw, 2.6rem);
	line-height: 1.12;
	letter-spacing: -.02em;
	color: #fff;
	text-wrap: balance;
}

.wptm-home__ctatext {
	margin: 0 0 28px;
	max-width: 56ch;
	font-size: 1.05rem;
	line-height: 1.7;
	color: rgba(255, 255, 255, .78);
	text-wrap: pretty;
}

.wptm-home__ctabtns {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
}

.wptm-home__cta .wptm-home__btn--ghost {
	border-color: rgba(255, 255, 255, .5);
	color: #fff;
}

.wptm-home__cta .wptm-home__btn--ghost:hover {
	background: rgba(255, 255, 255, .1);
}

/* --- Own content -------------------------------------------------------- */
.wptm-home__content {
	max-width: 760px;
	font-size: 1.02rem;
	line-height: 1.75;
}

/* --- Tablet ------------------------------------------------------------- */
@media (max-width: 1000px) {
	.wptm-home__tiles {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.wptm-home__tiles--types {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.wptm-home__acts,
	.wptm-home__guides {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.wptm-home__sig {
		grid-template-columns: 1fr;
	}

	/* Two fields per row, the button on its own row under them. */
	.wptm-home__search {
		flex-wrap: wrap;
	}

	.wptm-home__field {
		flex: 1 1 45%;
		border-block-end: 1px solid var(--home-line);
	}

	.wptm-home__field:nth-of-type(2n) {
		border-inline-end: 0;
	}

	.wptm-home__searchbtn {
		flex: 1 1 100%;
		margin: 6px 0 0;
	}
}

/* --- Phone -------------------------------------------------------------- */
@media (max-width: 640px) {
	.wptm-home {
		--home-gap: 44px;
	}

	.wptm-home__hero {
		min-height: auto;
	}

	.wptm-home__heroinner {
		padding-block: 56px 36px;
	}

	.wptm-home__heroctas .wptm-home__btn {
		flex: 1 1 100%;
	}

	.wptm-home__search {
		border-radius: 16px;
	}

	.wptm-home__field {
		flex: 1 1 100%;
		border-inline-end: 0;
		padding: 12px 14px;
	}

	.wptm-home__field select {
		font-size: 16px;
	}

	/* Tiles scroll sideways, one and a half in view, so a row of eight is a
	   swipe and not a wall. */
	.wptm-home__tiles,
	.wptm-home__tiles--types,
	.wptm-home__acts {
		display: flex;
		gap: 12px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		padding: 2px 2px 14px;
		margin-inline: calc(var(--home-pad) * -1);
		padding-inline: var(--home-pad);
		scrollbar-width: none;
	}

	.wptm-home__tiles::-webkit-scrollbar,
	.wptm-home__acts::-webkit-scrollbar {
		display: none;
	}

	.wptm-home__tile,
	.wptm-home__act {
		flex: 0 0 68%;
		scroll-snap-align: start;
	}

	.wptm-home__tiles--types .wptm-home__tile {
		flex: 0 0 76%;
	}

	.wptm-home__guides {
		grid-template-columns: 1fr;
	}

	.wptm-home__trust--bar .wptm-home__trust {
		grid-template-columns: 1fr;
	}

	.wptm-home__trust--bar .wptm-home__trustitem {
		border-inline-end: 0;
		border-block-end: 1px solid var(--home-line);
		padding: 12px 4px;
	}

	.wptm-home__trust--bar .wptm-home__trustitem:last-child {
		border-block-end: 0;
	}

	.wptm-home__ctabtns {
		width: 100%;
	}

	.wptm-home__ctabtns .wptm-home__btn {
		flex: 1 1 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wptm-home__tileimg,
	.wptm-home__sigimg,
	.wptm-home__actimg,
	.wptm-home__guideimg,
	.wptm-home__btn,
	.wptm-home__more,
	.wptm-home__searchbtn {
		transition: none;
	}

	.wptm-home__tile a:hover .wptm-home__tileimg,
	.wptm-home__sig:hover .wptm-home__sigimg,
	.wptm-home__act a:hover .wptm-home__actimg,
	.wptm-home__guide a:hover .wptm-home__guideimg,
	.wptm-home__btn:hover {
		transform: none;
	}
}

/* --- Testimonials slider ------------------------------------------------ */
.wptm-home__slidernav {
	display: inline-flex;
	gap: 8px;
}

.wptm-home__sliderbtn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--home-line);
	border-radius: 50%;
	background: #fff;
	color: var(--home-ink);
	cursor: pointer;
	transition: background-color .16s ease, color .16s ease, border-color .16s ease;
}

.wptm-home__sliderbtn:hover {
	background: var(--wptm-accent);
	border-color: var(--wptm-accent);
	color: var(--wptm-on-accent, #fff);
}

.wptm-home__sliderbtn:focus-visible {
	outline: 2px solid var(--wptm-accent);
	outline-offset: 3px;
}

[dir="rtl"] .wptm-home__sliderbtn svg {
	transform: scaleX(-1);
}

.wptm-home__slider {
	position: relative;
}

.wptm-home__track {
	display: flex;
	gap: 20px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: 0;
	padding: 4px 4px 12px;
	margin: -4px -4px 0;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

.wptm-home__track::-webkit-scrollbar {
	display: none;
}

.wptm-home__review {
	flex: 0 0 calc((100% - 40px) / 3);
	scroll-snap-align: start;
}

.wptm-home__reviewcard {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 26px 26px 22px;
	border: 1px solid var(--home-line);
	border-radius: var(--home-radius);
	background: #fff;
	position: relative;
}

.wptm-home__reviewcard::before {
	content: "\201C";
	position: absolute;
	top: 8px;
	inset-inline-end: 22px;
	font-family: Georgia, serif;
	font-size: 78px;
	line-height: 1;
	color: color-mix(in srgb, var(--wptm-accent) 28%, transparent);
}

.wptm-home__stars {
	display: inline-flex;
	gap: 2px;
	margin: 0 0 14px;
	color: color-mix(in srgb, currentColor 18%, transparent);
}

.wptm-home__star {
	display: inline-flex;
	line-height: 0;
}

.wptm-home__star.is-on {
	color: var(--wptm-accent);
}

.wptm-home__quote {
	margin: 0 0 18px;
	padding: 0;
	border: 0;
	background: none;
	font-style: normal;
}

.wptm-home__quote p {
	margin: 0;
	font-size: .98rem;
	line-height: 1.75;
	color: var(--home-ink);
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 7;
	overflow: hidden;
	text-wrap: pretty;
}

.wptm-home__reviewer {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: auto;
	padding-top: 16px;
	border-top: 1px solid var(--home-line);
}

.wptm-home__avatar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	object-fit: cover;
	background: color-mix(in srgb, var(--wptm-accent) 14%, #fff);
	color: var(--wptm-accent-dark, var(--wptm-accent));
	font-weight: 700;
}

.wptm-home__reviewercopy {
	display: flex;
	flex-direction: column;
	min-width: 0;
	font-size: .9rem;
	line-height: 1.35;
}

.wptm-home__reviewercopy strong {
	font-size: .95rem;
}

.wptm-home__reviewercopy a,
.wptm-home__reviewercopy span {
	color: var(--home-muted);
	text-decoration: none;
}

.wptm-home__reviewercopy a:hover {
	color: var(--wptm-accent);
	text-decoration: underline;
}

.wptm-home__dots {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: 14px;
}

.wptm-home__dots:empty {
	display: none;
}

.wptm-home__dot {
	width: 8px;
	height: 8px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: color-mix(in srgb, currentColor 22%, transparent);
	cursor: pointer;
	transition: width .2s ease, background-color .2s ease;
}

.wptm-home__dot[aria-selected="true"] {
	width: 24px;
	border-radius: 999px;
	background: var(--wptm-accent);
}

.wptm-home__dot:focus-visible {
	outline: 2px solid var(--wptm-accent);
	outline-offset: 3px;
}

@media (max-width: 1000px) {
	.wptm-home__review {
		flex: 0 0 calc((100% - 20px) / 2);
	}
}

@media (max-width: 640px) {
	.wptm-home__review {
		flex: 0 0 88%;
	}

	.wptm-home__slidernav {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wptm-home__sliderbtn,
	.wptm-home__dot {
		transition: none;
	}

	.wptm-home__track {
		scroll-behavior: auto;
	}
}


/* --- Flush under the header, the arrow, WhatsApp, the licence ------------ */

/* The theme's own page title has no place above a hero; the script pulls
   the hero up over the space it left. */
body.page-template-tripvance-home .entry-header,
body.page-template-tripvance-home h1.entry-title,
body.page-template-tripvance-home .page-title:not(.wptm-home *),
body.page-template-tripvance-home .breadcrumb,
body.page-template-tripvance-home #breadcrumb {
	display: none;
}

.wptm-home__btn--wa {
	background: #25d366;
	color: #062a14;
	box-shadow: 0 10px 24px -10px #25d366;
}

.wptm-home__btn--wa:hover {
	background: #1fbf5b;
	color: #062a14;
	transform: translateY(-2px);
}

.wptm-home__btn--wa svg {
	width: 18px;
	height: 18px;
}

.wptm-home__licence {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 18px;
	font-size: .9rem;
	line-height: 1.4;
	text-decoration: none;
}

.wptm-home__licence--hero {
	padding: 8px 14px 8px 10px;
	border-radius: 999px;
	background: rgba(0, 0, 0, .3);
	border: 1px solid rgba(255, 255, 255, .18);
	color: rgba(255, 255, 255, .92);
	backdrop-filter: blur(4px);
}

.wptm-home__licence--trust {
	margin-top: 16px;
	color: var(--home-muted);
}

.wptm-home__licence--trust .wptm-home__licencevalue {
	color: var(--home-ink);
}

.wptm-home__verified {
	display: inline-flex;
	line-height: 0;
	flex: 0 0 auto;
}

.wptm-home__licencevalue {
	font-weight: 700;
	letter-spacing: .02em;
}

a.wptm-home__licence:hover .wptm-home__licencevalue {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.wptm-home__down {
	position: absolute;
	inset-inline: 0;
	inset-block-end: 22px;
	z-index: 3;
	justify-content: center;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: #fff;
	text-decoration: none;
	font-size: .82rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.wptm-home__downring {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1.5px solid rgba(255, 255, 255, .6);
	border-radius: 50%;
	background: rgba(0, 0, 0, .18);
	backdrop-filter: blur(4px);
	transition: background-color .18s ease, border-color .18s ease;
}

.wptm-home__downring svg {
	animation: wptm-home-bob 1.8s ease-in-out infinite;
}

@keyframes wptm-home-bob {
	0%, 100% { transform: translateY(-2px); }
	50% { transform: translateY(3px); }
}

.wptm-home__down:hover .wptm-home__downring {
	background: var(--wptm-accent);
	border-color: var(--wptm-accent);
}

.wptm-home__down:focus-visible {
	outline: 2px solid var(--wptm-accent);
	outline-offset: 4px;
	border-radius: 999px;
}

.wptm-home__section--featured {
	scroll-margin-top: calc(var(--wptm-offset, 0px) + 12px);
}

@media (max-width: 640px) {
	/* Centred at the foot of the hero; the hero leaves room for it. */
	.wptm-home__down {
		inset-inline: 0;
		inset-block-end: 14px;
		justify-content: center;
	}

	.wptm-home__hero:has(.wptm-home__down) .wptm-home__heroinner {
		padding-block-end: 84px;
	}

	.wptm-home__licence--hero {
		display: flex;
		justify-content: center;
		text-align: center;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wptm-home__downring svg {
		animation: none;
	}
}

/* --- Reviews: gold stars, the name as the link, the viewer --------------- */
.wptm-home .wptm-home__stars {
	color: rgba(0, 0, 0, .16);
}

.wptm-home .wptm-home__star.is-on,
.wptm-home .wptm-home__star.is-on svg {
	color: #f5a500;
	fill: #f5a500;
}

/* The quote is cut short only when the viewer can open it. */
.wptm-home__quote p {
	display: block;
	overflow: visible;
}

.wptm-home--js .wptm-home__quote p {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 6;
	overflow: hidden;
}

.wptm-home__readmore {
	align-self: flex-start;
	margin: -8px 0 16px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--wptm-accent-dark, var(--wptm-accent));
	font: inherit;
	font-size: .88rem;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

.wptm-home__readmore:focus-visible {
	outline: 2px solid var(--wptm-accent);
	outline-offset: 3px;
	border-radius: 2px;
}

.wptm-home__reviewername {
	text-decoration: none;
	color: var(--home-ink);
}

.wptm-home__reviewername:hover strong {
	color: var(--wptm-accent);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.wptm-home__ext {
	font-size: .8em;
	color: var(--home-muted);
}

.wptm-home__reviewsource {
	color: var(--home-muted);
}

.wptm-home .wptm-vh {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* --- Dialogs ------------------------------------------------------------ */
.wptm-home__dialog {
	width: min(92vw, 640px);
	max-height: 90vh;
	padding: 0;
	border: 0;
	border-radius: 18px;
	background: #fff;
	color: var(--home-ink);
	box-shadow: 0 40px 90px rgba(0, 0, 0, .35);
}

.wptm-home__dialog::backdrop {
	background: rgba(10, 12, 16, .62);
	backdrop-filter: blur(3px);
}

.wptm-home__dialogbox {
	position: relative;
	padding: 34px 30px 30px;
	overflow: auto;
	max-height: 90vh;
}

.wptm-home__dialogclose {
	position: absolute;
	top: 12px;
	inset-inline-end: 12px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(0, 0, 0, .06);
	color: inherit;
	cursor: pointer;
}

.wptm-home__dialogclose:hover {
	background: rgba(0, 0, 0, .12);
}

.wptm-home__dialogclose:focus-visible {
	outline: 2px solid var(--wptm-accent);
	outline-offset: 2px;
}

.wptm-home__dialogtitle {
	margin: 10px 0 2px;
	font-size: 1.15rem;
}

.wptm-home__dialogsource {
	margin: 0 0 16px;
	font-size: .9rem;
	color: var(--home-muted);
}

.wptm-home__dialogsource a {
	color: inherit;
}

.wptm-home__dialogtext p {
	margin: 0;
	font-size: 1rem;
	line-height: 1.8;
	text-wrap: pretty;
}

.wptm-home__dialog--photo {
	width: min(96vw, 1100px);
	background: #0e1014;
	color: #fff;
}

.wptm-home__dialogbox--photo {
	padding: 0;
	overflow: hidden;
	max-height: none;
}

.wptm-home__dialogbox--photo .wptm-home__dialogclose {
	background: rgba(255, 255, 255, .14);
	color: #fff;
	z-index: 2;
}

.wptm-home__dialogimg {
	display: block;
	width: 100%;
	max-height: 78vh;
	object-fit: contain;
	background: #0e1014;
}

.wptm-home__dialogcap {
	margin: 0;
	padding: 12px 70px 14px 18px;
	font-size: .92rem;
	color: rgba(255, 255, 255, .85);
}

.wptm-home__dialogcap[hidden] {
	display: none;
}

.wptm-home__dialognav {
	position: absolute;
	inset-block-end: 8px;
	inset-inline-end: 12px;
	display: inline-flex;
	gap: 6px;
}

.wptm-home__dialognav .wptm-home__sliderbtn {
	width: 38px;
	height: 38px;
	background: rgba(255, 255, 255, .14);
	border-color: transparent;
	color: #fff;
}

/* --- Gallery ------------------------------------------------------------ */
.wptm-home__gallery {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-auto-rows: 200px;
	grid-auto-flow: dense;
	gap: 12px;
}

.wptm-home__shot:first-child,
.wptm-home__shot:nth-child(6n + 6) {
	grid-column: span 2;
	grid-row: span 2;
}

.wptm-home__shot a {
	position: relative;
	display: block;
	height: 100%;
	border-radius: 12px;
	overflow: hidden;
	background: #22252b;
}

.wptm-home__shot img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .7s ease;
}

.wptm-home__shot a:hover img {
	transform: scale(1.04);
}

.wptm-home__shotcap {
	position: absolute;
	inset: auto 0 0 0;
	padding: 28px 14px 12px;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, .65));
	color: #fff;
	font-size: .82rem;
	line-height: 1.4;
	opacity: 0;
	transition: opacity .25s ease;
}

.wptm-home__shot a:hover .wptm-home__shotcap,
.wptm-home__shot a:focus-visible .wptm-home__shotcap {
	opacity: 1;
}

.wptm-home__shot a:focus-visible {
	outline: 3px solid var(--wptm-accent);
	outline-offset: 3px;
}

@media (max-width: 1000px) {
	.wptm-home__gallery {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		grid-auto-rows: 170px;
	}
}

@media (max-width: 640px) {
	.wptm-home__gallery {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-auto-rows: 140px;
		gap: 8px;
	}

	.wptm-home__shotcap {
		opacity: 1;
		padding: 20px 10px 8px;
		font-size: .76rem;
	}

	.wptm-home__dialogbox {
		padding: 30px 20px 24px;
	}
}

@media (pointer: coarse) {
	.wptm-home__shotcap {
		opacity: 1;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wptm-home__shot img,
	.wptm-home__shotcap {
		transition: none;
	}

	.wptm-home__shot a:hover img {
		transform: none;
	}
}


/* --- Rhythm ------------------------------------------------------------- */
/* The sections that stand for people and places sit on a soft band of the
   site colour from one edge of the window to the other. The band is the
   section itself, pulled out to the viewport and padded back in, so no
   stacking trick can leave it white under a theme's own background. */
.wptm-home__section--destinations,
.wptm-home__section--trust,
.wptm-home__section--gallery,
.wptm-home__section--why {
	width: 100vw;
	max-width: 100vw;
	margin-inline: calc(50% - 50vw);
	padding-block: var(--home-gap);
	background: color-mix(in srgb, var(--wptm-accent) 5%, #fff);
}

.wptm-home__section--destinations + .wptm-home__section,
.wptm-home__section--trust + .wptm-home__section,
.wptm-home__section--gallery + .wptm-home__section,
.wptm-home__section--why + .wptm-home__section {
	padding-block-start: var(--home-gap);
}

/* Tiles: a firmer name, the count as a small pill. */
.wptm-home__tilename {
	font-size: 1.2rem;
	text-shadow: 0 1px 12px rgba(0, 0, 0, .35);
}

.wptm-home__tilecount {
	align-self: flex-start;
	padding: 4px 10px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .16);
	backdrop-filter: blur(3px);
	font-size: .78rem;
	font-weight: 600;
	color: #fff;
}

@media (max-width: 1000px) {
	.wptm-home__why,
	.wptm-home__why--3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.wptm-home__why,
	.wptm-home__why--2,
	.wptm-home__why--3 {
		grid-template-columns: 1fr;
	}

	.wptm-home__whyitem {
		margin-inline-end: 0;
		padding: 22px 0;
	}

	.wptm-home__whynum {
		top: 22px;
		inset-inline-end: 0;
	}

	.wptm-home__more {
		min-height: 38px;
		padding: 0 14px;
		font-size: .85rem;
	}
}


/* --- More polish -------------------------------------------------------- */

/* One or two photos are a banner or a pair, not a broken grid. */
.wptm-home__gallery--1 {
	grid-template-columns: 1fr;
	grid-auto-rows: clamp(220px, 40vw, 460px);
}

.wptm-home__gallery--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-auto-rows: clamp(200px, 32vw, 380px);
}

.wptm-home__gallery--1 .wptm-home__shot,
.wptm-home__gallery--2 .wptm-home__shot {
	grid-column: auto;
	grid-row: auto;
}

/* The signature picture carries its price. */
.wptm-home__sigmedia {
	position: relative;
}

.wptm-home__sigbadge {
	position: absolute;
	inset-block-start: 16px;
	inset-inline-start: 16px;
	z-index: 2;
	display: inline-flex;
	flex-direction: column;
	padding: 10px 16px;
	border-radius: 12px;
	background: rgba(255, 255, 255, .95);
	color: var(--home-ink);
	box-shadow: 0 8px 22px rgba(0, 0, 0, .18);
	line-height: 1.1;
}

.wptm-home__sigbadge span {
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--home-muted);
}

.wptm-home__sigbadge b {
	font-size: 1.25rem;
	font-weight: 800;
	color: var(--wptm-accent-dark, var(--wptm-accent));
}

/* The hero eases into the page rather than ending on a hard edge. */
.wptm-home__hero:not(.wptm-home__hero--plain)::after {
	background:
		linear-gradient(180deg, rgba(8, 10, 14, .45) 0%, rgba(8, 10, 14, .12) 40%, rgba(8, 10, 14, .7) 100%),
		linear-gradient(0deg, rgba(255, 255, 255, .08) 0%, rgba(255, 255, 255, 0) 12%);
}

/* The arrow's label sits over a soft pill so it reads on any picture. */
.wptm-home__down {
	font-size: .78rem;
}

.wptm-home__downlabel {
	padding: 6px 12px;
	border-radius: 999px;
	background: rgba(0, 0, 0, .28);
	backdrop-filter: blur(4px);
}

/* Sections rise softly into view; nothing moves for a reader who asked for
   no motion, and nothing is hidden when the script is absent. */
.wptm-home--js .wptm-home__section > .wptm-home__wrap {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity .6s ease, transform .6s ease;
}

.wptm-home--js .wptm-home__section.is-in > .wptm-home__wrap,
.wptm-home--js .wptm-home__section--content > .wptm-home__wrap {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	.wptm-home--js .wptm-home__section > .wptm-home__wrap {
		opacity: 1;
		transform: none;
		transition: none;
	}
}


/* --- Why choose us: an intro column and a list ------------------------- */
/* The heading and its eyebrow stand in the first column and stay put while
   the list scrolls beside them. Each item is a line: the mark at the start,
   drawn large in the site colour with nothing around it, the title and the
   sentence beside it, a hairline under it. A picture used as a mark is a
   plain rounded photograph, no frame, no shadow. */
.wptm-home__whygrid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr);
	gap: clamp(28px, 5vw, 72px);
	align-items: start;
}

.wptm-home__head--why {
	position: sticky;
	top: calc(var(--wptm-offset, 0px) + 24px);
	margin: 0;
}

.wptm-home__head--why .wptm-home__title {
	max-width: 14ch;
	font-size: clamp(1.8rem, 3.4vw, 2.7rem);
}

.wptm-home__why,
.wptm-home__why--2,
.wptm-home__why--3,
.wptm-home__why--4 {
	display: block;
	gap: 0;
	border: 0;
	padding: 0;
	margin: 0;
	list-style: none;
}

.wptm-home__whyitem {
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr) auto;
	column-gap: 20px;
	align-items: start;
	margin: 0;
	padding: 24px 0;
	border: 0;
	border-block-end: 1px solid var(--home-line);
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	transition: none;
}

.wptm-home__whyitem:first-child {
	padding-top: 6px;
}

.wptm-home__whyitem:hover {
	transform: none;
	border-color: var(--home-line);
	box-shadow: none;
}

.wptm-home__whymark {
	grid-row: 1 / span 2;
	display: inline-flex;
	align-items: flex-start;
	justify-content: flex-start;
	width: 56px;
	height: auto;
	margin-top: 2px;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: var(--wptm-accent-dark, var(--wptm-accent));
	line-height: 0;
}

.wptm-home__whymark svg {
	width: 34px;
	height: 34px;
}

.wptm-home__whymark--image {
	width: 56px;
	height: 56px;
	border-radius: 14px;
	overflow: hidden;
	box-shadow: none;
}

.wptm-home__whynum {
	position: static;
	grid-column: 3;
	grid-row: 1;
	padding: 0;
	background: none;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	color: var(--home-muted);
	opacity: .55;
}

.wptm-home__whytitle {
	grid-column: 2;
	grid-row: 1;
	margin: 0;
	font-size: 1.15rem;
	line-height: 1.3;
}

.wptm-home__whytext {
	grid-column: 2;
	grid-row: 2;
	margin: 6px 0 0;
	font-size: .97rem;
	line-height: 1.65;
	color: var(--home-muted);
}

@media (max-width: 900px) {
	.wptm-home__whygrid {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.wptm-home__head--why {
		position: static;
		margin-bottom: 8px;
	}

	.wptm-home__head--why .wptm-home__title {
		max-width: 20ch;
	}
}

@media (max-width: 640px) {
	.wptm-home__whyitem {
		grid-template-columns: 44px minmax(0, 1fr) auto;
		column-gap: 14px;
		padding: 18px 0;
	}

	.wptm-home__whymark {
		width: 44px;
	}

	.wptm-home__whymark svg {
		width: 28px;
		height: 28px;
	}

	.wptm-home__whymark--image {
		width: 44px;
		height: 44px;
		border-radius: 12px;
	}
}

/* --- The photo viewer fits its picture ---------------------------------- */
/* The box is as wide as the picture it shows, so a portrait photograph is
   not floated in a wide black field. The arrows sit over the picture's
   edges; the caption runs under it at the same width. */
.wptm-home__dialog--photo {
	width: fit-content;
	max-width: min(96vw, 1200px);
	max-height: none;
}

.wptm-home__dialogbox--photo {
	position: relative;
	display: flex;
	flex-direction: column;
	max-height: none;
}

.wptm-home__dialogimg {
	display: block;
	width: auto;
	height: auto;
	max-width: min(96vw, 1200px);
	max-height: 80vh;
	object-fit: contain;
}

.wptm-home__dialogcap {
	padding: 12px 56px 14px 18px;
	text-align: start;
}

.wptm-home__dialognav {
	position: absolute;
	inset-block-start: 50%;
	inset-inline: 10px;
	transform: translateY(-50%);
	display: flex;
	justify-content: space-between;
	pointer-events: none;
}

.wptm-home__dialognav .wptm-home__sliderbtn {
	pointer-events: auto;
	width: 42px;
	height: 42px;
	background: rgba(0, 0, 0, .45);
	border-color: rgba(255, 255, 255, .25);
	color: #fff;
}

.wptm-home__dialognav .wptm-home__sliderbtn:hover {
	background: var(--wptm-accent);
	border-color: var(--wptm-accent);
}

.wptm-home__dialogbox--photo .wptm-home__dialogclose {
	background: rgba(0, 0, 0, .55);
}

@media (max-width: 640px) {
	.wptm-home__dialogimg {
		max-height: 72vh;
	}

	.wptm-home__dialogcap {
		padding: 10px 14px 12px;
		font-size: .85rem;
	}
}

/* --- Preview bar -------------------------------------------------------- */
.wptm-home__previewbar {
	position: sticky;
	top: 0;
	z-index: 1000;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px 18px;
	padding: 10px 16px;
	background: #1d2327;
	color: #fff;
	font-size: 13px;
}

.wptm-home__previewbar a {
	color: #f5c46a;
	font-weight: 700;
}

/* --- Another pass ------------------------------------------------------- */

/* A destination's own line, revealed under its name on hover or focus;
   on touch it is simply there. */
.wptm-home__tilenote {
	display: block;
	max-height: 0;
	overflow: hidden;
	margin: 0;
	font-size: .84rem;
	line-height: 1.5;
	color: rgba(255, 255, 255, .85);
	opacity: 0;
	transition: max-height .35s ease, opacity .35s ease, margin .35s ease;
}

.wptm-home__tile a:hover .wptm-home__tilenote,
.wptm-home__tile a:focus-visible .wptm-home__tilenote {
	max-height: 4.6em;
	margin: 6px 0 4px;
	opacity: 1;
}

@media (pointer: coarse) {
	.wptm-home__tilenote {
		max-height: 4.6em;
		margin: 6px 0 4px;
		opacity: 1;
	}
}

.wptm-home__tilecopy {
	gap: 8px;
}

/* The signature's three points, as a short tick list. */
.wptm-home__sigpoints {
	display: grid;
	gap: 8px;
	margin: 0 0 18px;
	padding: 0;
	list-style: none;
}

.wptm-home__sigpoints li {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: .98rem;
	line-height: 1.4;
}

.wptm-home__sigcheck {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--wptm-accent) 14%, transparent);
	color: var(--wptm-accent-dark, var(--wptm-accent));
	line-height: 0;
}

/* The reviews' average, beside the heading. */
.wptm-home__avg {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin: 12px 0 0;
	padding: 8px 14px;
	border: 1px solid var(--home-line);
	border-radius: 999px;
	background: #fff;
}

.wptm-home__avgnum {
	font-size: 1.15rem;
	font-weight: 800;
	line-height: 1;
}

.wptm-home__avg .wptm-home__stars {
	margin: 0;
	gap: 1px;
}

.wptm-home__avgnote {
	font-size: .82rem;
	color: var(--home-muted);
}

/* A guide's category as a small label above its date. */
.wptm-home__guidecat {
	display: inline-block;
	margin-bottom: 8px;
	padding: 4px 10px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--wptm-accent) 12%, transparent);
	color: var(--wptm-accent-dark, var(--wptm-accent));
	font-size: .74rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.wptm-home__guidecat + .wptm-home__guidedate {
	margin-left: 8px;
	display: inline-block;
}

/* Section titles carry a hair of tracking and a firmer weight, and the
   eyebrow rule matches the accent exactly. */
.wptm-home__title {
	font-weight: 800;
}

/* Cards in the featured grid keep a quiet lift on hover, in step with the
   tiles and the guides. */
.wptm-home__section--featured .wptm-card {
	transition: transform .25s ease;
}

.wptm-home__section--featured .wptm-card:hover {
	transform: translateY(-4px);
}

@media (prefers-reduced-motion: reduce) {
	.wptm-home__tilenote,
	.wptm-home__section--featured .wptm-card {
		transition: none;
	}

	.wptm-home__section--featured .wptm-card:hover {
		transform: none;
	}
}

/* --- Team --------------------------------------------------------------- */
.wptm-home__team {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 22px;
}

.wptm-home__team--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	max-width: 640px;
}

.wptm-home__team--3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.wptm-home__memberinner {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	color: inherit;
	text-decoration: none;
}

.wptm-home__memberphoto {
	display: block;
	width: min(100%, 220px);
	aspect-ratio: 1;
	border-radius: 50%;
	overflow: hidden;
	background: color-mix(in srgb, var(--wptm-accent) 10%, #fff);
	box-shadow: 0 0 0 4px #fff, 0 0 0 5px var(--home-line);
	transition: transform .35s ease, box-shadow .35s ease;
}

.wptm-home__memberinner:hover .wptm-home__memberphoto {
	transform: translateY(-4px);
	box-shadow: 0 0 0 4px #fff, 0 0 0 6px var(--wptm-accent), 0 18px 34px -16px rgba(0, 0, 0, .35);
}

.wptm-home__memberphoto img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.wptm-home__memberphoto--none {
	display: grid;
	place-items: center;
}

.wptm-home__memberinitial {
	font-size: 2.4rem;
	font-weight: 800;
	color: var(--wptm-accent-dark, var(--wptm-accent));
}

.wptm-home__membercopy {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding-top: 16px;
}

.wptm-home__membername {
	font-size: 1.08rem;
	font-weight: 700;
	line-height: 1.25;
}

.wptm-home__memberrole {
	font-size: .82rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--wptm-accent-dark, var(--wptm-accent));
}

.wptm-home__membernote {
	max-width: 30ch;
	margin: 4px auto 0;
	font-size: .9rem;
	line-height: 1.55;
	color: var(--home-muted);
}

a.wptm-home__memberinner:focus-visible {
	outline: 2px solid var(--wptm-accent);
	outline-offset: 6px;
	border-radius: 12px;
}

/* --- FAQ ---------------------------------------------------------------- */
.wptm-home__faqside {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 14px;
	max-width: 46ch;
}

.wptm-home__faqside .wptm-home__lead {
	margin: 0;
}

.wptm-home__faq {
	display: flex;
	gap: 16px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding: 4px 4px 14px;
	margin: 0 -4px;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

.wptm-home__faq::-webkit-scrollbar {
	display: none;
}

.wptm-home__faqcard {
	flex: 0 0 calc((100% - 48px) / 4);
	min-height: 320px;
	display: flex;
	flex-direction: column;
	border-radius: 22px;
	background: color-mix(in srgb, var(--wptm-accent) 5%, #f4f4f5);
	scroll-snap-align: start;
	transition: background-color .3s ease, color .3s ease, transform .3s ease;
}

.wptm-home__faqcard.is-open {
	flex-basis: calc((100% - 48px) / 4 + 80px);
	background: var(--wptm-accent);
	color: var(--wptm-on-accent, #fff);
	transform: translateY(-4px);
	box-shadow: 0 18px 38px -16px rgba(0, 0, 0, .35);
}

.wptm-home__faqtoggle {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	flex: 1 1 auto;
	width: 100%;
	padding: 26px 26px 22px;
	border: 0;
	background: none;
	color: inherit;
	font: inherit;
	text-align: start;
	cursor: pointer;
}

.wptm-home__faqtoggle:focus-visible {
	outline: 2px solid var(--wptm-accent);
	outline-offset: -8px;
	border-radius: 22px;
}

.wptm-home__faqcard.is-open .wptm-home__faqtoggle:focus-visible {
	outline-color: #fff;
}

.wptm-home__faqnum {
	font-size: .95rem;
	font-weight: 700;
	letter-spacing: .1em;
	color: var(--home-muted);
	margin-bottom: auto;
}

.wptm-home__faqcard.is-open .wptm-home__faqnum {
	color: rgba(255, 255, 255, .75);
}

.wptm-home__faqq {
	margin-top: 40px;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: -.01em;
	text-wrap: balance;
}

.wptm-home__faqcard.is-open .wptm-home__faqq {
	margin-top: 20px;
}

.wptm-home__faqa {
	padding: 0 26px 26px;
	font-size: .95rem;
	line-height: 1.65;
	color: rgba(255, 255, 255, .92);
}

.wptm-home__faqa p {
	margin: 0 0 .7em;
}

.wptm-home__faqa p:last-child {
	margin-bottom: 0;
}

/* Without the script every answer is shown, in a card that stays quiet. */
.wptm-home:not(.wptm-home--js) .wptm-home__faqa {
	color: var(--home-ink);
}

.wptm-home:not(.wptm-home--js) .wptm-home__faqcard {
	background: color-mix(in srgb, var(--wptm-accent) 5%, #f4f4f5);
	color: inherit;
	transform: none;
	box-shadow: none;
}

@media (max-width: 1000px) {
	.wptm-home__team {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.wptm-home__faqcard {
		flex-basis: calc((100% - 32px) / 3);
	}

	.wptm-home__faqcard.is-open {
		flex-basis: calc((100% - 32px) / 3 + 60px);
	}
}

@media (max-width: 640px) {
	.wptm-home__team,
	.wptm-home__team--2,
	.wptm-home__team--3 {
		display: flex;
		gap: 14px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		padding: 4px 4px 14px;
		margin: 0 -4px;
		scrollbar-width: none;
	}

	.wptm-home__team::-webkit-scrollbar {
		display: none;
	}

	.wptm-home__member {
		flex: 0 0 62%;
		scroll-snap-align: start;
	}

	.wptm-home__faqcard,
	.wptm-home__faqcard.is-open {
		flex-basis: 84%;
		min-height: 260px;
	}

	.wptm-home__faqq {
		margin-top: 28px;
		font-size: 1.05rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wptm-home__memberphoto,
	.wptm-home__faqcard {
		transition: none;
	}

	.wptm-home__memberinner:hover .wptm-home__memberphoto,
	.wptm-home__faqcard.is-open {
		transform: none;
	}
}
