/*
 * Home page — the old Wix home page, modernised.
 *
 * Fluid, responsive layouts inside .wx-container (grid and flex, no fixed
 * canvas, no absolute positioning of content). Colours, type scale, radii,
 * shadows, buttons and focus styles come from wix-tokens.css; nothing here adds
 * a hue outside the site's palette.
 */
/* Two families only: Montserrat (display) and Poppins (text), loaded in functions.php. */

.wxhome {
	--wxhome-outline: var(--wx-white) -1px -1px 0, var(--wx-white) -1px 1px 0, var(--wx-white) 1px 1px 0, var(--wx-white) 1px -1px 0;
	--wxhome-drop: rgba(0, 0, 0, .4) 0 4px 5px; /* the Wix original */
	/* Soft shadows tinted with ink (not blue) on this page. */
	--wx-shadow-sm: 0 2px 8px rgba(47, 46, 46, .12);
	--wx-shadow: 0 10px 30px -12px rgba(47, 46, 46, .35);
	--wx-shadow-lg: 0 24px 60px -24px rgba(47, 46, 46, .45);
	display: flex;
	flex-direction: column;
	overflow-x: clip;
	background: var(--wx-white);
	color: var(--wx-blue);
	font-family: var(--wx-font-body);
	font-size: var(--wx-fs-body);
	line-height: var(--wx-lh-body);
	-webkit-font-smoothing: antialiased;
}

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

/* Low-specificity resets (one class), so component rules below win. */
.wxhome :where(p, h1, h2, ul, figure) {
	margin: 0;
	padding: 0;
}

/* Icon-only controls use the page family instead of the browser's default. */
.wxhome :where(button) {
	font-family: inherit;
}

.wxhome :where(ul) {
	list-style: none;
}

.wxhome img {
	display: block;
	max-width: 100%;
	height: auto;
}

.wxhome video {
	max-width: 100%;
}

/* Keyboard focus keeps the Wix copy's blue ring. */
.wxhome a:focus-visible,
.wxhome button:focus-visible {
	outline: 2px solid var(--wx-blue);
	outline-offset: 3px;
}

.wxhome-c-red { color: var(--wx-red); }
.wxhome-c-blue { color: var(--wx-blue); }
.wxhome-c-pink { color: var(--wx-magenta); }
.wxhome-c-yellow { color: var(--wx-yellow); }
.wxhome-c-teal { color: #084255; }
.wxhome-c-orange { color: var(--wx-orange); }

.wxhome-sec {
	position: relative;
}

.wxhome-sec__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	width: 100%;
	height: 100% !important;
	object-fit: cover;
	pointer-events: none;
}

/* Buttons: every one is a .wx-btn; these only keep each button's text colour. */
.wxhome-btn--pinktext { color: var(--wx-magenta); }
.wxhome-btn--bluetext { color: var(--wx-blue); }
.wxhome-btn--yellowtext { color: var(--wx-yellow); }
.wxhome-btn--rim { border-color: var(--wx-white); }

/* Each button keeps the shadow colour it had on Wix. */
.wxhome .wxhome-shadow--blue { box-shadow: var(--wx-blue) 0 7px 11px 0; }
.wxhome .wxhome-shadow--grey { box-shadow: rgba(134, 134, 134, .75) 1.32px 2.7px 10px 0; }
.wxhome .wxhome-shadow--hard { box-shadow: #000 1.32px 2.7px 0 0; }
.wxhome .wxhome-shadow--card { box-shadow: rgba(0, 0, 0, .6) 0 1px 4px 0; }

.wxhome-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--wx-gap-sm);
}

.wxhome .wx-btn {
	max-width: 100%;
	letter-spacing: .02em;
}

/* Gentle fade-up on scroll (only when JS runs and motion is welcome). */
.wxhome.is-anim .wxhome-reveal {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity .7s ease, transform .7s var(--wx-ease);
}

.wxhome.is-anim .wxhome-reveal.is-in {
	opacity: 1;
	transform: none;
}

/* ================================================================= HERO */

/*
 * One composition on every slide: a single column inside the site container
 * over an ink wash that fades from the left and the foot. The controls sit in
 * one bar at the bottom: dots under the column, small glass arrows at the
 * right, kept clear of the floating chat button.
 */
.wxhome-hero {
	--wxhome-hero-h: clamp(520px, min(calc(84svh - var(--wxh-h, 76px)), 62vw), 800px);
	--wxhome-hero-ctl: 76px; /* room the control bar needs at the foot */
	--wxhome-shade: 47, 46, 46; /* --wx-ink as RGB, for the washes */
	position: relative;
	background: var(--wx-ink);
	outline: none;
}

.wxhome-hero__slides {
	display: grid;
}

.wxhome-slide {
	grid-area: 1 / 1;
	position: relative;
	display: flex;
	min-height: var(--wxhome-hero-h);
	overflow: hidden;
	opacity: 0;
	visibility: hidden;
	transition: opacity .7s ease, visibility 0s linear .7s;
}

.wxhome-slide.is-active {
	opacity: 1;
	visibility: visible;
	transition: opacity .7s ease;
}

.wxhome-slide__bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100% !important;
	object-fit: cover;
	object-position: var(--wxhome-pos, 50% 50%);
	/* The slow zoom grows from the column's side, so the people drift away from the words. */
	transform-origin: 0% 50%;
}

.wxhome-slide--5 .wxhome-slide__bg { transform-origin: 100% 50%; }

/* Where each photo's people sit, so the crop keeps heads in frame. */
.wxhome-slide--1 { --wxhome-pos: 50% 28%; }
.wxhome-slide--2 { --wxhome-pos: 50% 62%; }
.wxhome-slide--3 { --wxhome-pos: 50% 62%; }
.wxhome-slide--4 { --wxhome-pos: 50% 45%; }
.wxhome-slide--5 { --wxhome-pos: 50% 40%; }
.wxhome-slide--6 { --wxhome-pos: 50% 40%; }

/* The wash: ink from the left behind the column, a soft shade at the foot. */
.wxhome-slide::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(to top, rgba(var(--wxhome-shade), .6), rgba(var(--wxhome-shade), 0) 32%),
		linear-gradient(to right, rgba(var(--wxhome-shade), .8) 0%, rgba(var(--wxhome-shade), .56) 32%, rgba(var(--wxhome-shade), 0) 60%);
	pointer-events: none;
}

.wxhome-slide__inner {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	padding-block: clamp(2rem, 5vw, 3.5rem) calc(var(--wxhome-hero-ctl) + 1rem);
}

.wxhome-slide__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: .625rem;
	width: min(100%, 34rem);
	color: var(--wx-white);
}

