/*
 * 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: #697382;
	--wptm-text: #1b1f24;
	--wptm-tint: rgba(184, 133, 58, .12);
	--home-wrap: 1180px;
	--home-pad: clamp(18px, 3vw, 32px);
	--wptm-density: 1;
	--home-gap: calc(clamp(48px, 7vw, 104px) * var(--wptm-density, 1));
	--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;

	/*
	 * The foundation shared with tokens.css and tour.css, word for word:
	 * the radius scale, the two shadows, the control heights, the eyebrow,
	 * one timing. And the two grounds the page's bands are built from — a
	 * warm paper mixed from the site colour, and one dark ink — so every
	 * band that changes the ground uses the same two.
	 */
	--wptm-radius-xs: 6px;
	--wptm-radius-sm: 8px;
	--wptm-radius-md: 10px;
	--wptm-radius-media: var(--home-radius);
	--wptm-radius-lg: 16px;
	--wptm-radius-pill: 999px;
	--wptm-shadow-1: 0 1px 2px rgba(15, 20, 28, .06), 0 10px 24px -20px rgba(15, 20, 28, .35);
	--wptm-shadow-2: 0 18px 40px -24px rgba(15, 20, 28, .5);
	--wptm-control-h: 48px;
	--wptm-control-h-lg: 52px;
	--wptm-fs-eyebrow: 12px;
	--wptm-tracking-eyebrow: .12em;
	--wptm-transition: .18s ease;
	--wptm-transition-slow: .35s ease;
	--home-cream: color-mix(in srgb, var(--wptm-accent) 5%, #fff);
	--home-dark: #171a20;
	--home-btn-radius: var(--wptm-radius-md);
	--wptm-card-navy: var(--home-ink);
	--wptm-card-accent: var(--wptm-accent);
	--wptm-card-ink: var(--home-muted);
	--wptm-card-muted: var(--home-muted);
	--wptm-card-faint: var(--wptm-faint);
	--wptm-card-line: var(--home-line);
	--wptm-card-radius: var(--home-radius);
	color: var(--home-ink);
	width: 100%;
	max-width: 100%;
}

/* 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;
		--home-cream: #faf7f2;
	}
}

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

/* The list reset carries the weight of one class (:where adds none), so a
   component's own class — a rail's breathing room for shadows and focus
   rings, the phone rails' edge-to-edge bleed, the signature list's space
   above its facts — is not silently cancelled by it. */
.wptm-home :where(ul, li) {
	list-style: none;
	margin: 0;
	padding: 0;
}

.wptm-home a {
	color: inherit;
}

.wptm-home__wrap {
	width: 100%;
	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: var(--wptm-fs-eyebrow);
	font-weight: 700;
	letter-spacing: var(--wptm-tracking-eyebrow);
	text-transform: uppercase;
	color: var(--wptm-accent-dark);
}

/* Arabic joins its letters: no tracking on an Arabic eyebrow. */
.wptm-home__eyebrow:lang(ar),
[dir="rtl"] .wptm-home__eyebrow {
	letter-spacing: normal;
}

.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;
	overflow-wrap: anywhere;
}

.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: 44px;
	padding: 0 18px;
	border: 1.5px solid var(--home-line);
	border-radius: var(--home-btn-radius);
	font-size: .9rem;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	transition: border-color var(--wptm-transition), background-color var(--wptm-transition), color var(--wptm-transition);
}

.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 ------------------------------------------------------------ */
/*
 * The button.
 *
 * Two changes from the plain rectangle it used to be, both about how a
 * control is actually read rather than about decoration.
 *
 * First, the box is set optically, not arithmetically: a little more room
 * at the sides than above and below, because a line of text sitting in a
 * box with equal padding all round looks cramped horizontally to the eye
 * even when the numbers say it is not. The 2px of extra inline padding is
 * the whole of it.
 *
 * Second, the button owns an edge. A flat fill of the accent laid on a
 * photograph, on the cream band and on the night band is three different
 * amounts of contrast, and on the lightest of them the button's boundary
 * dissolves. A hairline of the same hue, one step darker, drawn inside the
 * fill, keeps the shape legible on all three without adding a border box
 * that would change the control's height.
 */
.wptm-home__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: var(--wptm-control-h-lg);
	padding: 14px 28px;
	/* The tour page's button, so a reader who arrives from the homepage
	   meets the same control on the tour. One variable puts pills back. */
	border-radius: var(--home-btn-radius);
	font-size: .95rem;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: .004em;
	text-align: center;
	text-decoration: none;
	max-width: 100%;
	overflow-wrap: anywhere;
	transition: transform var(--wptm-transition), background-color var(--wptm-transition), border-color var(--wptm-transition), box-shadow var(--wptm-transition), color var(--wptm-transition);
}

/*
 * Named twice, for the same reason the spotlight link is: ".wptm-home a
 * { color: inherit }" is one class and one tag, and it was outranking this
 * one class — so the label on a filled button was taking the page's ink
 * instead of the colour chosen to sit on the accent. On the default gold
 * that merely looked wrong; on a site whose accent is a deep green or a
 * burgundy it was near-black text on a dark fill, and unreadable. The
 * button is a link, so `a.` is added and the rule outranks the reset.
 */
.wptm-home__btn--primary,
a.wptm-home__btn--primary {
	background: var(--wptm-accent);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .14);
	color: var(--wptm-on-accent, #fff);
}

/*
 * The lift is one pixel and the shadow underneath it is mixed from the
 * accent, not from grey. A grey shadow under a coloured button reads as
 * two materials; the same hue reads as the button's own weight.
 */
.wptm-home__btn--primary:hover,
a.wptm-home__btn--primary:hover {
	background: var(--wptm-accent-dark, var(--wptm-accent));
	transform: translateY(-1px);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .18), 0 12px 22px -16px rgba(0, 0, 0, .55);
	color: var(--wptm-on-accent, #fff);
}

@supports (color: color-mix(in srgb, red 50%, transparent)) {
	.wptm-home__btn--primary:hover {
		box-shadow:
			inset 0 0 0 1px rgba(0, 0, 0, .18),
			0 12px 22px -16px color-mix(in srgb, var(--wptm-accent) 75%, #000);
	}
}

/*
 * The outlined button's rule was 1.5px, which a screen at 1x resolves as
 * one solid pixel and one half-lit one — a line that looks slightly out of
 * focus beside the filled button next to it. A single crisp pixel held at
 * a little under full strength reads heavier than the blurred pair did,
 * and it firms up rather than thickens on hover.
 */
.wptm-home__btn--ghost {
	border: 1px solid currentColor;
	border-color: color-mix(in srgb, currentColor 74%, transparent);
	background: transparent;
}

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

/* A control that is being pressed goes down, not back to zero: the button
   answers the finger instead of simply cancelling its hover. */
.wptm-home__btn:active {
	transform: translateY(1px);
	transition-duration: .06s;
}

.wptm-home__btn--primary:active {
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .2), inset 0 2px 5px rgba(0, 0, 0, .18);
}

@media (prefers-reduced-motion: reduce) {
	.wptm-home__btn,
	.wptm-home__btn:hover,
	.wptm-home__btn:active {
		transition: none;
		transform: none;
	}
}

.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;
}

/* The same instruction, without :has().

   A browser that does not understand :has() throws the rule above away
   whole, and is then left with bands a full viewport wide and no clip — a
   sideways scrollbar on the homepage, which is the one place it is most
   visible. WordPress puts the template's own class on the body, so the
   guard can be stated a second way that every browser reads. Two rules
   saying the same thing is cheaper than one rule that some browsers drop. */
body.page-template-tripvance-home {
	overflow-x: clip;
}

/* And for a browser with neither: hidden does the same job here. It is only
   avoided in general because it breaks position: sticky, and on this page
   nothing under the body is sticky — the mobile bar is fixed. */
@supports not (overflow: clip) {

	body.page-template-tripvance-home {
		overflow-x: hidden;
	}
}

.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);
}

/* 2.20.0: the Homepage H1 carries herotext's class too, so every hero design
   colours it as it colours its line of text; it sits above the heading. */
.wptm-home__herotext.wptm-home__heroh1 {
	margin-block-end: 12px;
	font-weight: 600;
	line-height: 1.45;
}

.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);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.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;
}

/*
 * Keyboard focus rings the whole field rather than the bare select, whose
 * ring sat on top of the field's label. Browsers without :has() keep the
 * select's own ring above.
 */
.wptm-home__field:has(select:focus-visible) {
	outline: 2px solid var(--wptm-accent);
	outline-offset: -2px;
}

.wptm-home__field:has(select:focus-visible) select:focus-visible {
	outline: 0;
}

.wptm-home__search--bar .wptm-home__field:has(select:focus-visible) {
	border-radius: 12px;
}

/*
 * A finger needs a 44px target; the select is drawn 32px tall inside a
 * taller field. On touch screens it takes the full 44px and gives the
 * difference back as negative margin, so the field keeps its size.
 */
@media (pointer: coarse) {
	.wptm-home__field select {
		min-height: 44px;
		margin-block: -6px;
	}
}

.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;
}

/* Keep the glyph and its label on one optical baseline even when a theme
   applies its own global SVG or button line-height rules. */
.wptm-home__searchbtnicon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	margin: 0;
	line-height: 0;
}

.wptm-home__searchbtnicon .wptm-icon {
	display: block;
	width: 18px;
	height: 18px;
	margin: 0;
	vertical-align: middle;
}

.wptm-home__searchbtnlabel {
	display: block;
	line-height: 1.2;
}

[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;
}

/* --- Rows are as tall as their contents ---------------------------------- */

/*
 * The same rule the card grid carries, for the homepage's other lists.
 *
 * A grid with automatically sized rows stretches them to fill any height the
 * page hands it, and a theme that lays out its content column as a grid or as
 * a flex column with a minimum height -- the usual way of holding a footer at
 * the foot of a short page -- hands it one. Every tile, guide and card in the
 * row then grew, and the band of white that appeared inside them was read as
 * a broken section. Starting the rows changes nothing where there is no spare
 * height to take.
 */
.wptm-home__tiles,
.wptm-home__acts,
.wptm-home__guides,
.wptm-home__team,
.wptm-home__why,
.wptm-home__section .wptm-cards,
.wptm-ticket-list {
	align-content: start;
}

/* --- 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;
	padding: 18px;
}

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

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

/* --- 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;
}

/*
 * The article's photograph in a 16:9 frame, the shape article images are
 * uploaded in (1200x675), so the whole picture shows uncropped; the barest
 * corner, every one the same size whatever was uploaded (the file's own
 * height attribute used to win over the ratio and make a tall upload a tall
 * card), and a hover that barely moves it.
 */
.wptm-home__guides--cards .wptm-home__guideimg {
	height: auto;
	aspect-ratio: 16 / 9;
	border-radius: 4px;
	overflow: hidden;
}

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

.wptm-home__guides--cards .wptm-home__guide a:hover .wptm-home__guideimg {
	transform: scale(1.015);
	box-shadow: none;
}

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

/* Photograph, a line of metadata, the title: 18px then 10px between them. */
.wptm-home__guides--cards .wptm-home__guidecopy {
	padding: 14px 0 0;
}

.wptm-home__guides--cards .wptm-home__guidetitle {
	font-size: 1.1rem;
	line-height: 1.3;
	letter-spacing: -.01em;
}

.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);
}

/* The duration and the price, where the activity states them. */
.wptm-home__actmeta {
	display: block;
	margin-top: 8px;
	font-size: .84rem;
	line-height: 1.5;
	color: var(--home-muted);
}

.wptm-home__actmeta strong {
	font-weight: 700;
	color: inherit;
}

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

/* The date is written, not badged: lighter than the label beside it. */
.wptm-home__guides--cards .wptm-home__guidedate {
	margin-bottom: 10px;
	font-size: .76rem;
	font-weight: 600;
	letter-spacing: .08em;
	line-height: 1.4;
}

.wptm-home__guidesaction {
	display: flex;
	justify-content: center;
	margin-block-start: clamp(24px, 3vw, 36px);
}

.wptm-home__guidesall {
	gap: 10px;
}

.wptm-home__guidesallicon {
	display: inline-flex;
	transition: transform var(--wptm-transition);
}

.wptm-home__guidesall:hover .wptm-home__guidesallicon {
	transform: translateX(3px);
}

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

[dir="rtl"] .wptm-home__guidesall:hover .wptm-home__guidesallicon {
	transform: scaleX(-1) translateX(3px);
}

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

	.wptm-home__guidesall:hover .wptm-home__guidesallicon {
		transform: none;
	}

	[dir="rtl"] .wptm-home__guidesall:hover .wptm-home__guidesallicon {
		transform: scaleX(-1);
	}
}

/* --- Travel Guides: the shared media frame of the optional layouts -------
   Every layout other than Classic Article Cards wraps its picture in a
   frame that owns the size: the frame has an aspect ratio, and the picture
   fills it with object-fit. The picture is taken out of flow inside the
   frame, so its own height (a tall portrait, a huge upload) can never widen
   the card or stretch the row, and a missing picture shows the pattern in
   the same frame at the same size. The frame only exists in those layouts,
   and every selector below names those exact layouts, so Classic Article
   Cards is untouched. */
.wptm-home__section--guides :where(.wptm-home__guides--editorial, .wptm-home__guides--magazine_rail, .wptm-home__guides--panorama_rows, .wptm-home__guides--compact_grid, .wptm-home__guides--editorial_list, .wptm-home__guides--timeline, .wptm-home__guides--carousel) .wptm-home__guidemedia {
	position: relative;
	display: block;
	width: 100%;
	min-width: 0;
	min-height: 0;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: color-mix(in srgb, var(--wptm-accent) 11%, #e9e4da);
}

.wptm-home__section--guides :where(.wptm-home__guides--editorial, .wptm-home__guides--magazine_rail, .wptm-home__guides--panorama_rows, .wptm-home__guides--compact_grid, .wptm-home__guides--editorial_list, .wptm-home__guides--timeline, .wptm-home__guides--carousel) .wptm-home__guidemedia .wptm-home__guideimg,
.wptm-home__section--guides :where(.wptm-home__guides--editorial, .wptm-home__guides--magazine_rail, .wptm-home__guides--panorama_rows, .wptm-home__guides--compact_grid, .wptm-home__guides--editorial_list, .wptm-home__guides--timeline, .wptm-home__guides--carousel) .wptm-home__guidemedia .wptm-home__guidepattern {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	max-height: none;
	min-height: 0;
	margin: 0;
	aspect-ratio: auto;
	object-fit: cover;
	object-position: center;
	border-radius: 0;
	background: none;
	box-shadow: none;
}

.wptm-home__section--guides :where(.wptm-home__guides--editorial, .wptm-home__guides--magazine_rail, .wptm-home__guides--panorama_rows, .wptm-home__guides--compact_grid, .wptm-home__guides--editorial_list, .wptm-home__guides--timeline, .wptm-home__guides--carousel) .wptm-home__guidemedia .wptm-home__guidepattern {
	color: var(--wptm-accent);
}

/* The title of these layouts is a real heading; it takes the card's own
   type, not the theme's heading margins and sizes. */
.wptm-home__section--guides :where(.wptm-home__guides--editorial, .wptm-home__guides--magazine_rail, .wptm-home__guides--panorama_rows, .wptm-home__guides--compact_grid, .wptm-home__guides--editorial_list, .wptm-home__guides--timeline, .wptm-home__guides--carousel) h3.wptm-home__guidetitle {
	margin: 0;
	padding: 0;
	font-family: inherit;
	color: inherit;
}

.wptm-home__section--guides :where(.wptm-home__guides--editorial, .wptm-home__guides--magazine_rail, .wptm-home__guides--panorama_rows, .wptm-home__guides--compact_grid, .wptm-home__guides--editorial_list, .wptm-home__guides--timeline, .wptm-home__guides--carousel) .wptm-home__guidemeta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
	min-width: 0;
	margin-block-end: 10px;
}

.wptm-home__section--guides :where(.wptm-home__guides--editorial, .wptm-home__guides--magazine_rail, .wptm-home__guides--panorama_rows, .wptm-home__guides--compact_grid, .wptm-home__guides--editorial_list, .wptm-home__guides--timeline, .wptm-home__guides--carousel) .wptm-home__guidemeta .wptm-home__guidecat,
.wptm-home__section--guides :where(.wptm-home__guides--editorial, .wptm-home__guides--magazine_rail, .wptm-home__guides--panorama_rows, .wptm-home__guides--compact_grid, .wptm-home__guides--editorial_list, .wptm-home__guides--timeline, .wptm-home__guides--carousel) .wptm-home__guidemeta .wptm-home__guidedate,
.wptm-home__section--guides :where(.wptm-home__guides--editorial, .wptm-home__guides--magazine_rail, .wptm-home__guides--panorama_rows, .wptm-home__guides--compact_grid, .wptm-home__guides--editorial_list, .wptm-home__guides--timeline, .wptm-home__guides--carousel) .wptm-home__guidemeta .wptm-home__guidecat + .wptm-home__guidedate {
	display: inline-flex;
	align-items: center;
	margin: 0;
}

/* The classic card lifts its picture on hover; inside a frame that would
   open a strip along one edge, so these layouts zoom instead. */
.wptm-home__section--guides :where(.wptm-home__guides--editorial, .wptm-home__guides--magazine_rail, .wptm-home__guides--panorama_rows, .wptm-home__guides--compact_grid, .wptm-home__guides--editorial_list, .wptm-home__guides--timeline, .wptm-home__guides--carousel) .wptm-home__guidelink:hover .wptm-home__guideimg {
	transform: scale(1.035);
	box-shadow: none;
}

.wptm-home__section--guides :where(.wptm-home__guides--editorial, .wptm-home__guides--magazine_rail, .wptm-home__guides--panorama_rows, .wptm-home__guides--compact_grid, .wptm-home__guides--editorial_list, .wptm-home__guides--timeline, .wptm-home__guides--carousel) .wptm-home__guidelink:focus-visible {
	outline: 3px solid var(--wptm-accent);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce), (pointer: coarse) {
	.wptm-home__section--guides :where(.wptm-home__guides--editorial, .wptm-home__guides--magazine_rail, .wptm-home__guides--panorama_rows, .wptm-home__guides--compact_grid, .wptm-home__guides--editorial_list, .wptm-home__guides--timeline, .wptm-home__guides--carousel) .wptm-home__guidelink:hover .wptm-home__guideimg {
		transform: none;
	}
}

@supports not (color: color-mix(in srgb, red 50%, transparent)) {
	.wptm-home__section--guides :where(.wptm-home__guides--editorial, .wptm-home__guides--magazine_rail, .wptm-home__guides--panorama_rows, .wptm-home__guides--compact_grid, .wptm-home__guides--editorial_list, .wptm-home__guides--timeline, .wptm-home__guides--carousel) .wptm-home__guidemedia {
		background: #eee7dc;
	}
}

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

.wptm-home__trustinner {
	display: flex;
	align-items: center;
	gap: 14px;
	height: 100%;
	color: inherit;
	text-decoration: none;
	transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

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

.wptm-home__trusticon .wptm-icon {
	display: block;
	width: 20px;
	height: 20px;
	margin: 0;
}

.wptm-home__trustitem--stat .wptm-home__trusticon {
	border-color: rgba(28, 119, 103, .14);
	background: #edf8f5;
	color: #16715f;
}

.wptm-home__trustitem--licence .wptm-home__trusticon {
	border-color: rgba(32, 107, 69, .14);
	background: #edf7f0;
	color: #206b45;
}

.wptm-home__trustitem--rating .wptm-home__trusticon {
	border-color: rgba(181, 119, 14, .17);
	background: #fff7e7;
	color: #a96b07;
}

.wptm-home__trustitem--award .wptm-home__trusticon {
	border-color: rgba(115, 79, 155, .15);
	background: #f6f0fb;
	color: #724b98;
}

.wptm-home__trustitem--text .wptm-home__trusticon {
	border-color: rgba(38, 105, 154, .14);
	background: #eef6fb;
	color: #276c9d;
}

.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: 700;
	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(min(200px, 100%), 1fr));
	gap: 0;
	padding: 10px;
	overflow: hidden;
	border: 1px solid var(--home-line);
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 22px 54px -44px rgba(18, 33, 27, .55);
}

.wptm-home__trust--bar .wptm-home__trustitem {
	padding: 10px 18px;
	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;
}

/*
 * Four items on a tablet: two by two. The automatic columns fit three
 * across there, which left the fourth alone on a second row with a rule
 * hanging after the third. Other counts keep the automatic columns.
 */
@media (min-width: 641px) and (max-width: 900px) {
	.wptm-home__trust--bar .wptm-home__trust:has(> .wptm-home__trustitem:nth-child(4):last-child) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.wptm-home__trust--bar .wptm-home__trustitem:first-child:nth-last-child(4) ~ .wptm-home__trustitem:nth-child(2n) {
		border-inline-end: 0;
	}

	.wptm-home__trust--bar .wptm-home__trustitem:first-child:nth-last-child(4) ~ .wptm-home__trustitem:nth-child(n+3) {
		border-block-start: 1px solid var(--home-line);
	}
}

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

.wptm-home__trust--grid .wptm-home__trustinner {
	align-items: flex-start;
	flex-direction: column;
	gap: 14px;
	padding: 24px;
	border: 1px solid var(--home-line);
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 20px 44px -40px rgba(18, 33, 27, .58);
}

.wptm-home__trust--grid a.wptm-home__trustinner:hover,
.wptm-home__trust--grid a.wptm-home__trustinner:focus-visible {
	transform: translateY(-2px);
	border-color: color-mix(in srgb, var(--wptm-accent) 34%, var(--home-line));
	box-shadow: 0 24px 48px -36px rgba(18, 33, 27, .48);
}