/*
 * Reading order: headline, badge, then the buttons stacked in one narrow
 * group (a row of three would run across the people in the photos).
 */
.wxhome-hero__exp-wrap { order: 0; margin-bottom: .875rem; }

/*
 * The mascot: the face from the logo, in the white disc the logo itself sits
 * on in the header. Phones only -- that is where the photo leaves the sky above
 * the headline empty -- and it arrives with a small bounce on the first visit.
 */
.wxhome-hero__mascot { display: none; }
.wxhome-hero__title { order: 1; margin-bottom: .875rem; }
.wxhome-hero__free { order: 1; margin-bottom: .5rem; }
.wxhome-hero__row--badge,
.wxhome-hero__row--mbadge { order: 2; margin-bottom: 1rem; }
.wxhome-hero__cta { order: 3; }

/* Slides whose only words are the badge: it sits high, over sky and sea. */
.wxhome-slide--2 .wxhome-slide__inner,
.wxhome-slide--3 .wxhome-slide__inner {
	align-items: flex-start;
}

/* Slide 5's swimmer lies on the left, so its column mirrors to the right. */
.wxhome-slide--5 .wxhome-slide__inner {
	justify-content: flex-end;
}

.wxhome-slide--5 .wxhome-slide__content {
	align-items: flex-end;
}

.wxhome-slide--5::after {
	background:
		linear-gradient(to top, rgba(var(--wxhome-shade), .6), rgba(var(--wxhome-shade), 0) 32%),
		linear-gradient(to left, rgba(var(--wxhome-shade), .7) 0%, rgba(var(--wxhome-shade), .4) 30%, rgba(var(--wxhome-shade), 0) 58%);
}

.wxhome-slide--6 .wxhome-slide__content {
	width: min(100%, 40rem);
}

/* ---- Type */

.wxhome-hero__title {
	font-weight: 400;
	text-shadow: 0 2px 18px rgba(0, 0, 0, .25);
}

.wxhome-hero__no1,
.wxhome-rent__no1,
.wxhome-hero__free {
	font-family: var(--wx-font-display);
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .12em;
}

.wxhome-hero__no1 {
	display: inline-flex;
	align-items: center;
	gap: .7em;
	font-size: clamp(1rem, .75rem + .8vw, 1.5rem);
	line-height: 1.2;
	letter-spacing: .18em;
	white-space: nowrap;
	color: var(--wx-magenta);
	text-shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 0 18px rgba(0, 0, 0, .25);
}

.wxhome-hero__no1::before {
	content: "";
	flex: none;
	width: 2.25rem;
	height: 3px;
	border-radius: var(--wx-radius-pill);
	background: currentColor;
}

.wxhome-hero__sub {
	display: block;
	max-width: 15ch;
	margin-top: .6rem;
	font-family: var(--wx-font-display);
	font-size: clamp(2.1rem, 1rem + 2.2vw, 3.25rem);
	font-weight: 800;
	line-height: 1.04;
	letter-spacing: -.015em;
	color: var(--wx-white);
	text-wrap: balance;
}

.wxhome-hero__free {
	font-size: clamp(2rem, 1.1rem + 2.6vw, 3.5rem);
	line-height: 1.05;
	letter-spacing: .04em;
	color: var(--wx-white);
	text-shadow: 0 2px 18px rgba(0, 0, 0, .3);
}

/* ---- Free-delivery badge (both wordings share one look) */

.wxhome-badge {
	display: inline-flex;
	align-items: center;
	gap: .75rem;
	max-width: 100%;
	padding: .5rem 1.25rem .5rem .5rem;
	border: 1px solid rgba(255, 255, 255, .28);
	border-radius: var(--wx-radius-pill);
	background: rgba(var(--wxhome-shade), .38);
	box-shadow: 0 10px 30px -14px rgba(0, 0, 0, .5);
	color: var(--wx-white);
	text-align: left;
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}

.wxhome-badge__icon {
	flex: none;
	width: 2.5rem;
	height: 2.5rem;
	padding: .55rem;
	border-radius: 50%;
	background: var(--wx-yellow);
	fill: var(--wx-blue);
}

.wxhome-badge__text {
	display: block;
	font-family: var(--wx-font-body);
	font-size: var(--wx-fs-body);
	font-weight: 600;
	line-height: 1.2;
}

.wxhome-badge__text br { display: none; }

.wxhome-badge__top {
	display: block;
	margin-bottom: .15rem;
	font-family: var(--wx-font-display);
	font-size: .78em;
	font-weight: 800;
	letter-spacing: .14em;
	color: var(--wx-yellow);
}

.wxhome-badge__bot { display: block; }

.wxhome-hero__row--mbadge { display: none; }

/* ---- Buttons */

.wxhome .wxhome-hero__cta {
	justify-content: flex-start;
	width: 18.5rem;
	min-height: 46px;
	padding: .6em 1.25em;
	font-size: var(--wx-fs-sm);
	white-space: nowrap;
}

.wxhome .wx-btn--yellow.wxhome-hero__cta {
	justify-content: center;
	min-height: 52px;
	margin-bottom: .25rem;
	font-size: var(--wx-fs-body);
	font-weight: 700;
	box-shadow: 0 10px 26px -12px rgba(0, 0, 0, .55);
}

/* Call buttons: quieter glass outlines beside the yellow Learn More. */
.wxhome .wxhome-phone {
	border: 1.5px solid rgba(255, 255, 255, .7);
	background: rgba(var(--wxhome-shade), .3);
	color: var(--wx-white);
	box-shadow: none;
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}

.wxhome .wxhome-phone:hover {
	border-color: var(--wx-magenta);
	background: var(--wx-magenta);
	box-shadow: 0 10px 26px -12px rgba(0, 0, 0, .55);
}

.wxhome-phone svg {
	flex: none;
	width: 1.25em;
	height: 1.25em;
	fill: var(--wx-yellow);
}

/* Slides 5 and 6 have only the call buttons, so they lead in magenta. */
.wxhome .wxhome-slide--5 .wxhome-phone,
.wxhome .wxhome-slide--6 .wxhome-phone {
	min-height: 50px;
	border-color: var(--wx-magenta);
	background: var(--wx-magenta);
	box-shadow: 0 10px 26px -12px rgba(0, 0, 0, .55);
}

.wxhome .wxhome-slide--5 .wxhome-phone:hover,
.wxhome .wxhome-slide--6 .wxhome-phone:hover {
	border-color: var(--wx-white);
}

/* ---- Slide 6 */

.wxhome-hero__exp-wrap {
	color: var(--wx-white);
	text-shadow: var(--wxhome-drop);
}

.wxhome-hero__exp {
	font: 700 clamp(2.75rem, 1.4rem + 4vw, 4.75rem)/.95 var(--wx-font-body);
	letter-spacing: -.02em;
}

.wxhome-hero__islands {
	font: italic 600 1.5rem/1.05 var(--wx-font-body);
}

.wxhome-hero__the { font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.5rem); }
.wxhome-hero__ci { font-size: clamp(2.25rem, 1.1rem + 3.8vw, 5rem); color: var(--wx-yellow); }

.wxhome-hero__never {
	margin-top: .6rem;
	font-family: var(--wx-font-display);
	font-weight: 800;
	font-size: clamp(.85rem, .75rem + .4vw, 1.1rem);
	letter-spacing: .3em;
}

/* ---- Controls: dots under the column, glass arrows at the right */

.wxhome-hero__controls {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	height: var(--wxhome-hero-ctl);
	/* The arrows stay at least 96px from the screen's edge, where the chat button floats. */
	padding-right: max(var(--wx-gutter), calc(96px - max(0px, (100vw - var(--wx-container)) / 2)));
	pointer-events: none;
}

.wxhome-hero__controls > * {
	pointer-events: auto;
}

.wxhome-hero__arrows {
	display: flex;
	gap: .5rem;
}

.wxhome-arrow {
	display: grid;
	place-items: center;
	width: var(--wx-tap);
	height: var(--wx-tap);
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .35);
	border-radius: 50%;
	background: rgba(var(--wxhome-shade), .32);
	color: var(--wx-white);
	cursor: pointer;
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	transition: background-color var(--wx-dur) var(--wx-ease), border-color var(--wx-dur) var(--wx-ease), color var(--wx-dur) var(--wx-ease);
}

.wxhome-arrow:hover {
	border-color: var(--wx-white);
	background: var(--wx-white);
	color: var(--wx-magenta);
}

.wxhome-arrow svg {
	display: block;
	width: 22px;
	height: 22px;
}

.wxhome-arrow__chev {
	fill: none;
	stroke: currentColor;
	stroke-width: 2.25;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.wxhome-arrow--next svg { transform: scaleX(-1); }

.wxhome-dots {
	display: flex;
	margin-left: -12px; /* the first dot lines up with the column's edge */
}

.wxhome-dots button {
	position: relative;
	width: 32px;
	height: var(--wx-tap);
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
	transition: width var(--wx-dur) var(--wx-ease);
}

.wxhome-dots button::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 12px;
	width: 8px;
	height: 8px;
	border-radius: var(--wx-radius-pill);
	background: rgba(255, 255, 255, .6);
	box-shadow: 0 1px 4px rgba(0, 0, 0, .25);
	transform: translateY(-50%);
	transition: width var(--wx-dur) var(--wx-ease), background-color var(--wx-dur) var(--wx-ease);
}

.wxhome-dots button:hover::before {
	background: var(--wx-white);
}

.wxhome-dots button[aria-current="true"] {
	width: 50px;
}

.wxhome-dots button[aria-current="true"]::before {
	width: 26px;
	background: var(--wx-yellow);
}

/* ---- Motion: a slow drift on the photo; the column settles in on change */

@media (prefers-reduced-motion: no-preference) {
	.wxhome-slide.is-active .wxhome-slide__bg {
		animation: wxhome-kenburns 18s ease-out both;
	}

	.wxhome-hero.is-moved .wxhome-slide.is-active .wxhome-slide__content > * {
		animation: wxhome-rise .8s var(--wx-ease) .1s both;
	}

	.wxhome-hero.is-moved .wxhome-slide.is-active .wxhome-slide__content > .wxhome-hero__title,
	.wxhome-hero.is-moved .wxhome-slide.is-active .wxhome-slide__content > .wxhome-hero__free { animation-delay: .18s; }
	.wxhome-hero.is-moved .wxhome-slide.is-active .wxhome-slide__content > .wxhome-hero__row--badge,
	.wxhome-hero.is-moved .wxhome-slide.is-active .wxhome-slide__content > .wxhome-hero__row--mbadge { animation-delay: .28s; }
	.wxhome-hero.is-moved .wxhome-slide.is-active .wxhome-slide__content > .wxhome-hero__cta { animation-delay: .38s; }
	.wxhome-hero.is-moved .wxhome-slide.is-active .wxhome-slide__content > .wxhome-hero__cta ~ .wxhome-hero__cta { animation-delay: .44s; }
	.wxhome-hero.is-moved .wxhome-slide.is-active .wxhome-slide__content > .wxhome-hero__cta ~ .wxhome-hero__cta ~ .wxhome-hero__cta { animation-delay: .5s; }
}

@keyframes wxhome-kenburns {
	from { transform: scale(1); }
	to { transform: scale(1.08); }
}

@keyframes wxhome-rise {
	from { opacity: 0; transform: translateY(16px); }
	to { opacity: 1; transform: none; }
}

/* ============================================================== WELCOME */

.wxhome-welcome {
	padding-block: var(--wx-section);
}

.wxhome-welcome__grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	align-items: center;
	gap: clamp(1.5rem, 3.5vw, 3rem);
}

.wxhome-collage {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	grid-auto-rows: clamp(84px, 14vw, 200px);
	grid-template-areas:
		"a a a a c c"
		"b b e e e e"
		"f f f d d d";
	gap: var(--wx-gap-sm);
}

.wxhome-frame {
	display: block;
	overflow: hidden;
	background: var(--wx-white);
	border: 3px solid var(--wx-white);
	border-radius: var(--wx-radius);
	box-shadow: rgba(0, 0, 0, .5) 0 1px 3px 0;
}

.wxhome-frame img {
	width: 100%;
	height: 100% !important;
	object-fit: cover;
	transition: transform .6s var(--wx-ease);
}

.wxhome-frame:hover img {
	transform: scale(1.05);
}

.wxhome-welcome__ph--a { grid-area: a; }
.wxhome-welcome__ph--b { grid-area: b; }
.wxhome-welcome__ph--c { grid-area: c; }
.wxhome-welcome__ph--d { grid-area: d; }
.wxhome-welcome__ph--e { grid-area: e; }
.wxhome-welcome__ph--f { grid-area: f; }

.wxhome-welcome__body {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	padding: clamp(1.25rem, 3vw, 2.25rem);
	background: rgba(255, 255, 255, .9);
	border-radius: var(--wx-radius-lg);
	box-shadow: var(--wx-shadow-lg);
}

.wxhome-welcome__brand {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(.5rem, 2vw, 1rem);
}