/* certs: logos and licences, centred */
.wptm-home__trust--certs .wptm-home__trust {
	grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 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(min(180px, 100%), 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 {
	width: 42px;
	height: 42px;
	margin-block-end: 4px;
}

.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 {
	flex-direction: column;
	gap: 12px;
	margin-inline-end: 28px;
	border-block-end: 1px solid var(--home-line);
}

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

.wptm-home__whynum {
	top: 30px;
	inset-inline-end: 24px;
}

/* --- 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;
	/* One dark ink and one faint warmth in the corner: enough that the
	   band is not flat black, not so much that it reads as lighting. */
	background:
		radial-gradient(ellipse 55% 80% at 85% 100%, color-mix(in srgb, var(--wptm-accent) 22%, transparent), transparent 70%),
		var(--home-dark);
}

.wptm-home__section--cta::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 2px;
	background: var(--wptm-accent);
	opacity: .8;
}

@supports not (color: color-mix(in srgb, red 50%, transparent)) {
	.wptm-home__section--cta {
		background: var(--home-dark);
	}

	.wptm-home__section--ground-paper {
		background: #faf7f2;
		box-shadow: 0 0 0 100vmax #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));
	}

	/* 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: calc(44px * var(--wptm-density, 1));
	}

	.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);
		/* Snap to the page's gutter, not to the screen's edge. */
		scroll-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;
	/* The same 4px as the padding that gives the cards' shadows room, so a
	   snapped card lines up with the heading above it. */
	scroll-padding-inline: 4px;
	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-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);
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 7;
	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-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.wptm-home__downring {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 34px;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	backdrop-filter: none;
	opacity: .84;
	line-height: 0;
	transition: opacity .18s ease, transform .18s ease;
}

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

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

.wptm-home__down:hover .wptm-home__downring {
	background: transparent;
	opacity: 1;
	transform: translateY(1px);
}

.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 ------------------------------------------------------------ */
/* The two viewers are native dialogs. A dialog centres itself only through
   the browser's own rules (position: fixed, inset: 0, margin: auto), and a
   theme reset such as "* { margin: 0 }" or "dialog { position: absolute }"
   quietly removes them: the box then sits in the top corner of the page.
   So the placement is written out here, with enough weight to survive a
   reset, and a closed dialog is kept hidden however the theme styles the
   element. */
.wptm-home__dialog {
	position: fixed !important;
	inset: 0 !important;
	top: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	left: 0 !important;
	margin: auto !important;
	transform: none !important;
	box-sizing: border-box;
	z-index: 2147483000;
	width: min(92vw, 640px);
	max-width: calc(100vw - 16px);
	max-height: 90vh;
	height: fit-content;
	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:not([open]) {
	display: none !important;
}

.wptm-home__dialog[open] {
	display: block;
}

.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 {
	background: #0e1014;
	color: #fff;
}

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

.wptm-home__dialogbox--photo .wptm-home__dialogclose {
	color: #fff;
	z-index: 2;
}

.wptm-home__dialogimg {
	background: #0e1014;
}

.wptm-home__dialogcap {
	margin: 0;
	font-size: .92rem;
	color: rgba(255, 255, 255, .85);
}

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

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

/* --- 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 ------------------------------------------------------------- */
/*
 * Which sections sit on the warm paper is decided per page by
 * Home\section_grounds(): in the alternating rhythm white and paper take
 * turns among the sections that have no ground of their own, the fixed
 * rhythm gives the four people-and-places sections the paper as it always
 * did, and the minimal rhythm keeps everything white with a hairline
 * between sections. A ground reaches both edges of the window without
 * leaving the container — painted outward as a spread shadow and clipped
 * to the page's width, the way the video band does it — and the content
 * inside stays in the same wrap as every other section.
 */
.wptm-home__section--ground-paper,
.wptm-home__section--ground-dark {
	position: relative;
	padding-block: var(--home-gap);
	background: var(--home-cream);
	box-shadow: 0 0 0 100vmax var(--home-cream);
	clip-path: inset(0 -100vmax);
}

.wptm-home__section--ground-dark {
	background: var(--home-dark);
	box-shadow: 0 0 0 100vmax var(--home-dark);
	color: #fff;
}

/* A white section that ends on a band keeps its air before the edge. */
.wptm-home__section--ground-paper + .wptm-home__section,
.wptm-home__section--ground-dark + .wptm-home__section {
	padding-block-start: var(--home-gap);
}

/*
 * The alternating and minimal rhythms space every section on both sides,
 * half a gap each, so two white sections stand one gap apart and a band's
 * edge never touches the content before it. A band takes a little more
 * inside, so its content sits deeper in the colour than the edge sits
 * from the neighbour. Low specificity on purpose: a section with its own
 * measure (the platforms strip, the video band, the final call) keeps it.
 */
:where(.wptm-home--rhythm-alternate, .wptm-home--rhythm-minimal) .wptm-home__section {
	padding-block: calc(var(--home-gap) * .5);
}

:where(.wptm-home--rhythm-alternate) .wptm-home__section--ground-paper,
:where(.wptm-home--rhythm-alternate) .wptm-home__section--ground-dark,
:where(.wptm-home--rhythm-alternate) .wptm-home__section--ground-paper + .wptm-home__section,
:where(.wptm-home--rhythm-alternate) .wptm-home__section--ground-dark + .wptm-home__section {
	padding-block: calc(var(--home-gap) * .8);
}

:where(.wptm-home--rhythm-alternate) .wptm-home__section--ground-paper + .wptm-home__section:not(.wptm-home__section--ground-paper):not(.wptm-home__section--ground-dark),
:where(.wptm-home--rhythm-alternate) .wptm-home__section--ground-dark + .wptm-home__section:not(.wptm-home__section--ground-paper):not(.wptm-home__section--ground-dark) {
	padding-block: calc(var(--home-gap) * .6) calc(var(--home-gap) * .5);
}

:where(.wptm-home--rhythm-alternate, .wptm-home--rhythm-minimal) .wptm-home__section--cta {
	margin-block-start: calc(var(--home-gap) * .5);
}

:where(.wptm-home--rhythm-alternate, .wptm-home--rhythm-minimal) .wptm-home__section:last-child:not(.wptm-home__section--cta) {
	padding-block-end: var(--home-gap);
}

/* Minimal: a hairline between two white sections, inside the wrap. */
.wptm-home--rhythm-minimal .wptm-home__section + .wptm-home__section:not(.wptm-home__section--ground-dark):not(.wptm-home__section--cta):not(.wptm-home__section--platforms):not(.wptm-home__section--video) > .wptm-home__wrap {
	border-block-start: 1px solid var(--home-line);
	padding-block-start: calc(var(--home-gap) * .6);
}

/* The pieces that carry their own paper stand on white when the section
   around them is the paper, so a card never disappears into its ground. */
.wptm-home__section--ground-paper.wptm-home__section--signature {
	--sig-paper: #fff;
}

/* On a white section the card takes the page's paper colour instead, so it
   still reads as a card. */
.wptm-home__section--signature:not(.wptm-home__section--ground-paper) {
	--sig-paper: var(--home-cream, #faf7f2);
}

.wptm-home__section--ground-paper.wptm-home__section--featured-spotlight {
	--spot-paper: #fff;
}

.wptm-home__section--ground-paper.tripvance-display--journey-ticket {
	--ticket-ground: var(--home-cream);
}

.wptm-home__section--ground-paper .wptm-home__faqcard {
	background: #fff;
}

/* 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);
}

/*
 * The count on a destination tile.
 *
 * It was a translucent white pill with the photograph blurred behind it —
 * a treatment that looks the same on every site that uses it and, on a
 * pale sky or a sand dune, leaves white numerals on a near-white ground.
 * A small solid chip in the page's own ink, with the figure in the accent,
 * is legible over any photograph and belongs to this palette rather than
 * to a generic one.
 */
.wptm-home__tilecount {
	align-self: flex-start;
	padding: 5px 11px;
	border-radius: var(--wptm-radius-xs);
	background: rgba(18, 22, 30, .74);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .16);
	font-size: .76rem;
	font-weight: 700;
	letter-spacing: .01em;
	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;
	}

	.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 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. Only a section the script marked
   .is-reveal takes part — one that started below the first screen, marked
   before it was ever painted — so the hero and the first screen are never
   hidden after they appear. Nothing moves for a reader who asked for no
   motion, nothing is hidden when the script is absent, and a printed page
   shows everything. */
.wptm-home__section.is-reveal > .wptm-home__wrap {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity .6s ease, transform .6s ease;
}

.wptm-home__section.is-reveal.is-in > .wptm-home__wrap {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce), print {
	.wptm-home__section.is-reveal > .wptm-home__wrap {
		opacity: 1;
		transform: none;
		transition: none;
	}
}


/* --- Why choose us: editorial introduction and calm cards -------------- */
/* The heading anchors the section while each reason gets its own surface.
   Keeping the title and description in one copy block prevents long text or
   a translated title from colliding with the next item. */
.wptm-home__section--why {
	isolation: isolate;
	overflow: clip;
}

.wptm-home__whygrid {
	display: grid;
	grid-template-columns: minmax(250px, .78fr) minmax(0, 1.35fr);
	gap: clamp(42px, 7vw, 96px);
	align-items: center;
}

.wptm-home__head--why {
	position: relative;
	/* The heading and its short accent rule, one under the other at every
	   width: in a wrapping row the rule could land beside the title. */
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-start;
	margin: 0;
}

.wptm-home__head--why::after {
	content: "";
	display: block;
	width: 48px;
	height: 2px;
	margin-top: 28px;
	border-radius: 1px;
	background: var(--wptm-accent);
}

.wptm-home__head--why .wptm-home__title {
	max-width: 13ch;
	font-size: clamp(2rem, 3.5vw, 3rem);
	line-height: 1.08;
}

.wptm-home__why,
.wptm-home__why--2,
.wptm-home__why--3,
.wptm-home__why--4 {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 14px;
	border: 0;
	padding: 0;
	margin: 0;
	list-style: none;
}

.wptm-home__whyitem {
	position: relative;
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr) auto;
	column-gap: 18px;
	align-items: center;
	min-height: 112px;
	margin: 0;
	padding: 20px 22px;
	border: 1px solid color-mix(in srgb, var(--wptm-accent) 12%, var(--home-line));
	border-radius: 18px;
	background: rgba(255, 255, 255, .88);
	box-shadow: 0 16px 36px -34px rgba(27, 31, 36, .65);
	transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

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

.wptm-home__whyitem:hover {
	transform: translateY(-3px);
	border-color: color-mix(in srgb, var(--wptm-accent) 34%, var(--home-line));
	box-shadow: 0 22px 46px -34px rgba(27, 31, 36, .7);
}

.wptm-home__whymark {
	grid-column: 1;
	grid-row: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	margin: 0;
	border-radius: 17px;
	background: color-mix(in srgb, var(--wptm-accent) 11%, #fff);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--wptm-accent) 14%, transparent);
	color: var(--wptm-accent-dark, var(--wptm-accent));
	line-height: 0;
}

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

.wptm-home__whymark--image {
	width: 64px;
	height: 64px;
	border: 3px solid #fff;
	border-radius: 50%;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 8px 22px -14px rgba(27, 31, 36, .7);
}

.wptm-home__whynum {
	position: static;
	grid-column: 3;
	grid-row: 1;
	align-self: start;
	padding: 5px 8px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--wptm-accent) 8%, transparent);
	font-size: 10px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: .12em;
	color: var(--wptm-accent-dark, var(--wptm-accent));
	opacity: .78;
}

.wptm-home__whycopy {
	grid-column: 2;
	grid-row: 1;
	min-width: 0;
}

.wptm-home__whytitle {
	margin: 0;
	font-size: clamp(1.08rem, 1.5vw, 1.22rem);
	font-weight: 700;
	line-height: 1.28;
	letter-spacing: -.012em;
	text-wrap: balance;
}

.wptm-home__whytext {
	margin: 7px 0 0;
	max-width: 60ch;
	font-size: .96rem;
	line-height: 1.6;
	color: var(--home-muted);
	text-wrap: pretty;
}

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

	.wptm-home__head--why {
		max-width: 680px;
	}

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

@media (max-width: 640px) {
	.wptm-home__whygrid {
		gap: 24px;
	}

	.wptm-home__head--why::after {
		margin-top: 20px;
	}

	.wptm-home__whyitem {
		grid-template-columns: 50px minmax(0, 1fr);
		column-gap: 14px;
		min-height: 0;
		padding: 18px 16px;
		border-radius: 16px;
	}

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

	.wptm-home__whymark {
		width: 50px;
		height: 50px;
		border-radius: 14px;
	}

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

	.wptm-home__whymark--image {
		width: 50px;
		height: 50px;
		border-radius: 50%;
	}

	.wptm-home__whycopy {
		padding-inline-end: 28px;
	}

	.wptm-home__whynum {
		position: absolute;
		top: 17px;
		inset-inline-end: 16px;
	}

	.wptm-home__whytext {
		font-size: .92rem;
	}
}

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

	.wptm-home__whyitem:hover {
		transform: none;
	}
}

/* --- 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: 96vh;
}

.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 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: 700;
	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 beside 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;
}

/*
 * On the classic cards it is a printer's label: a small rectangle with a
 * hair of a corner, no taller than its line, on the same baseline as the
 * date that follows it.
 */
.wptm-home__guides--cards .wptm-home__guidecat {
	margin-bottom: 10px;
	padding: 3px 7px;
	border-radius: 3px;
	font-size: .7rem;
	line-height: 1.4;
	vertical-align: baseline;
}

.wptm-home__guidecat + .wptm-home__guidedate {
	/* Logical, so the gap is on the reading side. In Arabic a margin-left
	   here put the space between the category and the date on the wrong
	   side of the date and the two ran together. */
	margin-inline-start: 8px;
	display: inline-block;
}

.wptm-home__guides--cards .wptm-home__guidecat + .wptm-home__guidedate {
	margin-inline-start: 10px;
	vertical-align: baseline;
}

/*
 * Square photographs, shown whole.
 *
 * The library's tour photographs are uploaded at 800x800. The card's own box
 * is 4:3, and `object-fit: cover` fills it by trimming the top and the bottom
 * of the frame, which costs a quarter of every picture and cuts heads and
 * horizons off. The homepage grid therefore asks the card for a square box,
 * so a square file lands in it whole and nothing is thrown away.
 *
 * Only this grid changes. The archive, the hub, the landing and the activity
 * pages keep the 4:3 card, and the spotlight and ticket layouts keep their own
 * wide frames, because those two are built around a wide picture and a square
 * one would leave the column beside them short.
 */
.wptm-home__section--featured-cards .wptm-card__inner {
	--wptm-card-ratio: 1 / 1;
}

/* Below the card grid's own phone breakpoint the picture is still square: a
   16:10 letterbox here would bring the crop back on the width where the
   photograph is largest relative to the screen. */
@media (max-width: 640px) {
	.wptm-home__section--featured-cards .wptm-card__inner {
		--wptm-card-ratio: 1 / 1;
	}
}

/*
 * The lift on a featured card is the card's own, and only the card's.
 *
 * The list item carried a 4px rise of its own while the card inside it was
 * already rising 3px on the same hover, so a card on the homepage travelled
 * seven pixels where the same card on the archive travelled three, and the
 * two movements ran on different timings — one .25s ease, one .35s — which
 * is what made the homepage hover feel loose. The item now stays still and
 * card.css is left to do the moving, so a tour card behaves identically
 * wherever it is met.
 */
.wptm-home__section--featured .wptm-card {
	transition: none;
}

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

/* A tour without a picture gets the same warm ground on every homepage
   layout: the grid's card used the plugin's navy placeholder beside the
   spotlight's and the ticket's accent-tinted one, and the two did not
   read as the same site. Homepage only; the cards on the landing, hub
   and activity pages keep their own. */
.wptm-home__section--featured .wptm-card__media--empty {
	background: color-mix(in srgb, var(--wptm-accent) 12%, #e9e4da);
}

.wptm-home__section--featured .wptm-card__pattern,
.wptm-home__section--featured .wptm-card__blank {
	color: var(--wptm-accent);
}

.wptm-home__section--featured .wptm-card__blank {
	opacity: .6;
}

@supports not (color: color-mix(in srgb, red 50%, transparent)) {
	.wptm-home__section--featured .wptm-card__media--empty {
		background: #e9e4da;
	}
}

@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;
	}
}

@media (pointer: coarse) {
	.wptm-home__btn:hover,
	.wptm-home__tile a:hover,
	.wptm-home__act a:hover,
	.wptm-home__guide a:hover,
	.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;
	/* 2.5.1: every card takes the row's height, so an open card never
	   stands taller than its neighbours. */
	align-items: stretch;
	gap: 16px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: 4px;
	padding: 4px 4px 14px;
	margin: 0 -4px;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

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

.wptm-home__faqcard {
	/* One spacing set for every card, open or closed (2.5.1). */
	--faq-px: 28px;          /* side padding */
	--faq-pt: 22px;          /* top padding, where the number sits */
	--faq-num-gap: 14px;     /* number to question, open card */
	--faq-qa-gap: 22px;      /* question to answer, open card */
	--faq-pb: 24px;          /* bottom padding under the answer */
	--faq-q-bottom: 34px;    /* closed card: question to the card's foot */
	position: relative;
	flex: 0 0 calc((100% - 48px) / 4);
	min-width: 0;
	min-height: 288px;
	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 .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}

/* Opening a card changes its colour and lets its answer grow downwards;
   its width, and so every neighbour's place in the row, stays put. */
.wptm-home__faqcard.is-open {
	background: var(--wptm-accent);
	color: var(--wptm-on-accent, #fff);
	transform: translateY(-2px);
	box-shadow: 0 10px 24px -14px rgba(0, 0, 0, .22);
}

/* Closed cards answer the pointer and the keyboard, quietly. */
@media (hover: hover) {
	.wptm-home--js .wptm-home__faqcard:not(.is-open):hover {
		background: color-mix(in srgb, var(--wptm-accent) 9%, #f4f4f5);
		transform: translateY(-2px);
	}

	.wptm-home--js .wptm-home__section--ground-paper .wptm-home__faqcard:not(.is-open):hover {
		background: color-mix(in srgb, var(--wptm-accent) 5%, #fff);
	}
}

.wptm-home--js .wptm-home__faqcard:not(.is-open):focus-within {
	background: color-mix(in srgb, var(--wptm-accent) 9%, #f4f4f5);
}

.wptm-home--js .wptm-home__section--ground-paper .wptm-home__faqcard:not(.is-open):focus-within {
	background: color-mix(in srgb, var(--wptm-accent) 5%, #fff);
}

.wptm-home__faqtoggle {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	flex: 1 1 auto;
	width: 100%;
	padding: var(--faq-pt) var(--faq-px) var(--faq-qa-gap);
	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;
	line-height: 1.4;
	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 {
	max-width: 100%;
	margin-top: 40px;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: -.01em;
	text-wrap: balance;
	overflow-wrap: anywhere;
}

.wptm-home__faqcard.is-open .wptm-home__faqq {
	margin-top: var(--faq-num-gap);
}

.wptm-home__faqa {
	padding: 0 var(--faq-px) var(--faq-pb);
	font-size: .95rem;
	line-height: 1.5;
	color: rgba(255, 255, 255, .92);
	overflow-wrap: anywhere;
	/* A very long answer scrolls inside its card instead of stretching
	   the whole row; ordinary answers never reach this limit. */
	max-height: min(22rem, 60vh);
	max-height: min(22rem, 60svh);
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: thin;
	scrollbar-color: currentColor transparent;
}

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

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

/*
 * 2.5.1 — stable cards. A closed card keeps its answer in the layout,
 * invisible, above the question, so every card is always as tall as it is
 * when open: the row's height is the same whichever card is open, and
 * opening one moves nothing on the page. The number stays at the top, the
 * question at the bottom, and the whole card remains the button.
 */
.wptm-home__faqa[hidden] {
	display: block !important; /* Themes that force [hidden] { display: none !important }. */
	visibility: hidden;
}

.wptm-home__faqcard:not(.is-open) .wptm-home__faqa {
	order: -1;
}

.wptm-home__faqcard:not(.is-open) .wptm-home__faqtoggle {
	justify-content: flex-end;
	padding-bottom: var(--faq-q-bottom);
}

.wptm-home__faqcard:not(.is-open) .wptm-home__faqnum {
	position: absolute;
	top: var(--faq-pt);
	inset-inline-start: var(--faq-px);
	margin: 0;
}

/* The number's line and the gaps it replaces, less the question's lift, so
   a closed card is exactly as tall as the same card open. */
.wptm-home__faqcard:not(.is-open) .wptm-home__faqq {
	margin-top: calc(.95rem * 1.4 + var(--faq-num-gap) + var(--faq-qa-gap) - var(--faq-q-bottom));
}

.wptm-home__faqcard:not(.is-open) .wptm-home__faqtoggle::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	border-radius: 22px;
}

.wptm-home__faqcard:not(.is-open) .wptm-home__faqtoggle:focus-visible {
	outline: 0;
}

.wptm-home__faqcard:not(.is-open) .wptm-home__faqtoggle:focus-visible::after {
	outline: 2px solid var(--wptm-accent);
	outline-offset: -8px;
}

/* 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);
	}
}

@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;
		scroll-padding-inline: 4px;
		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 {
		--faq-px: 24px;
		--faq-pt: 22px;
		--faq-pb: 24px;
		--faq-q-bottom: 28px;
		flex-basis: 84%;
		min-height: 244px;
	}

	.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,
	.wptm-home__faqcard:hover {
		transform: none;
	}
}


/* ========================================================================
 * Homepage visual variants.
 *
 * These rules sit at the end deliberately. The original bar, destination
 * cards and editorial reasons remain the defaults; a modifier selected in
 * Tours > Homepage changes presentation only, never the data or URLs.
 * ===================================================================== */

/* --- Search 1: one balanced, segmented bar ----------------------------- */

.wptm-home__search--bar {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(172px, .72fr);
	align-items: stretch;
	width: 100%;
	max-width: 1080px;
	gap: 0;
	padding: 6px;
	border: 1px solid rgba(255, 255, 255, .7);
	border-radius: 20px;
	background: rgba(255, 255, 255, .97);
	box-shadow: 0 24px 60px rgba(0, 0, 0, .24), 0 1px 0 rgba(255, 255, 255, .85) inset;
}

.wptm-home__search--fields-1 {
	grid-template-columns: minmax(0, 1fr) minmax(172px, .72fr);
}

.wptm-home__search--fields-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr)) minmax(172px, .72fr);
}

.wptm-home__search--fields-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(172px, .72fr);
}

.wptm-home__search--bar .wptm-home__field {
	min-height: 76px;
	padding: 10px clamp(14px, 1.7vw, 20px);
	border-block-end: 0;
}

.wptm-home__search--bar .wptm-home__fieldicon {
	width: 24px;
	justify-content: center;
}

/* The field in use is marked as a whole, as on the other designs. */
.wptm-home__search--bar .wptm-home__field:focus-within {
	border-radius: 12px;
	background: color-mix(in srgb, var(--wptm-accent) 5%, #fff);
}

.wptm-home__search--bar .wptm-home__searchbtn {
	align-self: stretch;
	min-width: 0;
	min-height: 64px;
	height: auto;
	margin: 0;
	margin-inline-start: 6px;
	padding-inline: clamp(18px, 2vw, 28px);
	border-radius: 999px;
	box-shadow: 0 12px 28px -16px var(--wptm-accent);
	line-height: 1.2;
	text-align: center;
	white-space: normal;
}

.wptm-home__searchbtn svg {
	flex: 0 0 auto;
}

.wptm-home__searchbtnlabel {
	min-width: 0;
	overflow-wrap: anywhere;
}

/* --- Search 2: a framed panel with individual field cards -------------- */

.wptm-home__search--panel {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(172px, .72fr);
	align-items: stretch;
	width: 100%;
	max-width: 1080px;
	gap: 10px;
	padding: 12px;
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: 24px;
	background: rgba(13, 20, 28, .76);
	box-shadow: 0 26px 70px rgba(0, 0, 0, .3);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}

.wptm-home__search--panel.wptm-home__search--fields-1 {
	grid-template-columns: minmax(0, 1fr) minmax(172px, .72fr);
}

.wptm-home__search--panel.wptm-home__search--fields-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr)) minmax(172px, .72fr);
}