.wxhome-welcome__face {
	flex: none;
	width: clamp(56px, 6vw, 88px);
}

.wxhome-welcome__word {
	width: min(100%, 360px);
}

.wxhome-welcome__lead {
	padding: .75rem 1rem;
	border-radius: var(--wx-radius);
	background: #008afc;
	color: var(--wx-yellow);
	font-weight: 600;
	font-size: var(--wx-fs-lead);
	line-height: 1.35;
	text-align: center;
}

.wxhome-welcome__text {
	font-weight: 500;
	color: var(--wx-blue);
}

/* ================================================================= RENT */

.wxhome-rent {
	padding-block: var(--wx-section);
}

.wxhome-rent__top {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: center;
	gap: var(--wx-gap);
}

.wxhome-video {
	overflow: hidden;
	background: var(--wx-ink);
	border: 4px solid var(--wx-blue);
	border-radius: var(--wx-radius);
	box-shadow: rgba(0, 0, 0, .6) 0 1px 4px 0;
}

.wxhome-video__el {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	background: var(--wx-ink);
}

.wxhome-rent__video {
	aspect-ratio: 4 / 3;
}

.wxhome-rent__intro {
	display: flex;
	flex-direction: column;
	gap: var(--wx-gap);
}

.wxhome-rent__offer {
	font-style: italic;
	font-weight: 700;
	font-size: var(--wx-fs-h3);
	line-height: 1.3;
	letter-spacing: -.01em;
	text-align: center;
}

.wxhome-rent__panel {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .5rem;
	padding: clamp(1.25rem, 3vw, 2rem);
	background: var(--wx-blue);
	border-radius: var(--wx-radius-lg);
	box-shadow: var(--wx-shadow-lg);
	text-align: center;
}

.wxhome-rent__no1 {
	font-size: var(--wx-fs-h2);
	line-height: var(--wx-lh-tight);
	color: var(--wx-magenta);
	text-shadow: var(--wxhome-outline);
}

.wxhome-rent__sub {
	margin-bottom: .5rem;
	font-weight: 700;
	font-size: var(--wx-fs-h3);
	line-height: 1.25;
	color: var(--wx-white);
}

/* Section headings use .wx-head / .wx-title (wix-tokens.css); these rules
   only keep each title's colour and place on the page. */
.wxhome-rent__head {
	margin-top: clamp(1.75rem, 4vw, 3rem);
	color: var(--wx-red);
}

.wxhome-rent__main {
	display: grid;
	grid-template-columns: minmax(0, 20rem) minmax(0, 1fr);
	align-items: start;
	gap: var(--wx-gap);
}

.wxhome-rent__box {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
	padding: clamp(1rem, 2.5vw, 1.5rem);
	background: var(--wx-white);
	border: 4px solid #ffb730;
	border-radius: var(--wx-radius-lg);
	box-shadow: var(--wx-shadow);
}

.wxhome-rent__list {
	width: 100%;
	font-weight: 700;
	font-size: clamp(1.05rem, .95rem + .45vw, 1.35rem);
	line-height: 1.25;
	letter-spacing: -.01em;
	text-align: center;
	color: var(--wx-blue);
}

.wxhome-rent__list li {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: var(--wx-tap);
	break-inside: avoid;
}

.wxhome-rent__list li + li {
	border-top: 1px solid rgba(47, 46, 46, .08);
}

.wxhome-rent__list a {
	display: inline-flex;
	align-items: center;
	min-height: var(--wx-tap);
	color: inherit;
	text-decoration: none;
	text-underline-offset: 4px;
}

.wxhome-rent__list a:hover {
	text-decoration: underline;
}

.wxhome-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--wx-gap-sm);
}

.wxhome-grid__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	background: var(--wx-white);
	border-radius: var(--wx-radius);
	box-shadow: var(--wx-shadow);
	color: var(--wx-blue);
	text-decoration: none;
	cursor: zoom-in;
	transition: transform var(--wx-dur) var(--wx-ease), box-shadow var(--wx-dur) var(--wx-ease);
}

.wxhome-grid__link:hover {
	transform: translateY(-3px);
	box-shadow: var(--wx-shadow-lg);
}

.wxhome-grid__link img {
	width: 100%;
	aspect-ratio: 1 / 1;
	height: auto;
	object-fit: cover;
}

/* The seal's place in the grid, used on phones only (see the end of the file). */
.wxhome-grid__seal {
	display: none;
}

.wxhome-grid__cap {
	display: flex;
	flex: 1;
	align-items: center;
	justify-content: center;
	padding: .6rem .5rem;
	font-weight: 600;
	font-size: 1rem;
	line-height: 1.25;
	text-align: center;
}

.wxhome-offer {
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: 56rem;
	margin: clamp(1.75rem, 4vw, 2.75rem) auto 0;
}

.wxhome-ribbon {
	position: relative;
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(.75rem, 2vw, 1.25rem);
	padding: clamp(1rem, 2.5vw, 1.5rem) 5rem clamp(1rem, 2.5vw, 1.5rem) clamp(1.25rem, 4vw, 2.5rem);
	background: var(--wx-blue);
	border-radius: var(--wx-radius-lg);
	box-shadow: var(--wx-shadow-lg);
}

.wxhome-ribbon__star {
	flex: none;
	width: clamp(22px, 2.6vw, 32px);
	height: clamp(22px, 2.6vw, 32px);
	fill: var(--wx-yellow);
}

.wxhome-ribbon__star svg {
	display: block;
	width: 100%;
	height: 100%;
}

.wxhome-ribbon__star--l { order: 0; }
.wxhome-ribbon__text { order: 1; }
.wxhome-ribbon__star--r { order: 2; }

.wxhome-ribbon__text {
	font-style: italic;
	font-weight: 700;
	font-size: var(--wx-fs-h3);
	line-height: 1.3;
	text-align: center;
	color: var(--wx-white);
	text-shadow: var(--wxhome-drop);
}

.wxhome-seal {
	position: relative;
	z-index: 1;
	flex: none;
	display: grid;
	place-items: center;
	width: clamp(120px, 14vw, 160px);
	aspect-ratio: 1;
	margin-left: -3.5rem;
	transform: rotate(-8deg);
	filter: drop-shadow(0 8px 14px rgba(47, 46, 46, .3));
}

.wxhome-seal__shape {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	fill: var(--wx-magenta);
}

.wxhome-seal__text {
	position: relative;
	font-weight: 700;
	font-size: 1rem;
	line-height: 1.45;
	text-align: center;
	color: var(--wx-white);
}

.wxhome-seal__text span {
	display: block;
}

/* ============================================================== GALLERY */

.wxhome-gallery {
	padding: var(--wx-gap-sm) var(--wx-gutter) var(--wx-section);
}

.wxhome-gallery__grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: var(--wx-gap-sm);
	max-width: 1920px;
	margin-inline: auto;
}

.wxhome-gallery__grid a {
	display: block;
	color: inherit;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: var(--wx-radius-sm);
	box-shadow: var(--wx-shadow-sm);
	cursor: zoom-in;
}

.wxhome-gallery__grid img {
	width: 100%;
	height: 100% !important;
	object-fit: cover;
	transition: transform .6s var(--wx-ease);
}

.wxhome-gallery__grid a:hover img {
	transform: scale(1.07);
}

/* ======================================================== PHOTO BANDS */

.wxhome-band {
	isolation: isolate;
	padding-block: clamp(2.5rem, 6vw, 4.5rem);
	background: var(--wxhome-bg) center / cover no-repeat, var(--wx-ink);
}

.wxhome-band::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
}

.wxhome-enhance::before { background: rgba(255, 255, 255, .32); }
.wxhome-brighten::before { background: rgba(47, 46, 46, .4); }

.wxhome-brighten { background-color: #fafafa; }

@media (min-width: 1024px) and (hover: hover) and (prefers-reduced-motion: no-preference) {
	.wxhome-band {
		background-attachment: fixed, scroll;
	}
}

.wxhome-band__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(.9rem, 2vw, 1.25rem);
	text-align: center;
}

/* The band's flex gap is part of the heading's space, so the total matches .wx-head. */
.wxhome-band__inner > .wx-head {
	margin-bottom: calc(clamp(1.25rem, 3vw, 2.25rem) - clamp(.9rem, 2vw, 1.25rem));
}

.wxhome-enhance__head {
	max-width: none;
	color: var(--wx-blue);
}

.wxhome-enhance__title {
	text-shadow: var(--wxhome-outline), rgba(255, 255, 255, .6) 0 0 18px;
}

.wxhome-enhance__title span {
	display: block;
}

.wxhome-enhance__lpg {
	padding: .55rem 1.4rem;
	border-radius: var(--wx-radius-pill);
	background: var(--wx-magenta);
	box-shadow: var(--wx-shadow-lg);
	font-weight: 600;
	font-size: var(--wx-fs-lead);
	line-height: 1.35;
	color: var(--wx-white);
	text-shadow: var(--wxhome-drop);
}

/* ============================================================== REVIEWS */

.wxhome-reviews {
	padding-block: clamp(1.75rem, 4vw, 3rem);
	background: var(--wx-ice);
}

.wxhome-reviews__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--wx-gap) clamp(1.5rem, 6vw, 5rem);
}

.wxhome-reviews__head {
	color: var(--wx-blue);
}

.wxhome-ta {
	width: min(100%, 20rem);
	padding: 1rem 1.25rem 1.25rem;
	background: var(--wx-white);
	border-radius: var(--wx-radius);
	border: 1px solid #e0e0e0;
	box-shadow: var(--wx-shadow-lg);
	font-size: var(--wx-fs-body);
	line-height: 1.4;
	color: #000;
}

.wxhome-ta__logo,
.wxhome-ta__name {
	display: flex;
	align-items: center;
	min-height: var(--wx-tap);
	font-weight: 700;
	font-size: 1.1rem;
	color: #000;
	text-decoration: none;
}

.wxhome-ta__logo {
	gap: .4rem;
	letter-spacing: -.02em;
}

.wxhome-ta__logo svg {
	width: 24px;
	height: 24px;
}

.wxhome-ta__name:hover,
.wxhome-ta__logo:hover span {
	text-decoration: underline;
}

.wxhome-ta__label {
	margin-top: .25rem;
	font-weight: 700;
	color: #4a4a4a;
}

/* Heading on top, the Tripadvisor and Google cards side by side under it at the
   same size, stacked on phones. */
.wxhome-reviews__inner {
	flex-direction: column;
	gap: 0; /* the heading's own margin spaces it from the cards */
}

.wxhome-reviews__cards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 22rem));
	justify-content: center;
	gap: var(--wx-gap);
	width: 100%;
}

.wxhome-reviews__cards .wxhome-ta {
	box-sizing: border-box;
	width: 100%;
	height: 100%;
}

@media (max-width: 760px) {
	.wxhome-reviews__cards {
		grid-template-columns: minmax(0, 24rem);
	}
}

/* ============================================================= BRIGHTEN */

.wxhome-brighten__text {
	max-width: 50rem;
	font-weight: 600;
	font-size: var(--wx-fs-h2);
	line-height: 1.2;
	color: var(--wx-white);
	text-shadow: var(--wxhome-drop);
}

.wxhome-brighten__amp {
	font-size: .8em;
}

/* ============================================================= PARTNERS */

.wxhome-partners {
	padding-block: var(--wx-section);
}

.wxhome-partners__head {
	max-width: 60rem;
}

/* Long sentences: the title face at the smaller heading size they had. */
.wxhome-partners__title {
	font-size: var(--wx-fs-h3);
	line-height: 1.3;
}

.wxhome-partners__adv {
	margin-top: var(--wx-section);
}

.wxhome-partners__salt-row {
	display: grid;
	grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
	align-items: center;
	justify-items: center;
	gap: var(--wx-gap);
	max-width: 62rem;
	margin-inline: auto;
}

.wxhome-partners__video {
	width: 100%;
	aspect-ratio: 16 / 9;
}

.wxhome-partners__card {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--wx-gap) clamp(1rem, 5vw, 3.5rem);
	max-width: 62rem;
	margin-inline: auto;
	padding: clamp(1rem, 2.5vw, 1.25rem) clamp(1rem, 3vw, 2rem);
	background: var(--wx-white);
	border-radius: var(--wx-radius-lg);
	box-shadow: rgba(0, 0, 0, .6) 0 1px 4px 0;
}

.wxhome-partners__logo {
	display: block;
	color: inherit;
	width: clamp(130px, 16vw, 190px);
	border-radius: var(--wx-radius-sm);
	transition: transform var(--wx-dur) var(--wx-ease);
}

.wxhome-partners__logo:hover {
	transform: scale(1.04);
}

.wxhome-partners__logo img {
	width: 100%;
	aspect-ratio: 199 / 141;
	height: auto;
	object-fit: cover;
	border-radius: var(--wx-radius-sm);
}

.wxhome-partners__locrow {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
	max-width: 62rem;
	margin: var(--wx-section) auto 0;
	overflow: hidden;
	border-radius: var(--wx-radius-lg);
	box-shadow: var(--wx-shadow-lg);
}