.wptm-home__search--panel.wptm-home__search--fields-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(172px, .72fr);
}

.wptm-home__search--panel .wptm-home__field {
	min-height: 78px;
	padding: 10px 14px;
	border: 1px solid rgba(255, 255, 255, .72);
	border-radius: 15px;
	background: rgba(255, 255, 255, .97);
	box-shadow: 0 10px 24px -22px rgba(0, 0, 0, .8);
}

.wptm-home__search--panel .wptm-home__field:focus-within {
	border-color: color-mix(in srgb, var(--wptm-accent) 72%, #fff);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--wptm-accent) 28%, transparent);
}

.wptm-home__search--panel .wptm-home__fieldicon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 11px;
	background: color-mix(in srgb, var(--wptm-accent) 12%, #fff);
}

.wptm-home__search--panel .wptm-home__searchbtn {
	align-self: stretch;
	min-width: 0;
	min-height: 78px;
	height: auto;
	margin: 0;
	padding-inline: clamp(18px, 2vw, 26px);
	border-radius: 15px;
	box-shadow: 0 14px 28px -17px var(--wptm-accent);
	line-height: 1.2;
	text-align: center;
	white-space: normal;
}

@supports not (backdrop-filter: blur(1px)) {
	.wptm-home__search--panel {
		background: rgba(13, 20, 28, .94);
	}
}

/* Keep optional hero actions as one visual family above either search. */
.wptm-home__heroctas {
	align-items: stretch;
}

.wptm-home__heroctas .wptm-home__btn {
	min-width: 148px;
	min-height: 50px;
	padding-inline: 22px;
}

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

	.wptm-home__search--bar .wptm-home__searchbtn,
	.wptm-home__search--panel .wptm-home__searchbtn {
		grid-column: 1 / -1;
		min-height: 58px;
		margin: 6px 0 0;
	}

	.wptm-home__search--fields-1 .wptm-home__field,
	.wptm-home__search--fields-3 .wptm-home__field:last-of-type {
		grid-column: 1 / -1;
		border-inline-end: 0;
	}
}

@media (max-width: 640px) {
	.wptm-home__search--bar,
	.wptm-home__search--panel,
	.wptm-home__search--panel.wptm-home__search--fields-1,
	.wptm-home__search--panel.wptm-home__search--fields-2,
	.wptm-home__search--panel.wptm-home__search--fields-3 {
		grid-template-columns: minmax(0, 1fr);
		gap: 8px;
		padding: 8px;
		border-radius: 18px;
	}

	.wptm-home__search--bar .wptm-home__field,
	.wptm-home__search--panel .wptm-home__field {
		grid-column: 1;
		min-height: 66px;
		padding: 9px 12px;
		border: 0;
		border-block-end: 1px solid var(--home-line);
		border-radius: 10px;
	}

	/* Floating Stories keeps its corners on a phone too. */
	.wptm-home__hero--style-floating .wptm-home__search--bar {
		border-radius: 6px;
	}

	.wptm-home__hero--style-floating .wptm-home__search--bar .wptm-home__field {
		border-radius: 4px;
	}

	.wptm-home__search--panel .wptm-home__field {
		border: 1px solid rgba(255, 255, 255, .7);
	}

	.wptm-home__search--bar .wptm-home__searchbtn,
	.wptm-home__search--panel .wptm-home__searchbtn {
		grid-column: 1;
		min-height: 56px;
		margin: 0;
	}

	.wptm-home__heroctas .wptm-home__btn {
		min-width: 0;
	}
}

/* --- Search 3: Quick Search, one calm keyword field -------------------- */

.wptm-home__search--quick {
	display: grid;
	grid-template-columns: minmax(0, 1fr) clamp(76px, 9vw, 108px);
	align-items: stretch;
	width: 100%;
	max-width: 920px;
	min-height: 82px;
	padding: 5px;
	border: 1px solid rgba(255, 255, 255, .8);
	border-radius: 999px;
	background: rgba(255, 255, 255, .97);
	box-shadow: 0 25px 64px rgba(0, 0, 0, .26), 0 1px 0 #fff inset;
	color: var(--home-ink);
}

.wptm-home__keyword {
	display: flex;
	align-items: center;
	gap: clamp(12px, 2vw, 20px);
	min-width: 0;
	padding-inline: clamp(18px, 3vw, 30px) 12px;
}

.wptm-home__keywordicon {
	display: inline-flex;
	flex: 0 0 auto;
	color: color-mix(in srgb, var(--home-ink) 48%, transparent);
}

.wptm-home__keyword input {
	width: 100%;
	min-width: 0;
	min-height: 66px;
	padding: 0;
	border: 0;
	outline: 0;
	background: transparent;
	box-shadow: none;
	font: inherit;
	font-size: clamp(1rem, 1.6vw, 1.25rem);
	font-weight: 500;
	color: var(--home-ink);
	appearance: none;
}

.wptm-home__keyword input::-webkit-search-cancel-button {
	margin-inline-start: 8px;
}

.wptm-home__keyword input::placeholder {
	color: color-mix(in srgb, var(--home-ink) 48%, transparent);
	opacity: 1;
}

.wptm-home__search--quick:focus-within {
	box-shadow: 0 25px 64px rgba(0, 0, 0, .26), 0 0 0 3px color-mix(in srgb, var(--wptm-accent) 46%, transparent);
}

.wptm-home__search--quick .wptm-home__searchbtn {
	width: 100%;
	min-width: 0;
	min-height: 70px;
	margin: 0;
	padding: 0;
	border-radius: 999px;
	box-shadow: 0 14px 28px -15px var(--wptm-accent);
}

/* The round button matches the reference while retaining an accessible name. */
.wptm-home__search--quick .wptm-home__searchbtnlabel {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.wptm-home__search--quick .wptm-home__searchbtn svg {
	width: 25px;
	height: 25px;
}

/* --- Search 4: Adventure Finder, a complete guided panel --------------- */

.wptm-home__searchstage {
	width: 100%;
	max-width: var(--home-wrap);
	margin-inline: 0;
	color: var(--home-ink);
}

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

.wptm-home__searchstage--adventure {
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, .76);
	border-radius: 28px;
	background: rgba(255, 255, 255, .98);
	box-shadow: 0 30px 80px rgba(0, 0, 0, .3), 0 1px 0 #fff inset;
}

.wptm-home__searchintro {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: clamp(24px, 3vw, 34px) clamp(24px, 3.2vw, 38px) 12px;
	text-align: start;
}

.wptm-home__searchtitle {
	margin: 0;
	font-size: clamp(1.65rem, 3vw, 2.35rem);
	font-weight: 600;
	line-height: 1.08;
	letter-spacing: -.025em;
	color: color-mix(in srgb, var(--home-ink) 88%, var(--wptm-accent));
	text-wrap: balance;
}

.wptm-home__searchtext {
	margin: 8px 0 0;
	font-size: clamp(.92rem, 1.35vw, 1.05rem);
	line-height: 1.55;
	color: var(--home-muted);
	text-wrap: pretty;
}

.wptm-home__searchbrand {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	max-width: 28ch;
	font-size: 1.02rem;
	font-weight: 600;
	font-style: italic;
	line-height: 1.2;
	color: var(--home-ink);
	text-align: start;
}

.wptm-home__searchbrandicon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 48px;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--wptm-accent) 13%, #fff);
	color: var(--wptm-accent-dark, var(--wptm-accent));
}

.wptm-home__search--adventure {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(170px, .72fr);
	align-items: stretch;
	width: 100%;
	max-width: none;
	gap: 12px;
	padding: 22px clamp(24px, 3.2vw, 38px) 30px;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

.wptm-home__search--adventure.wptm-home__search--fields-1 {
	grid-template-columns: minmax(0, 1fr) minmax(170px, .72fr);
}

.wptm-home__search--adventure.wptm-home__search--fields-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr)) minmax(170px, .72fr);
}

.wptm-home__search--adventure.wptm-home__search--fields-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(170px, .72fr);
}

.wptm-home__search--adventure .wptm-home__field {
	min-height: 82px;
	padding: 11px 14px;
	border: 1px solid rgba(27, 31, 36, .12);
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 8px 24px -24px rgba(0, 0, 0, .8);
}

.wptm-home__search--adventure .wptm-home__field:focus-within {
	border-color: color-mix(in srgb, var(--wptm-accent) 72%, #fff);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--wptm-accent) 12%, transparent);
}

.wptm-home__search--adventure .wptm-home__fieldicon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 38px;
	width: 38px;
	height: 38px;
	border-radius: 12px;
	background: color-mix(in srgb, var(--wptm-accent) 10%, #fff);
	color: var(--wptm-accent-dark, var(--wptm-accent));
}

.wptm-home__search--adventure .wptm-home__searchbtn {
	min-width: 0;
	min-height: 82px;
	margin: 0;
	padding-inline: clamp(18px, 2vw, 28px);
	border-radius: 14px;
	box-shadow: 0 16px 30px -18px var(--wptm-accent);
	white-space: normal;
}

.wptm-home__searchproof {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 14px 28px;
	padding: 22px clamp(24px, 3.2vw, 38px) 26px;
	border-block-start: 1px solid rgba(27, 31, 36, .08);
	background: color-mix(in srgb, var(--wptm-accent) 3.5%, #fff);
}

.wptm-home .wptm-home__searchproofitem {
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
}

.wptm-home__searchprooficon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 42px;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 8px 22px -18px rgba(0, 0, 0, .7);
	color: var(--wptm-accent-dark, var(--wptm-accent));
}

.wptm-home__searchproofcopy {
	display: flex;
	min-width: 0;
	flex-direction: column;
	text-align: start;
}

.wptm-home__searchproofcopy strong,
.wptm-home__searchproofcopy small {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.wptm-home__searchproofcopy strong {
	font-size: .9rem;
	line-height: 1.35;
	color: var(--home-ink);
}

.wptm-home__searchproofcopy small {
	margin-block-start: 2px;
	font-size: .8rem;
	line-height: 1.35;
	color: var(--home-muted);
}

/* --- Search 5: Signature Search, a raised luxury mode rail ------------ */

.wptm-home__searchstage--signature {
	display: flex;
	flex-direction: column;
	max-width: 1120px;
}

.wptm-home__searchmodes {
	display: flex;
	align-items: center;
	align-self: center;
	gap: 6px;
	max-width: calc(100% - 48px);
	padding: 8px 10px 10px;
	overflow-x: auto;
	border: 1px solid rgba(255, 255, 255, .82);
	border-block-end: 0;
	border-radius: 28px 28px 0 0;
	background: rgba(255, 255, 255, .98);
	box-shadow: 0 -12px 36px rgba(0, 0, 0, .12);
	scrollbar-width: none;
}

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

.wptm-home__searchmode {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	gap: 7px;
	min-height: 40px;
	padding-inline: 14px;
	border: 1px solid transparent;
	border-radius: 999px;
	font-size: .82rem;
	font-weight: 650;
	line-height: 1;
	color: var(--home-muted);
	text-decoration: none;
}

a.wptm-home__searchmode:hover,
a.wptm-home__searchmode:focus-visible,
.wptm-home__searchmode.is-current {
	border-color: color-mix(in srgb, var(--wptm-accent) 18%, transparent);
	background: color-mix(in srgb, var(--wptm-accent) 11%, #fff);
	color: var(--wptm-accent-dark, var(--wptm-accent));
}

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

.wptm-home__search--signature {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(172px, .76fr);
	align-items: stretch;
	width: 100%;
	max-width: none;
	gap: 0;
	padding: 9px;
	border: 1px solid rgba(255, 255, 255, .84);
	border-radius: 30px;
	background: rgba(255, 255, 255, .98);
	box-shadow: 0 30px 78px rgba(0, 0, 0, .31), 0 1px 0 #fff inset;
}

.wptm-home__search--signature.wptm-home__search--fields-1 {
	grid-template-columns: minmax(0, 1fr) minmax(172px, .76fr);
}

.wptm-home__search--signature.wptm-home__search--fields-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr)) minmax(172px, .76fr);
}

.wptm-home__search--signature.wptm-home__search--fields-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(172px, .76fr);
}

.wptm-home__search--signature .wptm-home__field {
	min-height: 78px;
	padding: 10px clamp(13px, 1.6vw, 19px);
	border: 0;
	border-inline-end: 1px solid rgba(27, 31, 36, .1);
	background: transparent;
}

.wptm-home__search--signature .wptm-home__field:focus-within {
	border-radius: 14px;
	background: color-mix(in srgb, var(--wptm-accent) 5%, #fff);
}

.wptm-home__search--signature .wptm-home__fieldicon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 34px;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--wptm-accent) 10%, #fff);
	color: var(--wptm-accent-dark, var(--wptm-accent));
}

.wptm-home__search--signature .wptm-home__searchbtn {
	min-width: 0;
	min-height: 70px;
	margin: 0;
	margin-inline-start: 8px;
	padding-inline: clamp(17px, 2vw, 25px);
	border-radius: 999px;
	box-shadow: 0 16px 32px -18px var(--wptm-accent);
	white-space: normal;
}

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

@supports not (color: color-mix(in srgb, red 50%, transparent)) {
	.wptm-home__keywordicon,
	.wptm-home__keyword input::placeholder {
		color: #777f89;
	}

	.wptm-home__searchtitle {
		color: #25282d;
	}

	.wptm-home__search--adventure .wptm-home__fieldicon,
	.wptm-home__search--signature .wptm-home__fieldicon,
	.wptm-home__searchmode.is-current {
		background: #f7f1e8;
	}

	.wptm-home__searchproof {
		background: #fcfaf7;
	}
}

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

	.wptm-home__search--adventure .wptm-home__searchbtn,
	.wptm-home__search--signature .wptm-home__searchbtn {
		grid-column: 1 / -1;
		min-height: 58px;
		margin: 4px 0 0;
	}

	.wptm-home__search--adventure.wptm-home__search--fields-1 .wptm-home__field,
	.wptm-home__search--adventure.wptm-home__search--fields-3 .wptm-home__field:last-of-type,
	.wptm-home__search--signature.wptm-home__search--fields-1 .wptm-home__field,
	.wptm-home__search--signature.wptm-home__search--fields-3 .wptm-home__field:last-of-type {
		grid-column: 1 / -1;
	}
}

@media (max-width: 640px) {
	.wptm-home__search--quick {
		grid-template-columns: minmax(0, 1fr) 64px;
		min-height: 66px;
		padding: 4px;
		border-radius: 999px;
	}

	.wptm-home__keyword {
		gap: 10px;
		padding-inline: 15px 8px;
	}

	.wptm-home__keywordicon svg {
		width: 20px;
		height: 20px;
	}

	.wptm-home__keyword input {
		min-height: 56px;
		font-size: 16px;
	}

	.wptm-home__search--quick .wptm-home__searchbtn {
		min-height: 56px;
	}

	.wptm-home__searchstage--adventure {
		border-radius: 22px;
	}

	.wptm-home__searchintro {
		flex-direction: column;
		align-items: flex-start;
		padding: 22px 18px 8px;
	}

	.wptm-home__searchbrand {
		max-width: 100%;
		font-size: .86rem;
	}

	.wptm-home__searchbrandicon {
		flex-basis: 38px;
		width: 38px;
		height: 38px;
	}

	.wptm-home__search--adventure,
	.wptm-home__search--adventure.wptm-home__search--fields-1,
	.wptm-home__search--adventure.wptm-home__search--fields-2,
	.wptm-home__search--adventure.wptm-home__search--fields-3,
	.wptm-home__search--signature,
	.wptm-home__search--signature.wptm-home__search--fields-1,
	.wptm-home__search--signature.wptm-home__search--fields-2,
	.wptm-home__search--signature.wptm-home__search--fields-3 {
		grid-template-columns: minmax(0, 1fr);
	}

	.wptm-home__search--adventure {
		gap: 8px;
		padding: 14px 14px 20px;
	}

	.wptm-home__search--adventure .wptm-home__field,
	.wptm-home__search--signature .wptm-home__field {
		grid-column: 1;
		min-height: 68px;
		padding: 9px 12px;
	}

	.wptm-home__search--adventure .wptm-home__searchbtn,
	.wptm-home__search--signature .wptm-home__searchbtn {
		grid-column: 1;
		min-height: 56px;
		margin: 0;
	}

	.wptm-home__searchproof {
		grid-template-columns: minmax(0, 1fr);
		padding: 18px;
	}

	.wptm-home__searchstage--signature {
		max-width: 100%;
	}

	.wptm-home__searchmodes {
		align-self: stretch;
		max-width: calc(100% - 24px);
		margin-inline: 12px;
		justify-content: flex-start;
		border-radius: 20px 20px 0 0;
	}

	.wptm-home__searchmode {
		min-height: 38px;
		padding-inline: 12px;
	}

	.wptm-home__search--signature {
		gap: 8px;
		padding: 8px;
		border-radius: 22px;
	}

	.wptm-home__search--signature .wptm-home__field {
		border: 1px solid rgba(27, 31, 36, .1);
		border-radius: 13px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wptm-home__searchmode,
	.wptm-home__search--quick,
	.wptm-home__search--adventure .wptm-home__field,
	.wptm-home__search--signature .wptm-home__field {
		transition: none;
	}
}


/* --- Destinations 2: circular portraits ------------------------------- */

.wptm-home__tiles--destinations.wptm-home__tiles--style-circles {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(22px, 3vw, 38px) clamp(16px, 2.4vw, 30px);
	align-items: start;
}

.wptm-home__tiles--style-circles .wptm-home__tile a {
	width: min(100%, 220px);
	margin-inline: auto;
	aspect-ratio: 1;
	border: 6px solid rgba(255, 255, 255, .9);
	border-radius: 50%;
	box-shadow: 0 14px 38px -24px rgba(15, 20, 28, .62), 0 0 0 1px var(--home-line);
}

.wptm-home__tiles--style-circles .wptm-home__tile a::after {
	background: linear-gradient(180deg, rgba(0, 0, 0, 0) 34%, rgba(8, 12, 18, .8) 100%);
}

.wptm-home__tiles--style-circles .wptm-home__tilecopy {
	align-items: center;
	padding: 28px 18px 22px;
	text-align: center;
}

.wptm-home__tiles--style-circles .wptm-home__tilename {
	font-size: clamp(1rem, 1.6vw, 1.25rem);
}

.wptm-home__tiles--style-circles .wptm-home__tilenote {
	display: none;
}

.wptm-home__tiles--style-circles .wptm-home__tilecount {
	align-self: center;
	padding: 3px 9px;
	font-size: .72rem;
}

.wptm-home__tiles--style-circles .wptm-home__tile:nth-child(even) {
	padding-block-start: clamp(12px, 2vw, 24px);
}

@media (max-width: 900px) {
	.wptm-home__tiles--destinations.wptm-home__tiles--style-circles {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.wptm-home__tiles--destinations.wptm-home__tiles--style-circles {
		display: flex;
		gap: 16px;
		overflow-x: auto;
		padding-block: 4px 16px;
		scroll-snap-type: x mandatory;
	}

	.wptm-home__tiles--style-circles .wptm-home__tile,
	.wptm-home__tiles--style-circles .wptm-home__tile:nth-child(even) {
		flex: 0 0 min(62vw, 220px);
		padding-block-start: 0;
		scroll-snap-align: center;
	}
}


/* --- Destinations 3: geometric editorial tiles ------------------------ */

.wptm-home__tiles--destinations.wptm-home__tiles--style-mosaic {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(230px, 100%), 1fr));
	gap: clamp(14px, 2vw, 22px);
}