.wxhome-partners__locimg {
	width: 100%;
	height: 100% !important;
	min-height: 260px;
	object-fit: cover;
	contain: size; /* the panel beside it sets the row height, not the photo */
}

.wxhome-loc {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: .75rem;
	padding: clamp(1.5rem, 4vw, 2.5rem) 1.25rem;
	background: var(--wx-blue);
	color: var(--wx-white);
	font-family: var(--wx-font-body);
	text-align: center;
}

/* The panel's gap and rule separate the title from its text. */
.wxhome-loc__head {
	margin-bottom: 0;
}

.wxhome-loc__title {
	font-size: var(--wx-fs-h3);
	letter-spacing: .05em;
}

.wxhome-loc__rule {
	display: block;
	width: 40px;
	height: 3px;
	border-radius: var(--wx-radius-pill);
	background: #ffb730;
}

.wxhome-loc__text {
	max-width: 15rem;
}

.wxhome .wxhome-loc__map {
	margin-top: .25rem;
	border-color: transparent;
	font-family: var(--wx-font-body);
	font-weight: 600;
	color: #ffdb98;
}

.wxhome .wxhome-loc__map:hover {
	border-color: var(--wx-magenta);
}

/* ============================================================= LIGHTBOX */

.wxhome-noscroll {
	overflow: hidden;
}

.wxhome-lightbox {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, .96);
	animation: wxhome-fade .25s ease;
}

@keyframes wxhome-fade {
	from { opacity: 0; }
}

.wxhome-lightbox__fig {
	margin: 0;
	max-width: calc(100vw - 160px);
	text-align: center;
}

.wxhome-lightbox__fig img {
	display: block;
	max-width: 100%;
	max-height: calc(100vh - 110px);
	margin: 0 auto;
	object-fit: contain;
	border-radius: var(--wx-radius);
	box-shadow: 0 24px 60px -24px rgba(47, 46, 46, .45);
}

.wxhome-lightbox__fig figcaption {
	margin-top: 12px;
	font: 600 1.1rem/1.3 var(--wx-font-body);
	color: var(--wx-blue);
}

.wxhome-lightbox button {
	position: absolute;
	border: 0;
	border-radius: 50%;
	background: none;
	color: #333;
	cursor: pointer;
	transition: background-color var(--wx-dur) var(--wx-ease);
}

.wxhome-lightbox button:hover {
	background: rgba(51, 51, 51, .08);
}

.wxhome-lightbox__close {
	top: 16px;
	right: 20px;
	width: 48px;
	height: 48px;
	font: 400 40px/48px var(--wx-font-body);
}

.wxhome-lightbox__nav {
	top: 50%;
	width: 56px;
	height: 56px;
	margin-top: -28px;
}

.wxhome-lightbox__nav::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 18px;
	height: 18px;
	border: solid #333;
	border-width: 0 0 2px 2px;
}

.wxhome-lightbox__nav--prev { left: 16px; }
.wxhome-lightbox__nav--prev::before { transform: translate(-30%, -50%) rotate(45deg); }
.wxhome-lightbox__nav--next { right: 16px; }
.wxhome-lightbox__nav--next::before { transform: translate(-70%, -50%) rotate(-135deg); }

/* ========================================================== RESPONSIVE */

@media (max-width: 1099px) {
	.wxhome-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 1023px) {
	.wxhome-gallery__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (max-width: 899px) {
	.wxhome-welcome__grid,
	.wxhome-rent__main {
		grid-template-columns: minmax(0, 1fr);
	}

	.wxhome-collage {
		grid-auto-rows: clamp(72px, 17vw, 150px);
	}

	.wxhome-rent__list {
		columns: 2 13rem;
		column-gap: var(--wx-gap);
	}

	.wxhome-rent__list li + li {
		border-top: 0;
	}
}

@media (max-width: 767px) {
	/* The photo gallery follows the guarantee strip on phones, as on Wix. */
	.wxhome-gallery { order: 1; padding-top: var(--wx-section); }
	.wxhome-reviews,
	.wxhome-brighten,
	.wxhome-partners { order: 2; }

	/* Hero: one stacked column at the foot of the photo, over a deeper shade. */
	.wxhome-hero {
		--wxhome-hero-h: clamp(480px, calc(100svh - var(--wxh-h, 64px) - var(--wxh-bar, 0px) - 84px), 700px);
		--wxhome-hero-ctl: 64px;
	}

	.wxhome-slide--1 { --wxhome-pos: 30% 30%; }
	.wxhome-slide--2 { --wxhome-pos: 42% 70%; }
	.wxhome-slide--3 { --wxhome-pos: 96% 60%; }
	.wxhome-slide--4 { --wxhome-pos: 62% 45%; }
	.wxhome-slide--5 { --wxhome-pos: 28% 40%; }
	.wxhome-slide--6 { --wxhome-pos: 42% 40%; }

	.wxhome-slide::after,
	.wxhome-slide--5::after {
		background: linear-gradient(to top, rgba(var(--wxhome-shade), .9) 0%, rgba(var(--wxhome-shade), .72) 38%, rgba(var(--wxhome-shade), .2) 68%, rgba(var(--wxhome-shade), 0) 82%);
	}

	.wxhome-slide__inner,
	.wxhome-slide--2 .wxhome-slide__inner,
	.wxhome-slide--3 .wxhome-slide__inner,
	.wxhome-slide--5 .wxhome-slide__inner {
		align-items: flex-end;
		justify-content: flex-start;
		padding-block: 1.5rem calc(var(--wxhome-hero-ctl) + .25rem);
	}

	.wxhome-slide__content,
	.wxhome-slide--5 .wxhome-slide__content,
	.wxhome-slide--6 .wxhome-slide__content {
		align-items: stretch;
		width: 100%;
	}

	.wxhome-hero__title,
	.wxhome-hero__free,
	.wxhome-hero__row--badge,
	.wxhome-hero__row--mbadge,
	.wxhome-hero__exp-wrap {
		margin-bottom: .375rem;
	}

	.wxhome-hero__row .wxhome-badge {
		width: fit-content;
	}

	.wxhome-hero__sub {
		max-width: none;
		margin-top: .4rem;
		font-size: clamp(1.75rem, 1rem + 4vw, 2.5rem);
	}

	.wxhome-hero__free {
		font-size: clamp(1.75rem, 1rem + 4vw, 2.5rem);
	}

	.wxhome-slide--1 .wxhome-hero__row--badge { display: none; }
	.wxhome-hero__row--mbadge { display: block; }

	/*
	 * Centred over the headline. The face is sized as a share of the disc
	 * itself; a percentage padding would have been worked out from the whole
	 * column's width and squeezed the face down to a speck.
	 */
	.wxhome-hero__mascot {
		order: 0;
		display: grid;
		place-items: center;
		align-self: center;
		width: clamp(112px, 34vw, 144px);
		aspect-ratio: 1;
		margin-bottom: .75rem;
		border-radius: 50%;
		background: var(--wx-white);
		box-shadow: 0 10px 28px rgba(0, 0, 0, .28), 0 0 0 5px rgba(255, 255, 255, .35);
	}

	.wxhome-hero__mascot img {
		display: block;
		width: 74%;
		height: auto;
	}

	.wxhome-badge {
		padding-right: 1rem;
	}

	.wxhome-badge__icon {
		width: 2.25rem;
		height: 2.25rem;
		padding: .5rem;
	}

	.wxhome-badge__text {
		font-size: var(--wx-fs-sm);
	}

	.wxhome .wxhome-hero__cta,
	.wxhome .wx-btn--yellow.wxhome-hero__cta,
	.wxhome .wxhome-slide--5 .wxhome-phone,
	.wxhome .wxhome-slide--6 .wxhome-phone {
		justify-content: center;
		width: 100%;
		min-height: 46px;
		margin-bottom: 0;
		padding: .6em 1em;
		font-size: var(--wx-fs-body);
		white-space: normal;
	}

	.wxhome-hero__exp {
		font-size: clamp(2.5rem, 1.5rem + 5vw, 3.5rem);
	}

	.wxhome-hero__ci {
		font-size: clamp(2rem, 1rem + 5vw, 3rem);
	}

	.wxhome-hero__never {
		letter-spacing: .2em;
	}

	/* Controls: arrows and dots on the left, clear of the chat button. */
	.wxhome-hero__controls {
		justify-content: flex-start;
		gap: .5rem;
		padding-right: 84px;
	}

	.wxhome-hero__arrows {
		order: -1;
		gap: .375rem;
	}

	.wxhome-dots {
		margin-left: 0;
	}

	.wxhome-dots button {
		width: 24px;
	}

	.wxhome-dots button::before {
		left: 8px;
	}

	.wxhome-dots button[aria-current="true"] {
		width: 38px;
	}

	.wxhome-dots button[aria-current="true"]::before {
		width: 22px;
	}

	.wxhome-rent__top,
	.wxhome-partners__salt-row,
	.wxhome-partners__locrow {
		grid-template-columns: minmax(0, 1fr);
	}

	.wxhome-partners__locimg {
		contain: none;
		min-height: 0;
		aspect-ratio: 16 / 9;
		height: auto !important;
	}

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

	/* The Wix copy's grey placeholder behind product photos on phones. */
	.wxhome-grid__link img {
		background: #a0a09f;
	}

	.wxhome-enhance__lpg {
		border-radius: var(--wx-radius);
	}

	.wxhome-offer {
		flex-direction: column;
	}

	.wxhome-seal {
		order: -1;
		width: 150px;
		margin: 0 0 -1.75rem;
	}

	.wxhome-ribbon {
		width: 100%;
		padding: 2rem 1rem 1.25rem;
	}

	.wxhome-lightbox__fig { max-width: calc(100vw - 90px); }
	.wxhome-lightbox__nav { width: 44px; height: 44px; margin-top: -22px; }
	.wxhome-lightbox__nav--prev { left: 4px; }
	.wxhome-lightbox__nav--next { right: 4px; }
}

@media (max-width: 379px) {
	/* The narrowest phones: slimmer dots so the bar still fits beside the chat button. */
	.wxhome-hero__controls {
		padding-right: 64px;
	}

	.wxhome .wxhome-hero__cta,
	.wxhome .wxhome-slide--5 .wxhome-phone,
	.wxhome .wxhome-slide--6 .wxhome-phone {
		padding-inline: .75em;
		font-size: .95rem;
	}

	.wxhome-dots button {
		width: 20px;
	}

	.wxhome-dots button::before {
		left: 6px;
	}

	.wxhome-dots button[aria-current="true"] {
		width: 32px;
	}

	.wxhome-dots button[aria-current="true"]::before {
		width: 20px;
	}

	.wxhome-rent__list {
		columns: auto;
	}

}

@media (prefers-reduced-motion: reduce) {
	.wxhome-slide,
	.wxhome-slide.is-active {
		transition: none;
	}

	.wxhome-slide__bg,
	.wxhome-slide__content > * {
		animation: none !important;
	}

	.wxhome-frame:hover img,
	.wxhome-gallery__grid a:hover img,
	.wxhome-grid__link:hover {
		transform: none;
	}
}

/*
 * "Take a look at what we rent!": the client wants only the items that have a
 * photograph, so the text list beside the grid is hidden rather than deleted —
 * the markup stays in wxhome-rent.php and one rule brings it back.
 */
.wxhome-rent__box {
	display: none;
}

.wxhome-rent__main {
	grid-template-columns: minmax(0, 1fr);
}

/*
 * The offer, louder. Same words and the same three colours: the line turns
 * yellow on the blue band so it reads first, the band gets a yellow rim, and
 * the seal grows, gains a rim of its own and breathes. All motion stops under
 * prefers-reduced-motion (handled in wix-tokens.css).
 */
.wxhome-ribbon {
	border: 4px solid var(--wx-yellow);
	box-shadow: var(--wx-shadow-lg), 0 0 0 6px rgba(255, 242, 18, .18);
}

.wxhome-ribbon__text {
	font-weight: 800;
	font-size: var(--wx-fs-h2);
	line-height: 1.15;
	letter-spacing: -.01em;
	color: var(--wx-yellow);
	text-shadow: 0 3px 0 rgba(0, 0, 0, .25);
}

.wxhome-ribbon__star {
	width: clamp(26px, 3.2vw, 40px);
	height: clamp(26px, 3.2vw, 40px);
	animation: wxhome-twinkle 1.9s ease-in-out infinite;
}

.wxhome-ribbon__star--r {
	animation-delay: .95s;
}

.wxhome-seal {
	width: clamp(150px, 17vw, 200px);
	filter: drop-shadow(0 10px 18px rgba(47, 46, 46, .38));
	animation: wxhome-seal 3.6s ease-in-out infinite;
}

.wxhome-seal__shape {
	stroke: var(--wx-yellow);
	stroke-width: 7;
	paint-order: stroke;
}

.wxhome-seal__text {
	font-family: var(--wx-font-display);
	font-weight: 900;
	font-size: clamp(1rem, 1.5vw, 1.25rem);
	line-height: 1.25;
	letter-spacing: .02em;
	text-shadow: 0 2px 0 rgba(0, 0, 0, .22);
}

@keyframes wxhome-twinkle {
	0%, 100% { transform: scale(1) rotate(0deg); opacity: 1; }
	50% { transform: scale(.72) rotate(45deg); opacity: .75; }
}

@keyframes wxhome-seal {
	0%, 100% { transform: rotate(-8deg) scale(1); }
	50% { transform: rotate(-4deg) scale(1.06); }
}

@media (max-width: 760px) {
	.wxhome-seal {
		width: 170px;
	}
}

/*
 * The Adventura referral, louder. Same words, same colours: the question grows
 * to the section-title size, the partner's name is heavier and set apart, the
 * card gains an orange rim on the site's ice blue, and the green button is
 * bigger with a slow attention pulse that stops on hover (and under
 * prefers-reduced-motion).
 */
.wxhome-partners__adv .wxhome-partners__title {
	font-size: var(--wx-fs-h2);
	line-height: 1.15;
}

.wxhome-partners__adv .wxhome-c-orange {
	display: inline-block;
	font-weight: 900;
	letter-spacing: -.01em;
	text-shadow: 0 2px 0 rgba(47, 46, 46, .12);
}

.wxhome-partners__adv + .wxhome-partners__card {
	border: 4px solid var(--wx-orange);
	background: var(--wx-ice);
	box-shadow: var(--wx-shadow-lg), 0 0 0 6px rgba(255, 113, 23, .14);
}

.wxhome-partners__adv + .wxhome-partners__card .wxhome-partners__logo {
	width: clamp(160px, 20vw, 240px);
	padding: .5rem;
	border-radius: var(--wx-radius);
	background: var(--wx-white);
	box-shadow: var(--wx-shadow-sm);
}

.wxhome-partners__adv + .wxhome-partners__card .wx-btn {
	font-size: var(--wx-fs-lead);
	font-weight: 700;
	padding: .85em 1.7em;
	animation: wxhome-adv-pulse 2.8s ease-in-out infinite;
}

.wxhome-partners__adv + .wxhome-partners__card .wx-btn:hover,
.wxhome-partners__adv + .wxhome-partners__card .wx-btn:focus-visible {
	animation-play-state: paused;
}

@keyframes wxhome-adv-pulse {
	0%, 100% { transform: scale(1); box-shadow: rgba(0, 0, 0, .6) 0 1px 4px 0; }
	50% { transform: scale(1.04); box-shadow: rgba(0, 0, 0, .6) 0 1px 4px 0, 0 0 0 10px rgba(70, 166, 70, .16); }
}

/*
 * Salt Watersports, given the same weight as the Adventura referral — in its
 * own colours: the question grows, the company's name is heavier, the video and
 * its button sit on a card with a magenta rim, and the button pulses until it
 * is hovered or focused.
 */
.wxhome-partners__salt .wxhome-partners__title {
	font-size: var(--wx-fs-h2);
	line-height: 1.15;
}

.wxhome-partners__salt .wxhome-c-blue {
	display: inline-block;
	font-weight: 900;
	letter-spacing: -.01em;
	text-shadow: 0 2px 0 rgba(47, 46, 46, .12);
}

.wxhome-partners__salt-row {
	padding: clamp(1rem, 2.5vw, 1.5rem) clamp(1rem, 3vw, 2rem);
	border: 4px solid var(--wx-magenta);
	border-radius: var(--wx-radius-lg);
	background: var(--wx-ice);
	box-shadow: var(--wx-shadow-lg), 0 0 0 6px rgba(255, 0, 187, .12);
}

.wxhome-partners__salt-row .wxhome-partners__video {
	border-radius: var(--wx-radius);
	overflow: hidden;
	box-shadow: var(--wx-shadow-sm);
}

.wxhome-partners__salt-row .wx-btn {
	font-size: var(--wx-fs-lead);
	font-weight: 700;
	padding: .85em 1.7em;
	animation: wxhome-salt-pulse 2.8s ease-in-out infinite;
}

.wxhome-partners__salt-row .wx-btn:hover,
.wxhome-partners__salt-row .wx-btn:focus-visible {
	animation-play-state: paused;
}

@keyframes wxhome-salt-pulse {
	0%, 100% { transform: scale(1); box-shadow: rgba(0, 0, 0, .6) 0 1px 4px 0; }
	50% { transform: scale(1.04); box-shadow: rgba(0, 0, 0, .6) 0 1px 4px 0, 0 0 0 10px rgba(255, 0, 187, .16); }
}

/* A short phone keeps the buttons above the fold: a smaller mascot there. */
@media (max-width: 767px) and (max-height: 720px) {
	.wxhome-hero__mascot {
		width: 92px;
		margin-bottom: .5rem;
	}
}

/* The mascot's entrance: drops in, overshoots, settles, then a single nod. */
@media (max-width: 767px) and (prefers-reduced-motion: no-preference) {
	.wxhome-hero__mascot {
		animation: wxhome-mascot-in .9s cubic-bezier(.34, 1.56, .64, 1) .15s both;
	}

	.wxhome-hero__mascot img {
		animation: wxhome-mascot-nod 1.1s ease-in-out 1.1s 1 both;
		transform-origin: 50% 90%;
	}
}

@keyframes wxhome-mascot-in {
	from { opacity: 0; transform: translateY(-24px) scale(.55) rotate(-14deg); }
	to   { opacity: 1; transform: none; }
}

@keyframes wxhome-mascot-nod {
	0%, 100% { transform: rotate(0); }
	30%      { transform: rotate(-9deg); }
	60%      { transform: rotate(7deg); }
}

/*
 * Phones: fifteen photos in two columns leave the last row's right-hand cell
 * empty. The seal moves into it, and the discount ribbon -- no longer carrying
 * the seal on its top edge -- closes up right under the photos. Only one copy
 * of the seal is ever displayed, so it is read out once.
 */
@media (max-width: 767px) {
	.wxhome-grid__seal {
		display: grid;
		place-items: center;
	}

	.wxhome-grid__seal .wxhome-seal {
		width: min(100%, 168px);
		margin: 0;
	}

	.wxhome-grid__seal .wxhome-seal__text {
		font-size: clamp(.9rem, 3.6vw, 1.1rem);
	}

	.wxhome-offer .wxhome-seal {
		display: none;
	}

	.wxhome-offer {
		margin-top: var(--wx-gap-sm);
	}

	.wxhome-ribbon {
		padding: 1.25rem 1rem;
	}
}