.wptm-home__tiles--style-mosaic .wptm-home__tile a {
	aspect-ratio: 4 / 3;
	border-radius: 24px 5px 24px 5px;
	box-shadow: 0 16px 34px -28px rgba(15, 20, 28, .72);
	clip-path: polygon(0 0, calc(100% - 28px) 0, 100% 28px, 100% 100%, 28px 100%, 0 calc(100% - 28px));
}

.wptm-home__tiles--style-mosaic .wptm-home__tile:nth-child(even) a {
	border-radius: 5px 24px 5px 24px;
	clip-path: polygon(28px 0, 100% 0, 100% calc(100% - 28px), calc(100% - 28px) 100%, 0 100%, 0 28px);
}

.wptm-home__tiles--style-mosaic .wptm-home__tile:nth-child(5n + 1) a {
	aspect-ratio: 16 / 11;
}

.wptm-home__tiles--style-mosaic .wptm-home__tilecopy {
	padding: 24px 22px 20px;
}

.wptm-home__tiles--style-mosaic .wptm-home__tilenote {
	-webkit-line-clamp: 2;
	line-clamp: 2;
}

.wptm-home__tiles--style-mosaic .wptm-home__tile a:focus-visible {
	outline: 0;
	box-shadow: inset 0 0 0 4px #fff, inset 0 0 0 7px var(--wptm-accent);
}

@media (max-width: 640px) {
	.wptm-home__tiles--destinations.wptm-home__tiles--style-mosaic {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		gap: 12px;
		overflow: visible;
		margin-inline: 0;
		padding: 0;
	}

	.wptm-home__tiles--style-mosaic .wptm-home__tile {
		flex: none;
	}

	.wptm-home__tiles--style-mosaic .wptm-home__tile a,
	.wptm-home__tiles--style-mosaic .wptm-home__tile:nth-child(5n + 1) a {
		aspect-ratio: 16 / 10;
	}
}


/* --- Why choose us 2: dark feature band ------------------------------- */

.wptm-home__section--why-band {
	background:
		radial-gradient(circle at 12% 10%, color-mix(in srgb, var(--wptm-accent) 18%, transparent), transparent 34%),
		var(--home-dark);
	color: #fff;
}

.wptm-home__section--why-band .wptm-home__whygrid {
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(28px, 4vw, 46px);
}

.wptm-home__section--why-band .wptm-home__head--why {
	align-items: center;
	max-width: 760px;
	margin-inline: auto;
	text-align: center;
}

.wptm-home__section--why-band .wptm-home__head--why .wptm-home__eyebrow {
	justify-content: center;
	color: color-mix(in srgb, var(--wptm-accent) 62%, #fff);
}

.wptm-home__section--why-band .wptm-home__head--why .wptm-home__title {
	max-width: 20ch;
	margin-inline: auto;
	color: #fff;
}

.wptm-home__section--why-band .wptm-home__head--why::after {
	width: 48px;
	margin-inline: auto;
	background: var(--wptm-accent);
}

.wptm-home__section--why-band .wptm-home__why--style-band {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(245px, 100%), 1fr));
	gap: 14px;
}

.wptm-home__section--why-band .wptm-home__whyitem {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-height: 230px;
	margin: 0;
	padding: 24px;
	border: 1px solid rgba(255, 255, 255, .12);
	border-radius: 20px;
	background: rgba(255, 255, 255, .055);
	box-shadow: none;
	-webkit-backdrop-filter: blur(5px);
	backdrop-filter: blur(5px);
}

.wptm-home__section--why-band .wptm-home__whyitem:hover {
	border-color: color-mix(in srgb, var(--wptm-accent) 62%, transparent);
	background: rgba(255, 255, 255, .085);
	box-shadow: 0 22px 42px -32px rgba(0, 0, 0, .8);
}

.wptm-home__section--why-band .wptm-home__whymark {
	position: static;
	display: inline-flex;
	width: 54px;
	height: 54px;
	margin: 0 0 24px;
	border: 1px solid color-mix(in srgb, var(--wptm-accent) 34%, transparent);
	border-radius: 16px;
	background: color-mix(in srgb, var(--wptm-accent) 18%, transparent);
	box-shadow: none;
	color: color-mix(in srgb, var(--wptm-accent) 64%, #fff);
}

.wptm-home__section--why-band .wptm-home__whymark--image {
	border: 2px solid rgba(255, 255, 255, .28);
	border-radius: 50%;
	background: rgba(255, 255, 255, .08);
}

.wptm-home__section--why-band .wptm-home__whynum {
	position: absolute;
	top: 24px;
	inset-inline-end: 24px;
	padding: 0;
	background: none;
	color: rgba(255, 255, 255, .48);
	opacity: 1;
}

.wptm-home__section--why-band .wptm-home__whycopy {
	display: block;
	min-width: 0;
	margin-block-start: auto;
}

.wptm-home__section--why-band .wptm-home__whytitle {
	color: #fff;
}

.wptm-home__section--why-band .wptm-home__whytext {
	color: rgba(255, 255, 255, .72);
}

@supports not (backdrop-filter: blur(1px)) {
	.wptm-home__section--why-band .wptm-home__whyitem {
		background: #1d2a36;
	}
}

@media (max-width: 640px) {
	.wptm-home__section--why-band .wptm-home__why--style-band {
		grid-template-columns: minmax(0, 1fr);
	}

	.wptm-home__section--why-band .wptm-home__whyitem,
	.wptm-home__section--why-band .wptm-home__whyitem:first-child {
		min-height: 0;
		padding: 20px;
	}

	.wptm-home__section--why-band .wptm-home__whymark {
		width: 50px;
		height: 50px;
		margin-block-end: 20px;
	}

	.wptm-home__section--why-band .wptm-home__whynum {
		top: 20px;
		inset-inline-end: 20px;
	}

	.wptm-home__section--why-band .wptm-home__whycopy {
		padding-inline-end: 0;
	}
}

@media (pointer: coarse) {
	.wptm-home__section--why-band .wptm-home__whyitem:hover {
		transform: none;
	}
}



/* --- Why choose us 3: numbered panels ---------------------------------- */
/*
 * The heading at the start of the section, then one bordered panel for each
 * reason, each led by a small numbered figure in the site's accent.
 *
 * Written from a model the site's owner supplied, and then taken back down
 * to the page's own scale at his direction: the model's night-blue band,
 * its background wash and its 78-pixel figures are gone. What is kept from
 * it is the shape of the thing — the figure leads instead of an icon, the
 * heading stands at the start rather than over the middle, and the panels
 * are quiet rectangles rather than cards competing with the tour cards
 * above them.
 *
 * Nothing here paints a ground. The section stands on whatever the page's
 * rhythm gives it — white, or the warm paper — and the panels are drawn
 * with a hairline over that ground rather than a fill of their own, so the
 * same layout is at home on both without a second set of colours.
 *
 * No type size is invented either. The heading takes the page's own title
 * scale, the panel headings and copy take the scale every other reason
 * list uses, and all three grow with the window exactly as the rest of the
 * homepage does.
 */

.wptm-home__section--why-numbered .wptm-home__whygrid {
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(26px, 3.4vw, 44px);
	align-items: start;
}

/* --- the heading, at the start of the section --- */

/*
 * The heading row is a flex row on every other section, with a "see all"
 * link pushed to its far end. This one has no link, so the rule the
 * heading carries was being treated as that second item and parked against
 * the opposite margin. Here the head is a plain block again and the rule
 * sits under the words, where it was drawn to sit.
 */
.wptm-home__section--why-numbered .wptm-home__head--why {
	display: block;
	max-width: none;
	margin-block-end: 0;
	margin-inline: 0;
	text-align: start;
}

.wptm-home__section--why-numbered .wptm-home__head--why .wptm-home__eyebrow {
	justify-content: flex-start;
}

/*
 * The page's own title scale, restated.
 *
 * The two older reason layouts set this heading a step larger than the
 * rest of the page (clamp 2rem–3rem against clamp 1.7rem–2.5rem) because
 * both put it in a narrow column beside the list. This one puts it over
 * the full width, where a heading a size louder than every other section
 * heading would be the only thing on the page at that size. The measure is
 * carried by the h2 itself, so its `ch` is measured in the heading's own
 * type and not in the 16px of the block around it.
 */
.wptm-home__section--why-numbered .wptm-home__head--why .wptm-home__title {
	max-width: 24ch;
	margin-inline: 0;
	font-size: clamp(1.7rem, 3.2vw, 2.5rem);
	line-height: 1.12;
	letter-spacing: -.02em;
}

.wptm-home__section--why-numbered .wptm-home__head--why::after {
	margin-block-start: clamp(16px, 1.8vw, 22px);
	margin-inline: 0;
}

/* --- the row --- */

/*
 * The count is the row's own business.
 *
 * `auto-fit` with a floor keeps three panels in three columns on a desktop,
 * folds to two when the window or the reason count says so, and to one on a
 * phone, without the stylesheet naming a single breakpoint for it. Two
 * reasons and five reasons both come out right, and neither needs a
 * setting.
 */
.wptm-home__section--why-numbered .wptm-home__why--style-numbered {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
	gap: clamp(14px, 1.6vw, 24px);
}

.wptm-home__section--why-numbered .wptm-home__whyitem,
.wptm-home__section--why-numbered .wptm-home__whyitem:first-child {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-height: 0;
	margin: 0;
	padding: clamp(22px, 2.3vw, 32px) clamp(20px, 2.1vw, 30px);
	overflow: hidden;
	border: 1px solid var(--home-line);
	border-radius: var(--home-radius);
	background: transparent;
	box-shadow: none;
	transition: transform .2s ease, border-color .2s ease;
}

/*
 * The rule that draws itself on hover.
 *
 * A panel that only rises reads as a template. This one answers along its
 * top edge in the accent, from the side the language starts on, which is
 * the small piece of craft the section is worth.
 */
.wptm-home__section--why-numbered .wptm-home__whyitem::after {
	content: "";
	position: absolute;
	inset-block-start: 0;
	inset-inline: 0;
	height: 2px;
	background: var(--wptm-accent);
	transform: scaleX(0);
	transform-origin: 0 50%;
	transition: transform .34s cubic-bezier(.2, .7, .2, 1);
}

[dir="rtl"] .wptm-home__section--why-numbered .wptm-home__whyitem::after {
	transform-origin: 100% 50%;
}

.wptm-home__section--why-numbered .wptm-home__whyitem:hover {
	transform: translateY(-3px);
	border-color: color-mix(in srgb, var(--wptm-accent) 34%, var(--home-line));
	box-shadow: none;
}

@supports not (color: color-mix(in srgb, red 50%, transparent)) {
	.wptm-home__section--why-numbered .wptm-home__whyitem:hover {
		border-color: var(--wptm-accent);
	}
}

.wptm-home__section--why-numbered .wptm-home__whyitem:hover::after,
.wptm-home__section--why-numbered .wptm-home__whyitem:focus-within::after {
	transform: scaleX(1);
}

/* --- the figure --- */

/*
 * The figure leads the panel, but it is a label and not a headline: a
 * little above the panel heading beside it, in the accent, and no larger.
 * It is printed as "01"; the full stop is drawn here so the markup the
 * other two styles share is untouched, and the pair is isolated
 * left-to-right so an Arabic page still reads "01." and not ".01".
 */
.wptm-home__section--why-numbered .wptm-home__whynum {
	position: static;
	order: -1;
	align-self: flex-start;
	margin: 0 0 clamp(12px, 1.2vw, 16px);
	padding: 0;
	border-radius: 0;
	background: none;
	direction: ltr;
	unicode-bidi: isolate;
	font-size: clamp(1.05rem, 1.3vw, 1.25rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: .01em;
	color: var(--wptm-accent-dark, var(--wptm-accent));
	opacity: 1;
}

.wptm-home__section--why-numbered .wptm-home__whynum::after {
	content: ".";
}

/*
 * The icon, if the owner chose one, is not the lead here — the figure is.
 * It sits small and quiet in the panel's far top corner and never competes
 * for the reading order; a portrait the owner uploaded takes the same
 * corner as a small round frame.
 */
.wptm-home__section--why-numbered .wptm-home__whymark {
	position: absolute;
	inset-block-start: clamp(20px, 2.1vw, 28px);
	inset-inline-end: clamp(18px, 1.9vw, 26px);
	width: 30px;
	height: 30px;
	margin: 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: var(--wptm-accent);
	opacity: .6;
}

.wptm-home__section--why-numbered .wptm-home__whymark svg {
	width: 22px;
	height: 22px;
}

.wptm-home__section--why-numbered .wptm-home__whymark--image {
	width: 44px;
	height: 44px;
	border: 2px solid #fff;
	border-radius: 50%;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 6px 18px -12px rgba(27, 31, 36, .7);
	opacity: 1;
}

/* --- the words --- */

/*
 * No sizes of its own: `.wptm-home__whytitle` and `.wptm-home__whytext`
 * above already carry the scale every reason list on the site is set in,
 * and both are already fluid. Only the spacing between them changes, since
 * these are stacked in a panel rather than laid beside an icon.
 */
.wptm-home__section--why-numbered .wptm-home__whycopy {
	padding-inline-end: 0;
}

.wptm-home__section--why-numbered .wptm-home__whytext {
	margin-block-start: clamp(8px, 1vw, 12px);
	max-width: 46ch;
}

/* A panel with a corner icon keeps its heading clear of it. */
.wptm-home__section--why-numbered .wptm-home__whyitem:has(.wptm-home__whymark) .wptm-home__whytitle {
	padding-inline-end: 40px;
}

@media (max-width: 767px) {
	.wptm-home__section--why-numbered .wptm-home__whyitem,
	.wptm-home__section--why-numbered .wptm-home__whyitem:first-child {
		padding: 22px 20px;
	}

	.wptm-home__section--why-numbered .wptm-home__whymark {
		inset-block-start: 20px;
		inset-inline-end: 18px;
		width: 26px;
		height: 26px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wptm-home__section--why-numbered .wptm-home__whyitem,
	.wptm-home__section--why-numbered .wptm-home__whyitem::after {
		transition: none;
	}

	.wptm-home__section--why-numbered .wptm-home__whyitem:hover {
		transform: none;
	}
}

@media (pointer: coarse) {
	.wptm-home__section--why-numbered .wptm-home__whyitem:hover {
		transform: none;
	}

	.wptm-home__section--why-numbered .wptm-home__whyitem:hover::after {
		transform: scaleX(0);
	}
}


/* ========================================================================
 * Trusted platforms.
 *
 * Two identical, accessibility-separated lists create the seamless loop.
 * The owner supplies every mark and link; the plugin supplies only layout,
 * motion and the quiet white social-proof band.
 * ===================================================================== */

.wptm-home__section--platforms {
	width: 100vw;
	max-width: 100vw;
	margin-inline: calc(50% - 50vw);
	padding-block: clamp(28px, 3.5vw, 44px);
	overflow: hidden;
	border-block: 1px solid rgba(27, 31, 36, .07);
	background: #fff;
}

.wptm-home__platformstitle {
	margin: 0 0 clamp(18px, 2.4vw, 26px);
	font-size: .68rem;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .3em;
	text-align: center;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--home-ink) 38%, transparent);
	text-wrap: balance;
}

.wptm-home__platforms {
	position: relative;
	width: 100%;
	overflow: hidden;
}

.wptm-home__platforms--motion {
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);
}

.wptm-home__platformtrack {
	display: flex;
	align-items: center;
	width: max-content;
	direction: ltr;
}

.wptm-home__platforms--motion .wptm-home__platformtrack {
	will-change: transform;
	animation: wptm-home-platform-scroll 30s linear infinite;
}

.wptm-home__platforms--speed-slow .wptm-home__platformtrack {
	animation-duration: 42s;
}

.wptm-home__platforms--speed-fast .wptm-home__platformtrack {
	animation-duration: 20s;
}

/* The pointer over the strip holds it still, so a mark can be read and a
   link can be pressed where it is. */
.wptm-home__platforms--motion:hover .wptm-home__platformtrack {
	animation-play-state: paused;
}

/*
 * Keyboard focus turns the moving strip into one stable, scrollable list.
 *
 * Keyboard focus only. A mouse press also focuses the link, and the earlier
 * :focus-within rule answered that too: on mousedown the strip re-laid
 * itself as a scrolling list, the logo moved out from under the pointer
 * before mouseup, the click never completed, and the scrollbar stayed. So
 * the list form is keyed to :focus-visible, which a pointer does not set,
 * and a press on a logo simply opens it.
 */
.wptm-home__platforms--motion:has(.wptm-home__platformlink:focus-visible) {
	overflow-x: auto;
	-webkit-mask-image: none;
	mask-image: none;
}

.wptm-home__platforms--motion:has(.wptm-home__platformlink:focus-visible) .wptm-home__platformtrack {
	transform: none;
	animation: none;
}

.wptm-home__platforms--motion:has(.wptm-home__platformlink:focus-visible) .wptm-home__platformset[aria-hidden="true"] {
	display: none;
}

.wptm-home .wptm-home__platformset {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: space-around;
	min-width: min(100vw, var(--home-wrap));
	padding-inline: clamp(8px, 2vw, 24px);
}

.wptm-home .wptm-home__platformitem {
	display: flex;
	flex: 0 0 clamp(150px, 16vw, 205px);
	align-items: center;
	justify-content: center;
	min-height: 58px;
	padding-inline: clamp(18px, 2.3vw, 32px);
	border-inline-end: 1px solid rgba(27, 31, 36, .09);
}

.wptm-home__platformlink {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-width: 0;
	min-height: 48px;
	border-radius: 8px;
	opacity: .7;
	text-decoration: none;
	transition: opacity .2s ease, transform .2s ease, filter .2s ease;
}

a.wptm-home__platformlink:hover,
a.wptm-home__platformlink:focus-visible {
	opacity: 1;
	transform: translateY(-2px);
	filter: saturate(1.08);
}

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

.wptm-home__platformlogo {
	display: block;
	width: auto;
	height: auto;
	max-width: 150px;
	max-height: 38px;
	object-fit: contain;
	border: 0;
	box-shadow: none;
}

.wptm-home__platforms--static .wptm-home__platformtrack,
.wptm-home__platforms--static .wptm-home__platformset {
	width: 100%;
}

.wptm-home__platforms--static .wptm-home__platformset {
	flex-wrap: wrap;
	justify-content: center;
	min-width: 0;
}

@keyframes wptm-home-platform-scroll {
	from {
		transform: translate3d(0, 0, 0);
	}

	to {
		transform: translate3d(-50%, 0, 0);
	}
}

@supports not (color: color-mix(in srgb, red 50%, transparent)) {
	.wptm-home__platformstitle {
		color: #8b93a1;
	}
}

@media (max-width: 640px) {
	.wptm-home__section--platforms {
		padding-block: 26px 30px;
	}

	.wptm-home__platformstitle {
		margin-block-end: 16px;
		font-size: .64rem;
		letter-spacing: .22em;
	}

	.wptm-home .wptm-home__platformset {
		padding-inline: 4px;
	}

	.wptm-home .wptm-home__platformitem {
		flex-basis: 148px;
		min-height: 54px;
		padding-inline: 20px;
	}

	.wptm-home__platformlogo {
		max-width: 124px;
		max-height: 34px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wptm-home__platforms--motion {
		-webkit-mask-image: none;
		mask-image: none;
	}

	.wptm-home__platforms--motion .wptm-home__platformtrack {
		width: 100%;
		will-change: auto;
		animation: none;
	}

	.wptm-home__platforms--motion .wptm-home__platformset {
		width: 100%;
		min-width: 0;
		flex-wrap: wrap;
		justify-content: center;
	}

	.wptm-home__platforms--motion .wptm-home__platformset[aria-hidden="true"] {
		display: none;
	}

	a.wptm-home__platformlink:hover,
	a.wptm-home__platformlink:focus-visible {
		transform: none;
	}
}

/* ========================================================================
 * Hero collection: video, split spotlight, floating stories and mesh.
 *
 * The original image hero remains the default. These modifiers change only
 * presentation; all copy, actions and search controls keep the same semantic
 * HTML and the same real catalogue destination.
 * ===================================================================== */

.wptm-home__heroctaicon,
.wptm-home__herobadgeicon,
.wptm-home__videoicon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	line-height: 0;
}

.wptm-home__heroctaicon {
	transition: transform .2s ease;
}

.wptm-home__btn--primary:hover .wptm-home__heroctaicon {
	transform: translateX(3px);
}

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

[dir="rtl"] .wptm-home__btn--primary:hover .wptm-home__heroctaicon {
	transform: scaleX(-1) translateX(3px);
}

.wptm-home__herobadges {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 22px;
	margin-block-start: 20px;
}

.wptm-home .wptm-home__herobadges li {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	min-width: 0;
	font-size: .86rem;
	font-weight: 600;
	line-height: 1.35;
	color: rgba(255, 255, 255, .9);
}

.wptm-home__herobadgeicon {
	width: 36px;
	height: 36px;
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: 50%;
	background: rgba(255, 255, 255, .12);
	backdrop-filter: blur(8px);
}

/* The overlay selector below comes after the older generic polish rule so
   the light/medium/dark setting once again has the promised effect. */
.wptm-home__hero--style-image.wptm-home__hero--shade-light::after,
.wptm-home__hero--style-video.wptm-home__hero--shade-light::after {
	background: linear-gradient(100deg, rgba(7, 12, 16, .44) 0%, rgba(7, 12, 16, .12) 62%, rgba(7, 12, 16, .38) 100%);
}

.wptm-home__hero--style-image.wptm-home__hero--shade-medium::after,
.wptm-home__hero--style-video.wptm-home__hero--shade-medium::after {
	background: linear-gradient(100deg, rgba(7, 12, 16, .64) 0%, rgba(7, 12, 16, .2) 62%, rgba(7, 12, 16, .54) 100%);
}

.wptm-home__hero--style-image.wptm-home__hero--shade-dark::after,
.wptm-home__hero--style-video.wptm-home__hero--shade-dark::after {
	background: linear-gradient(100deg, rgba(7, 12, 16, .8) 0%, rgba(7, 12, 16, .42) 62%, rgba(7, 12, 16, .7) 100%);
}

/* --- Cinematic Journey ------------------------------------------------ */

.wptm-home__hero--style-video {
	min-height: clamp(540px, 72vh, 760px);
	background: #0b1820;
}

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

.wptm-home__hero--style-video .wptm-home__heroinner {
	z-index: 3;
}

.wptm-home__videocontrols {
	position: absolute;
	inset-block-start: clamp(16px, 2.5vw, 28px);
	inset-inline-end: clamp(16px, 2.5vw, 30px);
	z-index: 5;
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 8px;
	max-width: calc(100% - 32px);
}

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

.wptm-home__videocontrol {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 42px;
	padding: 8px 13px;
	border: 1px solid rgba(255, 255, 255, .3);
	border-radius: 999px;
	background: rgba(8, 15, 20, .55);
	box-shadow: 0 12px 30px rgba(0, 0, 0, .2);
	backdrop-filter: blur(12px);
	color: #fff;
	font: inherit;
	font-size: .78rem;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}

.wptm-home__videocontrol:hover {
	border-color: rgba(255, 255, 255, .72);
	background: rgba(8, 15, 20, .76);
	transform: translateY(-1px);
}

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

.wptm-home__videoicon--play,
.wptm-home__videoicon--sound {
	display: none;
}

.wptm-home__videocontrol[data-wptm-video-motion][aria-pressed="false"] .wptm-home__videoicon--pause,
.wptm-home__videocontrol[data-wptm-video-sound][aria-pressed="true"] .wptm-home__videoicon--muted {
	display: none;
}

.wptm-home__videocontrol[data-wptm-video-motion][aria-pressed="false"] .wptm-home__videoicon--play,
.wptm-home__videocontrol[data-wptm-video-sound][aria-pressed="true"] .wptm-home__videoicon--sound {
	display: inline-flex;
}

/* --- Journey Spotlight ------------------------------------------------ */

.wptm-home__hero--style-split {
	min-height: auto;
	border-block: 1px solid rgba(31, 62, 49, .1);
	background:
		radial-gradient(circle at 88% 8%, rgba(210, 232, 220, .52), transparent 30%),
		radial-gradient(circle at 8% 92%, rgba(232, 207, 163, .24), transparent 28%),
		linear-gradient(145deg, #fbfaf7 0%, #f5f2ec 100%);
	color: #173326;
}

.wptm-home__hero--style-split::after,
.wptm-home__hero--style-mesh::after {
	display: none;
}

.wptm-home__hero--style-split .wptm-home__heroinner {
	padding-block: clamp(52px, 6vw, 78px);
}

.wptm-home__hero--style-split:has(.wptm-home__down) .wptm-home__heroinner {
	padding-block-end: clamp(96px, 9vw, 116px);
}

.wptm-home__splitgrid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(380px, 520px);
	align-items: center;
	gap: clamp(42px, 6vw, 82px);
	width: 100%;
	padding: 0;
}

.wptm-home__hero--style-split .wptm-home__herocopy {
	max-width: 570px;
	margin: 0;
	text-align: start;
}

.wptm-home__hero--style-split .wptm-home__heroeyebrow {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin-block-end: 18px;
	padding: 0;
	border: 0;
	background: transparent;
	color: #21734e;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.wptm-home__hero--style-split .wptm-home__herotitle {
	font-size: clamp(2.2rem, 4.2vw, 3.75rem);
	font-weight: 650;
	line-height: 1.07;
	letter-spacing: -.038em;
	color: #153525;
	text-shadow: none;
}

.wptm-home__hero--style-split .wptm-home__herotext {
	margin-block-end: 28px;
	font-size: clamp(1rem, 1.4vw, 1.14rem);
	line-height: 1.68;
	color: #58635d;
}

.wptm-home__hero--style-split .wptm-home__btn--ghost {
	border-color: #28895c;
	background: transparent;
	color: #1c724b;
	backdrop-filter: none;
}

.wptm-home__hero--style-split .wptm-home__licence--hero {
	border-color: rgba(29, 96, 65, .13);
	background: rgba(231, 243, 236, .72);
	color: #315744;
	backdrop-filter: none;
}

.wptm-home__hero--style-split .wptm-home__herobadges {
	gap: 12px 24px;
	margin-block-start: 26px;
}

.wptm-home .wptm-home__hero--style-split .wptm-home__herobadges li {
	color: #4d5c54;
}

.wptm-home__hero--style-split .wptm-home__herobadgeicon {
	border-color: rgba(35, 121, 79, .1);
	background: #e8f4ed;
	color: #227b50;
	backdrop-filter: none;
}

/* Named twice so the white beats ".wptm-home a { color: inherit }", which
   is one class and one tag to this rule's one class: without it the title
   over the dark wash took the page's ink and could not be read. */
.wptm-home__spotlight,
a.wptm-home__spotlight {
	position: relative;
	display: block;
	justify-self: end;
	width: min(100%, 520px);
	min-width: 0;
	min-height: 0;
	aspect-ratio: 1;
	overflow: hidden;
	border: 1px solid rgba(32, 69, 51, .12);
	border-radius: clamp(20px, 2.4vw, 28px);
	background: #d9d0c1;
	box-shadow: 0 28px 58px -36px rgba(34, 53, 40, .72);
	color: #fff;
	text-decoration: none;
	isolation: isolate;
}

.wptm-home__spotlight::after {
	content: "";
	position: absolute;
	inset: 28% 0 0;
	z-index: 1;
	background: linear-gradient(to top, rgba(14, 24, 19, .9), rgba(14, 24, 19, .46) 52%, transparent 100%);
	pointer-events: none;
}

/* Scoped to the hero's own card: the Editorial Spotlight featured layout
   uses the same three class names for its cards, and an unscoped
   "position: absolute; height: 100%" reached them — on a phone the side
   card's picture filled the whole card and its text was clipped away. */
.wptm-home__spotlight .wptm-home__spotmedia,
.wptm-home__spotlight .wptm-home__spotimg,
.wptm-home__spotlight .wptm-home__spotpattern {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
}

.wptm-home__spotlight .wptm-home__spotimg {
	object-fit: cover;
	object-position: center;
	transition: transform .55s ease;
}

.wptm-home__spotlight .wptm-home__spotpattern {
	background: linear-gradient(145deg, #dcebe2, #eadbc3);
	color: #42775d;
}

a.wptm-home__spotlight:hover .wptm-home__spotimg,
a.wptm-home__spotlight:focus-visible .wptm-home__spotimg {
	transform: scale(1.035);
}

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

.wptm-home__spotoverlay {
	position: absolute;
	inset-inline: clamp(20px, 2.8vw, 30px);
	inset-block-end: clamp(20px, 2.8vw, 28px);
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 9px;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	backdrop-filter: none;
}

.wptm-home__spotbadge {
	padding: 5px 9px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .15);
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.wptm-home__spottitle {
	font-size: clamp(1.22rem, 1.8vw, 1.55rem);
}

.wptm-home__spotfacts {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 0;
	font-size: .86rem;
	font-weight: 650;
	color: rgba(255, 255, 255, .94);
}

.wptm-home__spotfacts > span {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding-inline-end: 16px;
	margin-inline-end: 16px;
	border-inline-end: 1px solid rgba(255, 255, 255, .32);
}

.wptm-home__spotfacts > span:last-child {
	padding-inline-end: 0;
	margin-inline-end: 0;
	border-inline-end: 0;
}

.wptm-home__spotratingrow,
.wptm-home__spotrating,
.wptm-home__spotstars {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: .88rem;
	font-weight: 700;
}

.wptm-home__spotstars {
	gap: 2px;
}

.wptm-home__spotstars span {
	display: inline-flex;
	color: rgba(255, 255, 255, .38);
}

.wptm-home__spotstars span.is-on,
.wptm-home__spotstars span.is-on svg {
	fill: #ffc342;
	color: #ffc342;
}

.wptm-home__spotrating-icon {
	display: none;
}

.wptm-home__spotrating-count {
	font-weight: 500;
	color: rgba(255, 255, 255, .78);
}

.wptm-home__splitgrid + .wptm-home__search,
.wptm-home__splitgrid + .wptm-home__searchstage {
	width: 100%;
	margin-block-start: clamp(24px, 3vw, 36px);
	margin-inline: auto;
}

.wptm-home__hero--style-split .wptm-home__search,
.wptm-home__hero--style-split .wptm-home__searchstage--adventure,
.wptm-home__hero--style-split .wptm-home__search--signature {
	box-shadow: 0 24px 56px -34px rgba(23, 55, 39, .56), 0 1px 0 #fff inset;
}

.wptm-home__hero--style-split .wptm-home__down,
.wptm-home__hero--style-mesh .wptm-home__down {
	color: #244c38;
}

.wptm-home__hero--style-split .wptm-home__downlabel,
.wptm-home__hero--style-mesh .wptm-home__downlabel {
	background: rgba(255, 255, 255, .72);
}

.wptm-home__hero--style-split .wptm-home__downring,
.wptm-home__hero--style-mesh .wptm-home__downring {
	border-color: transparent;
	background: transparent;
}

/* --- Floating Stories ------------------------------------------------- */

/*
 * A dark teal ground, the copy in the middle, and the owner's photographs
 * around it: the photographs are the decoration, so the frames, the glow
 * and the drifting stars that competed with them are gone. Each layer has
 * its place — ground, stars, photographs, copy, search — and the bottom
 * photographs sit beside the search bar, not under it.
 */
.wptm-home__hero--style-floating {
	--float-gap: clamp(12px, 1.6vw, 22px);
	min-height: clamp(600px, 76vh, 780px);
	background:
		radial-gradient(ellipse 70% 60% at 50% 100%, rgba(32, 96, 92, .34), transparent 70%),
		linear-gradient(160deg, #0f2a32 0%, #15393c 55%, #152a30 100%);
	color: #fff;
}

.wptm-home__hero--style-floating::after {
	background: radial-gradient(ellipse 60% 70% at 50% 45%, rgba(7, 20, 25, .5) 0%, rgba(7, 20, 25, .3) 50%, rgba(7, 20, 25, .4) 100%);
}

.wptm-home__hero--style-floating.wptm-home__hero--shade-light::after {
	background: radial-gradient(ellipse 60% 70% at 50% 45%, rgba(7, 20, 25, .36) 0%, rgba(7, 20, 25, .18) 50%, rgba(7, 20, 25, .28) 100%);
}

.wptm-home__hero--style-floating.wptm-home__hero--shade-dark::after {
	background: radial-gradient(ellipse 60% 70% at 50% 45%, rgba(7, 20, 25, .66) 0%, rgba(7, 20, 25, .46) 50%, rgba(7, 20, 25, .58) 100%);
}

.wptm-home__hero--style-floating .wptm-home__heroinner {
	z-index: 3;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding-block: clamp(72px, 9vw, 112px) clamp(40px, 6vw, 72px);
}

/* One scale for the column: eyebrow, title, line, badge, then the search. */
.wptm-home__hero--style-floating .wptm-home__herocopy {
	width: min(100%, 680px);
	max-width: 680px;
	margin-inline: auto;
	margin-block-end: clamp(36px, 4.6vw, 52px);
	padding-inline: clamp(6px, 2vw, 18px);
	text-align: center;
}

.wptm-home__hero--style-floating .wptm-home__heroeyebrow {
	margin-block-end: 14px;
	font-size: 11.5px;
	letter-spacing: .22em;
	color: rgba(255, 255, 255, .72);
}

.wptm-home__hero--style-floating .wptm-home__herotitle {
	max-width: 16ch;
	margin-inline: auto;
	margin-block-end: 20px;
	font-size: clamp(2.3rem, 4.6vw, 3.6rem);
	font-weight: 600;
	line-height: 1.08;
	letter-spacing: -.02em;
	text-shadow: 0 1px 2px rgba(0, 0, 0, .2);
}

.wptm-home__hero--style-floating .wptm-home__herotext {
	margin-inline: auto;
	margin-block-end: 26px;
	max-width: 46ch;
	font-size: clamp(1rem, 1.3vw, 1.08rem);
	line-height: 1.65;
	color: rgba(255, 255, 255, .84);
	text-shadow: none;
}

.wptm-home__hero--style-floating .wptm-home__heroctas,
.wptm-home__hero--style-floating .wptm-home__herobadges {
	justify-content: center;
}

/* The membership line: a small matter of trust, drawn like one — a label
   with a bare corner, not a capsule. */
.wptm-home__hero--style-floating .wptm-home__licence--hero {
	gap: 9px;
	margin-top: 0;
	padding: 7px 13px 7px 9px;
	border-radius: 5px;
	border-color: rgba(255, 255, 255, .14);
	background: rgba(255, 255, 255, .06);
	font-size: .86rem;
	color: rgba(255, 255, 255, .86);
	backdrop-filter: none;
}

.wptm-home__hero--style-floating .wptm-home__licence--hero .wptm-home__licencevalue {
	color: #fff;
}

.wptm-home__hero--style-floating .wptm-home__herotext + .wptm-home__licence--hero,
.wptm-home__hero--style-floating .wptm-home__heroctas + .wptm-home__licence--hero {
	margin-top: 2px;
}

.wptm-home__hero--style-floating .wptm-home__search,
.wptm-home__hero--style-floating .wptm-home__searchstage {
	position: relative;
	z-index: 4;
	margin-inline: auto;
}

/*
 * The bar is a built thing — a rectangle with a bare corner — not a bubble
 * laid on the hero. Its width leaves the lower photographs their own ground
 * on either side at every desktop width: the bar never passes over them.
 */
.wptm-home__hero--style-floating .wptm-home__search--bar {
	max-width: min(900px, 100vw - 2 * (clamp(20px, 3vw, 48px) + clamp(140px, 13.5vw, 200px) + 24px));
	border-color: rgba(255, 255, 255, .5);
	border-radius: 6px;
	box-shadow: 0 16px 40px -18px rgba(0, 0, 0, .5);
}

.wptm-home__hero--style-floating .wptm-home__search--bar .wptm-home__field {
	min-height: 68px;
}

.wptm-home__hero--style-floating .wptm-home__search--bar .wptm-home__field:focus-within,
.wptm-home__hero--style-floating .wptm-home__search--bar .wptm-home__field:has(select:focus-visible) {
	border-radius: 4px;
}

/* The button: the same gold, the same icon and words, a plain rectangle. */
.wptm-home__hero--style-floating .wptm-home__search--bar .wptm-home__searchbtn {
	min-height: 56px;
	border-radius: 4px;
	box-shadow: none;
}

/* The way down: words on the ground, not in a capsule. */
.wptm-home__hero--style-floating .wptm-home__downlabel {
	padding: 6px 10px;
	border-radius: 3px;
	background: rgba(0, 0, 0, .22);
	backdrop-filter: none;
}

.wptm-home__hero--style-floating .wptm-home__down:focus-visible {
	border-radius: 3px;
}

.wptm-home__floatlayer {
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
}

/* Three still points of light, barely there: the photographs are the stars. */
.wptm-home__floatstars {
	position: absolute;
	inset: 0;
	z-index: 1;
	overflow: hidden;
	pointer-events: none;
}

.wptm-home__floatstar {
	position: absolute;
	display: inline-flex;
	width: 10px;
	height: 10px;
	opacity: .22;
	color: rgba(255, 226, 170, .9);
}

.wptm-home__floatstar svg {
	display: block;
	width: 100%;
	height: 100%;
	fill: currentColor;
	stroke: currentColor;
}

.wptm-home__floatstar--1 {
	inset-block-start: 24%;
	inset-inline-start: 31%;
}

.wptm-home__floatstar--2 {
	inset-block-start: 20%;
	inset-inline-end: 29%;
	width: 8px;
	height: 8px;
}

.wptm-home__floatstar--3 {
	inset-block-end: 36%;
	inset-inline-end: 24%;
	width: 7px;
	height: 7px;
}

.wptm-home__floatstar--4,
.wptm-home__floatstar--5,
.wptm-home__floatstar--6,
.wptm-home__floatstar--7 {
	display: none;
}

/*
 * The photographs: no frame, a soft shadow for the lift off the ground, and
 * a tilt of a degree or two in alternating directions. Each has a size of
 * its own — the two above a little larger than the two below — so the set
 * reads as chosen rather than stamped out.
 */
.wptm-home__floatcard {
	position: absolute;
	display: block;
	width: clamp(150px, 15vw, 224px);
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border: 0;
	border-radius: 6px;
	background: #1c3a3e;
	box-shadow: 0 10px 28px rgba(0, 0, 0, .22), 0 0 0 1px rgba(255, 255, 255, .06);
	color: #fff;
	text-decoration: none;
	pointer-events: auto;
	transition: transform .3s ease, box-shadow .3s ease;
}

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

.wptm-home__floatcard--1 {
	inset-block-start: 11%;
	inset-inline-start: clamp(28px, 5vw, 80px);
	transform: rotate(-2deg);
}

.wptm-home__floatcard--2 {
	inset-block-start: 13%;
	inset-inline-end: clamp(28px, 5vw, 80px);
	width: clamp(140px, 14vw, 208px);
	aspect-ratio: 5 / 4;
	transform: rotate(1.5deg);
}

/*
 * The lower pair sits beside the search bar, within the margin between the
 * bar and the edge of the screen, so the bar passes over nothing.
 */
.wptm-home__floatcard--3 {
	inset-block-end: 11%;
	inset-inline-start: clamp(20px, 3vw, 48px);
	width: clamp(130px, 12.5vw, 184px);
	aspect-ratio: 1;
	transform: rotate(1deg);
}

.wptm-home__floatcard--4 {
	inset-block-end: 9%;
	inset-inline-end: clamp(20px, 3vw, 48px);
	width: clamp(140px, 13.5vw, 200px);
	transform: rotate(-1.5deg);
}

/*
 * On a wide screen a fifth photograph had nowhere to be but half under the
 * search bar, where it read as something cut off. Four frame the copy here;
 * the fifth takes its place in the strip on a phone, where every one of
 * the owner's photographs is shown whole.
 */
.wptm-home__floatcard--5 {
	display: none;
}

.wptm-home__floatlayer--1 .wptm-home__floatcard--1 {
	inset-block-start: 50%;
	inset-inline-start: clamp(28px, 5vw, 80px);
	transform: translateY(-50%) rotate(-2deg);
}

.wptm-home__floatlayer--2 .wptm-home__floatcard--1,
.wptm-home__floatlayer--2 .wptm-home__floatcard--2 {
	inset-block-start: 50%;
	transform: translateY(-50%) rotate(-2deg);
}

.wptm-home__floatlayer--2 .wptm-home__floatcard--2 {
	transform: translateY(-50%) rotate(1.5deg);
}

/* A link lifts a little and straightens; a plain photograph does nothing. */
a.wptm-home__floatcard:hover,
a.wptm-home__floatcard:focus-visible {
	box-shadow: 0 16px 36px rgba(0, 0, 0, .28), 0 0 0 1px rgba(255, 255, 255, .08);
	transform: translateY(-4px) rotate(0);
}

.wptm-home__floatlayer--1 a.wptm-home__floatcard--1:hover,
.wptm-home__floatlayer--1 a.wptm-home__floatcard--1:focus-visible,
.wptm-home__floatlayer--2 a.wptm-home__floatcard--1:hover,
.wptm-home__floatlayer--2 a.wptm-home__floatcard--1:focus-visible,
.wptm-home__floatlayer--2 a.wptm-home__floatcard--2:hover,
.wptm-home__floatlayer--2 a.wptm-home__floatcard--2:focus-visible {
	transform: translateY(calc(-50% - 4px)) rotate(0);
}

a.wptm-home__floatcard:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

.wptm-home__floatlabel {
	position: absolute;
	inset-inline: 10px;
	inset-block-end: 10px;
	display: block;
	padding: 6px 9px;
	border-radius: 3px;
	background: rgba(8, 20, 24, .66);
	font-size: .76rem;
	font-weight: 600;
	line-height: 1.25;
	text-align: start;
}

/* --- Oasis Mesh ------------------------------------------------------- */

.wptm-home__hero--style-mesh {
	--mesh-a: #aadfd0;
	--mesh-b: #f3cf96;
	--mesh-c: #9bd1de;
	--mesh-d: #fdf2dc;
	min-height: clamp(540px, 72vh, 720px);
	background: var(--mesh-d);
	color: #163c38;
}

.wptm-home__hero--palette-coast {
	--mesh-a: #a7e0dc;
	--mesh-b: #b9d8f0;
	--mesh-c: #7ac6d8;
	--mesh-d: #f3f4ed;
}

.wptm-home__hero--palette-sunset {
	--mesh-a: #efb497;
	--mesh-b: #f1cf8e;
	--mesh-c: #dca7ad;
	--mesh-d: #fff1dd;
}

.wptm-home__mesh {
	position: absolute;
	inset: -16%;
	z-index: 0;
	overflow: hidden;
	background:
		radial-gradient(circle at 18% 24%, var(--mesh-a), transparent 34%),
		radial-gradient(circle at 76% 22%, var(--mesh-b), transparent 36%),
		radial-gradient(circle at 70% 76%, var(--mesh-c), transparent 38%),
		radial-gradient(circle at 22% 78%, rgba(255, 255, 255, .82), transparent 32%),
		var(--mesh-d);
	filter: saturate(.9);
}

.wptm-home__mesh::before {
	content: "";
	position: absolute;
	inset: 12% 14%;
	z-index: 2;
	background: radial-gradient(ellipse at center, rgba(255, 255, 255, .5) 0%, rgba(255, 255, 255, .22) 48%, transparent 74%);
	filter: blur(22px);
	pointer-events: none;
}

.wptm-home__mesh::after {
	content: "";
	position: absolute;
	inset: 12%;
	border: 1px solid rgba(255, 255, 255, .38);
	border-radius: 42% 58% 64% 36% / 48% 42% 58% 52%;
	box-shadow: 0 0 90px rgba(255, 255, 255, .32) inset;
	transform: rotate(-8deg);
}

.wptm-home__mesh > span {
	position: absolute;
	width: 44vw;
	height: 44vw;
	min-width: 360px;
	min-height: 360px;
	border-radius: 50%;
	filter: blur(50px);
	opacity: .48;
	animation: wptm-home-mesh-drift 16s ease-in-out infinite alternate;
}

.wptm-home__mesh > span:nth-child(1) {
	inset-block-start: 2%;
	inset-inline-start: 3%;
	background: var(--mesh-a);
}

.wptm-home__mesh > span:nth-child(2) {
	inset-block-start: 0;
	inset-inline-end: 2%;
	background: var(--mesh-b);
	animation-delay: -5s;
	animation-duration: 19s;
}

.wptm-home__mesh > span:nth-child(3) {
	inset-block-end: -6%;
	inset-inline-end: 18%;
	background: var(--mesh-c);
	animation-delay: -9s;
	animation-duration: 21s;
}

.wptm-home__mesh > span:nth-child(4) {
	inset-block-end: -12%;
	inset-inline-start: 12%;
	background: rgba(255, 255, 255, .84);
	animation-delay: -3s;
	animation-duration: 18s;
}

@keyframes wptm-home-mesh-drift {
	0% {
		transform: translate3d(-4%, -3%, 0) scale(.92);
	}

	50% {
		transform: translate3d(7%, 4%, 0) scale(1.08);
	}

	100% {
		transform: translate3d(-1%, 9%, 0) scale(.98);
	}
}

.wptm-home__hero--style-mesh .wptm-home__heroinner {
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding-block: clamp(58px, 7vw, 86px);
}

.wptm-home__hero--style-mesh:has(.wptm-home__down) .wptm-home__heroinner {
	padding-block-end: clamp(94px, 9vw, 112px);
}

.wptm-home__hero--style-mesh .wptm-home__herocopy {
	width: min(100%, 760px);
	max-width: 760px;
	margin-inline: auto;
	padding-inline: clamp(6px, 2vw, 18px);
	text-align: center;
}

.wptm-home__hero--style-mesh .wptm-home__heroeyebrow {
	color: #246c61;
}

.wptm-home__hero--style-mesh .wptm-home__herotitle {
	max-width: 18ch;
	margin-inline: auto;
	font-size: clamp(2.25rem, 4.8vw, 3.95rem);
	font-weight: 650;
	line-height: 1.06;
	color: #163d37;
	text-shadow: none;
}

.wptm-home__hero--style-mesh .wptm-home__herotext {
	margin-inline: auto;
	max-width: 58ch;
	color: #355b54;
}

.wptm-home__hero--style-mesh .wptm-home__heroctas,
.wptm-home__hero--style-mesh .wptm-home__herobadges {
	justify-content: center;
}

.wptm-home__hero--style-mesh .wptm-home__btn--ghost {
	border-color: rgba(20, 76, 66, .7);
	background: rgba(255, 255, 255, .32);
	color: #174e44;
	backdrop-filter: none;
}

.wptm-home__hero--style-mesh .wptm-home__licence--hero {
	border-color: rgba(22, 86, 72, .14);
	background: rgba(255, 255, 255, .45);
	color: #28594f;
}

.wptm-home .wptm-home__hero--style-mesh .wptm-home__herobadges li {
	color: #315d54;
}

.wptm-home__hero--style-mesh .wptm-home__herobadgeicon {
	border-color: rgba(28, 98, 83, .13);
	background: rgba(255, 255, 255, .55);
	color: #267161;
}

.wptm-home__hero--style-mesh .wptm-home__search,
.wptm-home__hero--style-mesh .wptm-home__searchstage {
	margin-inline: auto;
}

.wptm-home__hero--style-mesh .wptm-home__search,
.wptm-home__hero--style-mesh .wptm-home__searchstage--adventure,
.wptm-home__hero--style-mesh .wptm-home__search--signature {
	box-shadow: 0 28px 70px -36px rgba(18, 68, 60, .58), 0 1px 0 rgba(255, 255, 255, .9) inset;
}

/* --- Hero collection: tablet and phone ------------------------------- */

/*
 * Floating Stories between a laptop and a tablet: the lower pair has no
 * ground of its own beside the bar any more, so it goes, and the upper
 * pair shrinks towards the corners.
 */
@media (max-width: 1100px) {
	.wptm-home__floatcard--1,
	.wptm-home__floatcard--2,
	.wptm-home__floatlayer--1 .wptm-home__floatcard--1,
	.wptm-home__floatlayer--2 .wptm-home__floatcard--1,
	.wptm-home__floatlayer--2 .wptm-home__floatcard--2 {
		width: clamp(128px, 15vw, 168px);
		aspect-ratio: 4 / 3;
		opacity: .9;
	}

	.wptm-home__floatcard--1 {
		inset-block-start: 8%;
		inset-inline-start: 20px;
		transform: rotate(-1.5deg);
	}

	.wptm-home__floatcard--2 {
		inset-block-start: 9%;
		inset-inline-end: 20px;
		transform: rotate(1deg);
	}

	.wptm-home__floatcard--3,
	.wptm-home__floatcard--4 {
		display: none;
	}

	.wptm-home__hero--style-floating .wptm-home__search--bar {
		max-width: 900px;
	}
}

@media (max-width: 1000px) {
	.wptm-home__splitgrid {
		grid-template-columns: minmax(0, 1fr) minmax(300px, 420px);
		gap: 30px;
		padding: 0;
	}

	.wptm-home__spotlight {
		min-height: 0;
	}

	.wptm-home__hero--style-floating .wptm-home__herocopy {
		width: min(66vw, 640px);
	}
}

@media (max-width: 820px) {
	.wptm-home__hero--style-split .wptm-home__heroinner {
		padding-block-start: 34px;
	}

	.wptm-home__splitgrid {
		grid-template-columns: minmax(0, 1fr);
		gap: 30px;
		padding: 0;
	}

	.wptm-home__hero--style-split .wptm-home__herocopy {
		max-width: none;
	}

	.wptm-home__spotlight {
		justify-self: center;
		width: min(100%, 620px);
		min-height: 0;
		aspect-ratio: 1;
	}

	.wptm-home__hero--style-floating {
		flex-direction: column;
		min-height: auto;
	}

	.wptm-home__hero--style-floating .wptm-home__heroinner {
		order: 1;
		padding-block-end: 24px;
	}

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

	.wptm-home__hero--style-floating .wptm-home__herocopy {
		width: 100%;
		padding-inline: 10px;
	}

	/*
	 * On a phone the photographs become a strip under the copy: two show,
	 * the rest scroll in from the side, every one the same shape so the
	 * strip reads as a gallery and nothing is cut at the edge of the hero.
	 */
	.wptm-home__floatlayer {
		position: relative;
		inset: auto;
		z-index: 3;
		order: 2;
		display: flex;
		gap: 12px;
		width: 100%;
		padding: 4px var(--home-pad) 32px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: var(--home-pad);
		scrollbar-width: none;
		pointer-events: auto;
	}

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

	.wptm-home__floatcard,
	.wptm-home__floatcard--1,
	.wptm-home__floatcard--2,
	.wptm-home__floatcard--3,
	.wptm-home__floatcard--4,
	.wptm-home__floatcard--5,
	.wptm-home__floatlayer--1 .wptm-home__floatcard--1,
	.wptm-home__floatlayer--2 .wptm-home__floatcard--1,
	.wptm-home__floatlayer--2 .wptm-home__floatcard--2 {
		position: relative;
		inset: auto;
		display: block;
		flex: 0 0 min(58vw, 300px);
		width: auto;
		aspect-ratio: 4 / 3;
		opacity: 1;
		filter: none;
		border-radius: 6px;
		box-shadow: 0 8px 22px rgba(0, 0, 0, .2);
		transform: none;
		scroll-snap-align: start;
	}

	.wptm-home__hero--style-floating .wptm-home__herocopy {
		margin-block-end: 28px;
	}

	.wptm-home__hero--style-floating .wptm-home__search--bar {
		margin-block-end: 8px;
	}

	.wptm-home__hero--style-floating:has(.wptm-home__down) .wptm-home__floatlayer {
		padding-block-end: 92px;
	}

	.wptm-home__floatlayer a.wptm-home__floatcard:hover,
	.wptm-home__floatlayer a.wptm-home__floatcard:focus-visible {
		transform: translateY(-3px);
	}

	.wptm-home__hero--style-floating .wptm-home__down {
		z-index: 5;
	}
}

@media (max-width: 640px) {
	.wptm-home__videocontrols {
		inset-block-start: 12px;
		inset-inline-end: 12px;
		gap: 6px;
	}

	.wptm-home__videocontrol {
		width: 42px;
		min-width: 42px;
		padding: 0;
	}

	.wptm-home__videocontrol > span:last-child {
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border: 0;
	}

	.wptm-home__hero--style-video .wptm-home__herotitle,
	.wptm-home__hero--style-split .wptm-home__herotitle,
	.wptm-home__hero--style-floating .wptm-home__herotitle,
	.wptm-home__hero--style-mesh .wptm-home__herotitle {
		font-size: clamp(2.05rem, 9.4vw, 2.9rem);
	}

	.wptm-home__hero--style-split .wptm-home__heroctas,
	.wptm-home__hero--style-mesh .wptm-home__heroctas,
	.wptm-home__hero--style-floating .wptm-home__heroctas {
		width: 100%;
	}

	.wptm-home__hero--style-split .wptm-home__heroctas .wptm-home__btn,
	.wptm-home__hero--style-mesh .wptm-home__heroctas .wptm-home__btn,
	.wptm-home__hero--style-floating .wptm-home__heroctas .wptm-home__btn {
		flex: 1 1 100%;
	}

	.wptm-home__hero--style-split .wptm-home__herobadges,
	.wptm-home__hero--style-mesh .wptm-home__herobadges,
	.wptm-home__hero--style-floating .wptm-home__herobadges {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		align-items: start;
		gap: 10px;
	}

	.wptm-home__spotlight {
		min-height: 0;
		aspect-ratio: 1;
		border-radius: 19px;
	}

	.wptm-home__spotoverlay {
		inset: auto 16px 16px;
		padding: 0;
	}

	.wptm-home__spotfacts > span {
		padding-inline-end: 10px;
		margin-inline-end: 10px;
	}

	.wptm-home__hero--style-mesh {
		min-height: 520px;
	}

	.wptm-home__hero--style-mesh .wptm-home__heroinner {
		padding-block-start: 54px;
	}

	.wptm-home__hero--style-mesh .wptm-home__herocopy {
		padding-inline: 6px;
	}

	.wptm-home__floatstars {
		display: none;
	}

	.wptm-home__mesh > span {
		filter: blur(38px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.wptm-home__mesh > span,
	.wptm-home__floatstar {
		animation: none;
	}

	.wptm-home__spotimg,
	.wptm-home__floatcard,
	.wptm-home__videocontrol,
	.wptm-home__heroctaicon {
		transition: none;
	}

	a.wptm-home__spotlight:hover .wptm-home__spotimg,
	a.wptm-home__spotlight:focus-visible .wptm-home__spotimg,
	a.wptm-home__floatcard:hover,
	a.wptm-home__floatcard:focus-visible,
	.wptm-home__btn--primary:hover .wptm-home__heroctaicon {
		transform: none;
	}

	.wptm-home__floatlayer a.wptm-home__floatcard:hover,
	.wptm-home__floatlayer a.wptm-home__floatcard:focus-visible {
		transform: none;
	}

	[dir="rtl"] .wptm-home__btn--primary:hover .wptm-home__heroctaicon {
		transform: scaleX(-1);
	}
}

@media print {
	.wptm-home__videocontrols,
	.wptm-home__floatlayer,
	.wptm-home__floatstars {
		display: none;
	}

	.wptm-home__mesh > span {
		animation: none;
	}

	.wptm-home__platforms--motion {
		-webkit-mask-image: none;
		mask-image: none;
	}

	.wptm-home__platforms--motion .wptm-home__platformtrack,
	.wptm-home__platforms--motion .wptm-home__platformset {
		width: 100%;
		min-width: 0;
		animation: none;
	}

	.wptm-home__platforms--motion .wptm-home__platformset {
		flex-wrap: wrap;
	}

	.wptm-home__platforms--motion .wptm-home__platformset[aria-hidden="true"] {
		display: none;
	}
}

/* --- Introduction video ----------------------------------------------- */

/* Typography stays inherited from the active site. This block owns only
   the section's layout, proportions and video interaction. */
.wptm-home__section--video {
	/*
	 * The band reaches both edges of the window without leaving the
	 * container: the ground is painted outward as a spread shadow and the
	 * box is clipped to the page's width, so no 100vw measure is involved
	 * and a scrollbar can never turn into sideways scroll.
	 */
	--home-video-ground: #f8f7f4;
	position: relative;
	margin-block-start: calc(clamp(28px, 4vw, 64px) * var(--wptm-density, 1));
	padding-block: var(--home-gap);
	background: var(--home-video-ground);
	box-shadow: 0 0 0 100vmax var(--home-video-ground);
	clip-path: inset(0 -100vmax);
}

@supports (color: color-mix(in srgb, red 50%, transparent)) {
	.wptm-home__section--video {
		--home-video-ground: color-mix(in srgb, var(--wptm-accent) 4%, #f8f7f4);
	}
}

/* The band sits on the section before it with the page's own rhythm, and
   the CTA that may follow it keeps its air. */
.wptm-home__section--video + .wptm-home__section {
	padding-block-start: var(--home-gap);
}

.wptm-home__videointro {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
	align-items: center;
	gap: clamp(34px, 5vw, 64px);
}

.wptm-home__videocopy {
	min-width: 0;
}

.wptm-home__videotitle {
	max-width: 18ch;
	margin: 0 0 18px;
	font-size: clamp(1.85rem, 3.35vw, 2.9rem);
	font-weight: 750;
	line-height: 1.12;
	letter-spacing: -.025em;
	color: var(--home-ink);
	text-wrap: balance;
}

.wptm-home__videotext {
	max-width: 52ch;
	margin: 0 0 26px;
	font-size: clamp(.98rem, 1.35vw, 1.08rem);
	line-height: 1.75;
	color: var(--home-muted);
	text-wrap: pretty;
}

.wptm-home__videobadges {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.wptm-home__videobadge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 42px;
	padding: 9px 14px;
	border: 1px solid rgba(0, 0, 0, .09);
	border-color: color-mix(in srgb, var(--home-line) 88%, transparent);
	border-radius: 999px;
	background: rgba(255, 255, 255, .9);
	box-shadow: 0 8px 20px -18px rgba(20, 28, 38, .55);
	font-size: .82rem;
	font-weight: 650;
	line-height: 1.25;
	color: var(--home-ink);
}

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

.wptm-home__videobadgeicon .wptm-icon {
	display: block;
	margin: 0;
}

.wptm-home__videomedia {
	position: relative;
	min-width: 0;
	padding: 0 12px 12px 0;
}

.wptm-home__videomedia::after {
	content: "";
	position: absolute;
	inset: 12px 0 0 12px;
	z-index: 0;
	border: 1px solid rgba(184, 133, 58, .28);
	border-color: color-mix(in srgb, var(--wptm-accent) 28%, transparent);
	border-radius: var(--wptm-radius-lg);
	pointer-events: none;
}

/* A thin white edge and one soft shadow: the picture is the point. */
.wptm-home__videoframe {
	position: relative;
	z-index: 1;
	isolation: isolate;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border: 3px solid #fff;
	border-radius: var(--wptm-radius-lg);
	background: #17212c;
	box-shadow: var(--wptm-shadow-2);
}

.wptm-home__introvideo {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: #17212c;
	object-fit: cover;
}

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

.wptm-home__videooverlay {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin: 0;
	padding: 20px;
	border: 0;
	background: linear-gradient(180deg, rgba(8, 15, 24, .05), rgba(8, 15, 24, .44));
	color: #fff;
	cursor: pointer;
	transition: opacity .28s ease, background-color .28s ease;
}

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

.wptm-home__videoframe.is-playing .wptm-home__videooverlay {
	opacity: 0;
	pointer-events: none;
}

.wptm-home__videoplay {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 74px;
	height: 74px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .96);
	color: var(--wptm-accent-dark, var(--wptm-accent));
	/* One still ring, not a pulse: a looping halo is the kind of motion a
	   reader learns to ignore and a sensitive one cannot. */
	box-shadow: 0 0 0 8px rgba(255, 255, 255, .22), 0 12px 30px rgba(8, 15, 24, .28);
	transition: transform var(--wptm-transition);
}

.wptm-home__videoplay .wptm-icon {
	display: block;
	margin-inline-start: 2px;
}

.wptm-home__videooverlay:hover .wptm-home__videoplay {
	transform: scale(1.06);
}

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

.wptm-home__videoplaylabel {
	font-size: .72rem;
	font-weight: 750;
	letter-spacing: .18em;
	text-transform: uppercase;
	text-shadow: 0 2px 10px rgba(8, 15, 24, .4);
}

[dir="rtl"] .wptm-home__videomedia {
	padding: 0 0 12px 12px;
}

[dir="rtl"] .wptm-home__videomedia::after {
	inset: 12px 12px 0 0;
}

@media (max-width: 1000px) {
	.wptm-home__videointro {
		grid-template-columns: 1fr;
	}

	.wptm-home__videomedia {
		order: -1;
	}

	.wptm-home__videocopy {
		text-align: center;
	}

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

	.wptm-home__videotitle,
	.wptm-home__videotext {
		margin-inline: auto;
	}

	.wptm-home__videobadges {
		justify-content: center;
	}
}

@media (max-width: 640px) {
	.wptm-home__section--video {
		margin-block-start: clamp(22px, 7vw, 36px);
		padding-block: clamp(48px, 12vw, 64px);
	}

	.wptm-home__videomedia {
		padding: 0 8px 8px 0;
	}

	[dir="rtl"] .wptm-home__videomedia {
		padding: 0 0 8px 8px;
	}

	.wptm-home__videomedia::after {
		inset: 8px 0 0 8px;
		border-radius: var(--wptm-radius-media);
	}

	[dir="rtl"] .wptm-home__videomedia::after {
		inset: 8px 8px 0 0;
	}

	.wptm-home__videoframe {
		border-width: 2px;
		border-radius: var(--wptm-radius-media);
	}

	.wptm-home__videoplay {
		width: 62px;
		height: 62px;
	}

	.wptm-home__videoplaylabel {
		font-size: .66rem;
		letter-spacing: .14em;
	}
}

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

	.wptm-home__videooverlay,
	.wptm-home__videoplay {
		transition: none;
	}

	.wptm-home__videooverlay:hover .wptm-home__videoplay {
		transform: none;
	}
}

@media print {
	.wptm-home__videooverlay {
		display: none;
	}
}


/* Density, chosen in Settings and carried by a class on the body: one dial
   that every band's spacing is multiplied by. Balanced needs no class. */
body.wptm-density--compact .wptm-home {
	--wptm-density: .85;
}

body.wptm-density--spacious .wptm-home {
	--wptm-density: 1.2;
}

/* Arabic headings: joined letters take no tracking, and a display face at
   this size needs a touch more leading than the Latin setting gives it. */
.wptm-home__herotitle:lang(ar),
.wptm-home__title:lang(ar),
.wptm-home__ctatitle:lang(ar),
.wptm-home__videotitle:lang(ar),
[dir="rtl"] .wptm-home__herotitle,
[dir="rtl"] .wptm-home__title,
[dir="rtl"] .wptm-home__ctatitle,
[dir="rtl"] .wptm-home__videotitle {
	letter-spacing: 0;
	line-height: 1.28;
}

/* =========================================================================
 * Signature tour (2.9.2).
 *
 * One card in two halves. The photograph fills the start half to the card's
 * edges; the story reads down the end half and closes on a foot where the
 * price and the button stand together, the price printed once. A hairline
 * frame and a quiet lift, no decoration behind the copy. Every colour and
 * radius comes from the homepage tokens, so the brand identity (and the
 * square corner shape) reaches it without a rule of its own.
 * ====================================================================== */

.wptm-home__sig {
	/* --sig-paper, --sig-line and --sig-radius are read, not declared: the
	   section (and brand.css under a brand identity) sets them. */
	--sig-pad: clamp(24px, 3.4vw, 48px);

	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: stretch;
	border: 1px solid var(--sig-line, var(--home-line, rgba(15, 20, 28, .1)));
	border-radius: var(--sig-radius, var(--wptm-radius-lg, 16px));
	background: var(--sig-paper, #fff);
	box-shadow: 0 1px 2px rgba(15, 20, 28, .04), 0 22px 44px -36px rgba(15, 20, 28, .32);
	overflow: hidden;
}

.wptm-home__sigpic {
	position: relative;
	display: block;
	min-height: 100%;
	background: color-mix(in srgb, var(--wptm-accent) 10%, #ece6db);
	color: var(--wptm-accent);
	overflow: hidden;
}

.wptm-home__sigimg {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.2s cubic-bezier(.2, .6, .2, 1);
}

.wptm-home__sig:hover .wptm-home__sigpic:not(.wptm-home__sigpic--slides) .wptm-home__sigimg {
	transform: scale(1.025);
}

.wptm-home__sigpattern {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

/* The photographs turn (2.9.2): stacked, each dissolving into the next with
   a slow push in; home.js moves the mark only while the card is on screen,
   never for a visitor who asked for reduced motion. */
.wptm-home__sigpic--slides .wptm-home__sigimg {
	opacity: 0;
	transition: opacity 1.2s ease, transform 1.2s cubic-bezier(.2, .6, .2, 1);
}

.wptm-home__sigpic--slides .wptm-home__sigimg.is-active {
	opacity: 1;
	animation: wptm-home-sigdrift 7.5s ease-out both;
}

/* The outgoing photograph keeps its push (same animation, so it carries on
   rather than snapping back) while it fades. */
.wptm-home__sigpic--slides .wptm-home__sigimg.is-leaving {
	animation: wptm-home-sigdrift 7.5s ease-out both;
}

@keyframes wptm-home-sigdrift {
	from {
		transform: scale(1);
	}

	to {
		transform: scale(1.06);
	}
}

.wptm-home__sigdots {
	position: absolute;
	inset-inline-start: 18px;
	inset-block-end: 18px;
	z-index: 2;
	display: flex;
	gap: 6px;
	padding: 6px 8px;
	border-radius: 999px;
	background: rgba(15, 20, 28, .32);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}

.wptm-home__sigdots span {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .55);
	transition: width .35s ease, background-color .35s ease;
}

.wptm-home__sigdots span.is-on {
	width: 18px;
	border-radius: 3px;
	background: #fff;
}

/* Square corners keep the dots round but the current mark is a bar. */
.wptm-brand--square .wptm-home__sigdots span.is-on {
	border-radius: 0 !important;
}

@media (prefers-reduced-motion: reduce) {
	.wptm-home__sigpic--slides .wptm-home__sigimg,
	.wptm-home__sigpic--slides .wptm-home__sigimg.is-active {
		transition: none;
		animation: none;
	}
}

.wptm-home__sigbody {
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: var(--sig-pad);
}

.wptm-home__sigeyebrow {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 12px;
	margin: 0 0 16px;
	font-size: var(--wptm-fs-eyebrow, 12px);
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--wptm-accent-dark, var(--wptm-accent));
}

.wptm-home__sigeyebrow::before {
	content: "";
	flex: none;
	width: 28px;
	height: 2px;
	background: var(--wptm-accent);
}

.wptm-home__sigtype {
	padding-inline-start: 12px;
	border-inline-start: 1px solid currentColor;
	color: var(--home-muted);
	font-weight: 500;
}

.wptm-home__sigeyebrow:lang(ar),
[dir="rtl"] .wptm-home__sigeyebrow {
	letter-spacing: normal;
}

.wptm-home__sigtitle {
	max-width: 24ch;
	margin: 0 0 14px;
	font-size: clamp(1.65rem, 1.05rem + 1.5vw, 2.4rem);
	font-weight: 600;
	line-height: 1.14;
	letter-spacing: -.015em;
	text-wrap: balance;
	overflow-wrap: break-word;
	color: var(--home-ink);
}

[dir="rtl"] .wptm-home__sigtitle {
	letter-spacing: normal;
	line-height: 1.32;
}

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

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

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

/* Three lines at most: the lead invites, the tour page tells. */
.wptm-home__siglead {
	display: -webkit-box;
	margin: 0 0 22px;
	overflow: hidden;
	font-size: 1.02rem;
	line-height: 1.65;
	color: var(--home-muted);
	text-wrap: pretty;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
}

.wptm-home__sigpoints {
	display: grid;
	gap: 10px;
	margin: 0 0 26px;
	padding: 0;
	list-style: none;
}

.wptm-home__sigpoints li {
	display: grid;
	grid-template-columns: 22px minmax(0, 1fr);
	gap: 12px;
	align-items: start;
	margin: 0;
	padding: 0;
	font-size: .98rem;
	line-height: 1.5;
	color: var(--home-ink);
}

.wptm-home__sigpoints li::marker {
	content: "";
}

.wptm-home__sigcheck {
	display: inline-grid;
	place-items: center;
	width: 22px;
	height: 22px;
	margin-block-start: 1px;
	color: var(--wptm-accent);
}

/* The facts: one row, a hairline above and below, cells divided by a
   hairline; the label with its icon over the value. */
.wptm-home__sigfacts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 140px), 1fr));
	margin: 0 0 26px;
	border-block: 1px solid var(--sig-line, var(--home-line, rgba(15, 20, 28, .1)));
}

.wptm-home__sigfacts > div {
	min-width: 0;
	margin: 0;
	padding: 14px 18px;
	box-shadow: inset 1px 0 0 var(--sig-line, var(--home-line, rgba(15, 20, 28, .1)));
}

[dir="rtl"] .wptm-home__sigfacts > div {
	box-shadow: inset -1px 0 0 var(--sig-line, var(--home-line, rgba(15, 20, 28, .1)));
}

.wptm-home__sigfacts > div:first-child {
	padding-inline-start: 0;
	box-shadow: none;
}

.wptm-home__sigfacts dt {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0 0 6px;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--home-muted);
}

.wptm-home__sigfacticon {
	display: inline-flex;
	color: var(--wptm-accent);
}

.wptm-home__sigfacts dt:lang(ar),
[dir="rtl"] .wptm-home__sigfacts dt {
	letter-spacing: normal;
}

.wptm-home__sigfacts dd {
	margin: 0;
	font-size: .98rem;
	font-weight: 600;
	line-height: 1.35;
	color: var(--home-ink);
	overflow-wrap: break-word;
}

/* The foot: the price on the start side, the button on the end, at the
   bottom of the column whatever the length of the copy above. */
.wptm-home__sigfoot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px 24px;
	margin-block-start: auto;
}

.wptm-home__sigprice {
	display: flex;
	flex-direction: column;
	margin: 0;
	line-height: 1.1;
}

.wptm-home__sigfrom {
	margin: 0 0 4px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--home-muted);
}

[dir="rtl"] .wptm-home__sigfrom {
	letter-spacing: normal;
}

.wptm-home__sigprice b {
	font-size: clamp(1.5rem, 1.1rem + 1vw, 1.9rem);
	font-weight: 700;
	color: var(--home-ink);
}

.wptm-home__sigprice .wptm-group-note {
	margin-block-start: 6px;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.35;
	color: var(--home-muted);
}

.wptm-home__sigcta {
	gap: 10px;
	padding-inline: 28px;
	transition: background-color var(--wptm-transition), box-shadow var(--wptm-transition), transform var(--wptm-transition);
}

.wptm-home__sigcta:focus-visible,
.wptm-home__spotcta:focus-visible {
	outline: 2px solid var(--home-ink);
	outline-offset: 3px;
}

.wptm-home__spotarrow {
	display: inline-flex;
	line-height: 0;
	transition: transform var(--wptm-transition);
}

.wptm-home__sigcta:hover .wptm-home__spotarrow,
.wptm-home__spotcta:hover .wptm-home__spotarrow {
	transform: translateX(3px);
}

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

[dir="rtl"] .wptm-home__sigcta:hover .wptm-home__spotarrow,
[dir="rtl"] .wptm-home__spotcta:hover .wptm-home__spotarrow {
	transform: scaleX(-1) translateX(3px);
}

/* Without a photograph the copy takes the whole card. */
.wptm-home__sig--noimage {
	grid-template-columns: 1fr;
}

.wptm-home__sig--noimage .wptm-home__sigpic {
	display: none;
}

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

	.wptm-home__sigpic {
		min-height: 0;
		aspect-ratio: 16 / 10;
	}

	.wptm-home__sigbody {
		padding: 22px 20px 24px;
	}
}

@media (max-width: 520px) {
	.wptm-home__sigpic {
		aspect-ratio: 4 / 3;
	}

	/* On a phone the facts are rows: the label at the start, the value at
	   the end, a hairline between them. */
	.wptm-home__sigfacts {
		grid-template-columns: 1fr;
	}

	.wptm-home__sigfacts > div,
	.wptm-home__sigfacts > div:first-child {
		display: flex;
		align-items: baseline;
		justify-content: space-between;
		gap: 16px;
		padding: 12px 0;
		box-shadow: none;
	}

	.wptm-home__sigfacts > div + div {
		border-block-start: 1px solid var(--sig-line, var(--home-line, rgba(15, 20, 28, .1)));
	}

	.wptm-home__sigfacts dt {
		flex: none;
		margin: 0;
	}

	.wptm-home__sigfacts dd {
		text-align: end;
	}

	.wptm-home__sigfoot {
		align-items: stretch;
		flex-direction: column;
	}

	.wptm-home__sigcta {
		width: 100%;
		justify-content: center;
	}
}

/* =========================================================================
 * Featured tours — Editorial Spotlight.
 *
 * One large card and two horizontal cards beside it, 58/42 on a wide
 * screen; the large card alone when there is one tour, the large card with
 * one beside it when there are two; more than three continue in the
 * ordinary grid underneath. All cards are articles on warm paper with a
 * fine border and a soft shadow; text is always HTML over the image, never
 * in it, on a low dark wash for reading.
 * ====================================================================== */

.wptm-home__section--featured-spotlight .wptm-home__wrap {
	max-width: 1320px;
}

.wptm-home__spot {
	--spot-paper: var(--home-cream, color-mix(in srgb, var(--wptm-accent) 5%, #fff));
	--spot-line: var(--home-line);
	--spot-radius: clamp(16px, 1.6vw, 20px);
	--spot-shadow: 0 1px 2px rgba(15, 20, 28, .04), 0 16px 36px -30px rgba(15, 20, 28, .3);

	display: grid;
	grid-template-columns: minmax(0, 58fr) minmax(0, 42fr);
	gap: clamp(18px, 2vw, 28px);
	align-items: stretch;
}

.wptm-home__spot--1 {
	grid-template-columns: minmax(0, 1fr);
	max-width: 900px;
	margin-inline: auto;
}

.wptm-home__spotside {
	display: grid;
	grid-template-rows: repeat(2, minmax(0, 1fr));
	gap: clamp(18px, 2vw, 24px);
	min-width: 0;
}

.wptm-home__spot--2 .wptm-home__spotside {
	grid-template-rows: minmax(0, 1fr);
}

.wptm-home__spotmain,
.wptm-home__spotcard {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	margin: 0;
	border: 1px solid var(--spot-line);
	border-radius: var(--spot-radius);
	background: var(--spot-paper);
	box-shadow: var(--spot-shadow);
	overflow: hidden;
	transition: box-shadow var(--wptm-transition), transform var(--wptm-transition);
}

.wptm-home__spotmain:hover,
.wptm-home__spotcard:hover {
	box-shadow: 0 2px 4px rgba(15, 20, 28, .05), 0 22px 44px -30px rgba(15, 20, 28, .4);
	transform: translateY(-2px);
}

.wptm-home__spotlink {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	min-width: 0;
	color: inherit;
	text-decoration: none;
}

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

.wptm-home__spotmedia {
	position: relative;
	display: block;
	min-width: 0;
	background: color-mix(in srgb, var(--wptm-accent) 12%, #e9e4da);
	color: var(--wptm-accent);
	overflow: hidden;
}

/* The picture fills whatever height its frame is given — the large card's
   frame grows with the column beside it — so it is taken out of flow and
   pinned to the frame's edges. Said here, for these cards, rather than
   inherited by accident from the hero's rule of the same name. */
.wptm-home__spotlink .wptm-home__spotimg,
.wptm-home__spotlink .wptm-home__spotpattern {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .8s ease;
}

.wptm-home__spotlink:hover .wptm-home__spotimg {
	transform: scale(1.03);
}

.wptm-home__spotblank {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: .6;
}

/* The duration pill, the place line, the title: shared between the large
 * card and the side cards, coloured by where they sit. */
.wptm-home__spotdays {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 12px;
	border: 1px solid var(--spot-line);
	border-radius: 999px;
	background: rgba(255, 252, 247, .94);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--home-ink);
	line-height: 1;
	white-space: nowrap;
	max-width: 100%;
}

.wptm-home__spotdays > span,
.wptm-home__spotplace > span {
	display: inline-flex;
	line-height: 0;
	color: var(--wptm-accent);
}

.wptm-home__spotplace {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--wptm-accent-dark);
}

.wptm-home__spotdays:lang(ar),
.wptm-home__spotplace:lang(ar),
[dir="rtl"] .wptm-home__spotdays,
[dir="rtl"] .wptm-home__spotplace {
	letter-spacing: normal;
}

.wptm-home__spottitle {
	margin: 0;
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: -.01em;
	text-wrap: balance;
	overflow-wrap: anywhere;
}

.wptm-home__spotlead {
	margin: 0;
	line-height: 1.55;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* --- The large card --- */
.wptm-home__spotmain .wptm-home__spotmedia {
	flex: 1 1 auto;
	aspect-ratio: 16 / 10;
	min-height: 320px;
}

/* The top corner of the picture, on every width. It used to hang a fixed
   distance above the foot, and the card's height follows the column
   beside it, so on some heights it landed on the title. */
.wptm-home__spotmain .wptm-home__spotdays {
	position: absolute;
	z-index: 2;
	inset-block-start: clamp(16px, 2vw, 24px);
	inset-block-end: auto;
	inset-inline-start: clamp(16px, 2vw, 24px);
}

.wptm-home__spotcopy {
	position: absolute;
	inset-inline: 0;
	inset-block-end: 0;
	z-index: 1;
	display: grid;
	gap: 10px;
	padding: clamp(18px, 2.2vw, 28px);
	padding-block-start: 80px;
	color: #fff;
	background: linear-gradient(180deg, rgba(20, 22, 26, 0) 0%, rgba(20, 22, 26, .62) 45%, rgba(20, 22, 26, .82) 100%);
}

.wptm-home__spotcopy .wptm-home__spotplace,
.wptm-home__spotcopy .wptm-home__spotplace > span {
	color: color-mix(in srgb, var(--wptm-accent) 60%, #fff);
}

.wptm-home__spotmain .wptm-home__spottitle {
	font-size: clamp(1.5rem, 2.6vw, 2.25rem);
	color: #fff;
	text-shadow: 0 1px 2px rgba(0, 0, 0, .25);
}

/* A title is two lines on the large card and three on a side card, as it
   is on the grid's cards: one long title stretched a side card and the
   card beside it with it. */
.wptm-home__spotmain .wptm-home__spottitle,
.wptm-home__spotcard .wptm-home__spottitle {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.wptm-home__spotcard .wptm-home__spottitle {
	-webkit-line-clamp: 3;
}

.wptm-home__spotmain .wptm-home__spotlead {
	max-width: 62ch;
	font-size: 1rem;
	color: rgba(255, 255, 255, .88);
}

.wptm-home__spotfoot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px 26px;
	padding: clamp(14px, 1.8vw, 22px) clamp(18px, 2.2vw, 28px);
	border-block-start: 1px solid var(--spot-line);
}

.wptm-home__spotfact {
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
	padding-inline-end: 26px;
	border-inline-end: 1px solid var(--spot-line);
}

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

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

.wptm-home__spotfactcopy {
	display: grid;
	gap: 2px;
	min-width: 0;
}

.wptm-home__spotfactcopy b {
	font-size: .98rem;
	font-weight: 600;
	color: var(--home-ink);
	line-height: 1.2;
}

.wptm-home__spotfactcopy small {
	font-size: .8rem;
	color: var(--home-muted);
}

.wptm-home__spotprice {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px;
	color: var(--home-ink);
}

.wptm-home__spotfrom,
.wptm-home__spotbasis {
	font-size: .85rem;
	color: var(--home-muted);
}

.wptm-home__spotprice strong {
	font-size: 1.45rem;
	font-weight: 500;
	line-height: 1;
	color: var(--wptm-accent-dark, var(--wptm-accent));
}

.wptm-home__spotfact--price .wptm-home__spotprice {
	flex-direction: column;
	align-items: flex-start;
	gap: 2px;
}

.wptm-home__spotprice--quote {
	font-weight: 600;
	color: var(--wptm-accent-dark, var(--wptm-accent));
}

.wptm-home__spotcta {
	margin-inline-start: auto;
}

/* --- The side cards --- */
.wptm-home__spotcard .wptm-home__spotlink {
	flex-direction: row;
	height: 100%;
}

.wptm-home__spotcard .wptm-home__spotmedia {
	flex: 0 0 44%;
	min-height: 200px;
}

.wptm-home__spotbody {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	flex: 1 1 auto;
	min-width: 0;
	padding: clamp(16px, 1.8vw, 24px);
}

.wptm-home__spotcard .wptm-home__spottitle {
	font-size: clamp(1.15rem, 1.6vw, 1.45rem);
	color: var(--home-ink);
}

.wptm-home__spotcard .wptm-home__spotlead {
	font-size: .92rem;
	color: var(--home-muted);
}

.wptm-home__spotcardfoot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	margin-block-start: auto;
	padding-block-start: 12px;
	border-block-start: 1px solid var(--spot-line);
}

.wptm-home__spotcard .wptm-home__spotprice {
	flex-direction: column;
	align-items: flex-start;
	gap: 2px;
}

.wptm-home__spotcard .wptm-home__spotprice strong {
	font-size: 1.3rem;
}

.wptm-home__spotgo {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 44px;
	height: 44px;
	border: 1.5px solid var(--wptm-accent);
	border-radius: 50%;
	color: var(--wptm-accent);
	line-height: 0;
	transition: background var(--wptm-transition), color var(--wptm-transition);
}

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

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

.wptm-home__spotmore {
	margin-block-start: clamp(18px, 2vw, 28px);
}

@media (max-width: 1024px) {
	.wptm-home__spot {
		grid-template-columns: 1fr;
	}

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

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

	.wptm-home__spotcard .wptm-home__spotlink {
		flex-direction: column;
	}

	.wptm-home__spotcard .wptm-home__spotmedia {
		flex: none;
		aspect-ratio: 16 / 10;
		min-height: 0;
	}
}

@media (max-width: 767px) {
	.wptm-home__spotside {
		grid-template-columns: 1fr;
	}

	.wptm-home__spotmain .wptm-home__spotmedia {
		aspect-ratio: 4 / 3;
		min-height: 0;
	}

	.wptm-home__spotmain .wptm-home__spotdays {
		inset-block-start: 14px;
		inset-block-end: auto;
		inset-inline-start: 14px;
	}

	.wptm-home__spotcopy {
		padding: 16px;
		padding-block-start: 70px;
	}

	.wptm-home__spotfoot {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 14px;
	}

	.wptm-home__spotfact,
	.wptm-home__spotfact:last-of-type {
		padding-inline-end: 0;
		border-inline-end: 0;
	}

	.wptm-home__spotcta {
		grid-column: 1 / -1;
		width: 100%;
		margin-inline-start: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wptm-home__spotimg,
	.wptm-home__spotmain,
	.wptm-home__spotcard,
	.wptm-home__spotarrow,
	.wptm-home__spotgo {
		transition: none;
	}

	.wptm-home__spotlink:hover .wptm-home__spotimg,
	.wptm-home__spotmain:hover,
	.wptm-home__spotcard:hover {
		transform: none;
	}
}

/* ==========================================================================
 * Balanced grids and a few desktop refinements (1.8.5).
 *
 * The tile grids counted columns, not items: six destinations in four
 * columns left two orphans on a second row, four tour types in three left
 * one. The renderer already prints the count on the list; the count now
 * picks the columns, on desktop only — the tablet and phone rules below
 * 1000px are untouched.
 * ====================================================================== */

@media (min-width: 1001px) {
	.wptm-home .wptm-home__tiles--style-cards.wptm-home__tiles--count-2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.wptm-home .wptm-home__tiles--style-cards.wptm-home__tiles--count-3,
	.wptm-home .wptm-home__tiles--style-cards.wptm-home__tiles--count-6,
	.wptm-home .wptm-home__tiles--style-cards.wptm-home__tiles--count-9 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.wptm-home .wptm-home__tiles--style-cards.wptm-home__tiles--count-4,
	.wptm-home .wptm-home__tiles--style-cards.wptm-home__tiles--count-8 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	/* Three across, the portrait tile is squarer, so two rows do not tower. */
	.wptm-home .wptm-home__tiles--destinations.wptm-home__tiles--style-cards.wptm-home__tiles--count-3 .wptm-home__tile a,
	.wptm-home .wptm-home__tiles--destinations.wptm-home__tiles--style-cards.wptm-home__tiles--count-6 .wptm-home__tile a,
	.wptm-home .wptm-home__tiles--destinations.wptm-home__tiles--style-cards.wptm-home__tiles--count-9 .wptm-home__tile a {
		aspect-ratio: 5 / 4;
	}

	/* Five: three across, then two wider ones filling the second row. */
	.wptm-home .wptm-home__tiles--style-cards.wptm-home__tiles--count-5 {
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}

	.wptm-home .wptm-home__tiles--style-cards.wptm-home__tiles--count-5 > .wptm-home__tile {
		grid-column: span 2;
	}

	.wptm-home .wptm-home__tiles--style-cards.wptm-home__tiles--count-5 > .wptm-home__tile:nth-child(n + 4) {
		grid-column: span 3;
	}

	/* Seven: four across, then three wider ones. */
	.wptm-home .wptm-home__tiles--style-cards.wptm-home__tiles--count-7 {
		grid-template-columns: repeat(12, minmax(0, 1fr));
	}

	.wptm-home .wptm-home__tiles--style-cards.wptm-home__tiles--count-7 > .wptm-home__tile {
		grid-column: span 3;
	}

	.wptm-home .wptm-home__tiles--style-cards.wptm-home__tiles--count-7 > .wptm-home__tile:nth-child(n + 5) {
		grid-column: span 4;
	}

	/*
	 * Six photographs: one large and five small make a complete three by
	 * three, where the four-column pattern left the sixth tile alone
	 * under a full row.
	 */
	.wptm-home .wptm-home__gallery--6 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	/*
	 * The search button reads on one line. Its grid track was a share of
	 * the bar with a 172px floor, and a label two words long broke over
	 * two lines inside it while the fields kept their room; the track now
	 * takes the label's width and the fields share what is left.
	 */
	.wptm-home .wptm-home__search--bar {
		grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
	}

	.wptm-home .wptm-home__search--bar.wptm-home__search--fields-1 {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.wptm-home .wptm-home__search--bar.wptm-home__search--fields-2 {
		grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
	}

	.wptm-home .wptm-home__search--bar.wptm-home__search--fields-3 {
		grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
	}

	.wptm-home .wptm-home__search--bar .wptm-home__searchbtn {
		white-space: nowrap;
	}

	.wptm-home .wptm-home__search--bar .wptm-home__searchbtnlabel {
		overflow-wrap: normal;
	}
}

/* A figure on the trust bar is a figure: larger than its caption. */
.wptm-home .wptm-home__trust--bar .wptm-home__trustvalue {
	font-size: clamp(1.35rem, 1.1rem + .8vw, 1.9rem);
	font-weight: 800;
	line-height: 1.05;
	margin-bottom: 2px;
}

.wptm-home .wptm-home__trust--bar .wptm-home__trusttitle {
	font-size: .9rem;
	font-weight: 600;
	color: var(--home-muted);
}

/*
 * The sixth of six photographs is an ordinary tile on any grid of three
 * or four columns; on a phone's two columns a big tile fills the row, so
 * there it stays big.
 */
.wptm-home .wptm-home__gallery--6 .wptm-home__shot:nth-child(6) {
	grid-column: auto;
	grid-row: auto;
}

@media (max-width: 640px) {
	.wptm-home .wptm-home__gallery--6 .wptm-home__shot:nth-child(6) {
		grid-column: span 2;
		grid-row: span 2;
	}
}

/* Custom experiences preserve the complete artwork. */
.wptm-home__section--types .wptm-experiences { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.wptm-home__section--types .wptm-experiences__card { display:block; min-inline-size:0; color:inherit; text-decoration:none; border:1px solid #e7e3dc; border-radius:16px; overflow:hidden; background:#fff; }
.wptm-home__section--types .wptm-experiences__media { aspect-ratio:4/3; background:#f6f5f1; display:grid; place-items:center; }
.wptm-home__section--types .wptm-experiences__media img { display:block; inline-size:100%; block-size:100%; max-block-size:100%; aspect-ratio:4/3; object-fit:contain; object-position:center; transform:none; }
.wptm-home__section--types .wptm-experiences__card h3 { margin:0; padding:18px; font:inherit; font-weight:600; overflow-wrap:anywhere; text-align:center; }
.wptm-home__section--types a.wptm-experiences__card:focus-visible { outline:3px solid currentColor; outline-offset:4px; }
.wptm-home__section--featured article { min-inline-size:0; max-inline-size:100%; }
.wptm-home__spotview { font-size:14px; font-weight:600; }
.wptm-home__section--featured .wptm-card__cta::before,
.wptm-home__section--featured .wptm-card__cta::after,
.wptm-home__spotcta::before,.wptm-home__spotcta::after,
.wptm-ticket__cta::before,.wptm-ticket__cta::after { content:none; }
@media(max-width:1000px) { .wptm-home__section--types .wptm-experiences { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:760px) { .wptm-home__section--types .wptm-experiences { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; } }
@media(max-width:380px) { .wptm-home__section--types .wptm-experiences { grid-template-columns:minmax(0,1fr); } }

.wptm-home__section--types .wptm-experiences--cover .wptm-experiences__media img { object-fit:cover; }
.wptm-home__section--types .wptm-experiences__description { margin:0; padding:0 18px 18px; text-align:center; font-size:.9em; line-height:1.6; color:inherit; overflow-wrap:anywhere; }
.wptm-home__section--types .wptm-experiences__card { transition:border-color .18s ease; }
.wptm-home__section--types a.wptm-experiences__card:hover { border-color:currentColor; }

/* --- A section's own spacing ---------------------------------------------
   Chosen per section on the builder, over the page's density: the gap is
   redefined on the section itself, so every rhythm rule above — which all
   read --home-gap on the section — follows it. */
.wptm-home__section--space-compact {
	--home-gap: calc(clamp(48px, 7vw, 104px) * var(--wptm-density, 1) * .55);
}

.wptm-home__section--space-spacious {
	--home-gap: calc(clamp(48px, 7vw, 104px) * var(--wptm-density, 1) * 1.45);
}

/* --- Closing call: split and card designs --------------------------------
   The band above is the original. These two stay inside the content width
   on the page's own ground, so they read as part of the page rather than
   as its end, and they never pull themselves down over the footer. */
.wptm-home__section--cta-split,
.wptm-home__section--cta-card {
	width: auto;
	max-width: none;
	margin-inline: 0;
	padding-block: calc(var(--home-gap) * .5) !important;
	color: var(--home-ink);
	background: none;
}

.wptm-home__section--cta-split::before,
.wptm-home__section--cta-card::before {
	content: none;
}

.wptm-home__section--cta-split:last-child,
.wptm-home__section--cta-card:last-child {
	margin-block-end: 0;
	padding-block-end: var(--home-gap) !important;
}

.wptm-home__section--cta-split .wptm-home__ctatitle,
.wptm-home__section--cta-card .wptm-home__ctatitle {
	color: var(--home-ink);
}

.wptm-home__section--cta-split .wptm-home__ctatext,
.wptm-home__section--cta-card .wptm-home__ctatext {
	color: var(--home-muted);
}

.wptm-home__section--cta-split .wptm-home__cta .wptm-home__btn--ghost,
.wptm-home__section--cta-card .wptm-home__cta .wptm-home__btn--ghost {
	border-color: var(--home-line);
	color: var(--home-ink);
}

.wptm-home__section--cta-split .wptm-home__cta .wptm-home__btn--ghost:hover,
.wptm-home__section--cta-card .wptm-home__cta .wptm-home__btn--ghost:hover {
	background: var(--home-cream);
}

/* Split: a photograph and the words, side by side, as one piece. */
.wptm-home__ctasplit {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	overflow: hidden;
	border-radius: var(--home-radius);
	background: var(--home-cream);
}

.wptm-home__ctamedia {
	min-height: 100%;
	margin: 0;
}

.wptm-home__ctaimg {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 320px;
	object-fit: cover;
}

.wptm-home__section--cta-split .wptm-home__cta {
	align-items: flex-start;
	justify-content: center;
	max-width: none;
	margin: 0;
	padding: clamp(28px, 4.5vw, 64px);
	text-align: start;
}

.wptm-home__section--cta-split .wptm-home__ctabtns {
	justify-content: flex-start;
}

/* Split without a photograph: the same words on the paper, with a rule of
   the site colour along the start edge. */
.wptm-home__section--cta-noimage .wptm-home__cta {
	border-inline-start: 4px solid var(--wptm-accent);
	border-radius: var(--home-radius);
	background: var(--home-cream);
}

/* Card: the words on one side, the buttons on the other. */
.wptm-home__section--cta-card .wptm-home__cta {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas:
		"eyebrow buttons"
		"title buttons"
		"text buttons";
	column-gap: clamp(24px, 4vw, 56px);
	align-items: center;
	max-width: none;
	padding: clamp(24px, 4vw, 48px);
	border: 1px solid var(--home-line);
	border-radius: var(--home-radius);
	background: #fff;
	box-shadow: var(--wptm-shadow-1);
	text-align: start;
}

.wptm-home__section--cta-card .wptm-home__eyebrow {
	grid-area: eyebrow;
}

.wptm-home__section--cta-card .wptm-home__ctatitle {
	grid-area: title;
}

.wptm-home__section--cta-card .wptm-home__ctatext {
	grid-area: text;
	margin-block-end: 0;
}

.wptm-home__section--cta-card .wptm-home__ctabtns {
	grid-area: buttons;
	flex-direction: column;
	align-items: stretch;
	justify-content: center;
}

@media (max-width: 760px) {
	.wptm-home__ctasplit {
		grid-template-columns: minmax(0, 1fr);
	}

	.wptm-home__ctaimg {
		min-height: 0;
		aspect-ratio: 16 / 10;
	}

	.wptm-home__section--cta-card .wptm-home__cta {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas:
			"eyebrow"
			"title"
			"text"
			"buttons";
		row-gap: 0;
	}

	.wptm-home__section--cta-card .wptm-home__ctabtns {
		margin-block-start: 20px;
	}
}

/* --- Headings on dark grounds (2.9.2) ------------------------------------ */
/* A theme that colours h1–h4 directly — commonly in its brand colour — beat
   the hero's and the dark bands' inherited white, and painted a green title
   over the photograph. On these grounds the headings take the ground's own
   colour. Two classes and an element: above a theme's ".entry-content h1",
   below any rule of this plugin that names a heading on purpose. */
.wptm-home :is(.wptm-home__hero--style-image, .wptm-home__hero--style-video, .wptm-home__hero--style-mesh, .wptm-home__hero--style-slider) :is(h1, h2),
.wptm-home :is(.wptm-home__section--cta, .wptm-home__section--ground-dark) :is(h1, h2, h3, h4) {
	color: inherit;
}

/* =============================================== Signature tour, ticket ===
 * 2.11.0, Homepage → Signature tour layout → Travel ticket (.wptm-home__sig--ticket). The
 * signature tour as a travel ticket: the photograph is its face, at one
 * fixed 4:3 frame whatever the shape of the files; a perforated stub holds
 * the name, two particulars and the fare. The notches are real holes (a
 * mask), so they show whatever ground the section stands on, and the shadow
 * follows them. The photographs dissolve slowly and settle rather than push,
 * and the mark under them fills with the time left on each.
 * ====================================================================== */
.wptm-home__sig--ticket {
	--tk-notch: 15px;
	--tk-r: var(--sig-radius, var(--wptm-radius-lg, 16px));

	grid-template-columns: minmax(0, 1.25fr) minmax(300px, 1fr);
	border: 0;
	background: none;
	box-shadow: none;
	overflow: visible;
	filter: drop-shadow(0 22px 34px rgba(26, 51, 42, .14)) drop-shadow(0 1px 2px rgba(26, 51, 42, .08));
}

.wptm-home__sig--ticket .wptm-home__sigpic {
	min-height: 0;
	aspect-ratio: 4 / 3;
	border-radius: var(--tk-r) 0 0 var(--tk-r);
	-webkit-mask: radial-gradient(circle var(--tk-notch) at 100% 0, #0000 calc(var(--tk-notch) - .5px), #000 var(--tk-notch)) top / 100% 51% no-repeat, radial-gradient(circle var(--tk-notch) at 100% 100%, #0000 calc(var(--tk-notch) - .5px), #000 var(--tk-notch)) bottom / 100% 51% no-repeat;
	mask: radial-gradient(circle var(--tk-notch) at 100% 0, #0000 calc(var(--tk-notch) - .5px), #000 var(--tk-notch)) top / 100% 51% no-repeat, radial-gradient(circle var(--tk-notch) at 100% 100%, #0000 calc(var(--tk-notch) - .5px), #000 var(--tk-notch)) bottom / 100% 51% no-repeat;
}

.wptm-home__sig--ticket .wptm-home__sigbody {
	position: relative;
	justify-content: center;
	padding: clamp(26px, 3vw, 40px) clamp(24px, 3vw, 40px) clamp(26px, 3vw, 40px) clamp(30px, 3.4vw, 46px);
	border-radius: 0 var(--tk-r) var(--tk-r) 0;
	background: var(--sig-paper, #fff);
	-webkit-mask: radial-gradient(circle var(--tk-notch) at 0 0, #0000 calc(var(--tk-notch) - .5px), #000 var(--tk-notch)) top / 100% 51% no-repeat, radial-gradient(circle var(--tk-notch) at 0 100%, #0000 calc(var(--tk-notch) - .5px), #000 var(--tk-notch)) bottom / 100% 51% no-repeat;
	mask: radial-gradient(circle var(--tk-notch) at 0 0, #0000 calc(var(--tk-notch) - .5px), #000 var(--tk-notch)) top / 100% 51% no-repeat, radial-gradient(circle var(--tk-notch) at 0 100%, #0000 calc(var(--tk-notch) - .5px), #000 var(--tk-notch)) bottom / 100% 51% no-repeat;
}

/* The perforation, between the two notches. */
.wptm-home__sig--ticket .wptm-home__sigbody::before {
	content: "";
	position: absolute;
	inset-block: calc(var(--tk-notch) + 8px);
	inset-inline-start: 0;
	border-inline-start: 2px dashed var(--sig-line, var(--home-line, rgba(15, 20, 28, .16)));
}

[dir="rtl"] .wptm-home__sig--ticket .wptm-home__sigpic {
	border-radius: 0 var(--tk-r) var(--tk-r) 0;
	-webkit-mask: radial-gradient(circle var(--tk-notch) at 0 0, #0000 calc(var(--tk-notch) - .5px), #000 var(--tk-notch)) top / 100% 51% no-repeat, radial-gradient(circle var(--tk-notch) at 0 100%, #0000 calc(var(--tk-notch) - .5px), #000 var(--tk-notch)) bottom / 100% 51% no-repeat;
	mask: radial-gradient(circle var(--tk-notch) at 0 0, #0000 calc(var(--tk-notch) - .5px), #000 var(--tk-notch)) top / 100% 51% no-repeat, radial-gradient(circle var(--tk-notch) at 0 100%, #0000 calc(var(--tk-notch) - .5px), #000 var(--tk-notch)) bottom / 100% 51% no-repeat;
}

[dir="rtl"] .wptm-home__sig--ticket .wptm-home__sigbody {
	border-radius: var(--tk-r) 0 0 var(--tk-r);
	-webkit-mask: radial-gradient(circle var(--tk-notch) at 100% 0, #0000 calc(var(--tk-notch) - .5px), #000 var(--tk-notch)) top / 100% 51% no-repeat, radial-gradient(circle var(--tk-notch) at 100% 100%, #0000 calc(var(--tk-notch) - .5px), #000 var(--tk-notch)) bottom / 100% 51% no-repeat;
	mask: radial-gradient(circle var(--tk-notch) at 100% 0, #0000 calc(var(--tk-notch) - .5px), #000 var(--tk-notch)) top / 100% 51% no-repeat, radial-gradient(circle var(--tk-notch) at 100% 100%, #0000 calc(var(--tk-notch) - .5px), #000 var(--tk-notch)) bottom / 100% 51% no-repeat;
}

.wptm-home__sig--ticket .wptm-home__sigtitle {
	max-width: none;
	font-size: clamp(1.5rem, 1.05rem + 1.1vw, 2.05rem);
}

.wptm-home__sig--ticket .wptm-home__siglead {
	margin-block-end: 20px;
	font-size: .98rem;
	-webkit-line-clamp: 2;
	line-clamp: 2;
}

/* The particulars as the fields of a ticket: small labels over the values,
   divided by the stub's own dashed rule. */
.wptm-home__sig--ticket .wptm-home__sigfacts {
	margin-block-end: 22px;
	border-block: 0;
	border-block-start: 1px dashed var(--sig-line, var(--home-line, rgba(15, 20, 28, .16)));
}

.wptm-home__sig--ticket .wptm-home__sigfacts > div {
	padding-block: 14px 0;
	box-shadow: none;
}

.wptm-home__sig--ticket .wptm-home__sigfacts dd {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 1;
	line-clamp: 1;
}

.wptm-home__sig--ticket .wptm-home__sigfoot {
	margin-block-start: 0;
}

/* The photographs: a long dissolve, and each one settles as it arrives. */
.wptm-home__sig--ticket .wptm-home__sigpic--slides .wptm-home__sigimg {
	transition: opacity 1.6s cubic-bezier(.4, 0, .2, 1);
}

.wptm-home__sig--ticket .wptm-home__sigpic--slides .wptm-home__sigimg.is-active,
.wptm-home__sig--ticket .wptm-home__sigpic--slides .wptm-home__sigimg.is-leaving {
	animation: wptm-home-sigsettle 7s cubic-bezier(.2, .6, .2, 1) both;
}

@keyframes wptm-home-sigsettle {
	from {
		transform: scale(1.07);
	}

	to {
		transform: scale(1);
	}
}

/* The marks as short bars; the current one fills over its five seconds. */
.wptm-home__sig--ticket .wptm-home__sigdots {
	gap: 5px;
	padding: 7px 9px;
	border-radius: 999px;
}

.wptm-home__sig--ticket .wptm-home__sigdots span,
.wptm-home__sig--ticket .wptm-home__sigdots span.is-on {
	position: relative;
	width: 18px;
	height: 3px;
	border-radius: 2px;
	background: rgba(255, 255, 255, .4);
	overflow: hidden;
}

.wptm-home__sig--ticket .wptm-home__sigdots span.is-on::after {
	content: "";
	position: absolute;
	inset: 0;
	background: #fff;
	transform-origin: left center;
	animation: wptm-home-sigfill 5s linear both;
}

[dir="rtl"] .wptm-home__sig--ticket .wptm-home__sigdots span.is-on::after {
	transform-origin: right center;
}

.wptm-home__sig--ticket:hover .wptm-home__sigdots span.is-on::after {
	animation-play-state: paused;
}

@keyframes wptm-home-sigfill {
	from {
		transform: scaleX(0);
	}

	to {
		transform: scaleX(1);
	}
}

@media (prefers-reduced-motion: reduce) {
	.wptm-home__sig--ticket .wptm-home__sigpic--slides .wptm-home__sigimg.is-active,
	.wptm-home__sig--ticket .wptm-home__sigdots span.is-on::after {
		animation: none;
	}
}

/* Stacked: the face above, the stub below, the notches on the fold. */
@media (max-width: 900px) {
	.wptm-home__sig--ticket {
		grid-template-columns: 1fr;
	}

	.wptm-home__sig--ticket .wptm-home__sigpic,
	[dir="rtl"] .wptm-home__sig--ticket .wptm-home__sigpic {
		aspect-ratio: 16 / 10;
		border-radius: var(--tk-r) var(--tk-r) 0 0;
		-webkit-mask: radial-gradient(circle var(--tk-notch) at 0 100%, #0000 calc(var(--tk-notch) - .5px), #000 var(--tk-notch)) left / 51% 100% no-repeat, radial-gradient(circle var(--tk-notch) at 100% 100%, #0000 calc(var(--tk-notch) - .5px), #000 var(--tk-notch)) right / 51% 100% no-repeat;
		mask: radial-gradient(circle var(--tk-notch) at 0 100%, #0000 calc(var(--tk-notch) - .5px), #000 var(--tk-notch)) left / 51% 100% no-repeat, radial-gradient(circle var(--tk-notch) at 100% 100%, #0000 calc(var(--tk-notch) - .5px), #000 var(--tk-notch)) right / 51% 100% no-repeat;
	}

	.wptm-home__sig--ticket .wptm-home__sigbody,
	[dir="rtl"] .wptm-home__sig--ticket .wptm-home__sigbody {
		padding: 26px 22px 24px;
		border-radius: 0 0 var(--tk-r) var(--tk-r);
		-webkit-mask: radial-gradient(circle var(--tk-notch) at 0 0, #0000 calc(var(--tk-notch) - .5px), #000 var(--tk-notch)) left / 51% 100% no-repeat, radial-gradient(circle var(--tk-notch) at 100% 0, #0000 calc(var(--tk-notch) - .5px), #000 var(--tk-notch)) right / 51% 100% no-repeat;
		mask: radial-gradient(circle var(--tk-notch) at 0 0, #0000 calc(var(--tk-notch) - .5px), #000 var(--tk-notch)) left / 51% 100% no-repeat, radial-gradient(circle var(--tk-notch) at 100% 0, #0000 calc(var(--tk-notch) - .5px), #000 var(--tk-notch)) right / 51% 100% no-repeat;
	}

	.wptm-home__sig--ticket .wptm-home__sigbody::before {
		inset-block: 0 auto;
		inset-inline: calc(var(--tk-notch) + 8px);
		border-inline-start: 0;
		border-block-start: 2px dashed var(--sig-line, var(--home-line, rgba(15, 20, 28, .16)));
	}
}
