/* Dubai Swim Week(TM) — editorial design system
   ------------------------------------------------------------------
   Tokens live in theme.json. This file carries structure, the header,
   the hero, the waterline signature, cards, the schedule and motion.
   Mobile is designed first and headline sizes are set per breakpoint,
   not scaled down from desktop.
   ------------------------------------------------------------------ */

:root {
	--tsw-header-h: 68px;
	--tsw-rule: color-mix(in srgb, var(--wp--preset--color--night) 14%, transparent);
	--tsw-rule-light: color-mix(in srgb, var(--wp--preset--color--salt) 22%, transparent);
	--tsw-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
	--tsw-slow: 900ms;
	--tsw-gutter: clamp(1.25rem, 5vw, 3.5rem);
}

@media (min-width: 782px) {
	:root { --tsw-header-h: 84px; }
}

/* ---------- Base ---------- */

html { -webkit-text-size-adjust: 100%; }
body { overflow-x: clip; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
img, video { max-width: 100%; height: auto; }
::selection { background: var(--wp--preset--color--aqua); color: var(--wp--preset--color--night); }

/* Never let text touch the edge on small screens. */
.wp-site-blocks > * { --wp--style--root--padding-left: var(--tsw-gutter); --wp--style--root--padding-right: var(--tsw-gutter); }

a { color: inherit; }
p a:not(.wp-element-button), .tsw-prose a { text-decoration: underline; text-underline-offset: 0.22em; text-decoration-thickness: 1px; text-decoration-color: color-mix(in srgb, currentColor 40%, transparent); }
p a:hover { text-decoration-color: currentColor; }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--wp--preset--color--deep);
	outline-offset: 3px;
	border-radius: 1px;
}
.has-night-background-color :focus-visible, .tsw-header--over:not(.is-stuck) :focus-visible { outline-color: var(--wp--preset--color--aqua); }

.tsw-skip-link:focus {
	position: fixed; z-index: 999; inset-inline-start: 1rem; inset-block-start: 1rem;
	clip: auto; clip-path: none; width: auto; height: auto;
	padding: 0.9rem 1.4rem; background: var(--wp--preset--color--night); color: var(--wp--preset--color--salt);
	font-size: 0.75rem; letter-spacing: 0.16em; text-transform: uppercase;
}

/* ---------- Editorial primitives ---------- */

.is-style-eyebrow, .tsw-eyebrow {
	font-family: var(--wp--preset--font-family--grotesk);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	line-height: 1.4;
	color: color-mix(in srgb, currentColor 62%, transparent);
	margin-bottom: var(--wp--preset--spacing--20);
}

.is-style-lede { font-size: var(--wp--preset--font-size--lede); line-height: 1.42; max-width: 46ch; }
.is-style-caption {
	font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase;
	color: color-mix(in srgb, currentColor 58%, transparent);
}

.tsw-prose > * + * { margin-block-start: 1.1em; }
.tsw-prose h2 { margin-block-start: 2.2em; }
.tsw-prose h3 { margin-block-start: 1.8em; }
.tsw-prose p { max-width: 68ch; }

/* Buttons */
.wp-element-button, .wp-block-button__link { transition: background-color 240ms var(--tsw-ease), color 240ms var(--tsw-ease), border-color 240ms var(--tsw-ease); }
.is-style-ghost > .wp-block-button__link {
	background: transparent; color: currentColor;
	box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 45%, transparent);
}
.is-style-ghost > .wp-block-button__link:hover,
.is-style-ghost > .wp-block-button__link:focus { background: currentColor; color: var(--wp--preset--color--salt); }
.has-night-background-color .is-style-ghost > .wp-block-button__link:hover { color: var(--wp--preset--color--night); }
.is-style-underline > .wp-block-button__link {
	background: none; color: inherit; padding: 0 0 0.55em;
	border-bottom: 1px solid color-mix(in srgb, currentColor 45%, transparent);
}
.is-style-underline > .wp-block-button__link:hover { border-bottom-color: currentColor; }

/* Hairline system */
.is-style-rule-between > .wp-block-column + .wp-block-column {
	border-inline-start: 1px solid var(--tsw-rule);
	padding-inline-start: var(--wp--preset--spacing--30);
}
@media (max-width: 781px) {
	.is-style-rule-between > .wp-block-column + .wp-block-column { border-inline-start: 0; border-block-start: 1px solid var(--tsw-rule); padding-inline-start: 0; padding-block-start: var(--wp--preset--spacing--30); }
}

/* ---------- Signature: the waterline ----------
   A single hairline that breaks into a shallow refracted band. It marks
   section thresholds the way a pool edge marks the change from air to water. */

.is-style-waterline { position: relative; }
.is-style-waterline::before {
	content: "";
	position: absolute; inset-inline: 0; inset-block-start: 0; height: 1px;
	background: linear-gradient(90deg,
		transparent 0%,
		color-mix(in srgb, var(--wp--preset--color--aqua) 90%, transparent) 12%,
		color-mix(in srgb, var(--wp--preset--color--stone) 70%, transparent) 50%,
		color-mix(in srgb, var(--wp--preset--color--aqua) 90%, transparent) 88%,
		transparent 100%);
	opacity: 0.85;
}
.is-style-waterline::after {
	content: "";
	position: absolute; inset-inline: 0; inset-block-start: 1px; height: 7px;
	background: repeating-linear-gradient(90deg,
		color-mix(in srgb, var(--wp--preset--color--aqua) 22%, transparent) 0 2px,
		transparent 2px 9px);
	mask-image: linear-gradient(to bottom, #000, transparent);
	animation: tsw-drift 14s linear infinite;
	opacity: 0.7;
}
@keyframes tsw-drift { from { background-position-x: 0; } to { background-position-x: 108px; } }

/* ---------- Header ---------- */

.tsw-header {
	position: sticky; top: 0; z-index: 90;
	background: var(--wp--preset--color--salt);
	border-block-end: 1px solid var(--tsw-rule);
	transition: background-color 380ms var(--tsw-ease), color 380ms var(--tsw-ease), border-color 380ms var(--tsw-ease);
}
.tsw-header .wp-block-group { min-height: var(--tsw-header-h); }
.tsw-wordmark {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.0625rem, 0.9rem + 0.7vw, 1.375rem);
	letter-spacing: -0.01em;
	line-height: 1;
	white-space: nowrap;
}
.tsw-wordmark sup { font-size: 0.42em; vertical-align: super; letter-spacing: 0; }


/* Official Dubai Swim Week(TM) lockup.
   Transparent black/white variants are derived directly from the supplied brand artwork,
   keeping the mark crisp without a white JPG canvas around it. */
.tsw-brand-logo {
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
	text-decoration: none;
	line-height: 0;
}
.tsw-brand-logo__image {
	display: block;
	width: clamp(10.5rem, 15vw, 13.75rem);
	aspect-ratio: 1592 / 428;
	background: none;
	transition: background-image 180ms linear, opacity 240ms var(--tsw-ease), filter 240ms var(--tsw-ease);
}
.tsw-brand-logo:hover .tsw-brand-logo__image { opacity: .76; }

/* The official mark floats directly over cinematic media with no white box. */
.has-hero-header .tsw-header:not(.is-stuck) .tsw-brand-logo__image {
	background-image: none;
	filter: drop-shadow(0 2px 12px rgba(0,0,0,.32));
}
.tsw-header.is-stuck .tsw-brand-logo__image {
	background-image: none;
	filter: none;
}
.tsw-footer .tsw-brand-logo__image {
	width: clamp(13rem, 21vw, 17rem);
	background-image: none;
	filter: none;
}
.tsw-hero__brandmark {
	display: block;
	width: clamp(11.75rem, 18vw, 15.75rem);
	aspect-ratio: 1592 / 428;
	margin-block-end: 1rem;
	background: none;
	filter: drop-shadow(0 2px 18px rgba(0,0,0,.32));
}
@media (max-width: 781px) {
	.tsw-brand-logo__image { width: clamp(9rem, 42vw, 11.25rem); }
	.tsw-footer .tsw-brand-logo__image { width: clamp(12rem, 58vw, 15rem); }
	.tsw-hero__brandmark { width: clamp(10.75rem, 51vw, 13.5rem); margin-block-end: .85rem; }
}
@media (max-width: 420px) {
	.tsw-brand-logo__image { width: 8.75rem; }
}

/* Transparent over the hero, solid once scrolled. */
.has-hero-header .tsw-header {
	position: fixed; inset-inline: 0; top: 0;
	background: transparent; border-block-end-color: transparent; color: var(--wp--preset--color--salt);
}
.has-hero-header .tsw-header.is-stuck {
	background: color-mix(in srgb, var(--wp--preset--color--salt) 96%, transparent);
	backdrop-filter: saturate(1.2) blur(10px);
	color: var(--wp--preset--color--night);
	border-block-end-color: var(--tsw-rule);
}
.has-hero-header .tsw-header:not(.is-stuck) .wp-block-button__link {
	background: transparent; color: var(--wp--preset--color--salt);
	box-shadow: inset 0 0 0 1px var(--tsw-rule-light);
}
.has-hero-header .tsw-header:not(.is-stuck) .wp-block-button__link:hover { background: var(--wp--preset--color--salt); color: var(--wp--preset--color--night); }

/* Desktop nav */
.tsw-nav .wp-block-navigation__container { gap: clamp(1.1rem, 2vw, 2.2rem); }
.tsw-nav .wp-block-navigation-item__content {
	font-size: 0.75rem; letter-spacing: 0.13em; text-transform: uppercase; font-weight: 500;
	padding-block: 0.5rem; position: relative;
}
.tsw-nav .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: 0; bottom: 0.15rem; height: 1px; width: 100%;
	background: currentColor; transform: scaleX(0); transform-origin: right;
	transition: transform 340ms var(--tsw-ease);
}
.tsw-nav .wp-block-navigation-item__content:hover::after,
.tsw-nav .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); transform-origin: left; }

/* Mobile navigation: designed on its own terms, not a squeezed desktop bar. */
.wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--night) !important;
	color: var(--wp--preset--color--salt) !important;
	padding: calc(var(--tsw-header-h) + 1.5rem) var(--tsw-gutter) var(--tsw-gutter);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: stretch; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 0; width: 100%; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	border-block-end: 1px solid var(--tsw-rule-light); width: 100%;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--display);
	font-size: 2rem; letter-spacing: -0.015em; text-transform: none; font-weight: 400;
	padding-block: 0.72em; width: 100%;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after { display: none; }
.wp-block-navigation__responsive-container-close { color: var(--wp--preset--color--salt); }

/* ---------- Hero ---------- */

.tsw-hero {
	position: relative;
	min-height: 100svh;
	display: flex; align-items: flex-end;
	color: var(--wp--preset--color--salt);
	background: var(--wp--preset--color--night);
	overflow: clip;
	padding-block-end: clamp(2.5rem, 6vh, 5rem);
}
.tsw-hero__media { position: absolute; inset: 0; z-index: 0; }
.tsw-hero__media img, .tsw-hero__media video {
	width: 100%; height: 100%; object-fit: cover; object-position: center 38%;
	animation: tsw-hero-scale 18s var(--tsw-ease) forwards;
}
@keyframes tsw-hero-scale { from { transform: scale(1.06); } to { transform: scale(1); } }
.tsw-hero__media::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(to top,
		color-mix(in srgb, var(--wp--preset--color--night) 88%, transparent) 0%,
		color-mix(in srgb, var(--wp--preset--color--night) 42%, transparent) 42%,
		color-mix(in srgb, var(--wp--preset--color--night) 30%, transparent) 100%);
}
.tsw-hero__inner { position: relative; z-index: 1; width: 100%; }
.tsw-hero h1 {
	font-size: clamp(2.5rem, 1.4rem + 6.6vw, 7.25rem);
	line-height: 0.96;
	letter-spacing: -0.028em;
	text-wrap: balance;
	margin: 0;
}
.tsw-hero h1 em { font-style: italic; }
.tsw-hero__lede { max-width: 44ch; font-size: clamp(0.9375rem, 0.88rem + 0.35vw, 1.1875rem); line-height: 1.55; color: color-mix(in srgb, var(--wp--preset--color--salt) 84%, transparent); }
.tsw-hero__meta {
	display: flex; flex-wrap: wrap; gap: 0.6rem 1.4rem;
	font-size: 0.6875rem; letter-spacing: 0.2em; text-transform: uppercase;
	padding-block-start: 1.25rem; margin-block-start: 1.75rem;
	border-block-start: 1px solid var(--tsw-rule-light);
}

/* Line-by-line headline reveal. */
.tsw-reveal-line { display: block; overflow: hidden; }
.tsw-reveal-line > span {
	display: block;
	transform: translateY(105%);
	animation: tsw-line-up 1100ms var(--tsw-ease) forwards;
}
.tsw-reveal-line:nth-of-type(2) > span { animation-delay: 110ms; }
.tsw-reveal-line:nth-of-type(3) > span { animation-delay: 220ms; }
@keyframes tsw-line-up { to { transform: translateY(0); } }

/* ---------- Sections ---------- */

.tsw-section { padding-block: var(--wp--preset--spacing--60); }
.tsw-section--tight { padding-block: var(--wp--preset--spacing--50); }
.tsw-statement h2 {
	font-size: clamp(2rem, 1.1rem + 4.4vw, 5rem);
	line-height: 1.04; letter-spacing: -0.026em; text-wrap: balance;
	max-width: 20ch;
}
.tsw-section-head {
	display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between;
	gap: var(--wp--preset--spacing--20);
	padding-block-end: var(--wp--preset--spacing--20);
	border-block-end: 1px solid var(--tsw-rule);
	margin-block-end: var(--wp--preset--spacing--40);
}
.tsw-section-head h2 { margin: 0; }

/* Editorial grid used by The Platform, Experiences, Industry */
.tsw-grid { display: grid; gap: var(--wp--preset--spacing--30); }
.tsw-grid--2 { grid-template-columns: 1fr; }
.tsw-grid--3 { grid-template-columns: 1fr; }
.tsw-grid--4 { grid-template-columns: repeat(2, 1fr); }
@media (min-width: 600px) { .tsw-grid--2 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) {
	.tsw-grid--3 { grid-template-columns: repeat(3, 1fr); }
	.tsw-grid--4 { grid-template-columns: repeat(4, 1fr); }
}

/* ---------- Cards (designers, shows, stories, venues) ---------- */

.tsw-card { position: relative; display: flex; flex-direction: column; }
.tsw-card__media {
	position: relative; overflow: hidden; background: var(--wp--preset--color--sand);
	aspect-ratio: 3 / 4;
}
.tsw-card--wide .tsw-card__media { aspect-ratio: 4 / 3; }
.tsw-card__media img {
	width: 100%; height: 100%; object-fit: cover;
	transition: transform var(--tsw-slow) var(--tsw-ease), filter 500ms var(--tsw-ease);
}
.tsw-card:hover .tsw-card__media img, .tsw-card:focus-within .tsw-card__media img { transform: scale(1.045); }
.tsw-card__body { padding-block-start: 1rem; }
.tsw-card__kicker {
	font-size: 0.6875rem; letter-spacing: 0.18em; text-transform: uppercase;
	color: color-mix(in srgb, currentColor 60%, transparent);
	display: flex; gap: 0.75rem; flex-wrap: wrap;
}
.tsw-card__title {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.25rem, 1.05rem + 0.8vw, 1.75rem);
	line-height: 1.08; letter-spacing: -0.015em;
	margin: 0.5rem 0 0;
}
.tsw-card__excerpt { font-size: 0.9375rem; line-height: 1.5; color: color-mix(in srgb, currentColor 74%, transparent); margin: 0.5rem 0 0; max-width: 42ch; }
.tsw-card__link::after { content: ""; position: absolute; inset: 0; } /* whole card clickable, one focus stop */

/* ---------- Schedule ---------- */

.tsw-schedule__filters {
	display: flex; gap: 0.5rem; flex-wrap: nowrap;
	overflow-x: auto; scrollbar-width: none;
	padding-block-end: 0.75rem; margin-block-end: var(--wp--preset--spacing--30);
	border-block-end: 1px solid var(--tsw-rule);
	-webkit-overflow-scrolling: touch;
}
.tsw-schedule__filters::-webkit-scrollbar { display: none; }
@media (min-width: 900px) { .tsw-schedule__filters { flex-wrap: wrap; overflow: visible; } }
.tsw-filter {
	flex: 0 0 auto; cursor: pointer; background: transparent; border: 1px solid var(--tsw-rule);
	padding: 0.65rem 1.1rem; font: inherit; font-size: 0.6875rem; letter-spacing: 0.16em; text-transform: uppercase;
	color: inherit; transition: background-color 220ms var(--tsw-ease), color 220ms var(--tsw-ease), border-color 220ms var(--tsw-ease);
}
.tsw-filter:hover { border-color: currentColor; }
.tsw-filter[aria-pressed="true"] { background: var(--wp--preset--color--night); border-color: var(--wp--preset--color--night); color: var(--wp--preset--color--salt); }

.tsw-day { margin-block-end: var(--wp--preset--spacing--40); }
.tsw-day__head {
	display: flex; align-items: baseline; gap: 1rem;
	font-size: 0.6875rem; letter-spacing: 0.2em; text-transform: uppercase;
	padding-block-end: 0.75rem; border-block-end: 1px solid var(--tsw-rule);
}
.tsw-day__date { font-family: var(--wp--preset--font-family--display); font-size: 1.5rem; letter-spacing: -0.01em; text-transform: none; }

/* Time is the spine: a stacked block on mobile, a column on desktop. */
.tsw-event {
	display: grid; grid-template-columns: 1fr; gap: 0.35rem 1.5rem;
	padding-block: var(--wp--preset--spacing--30);
	border-block-end: 1px solid var(--tsw-rule);
	position: relative;
}
.tsw-event__time { font-size: 0.8125rem; letter-spacing: 0.12em; text-transform: uppercase; color: color-mix(in srgb, currentColor 70%, transparent); }
.tsw-event__title { font-family: var(--wp--preset--font-family--display); font-size: clamp(1.375rem, 1.1rem + 1.2vw, 2rem); line-height: 1.1; margin: 0; }
.tsw-event__meta { display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: color-mix(in srgb, currentColor 62%, transparent); margin-block-start: 0.5rem; }
.tsw-event__desc { font-size: 0.9375rem; line-height: 1.55; max-width: 58ch; margin-block-start: 0.6rem; color: color-mix(in srgb, currentColor 78%, transparent); }
.tsw-event__actions { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-block-start: 1rem; }
.tsw-event__access {
	align-self: start; justify-self: start;
	font-size: 0.625rem; letter-spacing: 0.18em; text-transform: uppercase;
	padding: 0.35rem 0.6rem; border: 1px solid var(--tsw-rule);
}
@media (min-width: 900px) {
	.tsw-event { grid-template-columns: 8.5rem 1fr auto; align-items: start; }
	.tsw-event__actions { margin-block-start: 0; }
}
.tsw-event[hidden] { display: none; }
.tsw-schedule__empty { padding-block: var(--wp--preset--spacing--40); font-size: 0.9375rem; }

/* ---------- Marquee ---------- */

.tsw-marquee { overflow: hidden; border-block: 1px solid var(--tsw-rule); padding-block: 0.9rem; }
.tsw-marquee__track { display: flex; gap: 2.5rem; width: max-content; animation: tsw-marquee 42s linear infinite; }
.tsw-marquee span {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.25rem, 1rem + 1.4vw, 2.25rem); white-space: nowrap; letter-spacing: -0.01em;
	color: color-mix(in srgb, currentColor 78%, transparent);
}
@keyframes tsw-marquee { to { transform: translateX(-50%); } }

/* ---------- Partner logo wall ---------- */

.tsw-partners { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--tsw-rule); border: 1px solid var(--tsw-rule); }
@media (min-width: 600px) { .tsw-partners { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1000px) { .tsw-partners { grid-template-columns: repeat(5, 1fr); } }
.tsw-partner {
	background: var(--wp--preset--color--salt);
	display: grid; place-items: center; padding: clamp(1.25rem, 3vw, 2.5rem); min-height: 7.5rem;
}
.tsw-partner img { max-height: 46px; width: auto; object-fit: contain; filter: grayscale(1); opacity: 0.72; transition: opacity 300ms var(--tsw-ease), filter 300ms var(--tsw-ease); }
.tsw-partner:hover img { filter: none; opacity: 1; }
.tsw-partner__placeholder { font-size: 0.6875rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--wp--preset--color--stone); text-align: center; }

/* ---------- Forms ---------- */

.tsw-form { max-width: 46rem; }
.tsw-form__grid { display: grid; grid-template-columns: 1fr; gap: var(--wp--preset--spacing--30); }
@media (min-width: 700px) { .tsw-form__grid--2 { grid-template-columns: repeat(2, 1fr); } }
.tsw-field { display: flex; flex-direction: column; gap: 0.5rem; }
.tsw-field--full { grid-column: 1 / -1; }
.tsw-field label { font-size: 0.6875rem; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 500; }
.tsw-field .tsw-hint { font-size: 0.8125rem; color: color-mix(in srgb, currentColor 66%, transparent); }
.tsw-field input, .tsw-field select, .tsw-field textarea {
	font: inherit; font-size: 1rem; color: inherit; width: 100%;
	background: transparent; border: 0; border-block-end: 1px solid var(--tsw-rule);
	border-radius: 0; padding: 0.75rem 0; transition: border-color 220ms var(--tsw-ease);
	appearance: none;
}
.tsw-field input[type="file"] { padding-block: 0.5rem; font-size: 0.875rem; }
.tsw-field textarea { min-height: 8rem; resize: vertical; }
.tsw-field input:focus, .tsw-field select:focus, .tsw-field textarea:focus { border-block-end-color: var(--wp--preset--color--deep); outline-offset: 6px; }
.tsw-field--consent { flex-direction: row; align-items: flex-start; gap: 0.75rem; }
.tsw-field--consent input { width: 1.15rem; height: 1.15rem; flex: 0 0 auto; margin-block-start: 0.2rem; border: 1px solid var(--wp--preset--color--night); }
.tsw-field--consent label { text-transform: none; letter-spacing: 0; font-size: 0.875rem; line-height: 1.5; font-weight: 400; }
.tsw-required { color: var(--wp--preset--color--deep); }
.tsw-hp { position: absolute !important; left: -9999px; }
.tsw-form__actions { margin-block-start: var(--wp--preset--spacing--30); }
.tsw-submit {
	font: inherit; cursor: pointer; border: 0; border-radius: 0;
	background: var(--wp--preset--color--night); color: var(--wp--preset--color--salt);
	padding: 1.15em 2.4em; font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase;
	transition: background-color 240ms var(--tsw-ease);
}
.tsw-submit:hover { background: var(--wp--preset--color--deep); }
.tsw-notice { padding: 1.25rem 1.5rem; border-inline-start: 2px solid var(--wp--preset--color--deep); background: color-mix(in srgb, var(--wp--preset--color--sand) 45%, transparent); margin-block-end: var(--wp--preset--spacing--30); }
.tsw-notice--error { border-color: #8C2F1F; }
.tsw-notice p { margin: 0; }
.tsw-notice ul { margin: 0.5rem 0 0; padding-inline-start: 1.1rem; font-size: 0.9375rem; }

/* Newsletter inline form */
.tsw-newsletter { display: grid; gap: 1rem; max-width: 34rem; }
@media (min-width: 560px) { .tsw-newsletter { grid-template-columns: 1fr auto; align-items: end; } }
.tsw-newsletter .tsw-field--consent { grid-column: 1 / -1; }

/* ---------- Footer ---------- */

.tsw-footer { background: var(--wp--preset--color--night); color: var(--wp--preset--color--salt); }
.tsw-footer a:hover { color: var(--wp--preset--color--aqua); }
.tsw-footer .wp-block-navigation { --wp--style--block-gap: 0.55rem; }
.tsw-footer .wp-block-navigation-item__content { font-size: 0.9375rem; }
.tsw-footer h2, .tsw-footer h3 { font-family: var(--wp--preset--font-family--grotesk); font-size: 0.6875rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--wp--preset--color--stone); font-weight: 500; }
.tsw-footer__legal { border-block-start: 1px solid var(--tsw-rule-light); padding-block-start: var(--wp--preset--spacing--30); font-size: 0.75rem; color: color-mix(in srgb, var(--wp--preset--color--salt) 62%, transparent); }

/* ---------- Motion ---------- */

.tsw-in { opacity: 0; transform: translateY(18px); }
.tsw-in.is-visible { opacity: 1; transform: none; transition: opacity 900ms var(--tsw-ease), transform 900ms var(--tsw-ease); }
.is-style-reveal img { clip-path: inset(0 0 100% 0); transition: clip-path 1200ms var(--tsw-ease); }
.is-style-reveal.is-visible img { clip-path: inset(0 0 0 0); }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
	.tsw-in { opacity: 1; transform: none; }
	.is-style-reveal img { clip-path: none; }
	.tsw-reveal-line > span { transform: none; }
	.tsw-hero__media img, .tsw-hero__media video { animation: none; }
}

/* ---------- Print ---------- */
@media print {
	.tsw-header, .tsw-footer, .tsw-schedule__filters, .tsw-event__actions { display: none !important; }
	body { background: #fff; color: #000; }
}

/* ---------- Cover-based hero (pattern markup) ---------- */
.tsw-hero.wp-block-cover { min-height: 100svh; padding-block: calc(var(--tsw-header-h) + 2rem) clamp(2.5rem, 6vh, 4.5rem); }
.tsw-hero .wp-block-cover__inner-container { width: 100%; }
.tsw-hero .wp-block-cover__image-background,
.tsw-hero video.wp-block-cover__video-background { animation: tsw-hero-scale 18s var(--tsw-ease) forwards; object-position: center 38%; }
.tsw-hero .wp-block-cover__background { background: linear-gradient(to top,
	color-mix(in srgb, var(--wp--preset--color--night) 86%, transparent) 0%,
	color-mix(in srgb, var(--wp--preset--color--night) 40%, transparent) 45%,
	color-mix(in srgb, var(--wp--preset--color--night) 26%, transparent) 100%) !important;
	opacity: 1 !important;
}
.tsw-hero h1 { font-size: clamp(2.5rem, 1.4rem + 6.4vw, 7rem); line-height: 0.95; letter-spacing: -0.03em; margin: 0; text-wrap: balance; }
.tsw-hero .tsw-hero__lede { max-width: 46ch; }
@media (max-width: 599px) { .tsw-hero .wp-block-buttons { width: 100%; } .tsw-hero .wp-block-button { flex: 1 1 100%; } .tsw-hero .wp-block-button__link { display: block; text-align: center; } }

/* Split editorial block: image one side, type the other */
.tsw-split { display: grid; gap: var(--wp--preset--spacing--40); align-items: center; }
@media (min-width: 900px) { .tsw-split { grid-template-columns: 1fr 1fr; gap: var(--wp--preset--spacing--50); } .tsw-split--wide-media { grid-template-columns: 1.25fr 1fr; } }

/* ---------- Fact strip, related, schedule empty state ---------- */

.tsw-facts { margin: 0; border-block-start: 1px solid var(--tsw-rule); }
.tsw-facts dt {
	font-size: 0.6875rem; letter-spacing: 0.18em; text-transform: uppercase;
	color: color-mix(in srgb, currentColor 58%, transparent);
	padding-block-start: 1.1rem;
}
.tsw-facts dd { margin: 0.3rem 0 1.1rem; padding-block-end: 1.1rem; border-block-end: 1px solid var(--tsw-rule); font-size: 1rem; }
.tsw-facts dd a { text-decoration: underline; text-underline-offset: 0.2em; }

.tsw-schedule__empty-state { padding-block: var(--wp--preset--spacing--40); border-block-start: 1px solid var(--tsw-rule); }
.tsw-schedule__empty-state .wp-element-button { display: inline-block; text-decoration: none; }

.tsw-related .tsw-card__media { aspect-ratio: 3 / 4; }

/* Buttons rendered by the plugin outside the block editor */
a.wp-element-button { display: inline-block; text-decoration: none; }

/* ---------- Luxury editorial edition 01 ---------- */
.tsw-hero--film {
	padding: calc(var(--tsw-header-h) + 2rem) var(--tsw-gutter) clamp(2.5rem, 6vh, 5rem);
}
.tsw-hero--film .tsw-hero__inner {
	max-width: 1480px;
	margin-inline: auto;
}
.tsw-hero__edition {
	display: flex;
	flex-wrap: wrap;
	gap: .55rem 1.5rem;
	margin-block-end: clamp(2rem, 6vh, 5rem);
	font-size: .625rem;
	line-height: 1.3;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--wp--preset--color--salt) 72%, transparent);
}
.tsw-hero--film .tsw-hero__brandmark { color: var(--wp--preset--color--salt); }
.tsw-hero--film h1 { max-width: 12ch; }
.tsw-hero__actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: .85rem 1rem;
	margin-top: clamp(1.5rem, 3vw, 2.25rem);
}
.tsw-button--light { background: var(--wp--preset--color--salt) !important; color: var(--wp--preset--color--night) !important; }
.tsw-button--light:hover { background: #fff !important; }
.tsw-button--outline {
	background: transparent !important;
	color: var(--wp--preset--color--salt) !important;
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--wp--preset--color--salt) 55%, transparent);
}
.tsw-button--outline:hover { background: var(--wp--preset--color--salt) !important; color: var(--wp--preset--color--night) !important; }
.tsw-editorial-link {
	display: inline-flex;
	align-items: center;
	gap: .75rem;
	padding-block: .45rem .55rem;
	font-size: .6875rem;
	font-weight: 500;
	letter-spacing: .18em;
	text-transform: uppercase;
	text-decoration: none;
	border-bottom: 1px solid color-mix(in srgb, currentColor 48%, transparent);
	transition: gap 240ms var(--tsw-ease), border-color 240ms var(--tsw-ease);
}
.tsw-editorial-link:hover { gap: 1.05rem; border-bottom-color: currentColor; }
.tsw-film-toggle {
	position: absolute;
	z-index: 3;
	right: var(--tsw-gutter);
	bottom: clamp(2.5rem, 6vh, 5rem);
	appearance: none;
	border: 0;
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--salt) 48%, transparent);
	background: transparent;
	color: var(--wp--preset--color--salt);
	padding: .4rem 0;
	font: inherit;
	font-size: .625rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	cursor: pointer;
}
.tsw-film-toggle:hover { border-color: currentColor; }

.tsw-editorial-intro em,
.tsw-film-feature em,
.tsw-runway-cover em,
.tsw-final-editorial em { font-style: italic; font-weight: 400; }

.tsw-platform-grid .tsw-card__media { aspect-ratio: 3 / 4; }
.tsw-platform-grid .tsw-card:nth-child(odd) { transform: translateY(clamp(0rem, 2vw, 1.5rem)); }
.tsw-platform-grid .tsw-card__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(11,20,24,.28), transparent 46%);
	pointer-events: none;
}
.tsw-platform-notes { color: color-mix(in srgb, var(--wp--preset--color--salt) 84%, transparent); }
.tsw-platform-notes h3 { color: var(--wp--preset--color--salt); }

.tsw-film-feature {
	display: grid;
	grid-template-columns: 1fr;
	background: #101619;
	color: var(--wp--preset--color--salt);
	min-height: 72svh;
}
.tsw-film-feature__media {
	position: relative;
	min-height: 56svh;
	overflow: hidden;
	background: #0b1418;
}
.tsw-film-feature__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(11,20,24,.24), transparent 44%);
	pointer-events: none;
}
.tsw-film-feature__media video {
	width: 100%;
	height: 100%;
	min-height: 56svh;
	object-fit: cover;
	object-position: center center;
	display: block;
}
.tsw-film-feature__copy {
	padding: clamp(3rem, 6vw, 7rem) var(--tsw-gutter);
	align-self: center;
}
.tsw-film-feature__copy h2 {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2.8rem, 2rem + 4vw, 6.5rem);
	line-height: .96;
	letter-spacing: -.03em;
	margin: 0;
	max-width: 10ch;
}
.tsw-film-feature__lede {
	font-size: clamp(1.15rem, 1rem + .6vw, 1.5rem);
	line-height: 1.45;
	max-width: 41ch;
	margin-top: clamp(1.75rem, 3vw, 2.75rem);
}
.tsw-film-feature__copy > p:not(.tsw-eyebrow):not(.tsw-film-feature__lede) { max-width: 52ch; color: color-mix(in srgb, var(--wp--preset--color--salt) 74%, transparent); }
.tsw-film-feature__copy .tsw-editorial-link { margin-top: 1.5rem; }
.tsw-film-toggle--feature { right: 1.25rem; bottom: 1.25rem; }

.tsw-editorial-media { margin: 0; overflow: hidden; }
.tsw-editorial-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tsw-editorial-media:not(.tsw-editorial-media--landscape) { aspect-ratio: 3 / 4; }
.tsw-editorial-media--landscape { aspect-ratio: 16 / 10; }
.tsw-editorial-media figcaption {
	margin-top: .7rem;
	font-size: .6875rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: color-mix(in srgb, currentColor 62%, transparent);
}
.tsw-editorial-h3 {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2.25rem, 1.7rem + 2vw, 4rem);
	line-height: 1;
	letter-spacing: -.025em;
	margin: 0 0 1.5rem;
}
.tsw-editorial-lede { font-size: clamp(1.125rem, 1rem + .45vw, 1.375rem); line-height: 1.48; max-width: 42ch; }
.tsw-editorial-list {
	columns: 2;
	column-gap: 2rem;
	list-style: none;
	padding: 1.25rem 0;
	margin: 1.5rem 0;
	border-block: 1px solid var(--tsw-rule);
	font-size: .875rem;
	line-height: 1.85;
}
.tsw-editorial-duo {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--wp--preset--spacing--30);
	margin-top: var(--wp--preset--spacing--50);
}
.tsw-editorial-duo .tsw-editorial-media:first-child { margin-top: clamp(0rem, 7vw, 7rem); }
.tsw-experience-home .tsw-editorial-duo { max-width: 1050px; margin-left: auto; }

.tsw-runway-cover .wp-block-cover__background,
.tsw-final-editorial .wp-block-cover__background { opacity: .62 !important; }
.tsw-runway-cover .wp-block-cover__image-background { object-position: center 48%; }
.tsw-final-editorial .wp-block-cover__image-background { object-position: center 40%; }
.tsw-runway-cover .wp-block-group { text-shadow: 0 1px 22px rgba(0,0,0,.12); }
.tsw-final-editorial .is-style-lede { max-width: 40ch; }

/* Editorial page story modules used by About / VIP / Experiences. */
.psw-page-story {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--wp--preset--spacing--40);
	align-items: center;
}
.psw-page-story__media { aspect-ratio: 4 / 5; overflow: hidden; }
.psw-page-story__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.psw-page-story__copy h2 { max-width: 12ch; }
.psw-page-story__copy p { max-width: 48ch; }

@media (min-width: 900px) {
	.tsw-film-feature { grid-template-columns: minmax(0, 1.18fr) minmax(26rem, .82fr); }
	.tsw-film-feature__media,
	.tsw-film-feature__media video { min-height: 86svh; }
	.tsw-film-feature__copy { padding-inline: clamp(3.5rem, 5vw, 7rem); }
	.psw-page-story { grid-template-columns: minmax(0, 1.1fr) minmax(24rem, .9fr); gap: var(--wp--preset--spacing--50); }
	.psw-page-story--reverse .psw-page-story__media { order: 2; }
}

@media (max-width: 781px) {
	.tsw-hero--film { min-height: 94svh; padding-top: calc(var(--tsw-header-h) + 4rem); }
	.tsw-hero__edition { margin-bottom: 2rem; gap: .45rem 1rem; }
	.tsw-hero__edition span:nth-child(3) { display: none; }
	.tsw-hero--film h1 { font-size: clamp(2.8rem, 13vw, 4.6rem); max-width: 11ch; }
	.tsw-hero__actions { align-items: stretch; }
	.tsw-hero__actions .wp-element-button { flex: 1 1 calc(50% - .5rem); text-align: center; }
	.tsw-hero__actions .tsw-editorial-link { flex: 1 1 100%; width: max-content; }
	.tsw-film-toggle { right: var(--tsw-gutter); bottom: 1.25rem; }
	.tsw-hero__meta { padding-right: 6rem; }
	.tsw-platform-grid { grid-template-columns: 1fr 1fr; gap: 1.25rem; }
	.tsw-platform-grid .tsw-card:nth-child(odd) { transform: none; }
	.tsw-platform-grid .tsw-card__excerpt { font-size: .8125rem; }
	.tsw-editorial-duo { gap: .9rem; }
	.tsw-editorial-list { columns: 1; }
}

@media (max-width: 520px) {
	.tsw-platform-grid { grid-template-columns: 1fr; }
	.tsw-hero__actions .wp-element-button { flex-basis: 100%; }
	.tsw-editorial-duo { grid-template-columns: 1fr; }
	.tsw-editorial-duo .tsw-editorial-media:first-child { margin-top: 0; }
}

@media (prefers-reduced-motion: reduce) {
	.tsw-film-toggle { display: none; }
}

.tsw-dubai-cover .wp-block-cover__background { opacity: .62 !important; }
.tsw-dubai-cover .wp-block-cover__image-background { object-position: center 46%; }
.tsw-dubai-cover em { font-style: italic; font-weight: 400; }


/* v1.2 — fashion editorial spreads */
.tsw-fashion-spread {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(7rem, .34fr) minmax(0, .92fr);
  align-items: start;
  gap: clamp(1rem, 2.6vw, 2.75rem);
  margin-top: clamp(3rem, 7vw, 7.5rem);
  padding-block: clamp(1rem, 3vw, 3rem);
}
.tsw-fashion-spread::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  border-top: 1px solid var(--tsw-rule);
}
.tsw-fashion-spread__look { margin: 0; }
.tsw-fashion-spread__look--light { margin-top: clamp(4rem, 10vw, 10rem); }
.tsw-fashion-spread__image { overflow: hidden; background: var(--wp--preset--color--night); }
.tsw-fashion-spread__look--dark .tsw-fashion-spread__image { aspect-ratio: 2 / 3; }
.tsw-fashion-spread__look--light .tsw-fashion-spread__image { aspect-ratio: 4 / 5; }
.tsw-fashion-spread__image img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.tsw-fashion-spread__look:hover img { transform: scale(1.025); }
.tsw-fashion-spread figcaption { display: grid; gap: .25rem; padding-top: .9rem; }
.tsw-fashion-spread figcaption span,
.tsw-fashion-spread figcaption em { font-family: var(--wp--preset--font-family--body); font-size: .6875rem; letter-spacing: .13em; text-transform: uppercase; font-style: normal; }
.tsw-fashion-spread figcaption span { opacity: .55; }
.tsw-fashion-spread figcaption strong { font-family: var(--wp--preset--font-family--display); font-size: clamp(1.75rem, 1.25rem + 1.25vw, 3rem); font-weight: 400; line-height: 1; }
.tsw-fashion-spread figcaption em { opacity: .72; max-width: 34ch; line-height: 1.55; }
.tsw-fashion-spread__masthead { position: sticky; top: calc(var(--tsw-header-h) + 2rem); padding-top: clamp(2rem, 5vw, 5rem); writing-mode: vertical-rl; transform: rotate(180deg); justify-self: center; display: flex; align-items: center; gap: 1rem; }
.tsw-fashion-spread__masthead span { font-family: var(--wp--preset--font-family--display); font-size: clamp(4rem, 8vw, 8rem); line-height: .75; letter-spacing: -.06em; }
.tsw-fashion-spread__masthead small { font-size: .625rem; letter-spacing: .18em; text-transform: uppercase; opacity: .58; }

.psw-page-editorial-strip {
  width: min(calc(100% - var(--tsw-gutter) - var(--tsw-gutter)), 1480px);
  margin: clamp(3rem, 7vw, 7rem) auto;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(22rem, .95fr);
  gap: clamp(2rem, 5vw, 6rem);
  align-items: center;
}
.psw-page-editorial-strip--reverse .psw-page-editorial-strip__media { order: 2; }
.psw-page-editorial-strip__media { aspect-ratio: 4 / 5; overflow: hidden; }
.psw-page-editorial-strip__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.psw-page-editorial-strip__copy h2 { font-family: var(--wp--preset--font-family--display); font-size: clamp(2.8rem, 2rem + 3vw, 5.75rem); font-weight: 400; line-height: .93; letter-spacing: -.035em; max-width: 10ch; margin: .65rem 0 1.75rem; }
.psw-page-editorial-strip__copy p { max-width: 44ch; font-size: clamp(1.05rem, 1rem + .25vw, 1.25rem); line-height: 1.55; }
.psw-page-editorial-strip__note { border-top: 1px solid var(--tsw-rule); margin-top: 2rem; padding-top: 1rem; font-size: .75rem !important; letter-spacing: .1em; text-transform: uppercase; }

@media (max-width: 781px) {
  .tsw-fashion-spread { grid-template-columns: 1fr 1fr; gap: .85rem; }
  .tsw-fashion-spread__masthead { display: none; }
  .tsw-fashion-spread__look--light { margin-top: 3rem; }
  .psw-page-editorial-strip { grid-template-columns: 1fr; gap: 2rem; }
  .psw-page-editorial-strip--reverse .psw-page-editorial-strip__media { order: 0; }
  .psw-page-editorial-strip__media { aspect-ratio: 4 / 5; }
}
@media (max-width: 520px) {
  .tsw-fashion-spread { grid-template-columns: 1fr; }
  .tsw-fashion-spread__look--light { margin-top: 1.5rem; }
  .tsw-fashion-spread__look--dark .tsw-fashion-spread__image,
  .tsw-fashion-spread__look--light .tsw-fashion-spread__image { aspect-ratio: 4 / 5; }
}


.tsw-legal-copy { max-width: 1080px; }
.tsw-legal-review-note { padding: 1rem 1.25rem; border: 1px solid var(--tsw-rule); background: color-mix(in srgb, var(--wp--preset--color--sand) 35%, transparent); font-size: .875rem; line-height: 1.55; }
.tsw-legal-section { padding-block: clamp(1.75rem, 3vw, 3rem); border-bottom: 1px solid var(--tsw-rule); }
.tsw-legal-section h2 { margin-bottom: .75rem; }
.tsw-legal-section p { max-width: 70ch; font-size: 1rem; line-height: 1.7; }


/* v1.3 — high-fashion swim editorial media refresh */
.tsw-hero--film .tsw-hero__media video { object-position: center 45%; }
.tsw-fashion-spread__look--dark .tsw-fashion-spread__image img { object-position: center 28%; }
.tsw-fashion-spread__look--light .tsw-fashion-spread__image img { object-position: center 22%; }
@media (max-width: 782px) {
  .tsw-hero--film .tsw-hero__media video { object-position: center center; }
  .tsw-fashion-spread__look--dark .tsw-fashion-spread__image img,
  .tsw-fashion-spread__look--light .tsw-fashion-spread__image img { object-position: center 24%; }
}


/* v1.4 — luxury swim editorial refresh */
.tsw-fashion-spread__look--light .tsw-fashion-spread__image img { object-position: center 34%; }
.tsw-designer-call .wp-block-image img { width: 100%; height: 100%; min-height: clamp(34rem, 52vw, 52rem); object-fit: cover; object-position: center 42%; display: block; }
@media (max-width: 782px) {
  .tsw-fashion-spread__look--light .tsw-fashion-spread__image img { object-position: center 30%; }
  .tsw-designer-call .wp-block-image img { min-height: 32rem; object-position: center 38%; }
}


/* v1.7 — official brand lockup integration */
.tsw-header .alignwide { width: min(100%, 1480px); }
.tsw-header .tsw-brand-logo { min-width: 0; }
@media (max-width: 1120px) and (min-width: 782px) {
	.tsw-header__cta { display: none; }
	.tsw-nav .wp-block-navigation__container { gap: clamp(.8rem, 1.4vw, 1.25rem); }
	.tsw-nav .wp-block-navigation-item__content { font-size: .6875rem; }
}
@media (max-width: 781px) {
	.tsw-header .wp-block-group.alignwide { min-height: var(--tsw-header-h); }
}

/* v1.8 — luxury hero composition: film left, editorial stack right */
/* Keep the supplied official lockup exclusive to the navigation/footer. This also
   suppresses a stale hero signature if a previously customized template retained it. */
.tsw-hero__brandmark { display: none !important; }

/* A quieter fashion-house scale for the primary navigation lockup. */
.tsw-brand-logo__image {
	width: clamp(8.75rem, 11vw, 10.75rem);
}

/* Let the model/film own the left field while the typography sits in a deliberately
   narrow editorial column on the right. */
@media (min-width: 900px) {
	.tsw-hero--film .tsw-hero__inner {
		width: min(47vw, 43rem);
		max-width: 43rem;
		margin-left: auto;
		margin-right: 0;
	}
	.tsw-hero--film h1 {
		max-width: 9.7ch;
		font-size: clamp(4.25rem, 6.15vw, 7.35rem);
	}
	.tsw-hero--film .tsw-hero__lede {
		max-width: 40ch;
	}
	.tsw-hero__edition {
		margin-block-end: clamp(1.75rem, 4.5vh, 3.5rem);
	}
	.tsw-hero__meta {
		max-width: 100%;
	}
	.tsw-hero--film .tsw-hero__media::after {
		background:
			linear-gradient(to left,
				color-mix(in srgb, var(--wp--preset--color--night) 70%, transparent) 0%,
				color-mix(in srgb, var(--wp--preset--color--night) 48%, transparent) 38%,
				color-mix(in srgb, var(--wp--preset--color--night) 15%, transparent) 72%,
				transparent 100%),
			linear-gradient(to top,
				color-mix(in srgb, var(--wp--preset--color--night) 82%, transparent) 0%,
				color-mix(in srgb, var(--wp--preset--color--night) 22%, transparent) 48%,
				color-mix(in srgb, var(--wp--preset--color--night) 18%, transparent) 100%);
	}
}

/* The film control is deliberately detached from the copy column. */
.tsw-film-toggle {
	left: var(--tsw-gutter);
	right: auto;
}

@media (max-width: 899px) {
	.tsw-brand-logo__image { width: clamp(8rem, 30vw, 9.5rem); }
	.tsw-hero--film .tsw-hero__inner {
		width: 100%;
		max-width: 100%;
		margin-inline: 0;
	}
}

@media (max-width: 420px) {
	.tsw-brand-logo__image { width: 7.5rem; }
}

/* v1.9 — archive + editorial highlights system
   Official Dubai Swim Week photography is treated as documentary/event archive.
   Existing Pexels imagery remains the licensed editorial/mood layer elsewhere. */
.tsw-highlights-preview { width: 100%; }
.tsw-highlights-preview__head {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(20rem, .85fr);
	gap: clamp(2rem, 6vw, 7rem);
	align-items: end;
	margin-bottom: clamp(2rem, 5vw, 4.5rem);
}
.tsw-highlights-preview__head h2 {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(3.4rem, 3rem + 4.2vw, 7.5rem);
	font-weight: 400;
	line-height: .9;
	letter-spacing: -.045em;
	max-width: 8ch;
	margin: 0;
}
.tsw-highlights-preview__head h2 em { font-style: italic; font-weight: 400; }
.tsw-highlights-preview__intro { max-width: 38rem; padding-bottom: .45rem; }
.tsw-highlights-preview__intro p { font-size: clamp(1.05rem, .98rem + .35vw, 1.28rem); line-height: 1.55; max-width: 46ch; }
.tsw-highlights-preview__intro .tsw-editorial-link { margin-top: 1.25rem; }
.tsw-highlights-preview__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, .72fr) minmax(0, .72fr);
	gap: clamp(.75rem, 1.5vw, 1.5rem);
	align-items: end;
}
.tsw-archive-card { margin: 0; }
.tsw-archive-card img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tsw-archive-card--wide { aspect-ratio: 16 / 10; }
.tsw-archive-card--portrait { aspect-ratio: 3 / 4; }
.tsw-archive-card figcaption { display: grid; grid-template-columns: auto 1fr; gap: .15rem .7rem; align-items: baseline; padding-top: .8rem; border-top: 1px solid var(--tsw-rule); margin-top: .85rem; }
.tsw-archive-card figcaption span { grid-row: 1 / 3; font-size: .625rem; letter-spacing: .16em; opacity: .5; }
.tsw-archive-card figcaption strong { font-family: var(--wp--preset--font-family--display); font-size: 1.35rem; font-weight: 400; line-height: 1; }
.tsw-archive-card figcaption small { font-size: .625rem; letter-spacing: .12em; text-transform: uppercase; opacity: .52; }

.tsw-highlights-page { --archive-max: 1480px; background: var(--wp--preset--color--salt); color: var(--wp--preset--color--night); }
.tsw-highlights-hero { position: relative; min-height: 92svh; display: flex; align-items: flex-end; overflow: hidden; background: var(--wp--preset--color--night); color: var(--wp--preset--color--salt); }
.tsw-highlights-hero__media { position: absolute; inset: 0; }
.tsw-highlights-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 42%; display: block; }
.tsw-highlights-hero__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(9,16,19,.72) 0%, rgba(9,16,19,.22) 50%, rgba(9,16,19,.14) 100%), linear-gradient(0deg, rgba(9,16,19,.7), transparent 55%); }
.tsw-highlights-hero__copy { position: relative; z-index: 1; width: min(calc(100% - var(--tsw-gutter) - var(--tsw-gutter)), var(--archive-max)); margin: 0 auto; padding: calc(var(--tsw-header-h) + 6rem) 0 clamp(3.5rem, 8vh, 7rem); }
.tsw-highlights-hero__copy h1 { font-family: var(--wp--preset--font-family--display); font-size: clamp(4rem, 4rem + 6vw, 10rem); font-weight: 400; line-height: .82; letter-spacing: -.05em; margin: 0; max-width: 7ch; }
.tsw-highlights-hero__copy h1 em { font-style: italic; font-weight: 400; }
.tsw-highlights-hero__copy > p:last-child { max-width: 42ch; margin-top: clamp(1.5rem, 3vw, 2.5rem); font-size: clamp(1.05rem, 1rem + .4vw, 1.35rem); line-height: 1.5; color: color-mix(in srgb, var(--wp--preset--color--salt) 84%, transparent); }

.tsw-archive-section { width: min(calc(100% - var(--tsw-gutter) - var(--tsw-gutter)), var(--archive-max)); margin: 0 auto; padding-block: clamp(5rem, 10vw, 10rem); }
.tsw-archive-kicker { display: flex; justify-content: space-between; gap: 1rem; padding-top: .85rem; border-top: 1px solid var(--tsw-rule); font-size: .625rem; letter-spacing: .18em; text-transform: uppercase; color: color-mix(in srgb, currentColor 58%, transparent); }
.tsw-archive-intro { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(20rem, .85fr); gap: clamp(2rem, 6vw, 7rem); align-items: end; margin: clamp(2rem, 5vw, 4.5rem) 0; }
.tsw-archive-intro h2 { font-family: var(--wp--preset--font-family--display); font-size: clamp(3rem, 2.5rem + 3vw, 6.25rem); font-weight: 400; line-height: .92; letter-spacing: -.04em; max-width: 9ch; margin: 0; }
.tsw-archive-intro p { font-size: clamp(1.05rem, 1rem + .25vw, 1.22rem); line-height: 1.62; max-width: 44ch; margin: 0; }
.tsw-archive-triptych { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(.75rem, 1.4vw, 1.4rem); align-items: start; }
.tsw-archive-triptych figure { margin: 0; }
.tsw-archive-triptych figure:nth-child(2) { margin-top: clamp(2rem, 6vw, 6rem); }
.tsw-archive-triptych figure:nth-child(3) { margin-top: clamp(.5rem, 2.4vw, 2.4rem); }
.tsw-archive-triptych img { width: 100%; aspect-ratio: 3 / 4.7; object-fit: cover; display: block; }
.tsw-archive-triptych figcaption { padding-top: .7rem; font-size: .625rem; letter-spacing: .14em; text-transform: uppercase; opacity: .56; }

.tsw-archive-feature { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(24rem, .85fr); min-height: 90svh; background: var(--wp--preset--color--sand); overflow: hidden; }
.tsw-archive-feature__image { min-height: 78svh; }
.tsw-archive-feature__image > img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; }
.tsw-archive-feature__copy { padding: clamp(4rem, 7vw, 8rem) clamp(2rem, 6vw, 7rem); align-self: center; }
.tsw-archive-feature__copy h2 { font-family: var(--wp--preset--font-family--display); font-size: clamp(3rem, 2.4rem + 3.5vw, 6rem); font-weight: 400; line-height: .92; letter-spacing: -.04em; max-width: 8ch; margin: 0 0 1.5rem; }
.tsw-archive-feature__copy > p:not(.tsw-eyebrow) { max-width: 40ch; font-size: 1.1rem; line-height: 1.62; }
.tsw-archive-feature__secondary { width: min(72%, 24rem); margin: clamp(2rem, 5vw, 4rem) 0 0 auto; aspect-ratio: 3 / 4.2; overflow: hidden; }
.tsw-archive-feature__secondary img { width: 100%; height: 100%; object-fit: cover; object-position: center 35%; display: block; }

.tsw-arrivals-grid { display: grid; grid-template-columns: .92fr 1.12fr .92fr; gap: clamp(.75rem, 1.5vw, 1.5rem); align-items: start; }
.tsw-arrivals-grid figure { margin: 0; overflow: hidden; }
.tsw-arrivals-grid figure:nth-child(2) { margin-top: clamp(2rem, 6vw, 6rem); }
.tsw-arrivals-grid img { width: 100%; height: auto; aspect-ratio: 3 / 4.1; object-fit: cover; display: block; }

.tsw-campaign-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(.65rem, 1.2vw, 1.2rem); align-items: start; }
.tsw-campaign-grid figure { margin: 0; background: var(--wp--preset--color--sand); overflow: hidden; }
.tsw-campaign-grid figure:nth-child(even) { margin-top: clamp(2rem, 5vw, 5rem); }
.tsw-campaign-grid img { width: 100%; height: auto; aspect-ratio: 9 / 16; object-fit: cover; display: block; }

.tsw-highlights-editorial { position: relative; min-height: 90svh; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(24rem, .8fr); background: var(--wp--preset--color--night); color: var(--wp--preset--color--salt); overflow: hidden; }
.tsw-highlights-editorial__media { min-height: 75svh; overflow: hidden; }
.tsw-highlights-editorial__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 46%; display: block; }
.tsw-highlights-editorial__copy { padding: clamp(4rem, 7vw, 8rem) clamp(2rem, 6vw, 7rem); align-self: center; }
.tsw-highlights-editorial__copy h2 { font-family: var(--wp--preset--font-family--display); font-size: clamp(3rem, 2.4rem + 3vw, 5.75rem); font-weight: 400; line-height: .92; letter-spacing: -.04em; max-width: 10ch; margin: 0 0 1.75rem; }
.tsw-highlights-editorial__copy h2 em { font-style: italic; font-weight: 400; }
.tsw-highlights-editorial__copy > p:not(.tsw-eyebrow) { max-width: 42ch; font-size: 1.05rem; line-height: 1.62; color: color-mix(in srgb, var(--wp--preset--color--salt) 78%, transparent); }

@media (max-width: 899px) {
	.tsw-highlights-preview__head,
	.tsw-archive-intro { grid-template-columns: 1fr; gap: 1.5rem; }
	.tsw-highlights-preview__head h2 { max-width: 10ch; }
	.tsw-highlights-preview__grid { grid-template-columns: 1.2fr .8fr; }
	.tsw-archive-card--wide { grid-column: 1 / -1; }
	.tsw-archive-feature,
	.tsw-highlights-editorial { grid-template-columns: 1fr; }
	.tsw-archive-feature__image { min-height: 66svh; }
	.tsw-highlights-editorial__media { min-height: 64svh; }
	.tsw-campaign-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
	.tsw-highlights-preview__grid,
	.tsw-archive-triptych,
	.tsw-arrivals-grid { grid-template-columns: 1fr; }
	.tsw-archive-card--wide,
	.tsw-archive-card--portrait { aspect-ratio: 4 / 5; }
	.tsw-archive-triptych figure:nth-child(2),
	.tsw-archive-triptych figure:nth-child(3),
	.tsw-arrivals-grid figure:nth-child(2) { margin-top: 0; }
	.tsw-archive-triptych img,
	.tsw-arrivals-grid img { aspect-ratio: 4 / 5; }
	.tsw-campaign-grid { gap: .55rem; }
	.tsw-campaign-grid figure:nth-child(even) { margin-top: 1.5rem; }
	.tsw-highlights-hero { min-height: 82svh; }
	.tsw-highlights-hero__copy h1 { font-size: clamp(3.8rem, 18vw, 6.3rem); }
	.tsw-archive-feature__copy,
	.tsw-highlights-editorial__copy { padding-inline: var(--tsw-gutter); }
	.tsw-archive-feature__secondary { width: 82%; }
}

/* v1.9 — smaller archive modules used to blend official photography with the licensed editorial library on existing pages. */
.tsw-archive-ribbon { display: grid; grid-template-columns: minmax(0,.8fr) minmax(18rem,.75fr) minmax(0,.8fr); gap: clamp(1rem,3vw,3rem); align-items: center; }
.tsw-archive-ribbon figure { margin: 0; overflow: hidden; }
.tsw-archive-ribbon figure img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; display: block; }
.tsw-archive-ribbon figure figcaption { margin-top: .65rem; font-size: .625rem; letter-spacing: .14em; text-transform: uppercase; opacity: .55; }
.tsw-archive-ribbon__copy { padding: 1rem 0; }
.tsw-archive-ribbon__copy h2 { font-family: var(--wp--preset--font-family--display); font-size: clamp(2.5rem,2rem + 2vw,4.5rem); font-weight: 400; line-height: .95; letter-spacing: -.035em; margin: 0 0 1.25rem; }
.tsw-archive-ribbon__copy p:not(.tsw-eyebrow) { max-width: 40ch; line-height: 1.62; }
.tsw-archive-ribbon__copy .tsw-editorial-link { margin-top: 1rem; }
.tsw-archive-ribbon--experience { grid-template-columns: minmax(0,1.35fr) minmax(20rem,.65fr); }
.tsw-archive-ribbon__wide img { aspect-ratio: 16 / 10 !important; }
@media (max-width: 781px) {
  .tsw-archive-ribbon,
  .tsw-archive-ribbon--experience { grid-template-columns: 1fr; }
  .tsw-archive-ribbon figure img { aspect-ratio: 4 / 5; }
  .tsw-archive-ribbon__wide img { aspect-ratio: 4 / 3 !important; }
}
.tsw-highlights-page { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); }


/* ---------- v1.10.0 — Season 01 campaign archive ---------- */
.tsw-campaign-preview { width: 100%; }
.tsw-campaign-preview__head {
  display: grid;
  grid-template-columns: minmax(0,1.15fr) minmax(20rem,.85fr);
  gap: clamp(2rem,6vw,7rem);
  align-items: end;
  margin-bottom: clamp(3rem,7vw,7rem);
}
.tsw-campaign-preview__head h2 {
  margin: 0;
  max-width: 11ch;
  font-family: var(--wp--preset--font-family--display);
  font-size: clamp(3.5rem,2.7rem + 4vw,7.25rem);
  font-weight: 400;
  line-height: .9;
  letter-spacing: -.045em;
}
.tsw-campaign-preview__head h2 em { font-style: italic; font-weight: 400; }
.tsw-campaign-preview__intro { max-width: 38rem; padding-bottom: .45rem; }
.tsw-campaign-preview__intro p { font-size: clamp(1.02rem,.96rem + .28vw,1.22rem); line-height: 1.58; max-width: 46ch; }
.tsw-campaign-preview__intro .tsw-editorial-link { margin-top: 1.25rem; }
.tsw-campaign-preview__grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: clamp(1rem,2.5vw,2.5rem);
  align-items: start;
  width: min(100%, 1280px);
  margin-inline: auto;
}
.tsw-campaign-preview__card { margin: 0; }
.tsw-campaign-preview__card--offset { margin-top: clamp(3rem,7vw,7rem); }
.tsw-campaign-preview__card img {
  width: 100%;
  height: auto;
  aspect-ratio: 9 / 16;
  object-fit: cover;
  display: block;
  box-shadow: 0 22px 70px rgba(16,19,20,.08);
  transition: transform .8s var(--tsw-ease), box-shadow .8s var(--tsw-ease);
}
.tsw-campaign-preview__card:hover img { transform: translateY(-.35rem); box-shadow: 0 30px 80px rgba(16,19,20,.14); }
.tsw-campaign-preview__card figcaption { display: grid; grid-template-columns: auto 1fr; column-gap: .8rem; row-gap: .15rem; padding-top: .9rem; border-top: 1px solid var(--tsw-rule); margin-top: .85rem; }
.tsw-campaign-preview__card figcaption span { grid-row: 1 / 3; font-size: .65rem; letter-spacing: .15em; opacity: .48; }
.tsw-campaign-preview__card figcaption strong { font-family: var(--wp--preset--font-family--display); font-size: clamp(1.35rem,1.1rem + .65vw,2rem); font-weight: 400; line-height: 1; }
.tsw-campaign-preview__card figcaption small { font-size: .64rem; letter-spacing: .14em; text-transform: uppercase; opacity: .6; }

/* v1.10 image focal tuning */
.tsw-fashion-spread__look--light .tsw-fashion-spread__image img { object-position: center 46%; }
.tsw-designer-call .tsw-designer-call__wings img { width: 100%; height: auto; min-height: 0; aspect-ratio: 3 / 2; object-fit: cover; object-position: center 45%; display: block; }
.tsw-highlights-editorial__media img { object-position: center 54%; }

@media (max-width: 960px) {
  .tsw-campaign-preview__head { grid-template-columns: 1fr; gap: 1.4rem; }
  .tsw-campaign-preview__head h2 { max-width: 10ch; }
  .tsw-campaign-preview__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .tsw-campaign-preview__card:nth-child(3) { grid-column: 1 / -1; width: min(72%, 34rem); justify-self: center; }
}
@media (max-width: 620px) {
  .tsw-campaign-preview__grid { grid-template-columns: 1fr; gap: 2.25rem; }
  .tsw-campaign-preview__card--offset { margin-top: 0; }
  .tsw-campaign-preview__card:nth-child(3) { grid-column: auto; width: 100%; }
  .tsw-campaign-preview__card img { max-height: none; }
  .tsw-designer-call .tsw-designer-call__wings img { min-height: 0; aspect-ratio: 4 / 3; object-position: center center; }
}


/* ---------- v1.11.0 — Highlights alignment + complete artwork ----------
   Keep all editorial copy anchored left and never crop campaign information. */
.tsw-highlights-page {
  box-sizing: border-box;
  overflow-x: clip;
  text-align: left;
}
.tsw-highlights-page *,
.tsw-highlights-page *::before,
.tsw-highlights-page *::after { box-sizing: border-box; }
.tsw-highlights-page :is(h1,h2,h3,p,figcaption,.tsw-eyebrow,.tsw-editorial-link) { text-align: left; }

/* Preserve the full-bleed page while keeping every inner text block inside safe gutters. */
.tsw-highlights-hero__copy,
.tsw-archive-section {
  width: min(calc(100% - var(--tsw-gutter) - var(--tsw-gutter)), var(--archive-max));
  max-width: var(--archive-max);
  margin-inline: auto;
  min-width: 0;
}
.tsw-highlights-hero__copy > *,
.tsw-archive-intro > *,
.tsw-archive-feature__copy > *,
.tsw-highlights-editorial__copy > * { min-width: 0; }

/* Highlights editorial information now reads as one left-aligned column. */
.tsw-archive-kicker {
  justify-content: flex-start;
  gap: clamp(1rem, 3vw, 3rem);
}
.tsw-archive-intro {
  display: block;
  max-width: 58rem;
}
.tsw-archive-intro h2 { max-width: 12ch; }
.tsw-archive-intro p { margin-top: clamp(1.25rem, 2vw, 2rem); max-width: 48ch; }
.tsw-archive-feature__copy,
.tsw-highlights-editorial__copy { text-align: left; min-width: 0; }
.tsw-archive-feature__secondary { margin-left: 0; margin-right: auto; }

/* Never crop poster/flyer copy on Highlights or the homepage campaign module. */
.tsw-campaign-grid figure,
.tsw-campaign-preview__card { overflow: visible; }
.tsw-campaign-grid img,
.tsw-campaign-preview__card img {
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
  object-position: center;
}

/* Long headings/captions may wrap, but may never run outside the viewport. */
.tsw-highlights-page :is(h1,h2,h3,p,figcaption,span,strong,small,a) {
  overflow-wrap: anywhere;
  word-break: normal;
}
.tsw-highlights-hero__copy h1 {
  max-width: min(7ch, 100%);
}

@media (max-width: 899px) {
  .tsw-archive-intro { max-width: 100%; }
  .tsw-archive-feature__secondary { width: min(82%, 24rem); }
}

@media (max-width: 620px) {
  .tsw-highlights-hero__copy,
  .tsw-archive-section {
    width: calc(100% - var(--tsw-gutter) - var(--tsw-gutter));
  }
  .tsw-highlights-hero__copy h1 {
    font-size: clamp(3.25rem, 16vw, 5.4rem);
    line-height: .88;
  }
  .tsw-campaign-grid { grid-template-columns: 1fr; gap: 2rem; }
  .tsw-campaign-grid figure:nth-child(even) { margin-top: 0; }
}

/* v1.11 fallback for previously customized footer template parts: Instagram is the only social link retained. */
.tsw-footer a[href*="tiktok.com"],
.tsw-footer a[href*="youtube.com"],
.tsw-footer a[href*="youtu.be"],
.tsw-footer a[href*="facebook.com"],
.tsw-footer a[href*="twitter.com"],
.tsw-footer a[href*="x.com"],
.tsw-footer a[href*="linkedin.com"] { display: none !important; }

/* ---------- v1.12 schedule / core resilience ---------- */
.tsw-schedule__edition {
	display: grid;
	gap: .35rem 1.5rem;
	padding: 0 0 var(--wp--preset--spacing--30);
	margin-bottom: var(--wp--preset--spacing--30);
	border-bottom: 1px solid var(--tsw-rule);
	text-align: left;
}
.tsw-schedule__edition span {
	font-size: .6875rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: color-mix(in srgb, currentColor 62%, transparent);
}
.tsw-schedule__edition strong {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.75rem, 1.4rem + 1.8vw, 3rem);
	font-weight: 400;
	line-height: 1;
}
@media (min-width: 760px) {
	.tsw-schedule__edition { grid-template-columns: 1fr auto 1fr; align-items: end; }
	.tsw-schedule__edition strong { text-align: center; }
	.tsw-schedule__edition span:last-child { text-align: right; }
}
.tsw-event--placeholder .tsw-event__title { color: color-mix(in srgb, currentColor 78%, transparent); }

/* ---------- v1.13 public program + footer hardening ---------- */
.tsw-programme-note {
	margin: var(--wp--preset--spacing--30) 0 0;
	max-width: 72ch;
	font-size: 0.75rem;
	line-height: 1.6;
	letter-spacing: 0.04em;
	color: color-mix(in srgb, currentColor 62%, transparent);
}
.tsw-schedule--preview .tsw-event__title { text-wrap: balance; }
.tsw-schedule--preview .tsw-event__meta span { white-space: normal; }

/* Backup for footer template-part overrides saved in the Site Editor. */
.tsw-footer .tsw-newsletter,
.tsw-footer .wp-block-column:first-child > .wp-block-shortcode,
.tsw-footer .wp-block-column:first-child > h3 {
	display: none !important;
}
.tsw-footer a[href="/venues/"],
.tsw-footer a[href="/venues"],
.tsw-footer a[href="/stories/"],
.tsw-footer a[href="/stories"] {
	display: none !important;
}

/* ---------- v1.14 resort / swim motion ---------- */
.tsw-film-feature--resort {
  min-height: auto;
  padding: clamp(1.25rem, 3.5vw, 4rem);
  gap: clamp(2.5rem, 5vw, 6rem);
  align-items: center;
}
.tsw-film-feature--resort .tsw-film-feature__media {
  width: min(100%, 38rem);
  min-height: 0;
  aspect-ratio: 9 / 16;
  max-height: 84svh;
  justify-self: center;
  background: #091116;
}
.tsw-film-feature--resort .tsw-film-feature__media video {
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  object-position: center center;
}
.tsw-film-feature--resort .tsw-film-feature__copy {
  padding: clamp(1rem, 3vw, 4rem) 0;
}
.tsw-film-feature--resort .tsw-film-feature__copy h2 { max-width: 8.5ch; }

.tsw-swim-motion {
  position: relative;
  background: #071014;
  color: var(--wp--preset--color--salt);
  overflow: hidden;
}
.tsw-swim-motion__media {
  position: relative;
  min-height: clamp(38rem, 82svh, 60rem);
  overflow: hidden;
}
.tsw-swim-motion__media video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 48%;
}
.tsw-swim-motion__shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(5,12,16,.72) 0%, rgba(5,12,16,.38) 38%, rgba(5,12,16,.08) 68%, rgba(5,12,16,.14) 100%);
  pointer-events: none;
}
.tsw-swim-motion__copy {
  position: absolute;
  z-index: 2;
  left: var(--tsw-gutter);
  bottom: clamp(4rem, 8vw, 8rem);
  width: min(38rem, calc(100% - var(--tsw-gutter) - var(--tsw-gutter)));
}
.tsw-swim-motion__copy h2 {
  margin: 0;
  max-width: 7ch;
  font-family: var(--wp--preset--font-family--display);
  font-size: clamp(3.8rem, 3rem + 4vw, 7.5rem);
  font-weight: 400;
  line-height: .9;
  letter-spacing: -.045em;
}
.tsw-swim-motion__copy p:not(.tsw-eyebrow) {
  max-width: 34ch;
  font-size: clamp(1.05rem, .98rem + .35vw, 1.3rem);
  line-height: 1.5;
}
.tsw-swim-motion__copy .tsw-editorial-link { margin-top: 1.25rem; }

.tsw-contact-email {
  display: inline-flex;
  align-items: center;
  gap: .75rem;
  margin-top: 1.5rem;
  padding-bottom: .4rem;
  border-bottom: 1px solid currentColor;
  font-size: clamp(1rem, .92rem + .28vw, 1.2rem);
  letter-spacing: .02em;
  text-decoration: none;
}
.tsw-contact-email:hover { opacity: .72; }
#mailing-list { scroll-margin-top: calc(var(--tsw-header-h) + 1.5rem); }

@media (min-width: 900px) {
  .tsw-film-feature--resort { grid-template-columns: minmax(20rem, .78fr) minmax(28rem, 1.22fr); }
  .tsw-film-feature--resort .tsw-film-feature__media,
  .tsw-film-feature--resort .tsw-film-feature__media video { min-height: 0; }
}
@media (max-width: 781px) {
  .tsw-film-feature--resort { padding: 1.25rem var(--tsw-gutter) 3.5rem; }
  .tsw-film-feature--resort .tsw-film-feature__media { max-height: 76svh; }
  .tsw-swim-motion__media { min-height: 72svh; }
  .tsw-swim-motion__shade { background: linear-gradient(to top, rgba(5,12,16,.78) 0%, rgba(5,12,16,.28) 54%, rgba(5,12,16,.06) 100%); }
  .tsw-swim-motion__copy { bottom: 3.75rem; }
}

/* ---------- v1.15.0 — founding designer edit + official launch ---------- */
.psw-home-designers .tsw-section-head { margin-bottom: clamp(2rem, 4vw, 4rem); }
.tsw-designer-edit { display: grid; gap: clamp(2rem, 5vw, 5rem); }
.tsw-designer-edit__intro { display: grid; grid-template-columns: minmax(0,.62fr) minmax(24rem,1.38fr); gap: clamp(1.5rem,4vw,5rem); align-items: start; }
.tsw-designer-edit__intro .tsw-editorial-lede { margin: 0; max-width: 34ch; font-family: var(--wp--preset--font-family--display); font-size: clamp(2rem,1.45rem + 2vw,3.9rem); line-height: 1; letter-spacing: -.035em; }
.tsw-designer-edit__grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); border-top: 1px solid var(--tsw-rule); border-bottom: 1px solid var(--tsw-rule); }
.tsw-designer-mark { color: inherit; text-decoration: none; min-width: 0; padding: clamp(1.4rem,2.4vw,2.4rem) clamp(1rem,1.5vw,1.5rem); border-right: 1px solid var(--tsw-rule); display: flex; flex-direction: column; gap: 1.1rem; justify-content: space-between; transition: background .35s var(--tsw-ease); }
.tsw-designer-mark:last-child { border-right: 0; }
.tsw-designer-mark:hover, .tsw-designer-mark:focus-visible { background: color-mix(in srgb, var(--wp--preset--color--sand) 72%, transparent); }
.tsw-designer-mark__logo { display: flex; align-items: center; justify-content: center; min-height: clamp(7rem,10vw,10rem); background: #fff; overflow: hidden; }
.tsw-designer-mark__logo img { display: block; width: min(100%, 14rem); max-height: 7.2rem; object-fit: contain; }
.tsw-designer-mark__name { font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; line-height: 1.25; }

.tsw-designers-intro { display: grid; grid-template-columns: minmax(0,.92fr) minmax(24rem,.72fr); gap: clamp(2.5rem,6vw,7rem); align-items: center; }
.tsw-designers-intro__archive { margin: 0; background: #fff; }
.tsw-designers-intro__archive img { display: block; width: 100%; height: auto; max-height: 80rem; object-fit: contain; }
.tsw-designers-intro__copy h2 { max-width: 9ch; margin: .35rem 0 1.35rem; font-family: var(--wp--preset--font-family--display); font-size: clamp(3rem,2.2rem + 3vw,6rem); font-weight: 400; line-height: .92; letter-spacing: -.04em; }
.tsw-designers-intro__copy > p:not(.tsw-eyebrow) { max-width: 42ch; line-height: 1.62; }
.tsw-small-note { margin-top: 1.5rem; font-size: .72rem; letter-spacing: .06em; opacity: .55; }

.tsw-designer-roster { border-top: 1px solid var(--tsw-rule); }
.tsw-designer-row { scroll-margin-top: 8rem; display: grid; grid-template-columns: 4rem minmax(13rem,.62fr) minmax(0,1fr); gap: clamp(1.2rem,3vw,3rem); align-items: center; min-height: clamp(10rem,14vw,14rem); border-bottom: 1px solid var(--tsw-rule); }
.tsw-designer-row__index { font-size: .66rem; letter-spacing: .18em; opacity: .48; }
.tsw-designer-row__logo { min-height: 8rem; display: flex; align-items: center; justify-content: center; background: #fff; overflow: hidden; }
.tsw-designer-row__logo img { display: block; width: min(90%, 18rem); max-height: 8rem; object-fit: contain; }
.tsw-designer-row__identity { min-width: 0; padding-block: 1.5rem; }
.tsw-designer-row__identity h2 { margin: 0; font-family: var(--wp--preset--font-family--display); font-size: clamp(2.5rem,2rem + 2vw,4.75rem); font-weight: 400; line-height: .95; letter-spacing: -.035em; }
.tsw-designer-row__identity p { margin: .8rem 0 0; font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; opacity: .58; }

.tsw-official-launch__grid { display: grid; grid-template-columns: minmax(0,.9fr) minmax(24rem,.75fr); gap: clamp(2.5rem,6vw,7rem); align-items: center; }
.tsw-official-launch__art { margin: 0; background: #fff; }
.tsw-official-launch__art img { display: block; width: 100%; height: auto; max-height: 72rem; object-fit: contain; }
.tsw-official-launch__copy h2 { max-width: 10ch; margin: .3rem 0 1.4rem; font-family: var(--wp--preset--font-family--display); font-size: clamp(3rem,2.2rem + 3vw,5.7rem); font-weight: 400; line-height: .94; letter-spacing: -.04em; }
.tsw-official-launch__copy > p:not(.tsw-eyebrow) { max-width: 43ch; line-height: 1.62; }
.tsw-official-launch__copy .tsw-editorial-link { margin-top: 1.2rem; }

@media (max-width: 980px) {
  .tsw-designer-edit__intro,
  .tsw-designers-intro,
  .tsw-official-launch__grid { grid-template-columns: 1fr; }
  .tsw-designer-edit__intro .tsw-editorial-lede { max-width: 24ch; }
  .tsw-designer-edit__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .tsw-designer-mark:nth-child(2n) { border-right: 0; }
  .tsw-designer-mark:nth-child(n+3) { border-top: 1px solid var(--tsw-rule); }
  .tsw-designer-mark:last-child { grid-column: 1 / -1; border-right: 0; }
  .tsw-designer-row { grid-template-columns: 3rem minmax(10rem,.55fr) minmax(0,1fr); }
}
@media (max-width: 620px) {
  .tsw-designer-edit__grid { grid-template-columns: 1fr; }
  .tsw-designer-mark { border-right: 0; border-top: 1px solid var(--tsw-rule); }
  .tsw-designer-mark:first-child { border-top: 0; }
  .tsw-designer-mark:last-child { grid-column: auto; }
  .tsw-designer-mark__logo { min-height: 9rem; }
  .tsw-designer-row { grid-template-columns: 2.5rem minmax(0,1fr); gap: 1rem; padding-block: 1.25rem; }
  .tsw-designer-row__logo { grid-column: 2; min-height: 9rem; }
  .tsw-designer-row__identity { grid-column: 2; padding-top: 0; }
  .tsw-designers-intro__archive img,
  .tsw-official-launch__art img { max-height: none; }
}

/* ---------- v1.16.0 — monochrome designer identity system ---------- */
.psw-home-designers,
.tsw-designers-story,
.tsw-designer-roster-wrap {
  background: #fff !important;
  color: #070707 !important;
}

.psw-home-designers .tsw-section-head {
  border-color: rgba(7,7,7,.14);
}

.tsw-designer-edit__grid {
  background: #fff;
  border-color: rgba(7,7,7,.14);
}

.tsw-designer-mark {
  background: #fff;
  color: #070707;
  border-color: rgba(7,7,7,.14);
  padding: clamp(2rem,3vw,3.5rem) clamp(1.25rem,2vw,2rem);
  gap: clamp(1.5rem,2.4vw,2.4rem);
  min-height: clamp(12rem,17vw,16rem);
  transition: opacity .28s var(--tsw-ease), transform .35s var(--tsw-ease);
}
.tsw-designer-mark:hover,
.tsw-designer-mark:focus-visible {
  background: #fff;
  opacity: .64;
  transform: translateY(-2px);
}
.tsw-designer-mark__logo {
  min-height: clamp(6.5rem,8vw,8.5rem);
  background: transparent;
  overflow: visible;
}
.tsw-designer-mark__logo img {
  width: auto;
  max-width: min(100%, 11.5rem);
  max-height: 5.5rem;
  object-fit: contain;
  filter: none;
}
.tsw-designer-mark__name {
  color: #070707;
  font-size: .62rem;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  opacity: .62;
}

.tsw-designers-intro__archive,
.tsw-designer-row__logo {
  background: transparent;
}
.tsw-designers-intro__copy,
.tsw-designers-intro__copy h2,
.tsw-designers-intro__copy p {
  color: #070707;
}

.tsw-designer-roster {
  background: #fff;
  border-color: rgba(7,7,7,.14);
}
.tsw-designer-row {
  grid-template-columns: 3.25rem minmax(10rem,.46fr) minmax(0,1fr);
  min-height: clamp(11rem,14vw,14rem);
  border-color: rgba(7,7,7,.14);
  background: #fff;
}
.tsw-designer-row__index {
  color: #070707;
  opacity: .38;
}
.tsw-designer-row__logo {
  min-height: 7rem;
  justify-content: flex-start;
  overflow: visible;
}
.tsw-designer-row__logo img {
  width: auto;
  max-width: min(92%, 13rem);
  max-height: 5.5rem;
  object-fit: contain;
  filter: none;
}
.tsw-designer-row__identity {
  padding-block: clamp(2rem,3vw,3.25rem);
}
.tsw-designer-row__identity h2 {
  color: #070707;
  font-size: clamp(2.35rem,1.8rem + 2vw,4.6rem);
  letter-spacing: -.042em;
}
.tsw-designer-row__identity p {
  color: #070707;
  opacity: .48;
  letter-spacing: .18em;
}

@media (max-width: 980px) {
  .tsw-designer-mark { min-height: 13rem; }
  .tsw-designer-row { grid-template-columns: 2.75rem minmax(9rem,.42fr) minmax(0,1fr); }
}
@media (max-width: 620px) {
  .tsw-designer-mark {
    min-height: 0;
    padding: 2.4rem 0;
  }
  .tsw-designer-mark__logo {
    justify-content: flex-start;
    min-height: 5.5rem;
  }
  .tsw-designer-mark__logo img { max-width: 10.5rem; max-height: 4.75rem; }
  .tsw-designer-row {
    grid-template-columns: 2.1rem minmax(0,1fr);
    padding-block: 1.6rem;
  }
  .tsw-designer-row__logo {
    grid-column: 2;
    justify-content: flex-start;
    min-height: 5.5rem;
  }
  .tsw-designer-row__logo img { max-width: 11rem; max-height: 4.75rem; }
  .tsw-designer-row__identity { padding: .2rem 0 1rem; }
}

/* ---------- v1.17.0 — responsive polish, motion + contact ---------- */
html { overflow-x: clip; }
body, .wp-site-blocks { max-width: 100%; overflow-x: clip; }
:where(h1,h2,h3,h4,p,a,li,dd,dt) { overflow-wrap: anywhere; }
:where(.wp-block-heading,.tsw-editorial-h3,.tsw-hero h1) { text-wrap: balance; }
.tsw-section > :where(*):not(.alignfull) { min-width: 0; }
.tsw-video-shell video { display: block; background: #081015; }

/* Official Highlights stills as graceful fallbacks while films initialize. */
.tsw-hero--film .tsw-hero__media video { object-position: center 44%; }
.tsw-film-feature--resort .tsw-film-feature__media video { object-position: center 30%; }
.tsw-swim-motion__media video { object-position: center 46%; }

.tsw-contact-jump {
  display: flex; flex-wrap: wrap; gap: .7rem 1.4rem; margin-top: 1.5rem;
}
.tsw-contact-jump a,
.tsw-contact-invitation__return a,
.tsw-invitation-contact a {
  font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; text-underline-offset: .35em;
}
#contact-form, #contact-invitation { scroll-margin-top: calc(var(--tsw-header-h) + 2rem); }
.tsw-contact-columns { align-items: stretch; }
.tsw-contact-form-section .tsw-form { max-width: none; }
.tsw-contact-invitation {
  background: var(--wp--preset--color--sand);
  padding: clamp(1.5rem, 3vw, 3rem);
  align-self: stretch;
}
.tsw-contact-invitation .tsw-newsletter { grid-template-columns: 1fr; max-width: none; margin-top: 2rem; }
.tsw-contact-invitation .tsw-submit { width: 100%; }
.tsw-contact-invitation__return { margin-top: 1.5rem; }
.tsw-invitation-contact { margin-top: 1.15rem !important; font-size: .86rem; opacity: .72; }

/* Desktop editorial width discipline. */
@media (min-width: 1180px) {
  .tsw-section { --tsw-section-max: 1480px; }
  .tsw-experience-lead { grid-template-columns: minmax(0, 1.18fr) minmax(26rem, .82fr); gap: clamp(3rem, 5vw, 6rem); }
  .tsw-experience-lead .tsw-editorial-h3 { max-width: 10ch; font-size: clamp(3rem, 3.4vw, 5.3rem); line-height: .94; }
  .tsw-swim-motion__copy { left: max(var(--tsw-gutter), calc((100vw - 1480px) / 2)); }
}

/* Tablet: keep sections readable and prevent oversized editorial crops. */
@media (max-width: 1024px) {
  .tsw-designer-edit__intro,
  .tsw-designers-intro,
  .tsw-official-launch__grid { grid-template-columns: 1fr; }
  .tsw-designer-edit__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .tsw-designer-mark { border-bottom: 1px solid var(--tsw-rule); }
  .tsw-designer-mark:nth-child(2n) { border-right: 0; }
  .tsw-designer-mark:last-child { grid-column: 1 / -1; border-bottom: 0; }
  .tsw-contact-columns { gap: 2.5rem !important; }
}

@media (max-width: 781px) {
  :root { --tsw-gutter: clamp(1rem, 4.8vw, 1.5rem); }
  .tsw-section { padding-inline: var(--tsw-gutter); }
  .tsw-section-head { gap: .85rem 1.25rem; align-items: flex-start; }
  .tsw-section-head > * { min-width: 0; }
  .tsw-section-head .is-style-caption { width: 100%; }
  .tsw-hero--film { min-height: 100svh; padding-top: calc(var(--tsw-header-h) + 3.25rem); }
  .tsw-hero__inner { width: 100%; max-width: none; padding-right: 0; }
  .tsw-hero--film h1 { font-size: clamp(3rem, 14vw, 5rem); line-height: .88; }
  .tsw-hero__lede { max-width: 34rem; font-size: clamp(1rem, 3.9vw, 1.15rem); }
  .tsw-hero__meta { gap: .5rem 1rem; padding-right: 0; }
  .tsw-film-toggle { left: var(--tsw-gutter); right: auto; }
  .tsw-film-feature--resort { grid-template-columns: 1fr; gap: 1.75rem; }
  .tsw-film-feature--resort .tsw-film-feature__media { width: min(100%, 31rem); max-height: 72svh; }
  .tsw-film-feature--resort .tsw-film-feature__copy { padding: 0 0 1.5rem; }
  .tsw-film-feature--resort .tsw-film-feature__copy h2 { font-size: clamp(3rem, 14vw, 5.6rem); }
  .tsw-swim-motion__media { min-height: 78svh; }
  .tsw-swim-motion__copy { left: var(--tsw-gutter); right: var(--tsw-gutter); width: auto; bottom: 4.5rem; }
  .tsw-swim-motion__copy h2 { font-size: clamp(3.2rem, 15vw, 5.6rem); }
  .tsw-swim-motion__copy p:not(.tsw-eyebrow) { max-width: 30ch; }
  .tsw-experience-lead { grid-template-columns: 1fr; }
  .tsw-fashion-spread { margin-inline: 0; }
  .tsw-form__grid--2 { grid-template-columns: 1fr; }
  .tsw-contact-columns { display: block; }
  .tsw-contact-invitation { margin-top: 3rem; }
  .tsw-newsletter { grid-template-columns: 1fr; max-width: none; }
  .tsw-newsletter .tsw-submit { width: 100%; }
}

@media (max-width: 520px) {
  .tsw-hero__edition { display: flex; flex-direction: column; align-items: flex-start; }
  .tsw-hero__actions { gap: .75rem; }
  .tsw-hero__actions .wp-element-button,
  .tsw-hero__actions .tsw-editorial-link { width: 100%; max-width: none; justify-content: center; }
  .tsw-hero__actions .tsw-editorial-link { padding: .9rem 0; }
  .tsw-designer-edit__grid { grid-template-columns: 1fr; }
  .tsw-designer-mark, .tsw-designer-mark:nth-child(2n) { border-right: 0; border-bottom: 1px solid var(--tsw-rule); }
  .tsw-designer-mark:last-child { grid-column: auto; }
  .tsw-designer-row { grid-template-columns: 2.2rem minmax(0,1fr); gap: 1rem; padding-block: 1.25rem; }
  .tsw-designer-row__logo { grid-column: 2; justify-content: flex-start; min-height: 5.5rem; }
  .tsw-designer-row__identity { grid-column: 2; padding-top: 0; }
  .tsw-film-toggle { bottom: 1rem; }
  .tsw-contact-invitation { padding: 1.35rem; }
}

/* ---------- v1.17.1 — homepage editorial trim ---------- */


/* ---------- v1.18.0 — expanded designer edit + uncropped Highlights ---------- */
/* Eight-label designer roster: four quiet columns on desktop, two on tablet, one on mobile. */
@media (min-width: 1025px) {
  .tsw-designer-edit__grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
  .tsw-designer-mark { border-right: 1px solid rgba(7,7,7,.14); border-top: 0; }
  .tsw-designer-mark:nth-child(4n) { border-right: 0; }
  .tsw-designer-mark:nth-child(n+5) { border-top: 1px solid rgba(7,7,7,.14); }
  .tsw-designer-mark:last-child { grid-column: auto; }
}
@media (min-width: 521px) and (max-width: 1024px) {
  .tsw-designer-edit__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .tsw-designer-mark,
  .tsw-designer-mark:nth-child(2n) {
    grid-column: auto;
    border-top: 0;
    border-bottom: 0;
    border-right: 1px solid rgba(7,7,7,.14);
  }
  .tsw-designer-mark:nth-child(2n) { border-right: 0; }
  .tsw-designer-mark:nth-child(n+3) { border-top: 1px solid rgba(7,7,7,.14); }
  .tsw-designer-mark:last-child { grid-column: auto; }
}
@media (max-width: 520px) {
  .tsw-designer-edit__grid { grid-template-columns: 1fr; }
  .tsw-designer-mark,
  .tsw-designer-mark:nth-child(2n),
  .tsw-designer-mark:last-child {
    grid-column: auto;
    border-right: 0;
    border-top: 1px solid rgba(7,7,7,.14);
    border-bottom: 0;
  }
  .tsw-designer-mark:first-child { border-top: 0; }
}

/* Logo art is transparent; the white page field is the only visible background. */
.tsw-designer-mark__logo,
.tsw-designer-row__logo {
  background: transparent !important;
}
.tsw-designer-mark__logo img,
.tsw-designer-row__logo img {
  mix-blend-mode: multiply;
}

/* Highlights: all editorial information anchors left. */
.tsw-highlights-page,
.tsw-highlights-page :is(section,div,figure,figcaption,h1,h2,h3,p) {
  text-align: left;
}
.tsw-highlights-page .tsw-archive-kicker {
  justify-content: flex-start;
}
.tsw-highlights-page .tsw-archive-intro,
.tsw-highlights-page .tsw-archive-feature__copy,
.tsw-highlights-page .tsw-highlights-editorial__copy {
  margin-left: 0;
  margin-right: auto;
}

/* Preserve complete photography and poster art throughout Highlights. */
.tsw-highlights-page .tsw-highlights-hero__media {
  background: var(--wp--preset--color--night);
}
.tsw-highlights-page .tsw-highlights-hero__media img {
  object-fit: contain;
  object-position: center;
}
.tsw-highlights-page .tsw-archive-triptych img,
.tsw-highlights-page .tsw-arrivals-grid img,
.tsw-highlights-page .tsw-campaign-grid img,
.tsw-highlights-page .tsw-archive-feature__image > img,
.tsw-highlights-page .tsw-archive-feature__secondary img,
.tsw-highlights-page .tsw-highlights-editorial__media img,
.tsw-highlights-page .tsw-zyba-feature img {
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  max-height: none;
  object-fit: contain;
  object-position: center;
  display: block;
}
.tsw-highlights-page .tsw-archive-feature,
.tsw-highlights-page .tsw-highlights-editorial {
  min-height: 0;
  align-items: center;
}
.tsw-highlights-page .tsw-archive-feature__image,
.tsw-highlights-page .tsw-highlights-editorial__media {
  min-height: 0;
  align-self: center;
  overflow: visible;
}
.tsw-highlights-page .tsw-archive-feature__secondary {
  aspect-ratio: auto;
  overflow: visible;
}

/* Designer Focus — Zyba Collection. */
.tsw-zyba-feature {
  display: grid;
  grid-template-columns: minmax(18rem,.78fr) minmax(0,1fr) minmax(0,1fr);
  gap: clamp(1rem,2.2vw,2.2rem);
  align-items: start;
  margin-top: clamp(2.5rem,5vw,5rem);
}
.tsw-zyba-feature__copy {
  padding-right: clamp(1rem,3vw,3rem);
  align-self: center;
}
.tsw-zyba-feature__copy h2 {
  max-width: 9ch;
  margin: .35rem 0 1.25rem;
  font-family: var(--wp--preset--font-family--display);
  font-size: clamp(2.8rem,2rem + 2.4vw,5rem);
  font-weight: 400;
  line-height: .94;
  letter-spacing: -.04em;
}
.tsw-zyba-feature__copy > p:not(.tsw-eyebrow) {
  max-width: 38ch;
  line-height: 1.62;
}
.tsw-zyba-feature figure { margin: 0; }
.tsw-zyba-feature figcaption {
  margin-top: .7rem;
  padding-top: .7rem;
  border-top: 1px solid var(--tsw-rule);
  font-size: .625rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  opacity: .58;
}
@media (max-width: 980px) {
  .tsw-zyba-feature { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .tsw-zyba-feature__copy { grid-column: 1 / -1; padding-right: 0; max-width: 42rem; }
}
@media (max-width: 620px) {
  .tsw-zyba-feature { grid-template-columns: 1fr; gap: 2rem; }
  .tsw-zyba-feature__copy { grid-column: auto; }
  .tsw-highlights-page .tsw-highlights-hero {
    min-height: 76svh;
  }
}

/* Designer Discovery Zyba photography should also retain its full composition. */
.tsw-platform-grid .tsw-card:nth-child(2) .tsw-card__media {
  background: #0a0a0a;
}
.tsw-platform-grid .tsw-card:nth-child(2) .tsw-card__media img {
  object-fit: cover;
  object-position: center 35%;
}


/* ---------- v1.18.1 — Highlights viewport alignment hardening ----------
   WordPress constrained-layout rules can re-center raw HTML page patterns with
   !important margins. Force the Highlights canvas back to the viewport, then
   keep every editorial module inside a predictable safe grid. */
.tsw-highlights-page {
  width: 100vw !important;
  max-width: none !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding: 0 !important;
  overflow-x: clip;
}
.tsw-highlights-page .tsw-archive-section,
.tsw-highlights-page .tsw-highlights-hero__copy {
  width: min(calc(100% - var(--tsw-gutter) - var(--tsw-gutter)), 1480px) !important;
  max-width: 1480px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0;
  padding-right: 0;
  min-width: 0;
}
.tsw-highlights-page .tsw-archive-intro {
  display: block;
  width: min(100%, 64rem);
  max-width: 64rem;
  margin-left: 0 !important;
  margin-right: auto !important;
}
.tsw-highlights-page .tsw-archive-intro h2 {
  width: 100%;
  max-width: 15ch;
  margin-left: 0;
  margin-right: 0;
}
.tsw-highlights-page .tsw-archive-intro p {
  width: min(100%, 48rem);
  max-width: 48rem;
  margin-left: 0;
  margin-right: 0;
}
.tsw-highlights-page :is(.tsw-archive-triptych,.tsw-arrivals-grid,.tsw-campaign-grid,.tsw-zyba-feature) {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-left: 0;
  margin-right: 0;
}
.tsw-highlights-page :is(.tsw-archive-triptych,.tsw-arrivals-grid,.tsw-campaign-grid,.tsw-zyba-feature) > * {
  min-width: 0;
  max-width: 100%;
}
.tsw-highlights-page :is(.tsw-archive-triptych,.tsw-arrivals-grid,.tsw-campaign-grid,.tsw-zyba-feature) img,
.tsw-highlights-page .tsw-archive-feature img,
.tsw-highlights-page .tsw-highlights-editorial img {
  width: 100%;
  max-width: 100%;
  height: auto;
  object-fit: contain;
  object-position: center;
}
/* A quieter gallery rhythm also prevents lower rows from visually drifting outside the content grid. */
.tsw-highlights-page .tsw-archive-triptych figure:nth-child(2),
.tsw-highlights-page .tsw-archive-triptych figure:nth-child(3),
.tsw-highlights-page .tsw-arrivals-grid figure:nth-child(2),
.tsw-highlights-page .tsw-campaign-grid figure:nth-child(even) {
  margin-top: 0;
}
@media (max-width: 1180px) {
  .tsw-highlights-page .tsw-archive-triptych,
  .tsw-highlights-page .tsw-arrivals-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .tsw-highlights-page .tsw-archive-triptych figure:last-child,
  .tsw-highlights-page .tsw-arrivals-grid figure:last-child {
    grid-column: 1 / -1;
    width: min(100%, 42rem);
  }
  .tsw-highlights-page .tsw-campaign-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 700px) {
  .tsw-highlights-page {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .tsw-highlights-page .tsw-archive-section,
  .tsw-highlights-page .tsw-highlights-hero__copy {
    width: calc(100% - var(--tsw-gutter) - var(--tsw-gutter)) !important;
  }
  .tsw-highlights-page .tsw-archive-triptych,
  .tsw-highlights-page .tsw-arrivals-grid,
  .tsw-highlights-page .tsw-campaign-grid,
  .tsw-highlights-page .tsw-zyba-feature {
    grid-template-columns: 1fr !important;
  }
  .tsw-highlights-page .tsw-archive-triptych figure:last-child,
  .tsw-highlights-page .tsw-arrivals-grid figure:last-child {
    grid-column: auto;
    width: 100%;
  }
  .tsw-highlights-page .tsw-archive-intro h2 {
    max-width: 100%;
    font-size: clamp(2.65rem, 12vw, 4.6rem);
    overflow-wrap: normal;
  }
}


/* ---------- v1.18.2 — Verseau + Newkini optical logo normalization ---------- */
/* Supplied marks are stored as transparent artwork. The white site field is the only background. */
.psw-home-designers .tsw-designer-mark__logo,
.tsw-designer-roster .tsw-designer-row__logo {
  background: #fff !important;
}
.psw-home-designers .tsw-designer-mark__logo img,
.tsw-designer-roster .tsw-designer-row__logo img {
  mix-blend-mode: normal;
  filter: none;
}

/* Verseau is a long wordmark; allow it a touch more horizontal room without overpowering the grid. */
.tsw-designer-mark[data-designer="verseau"] .tsw-designer-mark__logo img {
  max-width: min(100%, 12.5rem);
  max-height: 4.4rem;
}
.tsw-designer-row[data-designer="verseau"] .tsw-designer-row__logo img {
  max-width: min(94%, 14rem);
  max-height: 4.6rem;
}

/* Newkini is circular; a slightly taller optical box keeps its visual weight equal to horizontal marks. */
.tsw-designer-mark[data-designer="newkini"] .tsw-designer-mark__logo img {
  max-width: 6.4rem;
  max-height: 6.4rem;
}
.tsw-designer-row[data-designer="newkini"] .tsw-designer-row__logo img {
  max-width: 6.8rem;
  max-height: 6.8rem;
}

@media (max-width: 620px) {
  .tsw-designer-mark[data-designer="verseau"] .tsw-designer-mark__logo img,
  .tsw-designer-row[data-designer="verseau"] .tsw-designer-row__logo img {
    max-width: 11.25rem;
    max-height: 4rem;
  }
  .tsw-designer-mark[data-designer="newkini"] .tsw-designer-mark__logo img,
  .tsw-designer-row[data-designer="newkini"] .tsw-designer-row__logo img {
    max-width: 5.8rem;
    max-height: 5.8rem;
  }
}

/* ---------- v1.18.3 — Highlights typography + designer logo finish ---------- */
/* The feature headline should read as an editorial title, never split inside words. */
.tsw-highlights-page .tsw-archive-feature__copy h2 {
  font-size: clamp(2.8rem, 2.15rem + 2.6vw, 4.85rem);
  line-height: .96;
  letter-spacing: -.035em;
  max-width: 12.5ch;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none;
}

/* Designer marks: pure white field + black artwork, with no blending/filter artifacts. */
.psw-home-designers .tsw-designer-mark__logo,
.tsw-designer-roster .tsw-designer-row__logo {
  background: #fff !important;
}
.psw-home-designers .tsw-designer-mark__logo img,
.tsw-designer-roster .tsw-designer-row__logo img {
  mix-blend-mode: normal !important;
  filter: none !important;
  object-fit: contain;
}

.tsw-designer-mark[data-designer="verseau"] .tsw-designer-mark__logo img {
  width: min(100%, 14.5rem);
  max-width: 14.5rem;
  max-height: 5.2rem;
}
.tsw-designer-row[data-designer="verseau"] .tsw-designer-row__logo img {
  width: min(100%, 16rem);
  max-width: 16rem;
  max-height: 5.5rem;
}
.tsw-designer-mark[data-designer="newkini"] .tsw-designer-mark__logo img {
  width: 7.25rem;
  max-width: 7.25rem;
  max-height: 7.25rem;
}
.tsw-designer-row[data-designer="newkini"] .tsw-designer-row__logo img {
  width: 7.75rem;
  max-width: 7.75rem;
  max-height: 7.75rem;
}

@media (max-width: 700px) {
  .tsw-highlights-page .tsw-archive-feature__copy h2 {
    font-size: clamp(2.45rem, 10.5vw, 3.65rem);
    max-width: 100%;
    line-height: .98;
  }
  .tsw-designer-mark[data-designer="verseau"] .tsw-designer-mark__logo img,
  .tsw-designer-row[data-designer="verseau"] .tsw-designer-row__logo img {
    width: min(100%, 12.75rem);
    max-width: 12.75rem;
  }
  .tsw-designer-mark[data-designer="newkini"] .tsw-designer-mark__logo img,
  .tsw-designer-row[data-designer="newkini"] .tsw-designer-row__logo img {
    width: 6.5rem;
    max-width: 6.5rem;
    max-height: 6.5rem;
  }
}

/* ---------- v1.18.4 — forced Verseau/Newkini logo correction ---------- */
.tsw-designer-mark[data-designer="verseau"] .tsw-designer-mark__logo,
.tsw-designer-mark[data-designer="newkini"] .tsw-designer-mark__logo,
.tsw-designer-row[data-designer="verseau"] .tsw-designer-row__logo,
.tsw-designer-row[data-designer="newkini"] .tsw-designer-row__logo {
  background: #fff !important;
  isolation: isolate;
}
.tsw-designer-mark[data-designer="verseau"] img,
.tsw-designer-mark[data-designer="newkini"] img,
.tsw-designer-row[data-designer="verseau"] img,
.tsw-designer-row[data-designer="newkini"] img {
  background: #fff !important;
  mix-blend-mode: normal !important;
  filter: none !important;
  opacity: 1 !important;
}

/* ---------- v1.18.5 — designer logo alignment + responsive optical grid ---------- */
/*
 * All designer marks share one consistent optical stage. The mark itself can
 * retain its natural proportions while the surrounding geometry stays aligned
 * across the homepage and Designers page.
 */
.psw-home-designers .tsw-designer-edit__grid {
  align-items: stretch;
}
.psw-home-designers .tsw-designer-mark {
  display: grid;
  grid-template-rows: minmax(8.5rem, 1fr) auto;
  align-items: stretch;
  justify-items: stretch;
  min-height: clamp(14.5rem, 16vw, 17rem);
  padding: clamp(2rem, 2.7vw, 3rem) clamp(1.25rem, 2vw, 2rem) clamp(1.35rem, 2vw, 2rem);
  gap: clamp(1.25rem, 2vw, 2rem);
}
.psw-home-designers .tsw-designer-mark__logo {
  width: 100%;
  min-height: 0;
  height: 100%;
  display: grid;
  place-items: center;
  padding: .75rem clamp(.5rem, 1vw, 1rem);
  background: #fff !important;
  overflow: visible;
}
.psw-home-designers .tsw-designer-mark__logo img {
  display: block;
  width: auto;
  height: auto;
  max-width: min(76%, 13rem);
  max-height: 5.25rem;
  margin: 0 auto;
  object-fit: contain;
  object-position: center;
}
.psw-home-designers .tsw-designer-mark__name {
  width: 100%;
  min-height: 1rem;
  display: block;
  margin: 0;
  text-align: center;
  line-height: 1.25;
}

/* Horizontal marks need a little more width; compact/circular marks need less. */
.psw-home-designers .tsw-designer-mark[data-designer="verseau"] .tsw-designer-mark__logo img,
.psw-home-designers .tsw-designer-mark[data-designer="topknotswim"] .tsw-designer-mark__logo img,
.psw-home-designers .tsw-designer-mark[data-designer="kiraelle"] .tsw-designer-mark__logo img,
.psw-home-designers .tsw-designer-mark[data-designer="hanalei-baybe"] .tsw-designer-mark__logo img {
  max-width: min(84%, 14rem);
}
.psw-home-designers .tsw-designer-mark[data-designer="newkini"] .tsw-designer-mark__logo img {
  width: clamp(5.75rem, 7vw, 7.25rem);
  max-width: 7.25rem;
  max-height: 7.25rem;
}
.psw-home-designers .tsw-designer-mark[data-designer="elite-swimwear"] .tsw-designer-mark__logo img,
.psw-home-designers .tsw-designer-mark[data-designer="leona-swim"] .tsw-designer-mark__logo img,
.psw-home-designers .tsw-designer-mark[data-designer="zyba-collection"] .tsw-designer-mark__logo img {
  max-width: min(68%, 11.5rem);
}

/* Designers page: a fixed logo column keeps every mark on the same baseline. */
.tsw-designer-roster .tsw-designer-row {
  grid-template-columns: 3.25rem minmax(15rem, 19rem) minmax(0, 1fr);
  column-gap: clamp(2rem, 4vw, 4.5rem);
  min-height: clamp(11.5rem, 13vw, 14rem);
  align-items: center;
  padding-block: clamp(.85rem, 1.5vw, 1.5rem);
}
.tsw-designer-roster .tsw-designer-row__logo {
  width: 100%;
  min-height: 8.5rem;
  display: grid;
  place-items: center;
  padding: 1rem;
  background: #fff !important;
  overflow: visible;
}
.tsw-designer-roster .tsw-designer-row__logo img {
  display: block;
  width: auto;
  height: auto;
  max-width: min(82%, 14.5rem);
  max-height: 5.75rem;
  margin: 0 auto;
  object-fit: contain;
  object-position: center;
}
.tsw-designer-roster .tsw-designer-row__identity {
  align-self: center;
  padding-block: 1.5rem;
}
.tsw-designer-roster .tsw-designer-row__identity h2,
.tsw-designer-roster .tsw-designer-row__identity p {
  margin-left: 0;
  margin-right: 0;
}
.tsw-designer-roster .tsw-designer-row[data-designer="verseau"] .tsw-designer-row__logo img,
.tsw-designer-roster .tsw-designer-row[data-designer="topknotswim"] .tsw-designer-row__logo img,
.tsw-designer-roster .tsw-designer-row[data-designer="kiraelle"] .tsw-designer-row__logo img,
.tsw-designer-roster .tsw-designer-row[data-designer="hanalei-baybe"] .tsw-designer-row__logo img {
  max-width: min(90%, 16rem);
}
.tsw-designer-roster .tsw-designer-row[data-designer="newkini"] .tsw-designer-row__logo img {
  width: clamp(6.25rem, 7vw, 7.6rem);
  max-width: 7.6rem;
  max-height: 7.6rem;
}
.tsw-designer-roster .tsw-designer-row[data-designer="elite-swimwear"] .tsw-designer-row__logo img,
.tsw-designer-roster .tsw-designer-row[data-designer="leona-swim"] .tsw-designer-row__logo img,
.tsw-designer-roster .tsw-designer-row[data-designer="zyba-collection"] .tsw-designer-row__logo img {
  max-width: min(72%, 12.5rem);
}

/* Large desktop: preserve breathing room without letting marks become oversized. */
@media (min-width: 1440px) {
  .psw-home-designers .tsw-designer-mark {
    min-height: 16.5rem;
    padding-inline: clamp(1.75rem, 2vw, 2.5rem);
  }
  .tsw-designer-roster .tsw-designer-row {
    grid-template-columns: 3.5rem minmax(17rem, 21rem) minmax(0, 1fr);
  }
}

/* Laptop / tablet: retain a clean two-column homepage grid and aligned roster. */
@media (max-width: 1024px) {
  .psw-home-designers .tsw-designer-mark {
    min-height: 13.75rem;
    grid-template-rows: minmax(7.5rem, 1fr) auto;
  }
  .tsw-designer-roster .tsw-designer-row {
    grid-template-columns: 2.75rem minmax(11.5rem, 15rem) minmax(0, 1fr);
    column-gap: clamp(1.25rem, 3vw, 2.5rem);
  }
  .tsw-designer-roster .tsw-designer-row__logo {
    min-height: 7rem;
    padding-inline: .65rem;
  }
  .tsw-designer-roster .tsw-designer-row__logo img {
    max-width: min(86%, 12.75rem);
    max-height: 5rem;
  }
}

/* Mobile: each designer becomes a centered editorial row with consistent rhythm. */
@media (max-width: 700px) {
  .psw-home-designers .tsw-designer-edit__grid {
    grid-template-columns: 1fr;
  }
  .psw-home-designers .tsw-designer-mark,
  .psw-home-designers .tsw-designer-mark:nth-child(2n),
  .psw-home-designers .tsw-designer-mark:last-child {
    min-height: 11.5rem;
    grid-template-rows: minmax(6rem, 1fr) auto;
    padding: 1.75rem var(--tsw-gutter) 1.35rem;
    border-right: 0;
  }
  .psw-home-designers .tsw-designer-mark__logo {
    min-height: 6rem;
    padding: .45rem 0;
  }
  .psw-home-designers .tsw-designer-mark__logo img {
    max-width: min(72vw, 12rem);
    max-height: 4.75rem;
  }
  .psw-home-designers .tsw-designer-mark[data-designer="newkini"] .tsw-designer-mark__logo img {
    width: 6rem;
    max-width: 6rem;
    max-height: 6rem;
  }
  .psw-home-designers .tsw-designer-mark__name {
    font-size: .6rem;
    letter-spacing: .17em;
  }

  .tsw-designer-roster .tsw-designer-row {
    position: relative;
    display: grid;
    grid-template-columns: 1fr;
    gap: .8rem;
    min-height: 0;
    padding: 2.4rem 0 2.15rem;
  }
  .tsw-designer-roster .tsw-designer-row__index {
    position: absolute;
    top: 1.25rem;
    left: 0;
  }
  .tsw-designer-roster .tsw-designer-row__logo {
    grid-column: 1;
    width: 100%;
    min-height: 6.75rem;
    padding: .75rem 1.5rem;
    justify-items: center;
  }
  .tsw-designer-roster .tsw-designer-row__logo img {
    max-width: min(72vw, 13rem);
    max-height: 5rem;
  }
  .tsw-designer-roster .tsw-designer-row[data-designer="newkini"] .tsw-designer-row__logo img {
    width: 6.4rem;
    max-width: 6.4rem;
    max-height: 6.4rem;
  }
  .tsw-designer-roster .tsw-designer-row__identity {
    grid-column: 1;
    padding: .25rem 0 0;
    text-align: center;
  }
  .tsw-designer-roster .tsw-designer-row__identity h2 {
    font-size: clamp(2.25rem, 11vw, 3.35rem);
    line-height: .96;
  }
  .tsw-designer-roster .tsw-designer-row__identity p {
    margin-top: .65rem;
    font-size: .6rem;
    letter-spacing: .16em;
  }
}

@media (max-width: 420px) {
  .psw-home-designers .tsw-designer-mark {
    min-height: 10.75rem;
    padding-top: 1.45rem;
  }
  .psw-home-designers .tsw-designer-mark__logo img {
    max-width: min(76vw, 11rem);
  }
  .tsw-designer-roster .tsw-designer-row__logo img {
    max-width: min(76vw, 11.5rem);
  }
}

/* ---------- v1.18.6 — Newkini / Verseau final optical alignment ---------- */
/*
 * These two marks have very different aspect ratios. Give both a fixed optical
 * stage instead of allowing intrinsic image geometry to influence their row.
 */
.psw-home-designers .tsw-designer-mark__logo {
  min-height: 9rem;
  height: 9rem;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 1rem;
}
.psw-home-designers .tsw-designer-mark__logo img {
  margin: 0 auto;
  transform-origin: 50% 50%;
}
.psw-home-designers .tsw-designer-mark[data-designer="verseau"] .tsw-designer-mark__logo img {
  width: 13rem;
  max-width: 82%;
  height: auto;
  max-height: 3.8rem;
  transform: translateY(.05rem);
}
.psw-home-designers .tsw-designer-mark[data-designer="newkini"] .tsw-designer-mark__logo img {
  width: 6.35rem;
  height: 6.35rem;
  max-width: 6.35rem;
  max-height: 6.35rem;
  transform: translateY(.22rem);
}

/* Designers page: every mark occupies the same centered logo stage. */
.tsw-designer-roster .tsw-designer-row {
  align-items: center;
}
.tsw-designer-roster .tsw-designer-row__logo {
  width: 100%;
  height: 8.25rem;
  min-height: 8.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 1rem;
  overflow: visible;
}
.tsw-designer-roster .tsw-designer-row__logo img {
  margin: 0 auto;
  transform-origin: 50% 50%;
}
.tsw-designer-roster .tsw-designer-row[data-designer="verseau"] .tsw-designer-row__logo img {
  width: 14.25rem;
  max-width: 88%;
  height: auto;
  max-height: 4.1rem;
  transform: translateY(.08rem);
}
.tsw-designer-roster .tsw-designer-row[data-designer="newkini"] .tsw-designer-row__logo img {
  width: 6.65rem;
  height: 6.65rem;
  max-width: 6.65rem;
  max-height: 6.65rem;
  transform: translateY(.18rem);
}

/* Keep identity copy on the same visual center line as the logo stage. */
.tsw-designer-roster .tsw-designer-row__identity {
  align-self: center;
}

@media (max-width: 1024px) {
  .psw-home-designers .tsw-designer-mark__logo {
    height: 8rem;
    min-height: 8rem;
  }
  .psw-home-designers .tsw-designer-mark[data-designer="verseau"] .tsw-designer-mark__logo img {
    width: 11.75rem;
  }
  .psw-home-designers .tsw-designer-mark[data-designer="newkini"] .tsw-designer-mark__logo img {
    width: 5.9rem;
    height: 5.9rem;
    max-width: 5.9rem;
    max-height: 5.9rem;
  }
  .tsw-designer-roster .tsw-designer-row__logo {
    height: 7.5rem;
    min-height: 7.5rem;
  }
  .tsw-designer-roster .tsw-designer-row[data-designer="verseau"] .tsw-designer-row__logo img {
    width: 12.5rem;
  }
  .tsw-designer-roster .tsw-designer-row[data-designer="newkini"] .tsw-designer-row__logo img {
    width: 6.1rem;
    height: 6.1rem;
    max-width: 6.1rem;
    max-height: 6.1rem;
  }
}

@media (max-width: 700px) {
  .psw-home-designers .tsw-designer-mark__logo {
    height: 7rem;
    min-height: 7rem;
    padding-inline: 0;
  }
  .psw-home-designers .tsw-designer-mark[data-designer="verseau"] .tsw-designer-mark__logo img {
    width: min(68vw, 11.25rem);
    max-width: min(68vw, 11.25rem);
    transform: none;
  }
  .psw-home-designers .tsw-designer-mark[data-designer="newkini"] .tsw-designer-mark__logo img {
    width: 5.75rem;
    height: 5.75rem;
    max-width: 5.75rem;
    max-height: 5.75rem;
    transform: translateY(.12rem);
  }
  .tsw-designer-roster .tsw-designer-row__logo {
    height: 7rem;
    min-height: 7rem;
    padding-inline: 1rem;
  }
  .tsw-designer-roster .tsw-designer-row[data-designer="verseau"] .tsw-designer-row__logo img {
    width: min(72vw, 12rem);
    max-width: min(72vw, 12rem);
    transform: none;
  }
  .tsw-designer-roster .tsw-designer-row[data-designer="newkini"] .tsw-designer-row__logo img {
    width: 5.9rem;
    height: 5.9rem;
    max-width: 5.9rem;
    max-height: 5.9rem;
    transform: translateY(.1rem);
  }
}

/* ---------- v1.18.8 — homepage Newkini optical baseline ---------- */
/*
 * Newkini is a circular mark while the surrounding identities are predominantly
 * horizontal wordmarks. Its geometric center reads visually lower inside the
 * shared logo stage, so lift the artwork only — never the cell or label — to
 * keep the first designer row on one optical baseline.
 */
.psw-home-designers .tsw-designer-mark[data-designer="newkini"] .tsw-designer-mark__logo {
  align-items: center;
  justify-content: center;
}
.psw-home-designers .tsw-designer-mark[data-designer="newkini"] .tsw-designer-mark__logo img {
  width: 6.1rem;
  height: 6.1rem;
  max-width: 6.1rem;
  max-height: 6.1rem;
  transform: translateY(-.58rem);
}

@media (max-width: 1024px) {
  .psw-home-designers .tsw-designer-mark[data-designer="newkini"] .tsw-designer-mark__logo img {
    width: 5.8rem;
    height: 5.8rem;
    max-width: 5.8rem;
    max-height: 5.8rem;
    transform: translateY(-.38rem);
  }
}

@media (max-width: 700px) {
  .psw-home-designers .tsw-designer-mark[data-designer="newkini"] .tsw-designer-mark__logo img {
    width: 5.65rem;
    height: 5.65rem;
    max-width: 5.65rem;
    max-height: 5.65rem;
    transform: translateY(-.18rem);
  }
}

/* ---------- v1.18.10 — designer grid alignment reset ---------- */
/*
 * Alignment is driven by a shared logo stage rather than each artwork's native
 * canvas. These selectors intentionally work with both the current homepage
 * pattern and legacy shortcode-rendered designer grids.
 */
.tsw-designer-edit__grid .tsw-designer-mark {
  display: grid;
  grid-template-rows: 8.25rem auto;
  align-content: center;
  align-items: center;
  justify-items: center;
  min-width: 0;
}
.tsw-designer-edit__grid .tsw-designer-mark__logo {
  width: 100%;
  height: 8.25rem;
  min-height: 8.25rem;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 .75rem !important;
  margin: 0 !important;
  overflow: visible;
}
.tsw-designer-edit__grid .tsw-designer-mark__logo img {
  display: block;
  margin: 0 auto !important;
  object-fit: contain;
  object-position: center center;
  transform: none !important;
}
.tsw-designer-edit__grid .tsw-designer-mark__name {
  width: 100%;
  margin: 0;
  text-align: center;
  align-self: end;
}
/* The circular Newkini artwork is centered geometrically; do not lift it. */
.tsw-designer-edit__grid .tsw-designer-mark[data-designer="newkini"] .tsw-designer-mark__logo img {
  width: 6.1rem;
  height: 6.1rem;
  max-width: 6.1rem;
  max-height: 6.1rem;
  transform: none !important;
}
/* Shortcode-era markup without data attributes still receives the same correction. */
.tsw-designer-edit__grid .tsw-designer-mark:has(img[alt="Newkini logo"]) .tsw-designer-mark__logo img {
  width: 6.1rem;
  height: 6.1rem;
  max-width: 6.1rem;
  max-height: 6.1rem;
  transform: none !important;
}

/* Designers page: enforce one centered stage for every mark at all breakpoints. */
.tsw-designer-roster .tsw-designer-row__logo {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center;
}
.tsw-designer-roster .tsw-designer-row__logo img {
  display: block;
  margin: 0 auto !important;
  object-position: center center;
}

@media (max-width: 700px) {
  /* Compact, editorial mobile rhythm: logo and label share one centered axis. */
  .tsw-designer-edit__grid .tsw-designer-mark,
  .psw-home-designers .tsw-designer-edit__grid .tsw-designer-mark,
  .psw-home-designers .tsw-designer-mark:nth-child(2n),
  .psw-home-designers .tsw-designer-mark:last-child {
    display: grid;
    grid-template-rows: 6.75rem auto;
    align-content: center;
    align-items: center;
    justify-items: center;
    min-height: 10.75rem;
    padding: 1.35rem var(--tsw-gutter) 1.15rem;
    gap: .8rem;
  }
  .tsw-designer-edit__grid .tsw-designer-mark__logo,
  .psw-home-designers .tsw-designer-mark__logo {
    width: 100%;
    height: 6.75rem;
    min-height: 6.75rem;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
  }
  .tsw-designer-edit__grid .tsw-designer-mark__logo img,
  .psw-home-designers .tsw-designer-mark__logo img {
    margin: 0 auto !important;
    max-width: min(64vw, 11.5rem);
    max-height: 4.7rem;
    transform: none !important;
  }
  .tsw-designer-edit__grid .tsw-designer-mark[data-designer="newkini"] .tsw-designer-mark__logo img,
  .tsw-designer-edit__grid .tsw-designer-mark:has(img[alt="Newkini logo"]) .tsw-designer-mark__logo img {
    width: 5.55rem;
    height: 5.55rem;
    max-width: 5.55rem;
    max-height: 5.55rem;
    transform: none !important;
  }
  .tsw-designer-edit__grid .tsw-designer-mark__name,
  .psw-home-designers .tsw-designer-mark__name {
    width: 100%;
    min-height: 1rem;
    text-align: center;
    align-self: center;
  }

  /* Designers page mobile rows: remove left bias from legacy grid-column rules. */
  .tsw-designer-roster .tsw-designer-row {
    grid-template-columns: 1fr;
    justify-items: center;
    padding: 2rem 0 1.8rem;
    gap: .65rem;
  }
  .tsw-designer-roster .tsw-designer-row__index {
    display: none;
  }
  .tsw-designer-roster .tsw-designer-row__logo {
    grid-column: 1 !important;
    width: 100%;
    height: 6.75rem;
    min-height: 6.75rem;
    padding: 0 var(--tsw-gutter);
    justify-content: center !important;
  }
  .tsw-designer-roster .tsw-designer-row__logo img {
    margin: 0 auto !important;
    max-width: min(68vw, 12rem);
    max-height: 4.8rem;
    transform: none !important;
  }
  .tsw-designer-roster .tsw-designer-row[data-designer="newkini"] .tsw-designer-row__logo img {
    width: 5.75rem;
    height: 5.75rem;
    max-width: 5.75rem;
    max-height: 5.75rem;
    transform: none !important;
  }
  .tsw-designer-roster .tsw-designer-row__identity {
    grid-column: 1 !important;
    width: 100%;
    padding: .15rem var(--tsw-gutter) 0;
    text-align: center;
  }
}

/* ---------- v1.19.0 — normalized designer logo artboards ---------- */
/*
 * Every Season 01 logo now ships on the same 1200 × 600 pure-white artboard.
 * That removes intrinsic-canvas drift and makes the grid deterministic across
 * browsers, saved Site Editor content, desktop and mobile. These final rules
 * deliberately override all earlier per-logo transforms/sizing.
 */
.tsw-designer-edit__grid .tsw-designer-mark,
.psw-home-designers .tsw-designer-mark {
  display: grid !important;
  grid-template-rows: 9rem auto !important;
  align-content: center !important;
  align-items: center !important;
  justify-items: center !important;
  min-width: 0 !important;
}
.tsw-designer-edit__grid .tsw-designer-mark__logo,
.psw-home-designers .tsw-designer-mark__logo {
  width: 100% !important;
  height: 9rem !important;
  min-height: 9rem !important;
  display: grid !important;
  place-items: center !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  margin: 0 !important;
  background: #fff !important;
  overflow: visible !important;
}
.tsw-designer-edit__grid .tsw-designer-mark__logo img,
.psw-home-designers .tsw-designer-mark__logo img,
.tsw-designer-edit__grid .tsw-designer-mark[data-designer="newkini"] .tsw-designer-mark__logo img,
.psw-home-designers .tsw-designer-mark[data-designer="newkini"] .tsw-designer-mark__logo img,
.tsw-designer-edit__grid .tsw-designer-mark[data-designer="verseau"] .tsw-designer-mark__logo img,
.psw-home-designers .tsw-designer-mark[data-designer="verseau"] .tsw-designer-mark__logo img {
  display: block !important;
  width: min(100%, 16rem) !important;
  height: auto !important;
  max-width: 16rem !important;
  max-height: none !important;
  margin: auto !important;
  padding: 0 !important;
  position: static !important;
  inset: auto !important;
  float: none !important;
  translate: none !important;
  transform: none !important;
  object-fit: contain !important;
  object-position: 50% 50% !important;
  background: #fff !important;
}
.tsw-designer-edit__grid .tsw-designer-mark__name,
.psw-home-designers .tsw-designer-mark__name {
  width: 100% !important;
  min-height: 1rem !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: center !important;
  justify-self: center !important;
  align-self: center !important;
}

/* Designers page uses the same normalized artboards inside one fixed stage. */
.tsw-designer-roster .tsw-designer-row__logo {
  width: 100% !important;
  height: 9rem !important;
  min-height: 9rem !important;
  display: grid !important;
  place-items: center !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  margin: 0 !important;
  background: #fff !important;
  overflow: visible !important;
}
.tsw-designer-roster .tsw-designer-row__logo img,
.tsw-designer-roster .tsw-designer-row[data-designer="newkini"] .tsw-designer-row__logo img,
.tsw-designer-roster .tsw-designer-row[data-designer="verseau"] .tsw-designer-row__logo img {
  display: block !important;
  width: min(100%, 18rem) !important;
  height: auto !important;
  max-width: 18rem !important;
  max-height: none !important;
  margin: auto !important;
  padding: 0 !important;
  position: static !important;
  inset: auto !important;
  float: none !important;
  translate: none !important;
  transform: none !important;
  object-fit: contain !important;
  object-position: 50% 50% !important;
  background: #fff !important;
}

@media (max-width: 700px) {
  .tsw-designer-edit__grid,
  .psw-home-designers .tsw-designer-edit__grid {
    grid-template-columns: 1fr !important;
  }
  .tsw-designer-edit__grid .tsw-designer-mark,
  .psw-home-designers .tsw-designer-mark,
  .psw-home-designers .tsw-designer-mark:nth-child(2n),
  .psw-home-designers .tsw-designer-mark:last-child {
    width: 100% !important;
    min-height: 10.75rem !important;
    grid-template-rows: 7.75rem auto !important;
    justify-items: center !important;
    align-items: center !important;
    padding: 1.15rem var(--tsw-gutter) 1.1rem !important;
    gap: .55rem !important;
    border-right: 0 !important;
  }
  .tsw-designer-edit__grid .tsw-designer-mark__logo,
  .psw-home-designers .tsw-designer-mark__logo {
    width: 100% !important;
    height: 7.75rem !important;
    min-height: 7.75rem !important;
    display: grid !important;
    place-items: center !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  .tsw-designer-edit__grid .tsw-designer-mark__logo img,
  .psw-home-designers .tsw-designer-mark__logo img,
  .tsw-designer-edit__grid .tsw-designer-mark[data-designer="newkini"] .tsw-designer-mark__logo img,
  .psw-home-designers .tsw-designer-mark[data-designer="newkini"] .tsw-designer-mark__logo img,
  .tsw-designer-edit__grid .tsw-designer-mark[data-designer="verseau"] .tsw-designer-mark__logo img,
  .psw-home-designers .tsw-designer-mark[data-designer="verseau"] .tsw-designer-mark__logo img {
    width: min(78vw, 15.5rem) !important;
    height: auto !important;
    max-width: 15.5rem !important;
    max-height: none !important;
    margin: auto !important;
    position: static !important;
    inset: auto !important;
    transform: none !important;
  }
  .tsw-designer-edit__grid .tsw-designer-mark__name,
  .psw-home-designers .tsw-designer-mark__name {
    text-align: center !important;
    justify-self: center !important;
    align-self: center !important;
    line-height: 1.2 !important;
  }

  .tsw-designer-roster .tsw-designer-row {
    display: grid !important;
    grid-template-columns: 1fr !important;
    justify-items: center !important;
    align-items: center !important;
    gap: .55rem !important;
    padding: 1.65rem 0 1.55rem !important;
  }
  .tsw-designer-roster .tsw-designer-row__logo {
    grid-column: 1 !important;
    width: 100% !important;
    height: 8.25rem !important;
    min-height: 8.25rem !important;
    display: grid !important;
    place-items: center !important;
    padding: 0 var(--tsw-gutter) !important;
    margin: 0 !important;
  }
  .tsw-designer-roster .tsw-designer-row__logo img,
  .tsw-designer-roster .tsw-designer-row[data-designer="newkini"] .tsw-designer-row__logo img,
  .tsw-designer-roster .tsw-designer-row[data-designer="verseau"] .tsw-designer-row__logo img {
    width: min(80vw, 16.5rem) !important;
    height: auto !important;
    max-width: 16.5rem !important;
    max-height: none !important;
    margin: auto !important;
    position: static !important;
    inset: auto !important;
    transform: none !important;
  }
  .tsw-designer-roster .tsw-designer-row__identity {
    grid-column: 1 !important;
    width: 100% !important;
    padding: .1rem var(--tsw-gutter) 0 !important;
    text-align: center !important;
    justify-self: center !important;
  }
}

/* ---------- v1.19.0 — performance, responsive media + mobile navigation ---------- */
/* Keep below-the-fold editorial chapters cheap to lay out until the browser approaches them. */
@supports (content-visibility: auto) {
  .tsw-film-feature,
  .tsw-swim-motion,
  .psw-home-designers,
  .tsw-campaign-preview,
  .tsw-archive-section,
  .tsw-designer-roster-wrap {
    content-visibility: auto;
    contain-intrinsic-size: 720px;
  }
}

/* Video poster remains the visual surface until the optimized source is actually playing. */
.tsw-video-shell video {
  width: 100%;
  max-width: 100%;
  backface-visibility: hidden;
  transform: translateZ(0);
}

/* Touch devices do not need desktop hover zooms; removing them saves paint work. */
@media (hover: none) {
  .tsw-card:hover .tsw-card__media img,
  .tsw-card:focus-within .tsw-card__media img,
  .tsw-fashion-spread__look:hover img,
  .tsw-campaign-preview__card:hover img {
    transform: none !important;
    box-shadow: none;
  }
}

/* Mobile navigation: dedicated touch geometry rather than a compressed desktop header. */
@media (max-width: 781px) {
  .tsw-header .wp-block-group.alignwide {
    width: 100%;
    padding-inline: var(--tsw-gutter);
    gap: .65rem;
  }
  .tsw-header .wp-block-group.alignwide > .wp-block-group {
    gap: .55rem !important;
    margin-left: auto;
  }
  .tsw-nav .wp-block-navigation__responsive-container-open {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    min-width: 3rem;
    padding: .7rem;
    border: 0;
    border-radius: 0;
    color: currentColor;
    background: transparent;
  }
  .tsw-nav .wp-block-navigation__responsive-container-open svg {
    width: 1.55rem;
    height: 1.55rem;
  }
  .tsw-header__cta .wp-block-button__link {
    min-height: 3rem;
    padding: .82rem 1rem !important;
    white-space: nowrap;
    font-size: .7rem;
    letter-spacing: .14em;
  }
  .wp-block-navigation__responsive-container.is-menu-open {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100dvh;
    max-height: 100dvh;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: calc(env(safe-area-inset-top) + 5.25rem) var(--tsw-gutter) calc(env(safe-area-inset-bottom) + 2rem);
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    width: 100%;
    min-height: 100%;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    width: 100%;
    align-items: stretch !important;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    display: flex;
    align-items: center;
    min-height: 3.7rem;
    padding: .78rem 0;
    font-size: clamp(1.55rem, 7vw, 2.15rem);
    line-height: 1.05;
  }
  .wp-block-navigation__responsive-container-close {
    position: fixed;
    top: calc(env(safe-area-inset-top) + 1rem);
    right: var(--tsw-gutter);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    padding: .7rem;
    z-index: 2;
  }
}

@media (max-width: 420px) {
  .tsw-header__cta .wp-block-button__link { padding-inline: .82rem !important; }
  .tsw-brand-logo__image { width: 7.2rem; }
}

/* Supplied Dubai Swim Week mark is defined in the v1.1 maison layer below. */

.tsw-designer-mark--placeholder {
  min-height: clamp(8rem, 13vw, 12rem);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  border: 1px solid var(--tsw-rule);
  padding: 1.25rem;
}
.tsw-designer-mark--placeholder small {
  margin-top: .55rem;
  font-size: .6rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  opacity: .58;
}
.tsw-designer-mark__textmark {
  font-family: var(--wp--preset--font-family--display);
  font-size: 1.25rem;
  line-height: 1;
}


/* ---------- Dubai Swim Week v1.1.1 — Luxury Maison Editorial ---------- */
:root {
  --tsw-header-h: 86px;
  --tsw-rule: rgba(10,10,10,.14);
  --tsw-rule-light: rgba(255,255,255,.28);
  --psw-ivory: #F8F6F2;
  --psw-noir: #0A0A0A;
  --psw-champagne: #C8B9A5;
}
body {
  background: var(--psw-ivory);
  color: var(--psw-noir);
  font-family: var(--wp--preset--font-family--grotesk);
  letter-spacing: 0;
}

/* Compatibility wordmark for older Site Editor template parts. */
.tsw-brand-logo {
  display: inline-flex !important;
  align-items: baseline !important;
  min-width: 0 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  color: inherit !important;
}
.tsw-brand-logo__image {
  display: inline-flex !important;
  align-items: baseline;
  width: auto !important;
  height: auto !important;
  aspect-ratio: auto !important;
  background: none !important;
  filter: none !important;
}
.tsw-brand-logo__image::before {
  content: "DUBAI  SWIM WEEK®";
  font-family: var(--wp--preset--font-family--display);
  font-size: 1.12rem;
  font-weight: 500;
  letter-spacing: .08em;
  white-space: nowrap;
}
.tsw-brand-logo__wordmark,
.tsw-brand-logo__subline { display: none !important; }
.tsw-footer .tsw-brand-logo__image { width:auto !important; height:auto !important; filter:none !important; }

/* A permanent white maison header keeps the black supplied mark pristine. */
.tsw-header,
.has-hero-header .tsw-header,
.has-hero-header .tsw-header:not(.is-stuck),
.has-hero-header .tsw-header.is-stuck {
  position: sticky !important;
  inset: auto !important;
  top: 0 !important;
  background: rgba(255,255,255,.985) !important;
  color: var(--psw-noir) !important;
  border-bottom: 1px solid rgba(10,10,10,.12) !important;
  backdrop-filter: blur(14px) saturate(1.05);
}
.tsw-header .wp-block-group { min-height: var(--tsw-header-h); }
.tsw-header .wp-block-group.alignwide { padding-block: .7rem !important; }
.has-hero-header .tsw-header:not(.is-stuck) .wp-block-button__link,
.tsw-header .wp-block-button__link {
  background: var(--psw-noir) !important;
  color: #fff !important;
  box-shadow: none !important;
  border: 1px solid var(--psw-noir);
}
.tsw-nav .wp-block-navigation__container { gap: clamp(1rem,1.55vw,1.75rem); }
.tsw-nav .wp-block-navigation-item__content {
  font-family: var(--wp--preset--font-family--grotesk);
  font-size: .675rem;
  font-weight: 600;
  letter-spacing: .14em;
}
.tsw-nav .wp-block-navigation-item__content::after { bottom: .08rem; }

/* Full-bleed cinematic hero: fashion film first, copy second. */
.tsw-hero--dubai {
  min-height: min(900px, calc(100vh - var(--tsw-header-h)));
  background: #090909 !important;
}
.tsw-hero--dubai .tsw-hero__media {
  inset: 0 !important;
  right: 0 !important;
}
.tsw-hero--dubai .tsw-hero__media::after {
  background: linear-gradient(90deg, rgba(5,5,5,.78) 0%, rgba(5,5,5,.48) 43%, rgba(5,5,5,.12) 74%, rgba(5,5,5,.18) 100%) !important;
}
.tsw-hero--dubai .tsw-hero__media video {
  width: 100%; height: 100%; object-fit: cover;
  object-position: 50% 43% !important;
  filter: saturate(.82) contrast(1.03);
}
.tsw-hero--dubai .tsw-hero__inner {
  max-width: 1480px;
  margin-inline: auto;
  padding-left: var(--tsw-gutter) !important;
  padding-right: var(--tsw-gutter) !important;
}
.tsw-hero h1 {
  max-width: 11ch;
  font-family: var(--wp--preset--font-family--display);
  font-weight: 400;
  letter-spacing: -.045em;
  line-height: .88;
}
.tsw-hero__lede { max-width: 56ch; font-size: clamp(1rem,1.25vw,1.2rem); line-height: 1.55; }
.tsw-hero__edition,
.tsw-hero__meta { letter-spacing: .16em; }

/* Editorial scale and restraint. */
h1,h2,h3,.tsw-editorial-h3,.tsw-card__title { text-wrap: balance; }
.tsw-section { position: relative; }
.tsw-section-head { align-items: flex-end; }
.tsw-section-head h2 { max-width: 13ch; }
.is-style-eyebrow,.tsw-eyebrow,.is-style-caption {
  font-weight: 600;
  letter-spacing: .18em;
}
.is-style-waterline::before {
  background: linear-gradient(90deg, transparent, rgba(10,10,10,.18) 14%, rgba(10,10,10,.18) 86%, transparent) !important;
}
.is-style-waterline::after { display:none !important; }
.has-sand-background-color { background-color: #E9E3DB !important; }
.has-salt-background-color { background-color: #F8F6F2 !important; }
.has-night-background-color { background-color: #0A0A0A !important; }

/* Images behave like magazine plates: no chrome, strong crop, subdued palette. */
.tsw-card__media,
.tsw-editorial-media,
.tsw-fashion-spread__image,
.tsw-archive-card,
.tsw-campaign-preview__card,
.psw-page-editorial-strip__media,
.psw-page-story__media,
.wp-block-cover { overflow: hidden; }
.tsw-card__media img,
.tsw-editorial-media img,
.tsw-fashion-spread__image img,
.tsw-archive-card img,
.tsw-campaign-preview__card img,
.psw-page-editorial-strip__media img,
.psw-page-story__media img,
.wp-block-cover__image-background {
  filter: saturate(.84) contrast(1.025);
  transition: transform 700ms var(--tsw-ease), filter 700ms var(--tsw-ease);
}
@media (hover:hover) {
  .tsw-card:hover img,
  .tsw-archive-card:hover img,
  .tsw-campaign-preview__card:hover img { transform: scale(1.018); filter: saturate(.92) contrast(1.03); }
}
.tsw-platform-grid .tsw-card { background: transparent; border: 0; }
.tsw-platform-grid .tsw-card__media { aspect-ratio: 3 / 4; }
.tsw-platform-grid .tsw-card__body { padding-inline: 0; border-top: 1px solid rgba(255,255,255,.22); }

/* Editorial strips use taller fashion proportions. */
.tsw-highlights-preview__grid .tsw-archive-card--wide { aspect-ratio: 16 / 10; }
.tsw-highlights-preview__grid .tsw-archive-card--portrait { aspect-ratio: 3 / 4; }
.tsw-campaign-preview__card { aspect-ratio: 3 / 4; }
.tsw-campaign-preview__card--offset { margin-top: clamp(2rem,7vw,7rem); }

/* Footer remains nocturnal; logo reverses to white. */
.tsw-footer { background:#0A0A0A !important; }
.tsw-footer h3 {
  font-family: var(--wp--preset--font-family--grotesk);
  font-size: .7rem;
  letter-spacing: .15em;
  text-transform: uppercase;
}

@media (max-width: 1050px) {
  .tsw-header__cta { display:none; }
}
@media (max-width: 781px) {
  :root { --tsw-header-h: 72px; }
  .tsw-brand-logo__image { width: 36px !important; height: 46px !important; }
  .tsw-header .wp-block-group.alignwide { padding-inline: 1rem !important; }
  .tsw-hero--dubai { min-height: calc(100svh - var(--tsw-header-h)); }
  .tsw-hero--dubai .tsw-hero__media::after {
    background: linear-gradient(to top, rgba(5,5,5,.93) 0%, rgba(5,5,5,.58) 52%, rgba(5,5,5,.12) 100%) !important;
  }
  .tsw-hero--dubai .tsw-hero__media video { object-position: 50% 42% !important; }
  .tsw-hero h1 { max-width: 10ch; font-size: clamp(3rem,15vw,5.25rem) !important; line-height:.89; }
  .tsw-hero__lede { font-size: 1rem; max-width: 38ch; }
  .wp-block-navigation__responsive-container.is-menu-open { background:#F8F6F2 !important; color:#0A0A0A !important; }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    font-family: var(--wp--preset--font-family--display);
    font-size: clamp(2rem,10vw,3.3rem);
    letter-spacing: -.025em;
    text-transform: none;
    font-weight: 400;
  }
}

/* v1.1.3 — supplied Highlights triptych */
.tsw-highlights-preview__grid--supplied {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: clamp(.9rem, 1.6vw, 1.6rem);
}
.tsw-highlights-preview__grid--supplied .tsw-archive-card {
  aspect-ratio: auto;
}
.tsw-highlights-preview__grid--supplied .tsw-archive-card img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: center center;
}
.tsw-highlights-preview__grid--supplied .tsw-archive-card:nth-child(2) {
  margin-top: clamp(2rem, 5vw, 5rem);
}
.tsw-highlights-preview__grid--supplied .tsw-archive-card:nth-child(3) {
  margin-top: clamp(.75rem, 2.4vw, 2.4rem);
}
@media (max-width: 899px) {
  .tsw-highlights-preview__grid--supplied {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .tsw-highlights-preview__grid--supplied .tsw-archive-card:nth-child(3) {
    grid-column: 1 / -1;
    width: min(58%, 30rem);
    margin-inline: auto;
  }
}
@media (max-width: 620px) {
  .tsw-highlights-preview__grid--supplied {
    grid-template-columns: 1fr;
    gap: 1.4rem;
  }
  .tsw-highlights-preview__grid--supplied .tsw-archive-card,
  .tsw-highlights-preview__grid--supplied .tsw-archive-card:nth-child(2),
  .tsw-highlights-preview__grid--supplied .tsw-archive-card:nth-child(3) {
    width: 100%;
    margin: 0;
    grid-column: auto;
  }
  .tsw-highlights-preview__grid--supplied .tsw-archive-card img {
    aspect-ratio: 4 / 5;
  }
}

/* v1.1.4 — owner-supplied Highlights editorial refresh */
.tsw-highlight-mosaic {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(1rem, 1.8vw, 1.8rem);
  align-items: start;
}
.tsw-highlight-mosaic__card,
.tsw-highlight-quartet__card {
  margin: 0;
}
.tsw-highlight-mosaic__card img,
.tsw-highlight-quartet__card img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s ease, filter .5s ease;
}
.tsw-highlight-mosaic__card--portrait:nth-child(1) {
  grid-column: 1 / span 4;
}
.tsw-highlight-mosaic__card--wide {
  grid-column: 5 / -1;
  margin-top: clamp(1.5rem, 4vw, 4.5rem);
}
.tsw-highlight-mosaic__card--wide img {
  aspect-ratio: 16 / 9;
  object-position: center center;
}
.tsw-highlight-mosaic__card--portrait:nth-child(3) {
  grid-column: 2 / span 4;
  margin-top: clamp(2rem, 4vw, 5rem);
}
.tsw-highlight-mosaic__card--portrait:nth-child(4) {
  grid-column: 7 / span 4;
  margin-top: clamp(5rem, 9vw, 10rem);
}
.tsw-highlight-mosaic__card--portrait img {
  aspect-ratio: 3 / 4;
}
.tsw-highlight-mosaic__card figcaption,
.tsw-highlight-quartet__card figcaption {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: .8rem;
  row-gap: .16rem;
  padding-top: .9rem;
  border-top: 1px solid var(--tsw-rule);
  margin-top: .85rem;
}
.tsw-highlight-mosaic__card figcaption span,
.tsw-highlight-quartet__card figcaption span {
  grid-row: 1 / 3;
  font-size: .625rem;
  letter-spacing: .16em;
  opacity: .48;
}
.tsw-highlight-mosaic__card figcaption strong,
.tsw-highlight-quartet__card figcaption strong {
  font-family: var(--wp--preset--font-family--display);
  font-size: clamp(1.25rem, 1.05rem + .5vw, 1.8rem);
  font-weight: 400;
  line-height: 1;
}
.tsw-highlight-mosaic__card figcaption small,
.tsw-highlight-quartet__card figcaption small {
  font-size: .625rem;
  letter-spacing: .13em;
  text-transform: uppercase;
  opacity: .58;
}
.tsw-highlight-quartet {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.25rem, 3vw, 3.5rem) clamp(1rem, 2.4vw, 2.6rem);
  align-items: start;
}
.tsw-highlight-quartet__card img {
  aspect-ratio: 3 / 4;
}
.tsw-highlight-quartet__card--offset {
  margin-top: clamp(2.5rem, 6vw, 7rem);
}
.tsw-highlight-mosaic__card:hover img,
.tsw-highlight-quartet__card:hover img {
  transform: scale(1.012);
  filter: saturate(.95) contrast(1.025);
}

@media (max-width: 899px) {
  .tsw-highlight-mosaic {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem 1.2rem;
  }
  .tsw-highlight-mosaic__card--portrait:nth-child(1),
  .tsw-highlight-mosaic__card--portrait:nth-child(3),
  .tsw-highlight-mosaic__card--portrait:nth-child(4),
  .tsw-highlight-mosaic__card--wide {
    grid-column: auto;
    margin-top: 0;
  }
  .tsw-highlight-mosaic__card--wide {
    grid-column: 1 / -1;
  }
  .tsw-highlight-mosaic__card--wide img {
    aspect-ratio: 16 / 10;
  }
  .tsw-highlight-quartet__card--offset {
    margin-top: 2rem;
  }
}

@media (max-width: 620px) {
  .tsw-highlight-mosaic,
  .tsw-highlight-quartet {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .tsw-highlight-mosaic__card--wide,
  .tsw-highlight-mosaic__card--portrait:nth-child(1),
  .tsw-highlight-mosaic__card--portrait:nth-child(3),
  .tsw-highlight-mosaic__card--portrait:nth-child(4) {
    grid-column: auto;
  }
  .tsw-highlight-mosaic__card--wide img,
  .tsw-highlight-mosaic__card--portrait img,
  .tsw-highlight-quartet__card img {
    aspect-ratio: 4 / 5;
  }
  .tsw-highlight-quartet__card--offset {
    margin-top: 0;
  }
}


/* v1.1.5 — Four Dimensions owner-supplied image pair */
.tsw-platform-grid .tsw-card:nth-child(1) .tsw-card__media img {
  object-position: 66% center;
}
.tsw-platform-grid .tsw-card:nth-child(2) .tsw-card__media img {
  object-position: center 42%;
}

/* v1.1.7 — Dubai fashion editorial blocks */
.tsw-dubai-editorial-blocks{padding:clamp(4rem,7vw,8rem) clamp(1.25rem,4vw,4rem)}
.tsw-dubai-editorial-grid{display:grid;gap:clamp(5rem,9vw,10rem)}
.tsw-dubai-editorial-card{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(280px,.68fr);align-items:end;gap:clamp(2rem,5vw,6rem)}
.tsw-dubai-editorial-card--reverse{grid-template-columns:minmax(280px,.68fr) minmax(0,1.12fr)}
.tsw-dubai-editorial-card--reverse .tsw-dubai-editorial-card__media{order:2}
.tsw-dubai-editorial-card--reverse .tsw-dubai-editorial-card__copy{order:1}
.tsw-dubai-editorial-card__media{margin:0;overflow:hidden;background:#e9e5de}
.tsw-dubai-editorial-card__media img{width:100%;height:clamp(520px,58vw,880px);object-fit:cover;display:block}
.tsw-dubai-editorial-card:first-child .tsw-dubai-editorial-card__media img{aspect-ratio:1/1;height:auto}
.tsw-dubai-editorial-card__copy{padding-bottom:clamp(.5rem,2vw,2.5rem);max-width:34rem}
.tsw-dubai-editorial-card__copy h3{font-family:var(--wp--preset--font-family--display);font-size:clamp(2.25rem,4.4vw,5rem);font-weight:400;line-height:.96;letter-spacing:-.035em;margin:.75rem 0 1.5rem}
.tsw-dubai-editorial-card__copy h3 em{font-weight:400}
.tsw-dubai-editorial-card__copy p:last-child{font-size:clamp(1rem,1.3vw,1.2rem);line-height:1.6;max-width:31rem}
@media (max-width:900px){
  .tsw-dubai-editorial-card,.tsw-dubai-editorial-card--reverse{grid-template-columns:1fr;gap:1.75rem}
  .tsw-dubai-editorial-card--reverse .tsw-dubai-editorial-card__media,.tsw-dubai-editorial-card--reverse .tsw-dubai-editorial-card__copy{order:initial}
  .tsw-dubai-editorial-card__media img{height:auto;aspect-ratio:4/5;object-fit:cover}
  .tsw-dubai-editorial-card:first-child .tsw-dubai-editorial-card__media img{aspect-ratio:1/1}
  .tsw-dubai-editorial-card__copy{max-width:42rem;padding-bottom:0}
}

/* v1.1.11 — Designer Editorial */
.tsw-designer-editorial{
  margin-top:clamp(4.5rem,8vw,8rem);
  padding-top:clamp(2.5rem,4vw,4rem);
  border-top:1px solid var(--tsw-rule);
}
.tsw-designer-editorial__head{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(18rem,.7fr);
  gap:clamp(2rem,6vw,7rem);
  align-items:end;
  margin-bottom:clamp(2.75rem,5vw,5.5rem);
}
.tsw-designer-editorial__head h3{
  margin:.65rem 0 0;
  font-family:var(--wp--preset--font-family--display);
  font-size:clamp(2.8rem,5vw,5.8rem);
  font-weight:400;
  line-height:.92;
  letter-spacing:-.04em;
  max-width:10ch;
}
.tsw-designer-editorial__head h3 em{font-weight:400}
.tsw-designer-editorial__head>p{
  margin:0;
  font-size:clamp(1rem,1.15vw,1.2rem);
  line-height:1.62;
  max-width:35rem;
}
.tsw-designer-editorial__grid{
  display:grid;
  grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr) minmax(0,.82fr);
  gap:clamp(1.2rem,2.5vw,2.75rem);
  align-items:start;
}
.tsw-designer-editorial__card{margin:0;min-width:0}
.tsw-designer-editorial__card--offset{margin-top:clamp(3rem,7vw,7.5rem)}
.tsw-designer-editorial__card img{
  display:block;
  width:100%;
  aspect-ratio:3/4;
  object-fit:cover;
  background:#e9e5de;
  transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .7s ease;
}
.tsw-designer-editorial__card--lead img{aspect-ratio:4/5}
.tsw-designer-editorial__card:hover img{transform:scale(1.012);filter:saturate(.92) contrast(1.025)}
.tsw-designer-editorial__card figcaption{
  display:grid;
  grid-template-columns:auto 1fr;
  column-gap:.9rem;
  row-gap:.12rem;
  padding-top:.9rem;
  margin-top:.8rem;
  border-top:1px solid var(--tsw-rule);
}
.tsw-designer-editorial__card figcaption span{
  grid-row:1/3;
  font-size:.64rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  opacity:.52;
  white-space:nowrap;
}
.tsw-designer-editorial__card figcaption strong{
  font-family:var(--wp--preset--font-family--display);
  font-size:clamp(1.35rem,1.1rem + .6vw,1.95rem);
  font-weight:400;
  line-height:1;
}
.tsw-designer-editorial__card figcaption small{
  font-size:.64rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  opacity:.58;
}
@media (max-width:980px){
  .tsw-designer-editorial__head{grid-template-columns:1fr;gap:1.4rem;align-items:start}
  .tsw-designer-editorial__head h3{max-width:12ch}
  .tsw-designer-editorial__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tsw-designer-editorial__card--lead{grid-column:1/-1;width:min(72%,42rem)}
  .tsw-designer-editorial__card--offset{margin-top:0}
}
@media (max-width:680px){
  .tsw-designer-editorial{margin-top:3.5rem;padding-top:2.2rem}
  .tsw-designer-editorial__grid{grid-template-columns:1fr;gap:2.5rem}
  .tsw-designer-editorial__card--lead{grid-column:auto;width:100%}
  .tsw-designer-editorial__card img,.tsw-designer-editorial__card--lead img{aspect-ratio:4/5}
}


/* ---------- v1.1.12 — Shows editorial expansion + designer film ---------- */
.tsw-designer-call__film {
  position: relative;
  margin: 0;
  overflow: hidden;
  background: var(--wp--preset--color--night);
  aspect-ratio: 3 / 2;
}
.tsw-designer-call__film video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center 46%;
}
.tsw-designer-call__film .tsw-film-toggle {
  left: auto;
  right: 1.25rem;
  bottom: 1.25rem;
}
@media (max-width: 782px) {
  .tsw-designer-call__film { aspect-ratio: 4 / 5; }
  .tsw-designer-call__film video { object-position: center 45%; }
}
@media (prefers-reduced-motion: reduce) {
  .tsw-designer-call__film .tsw-film-toggle { display: none; }
}

/* v1.1.13 — Register page luxury editorial rebuild */
.psw-register-hero{min-height:88svh}
.psw-register-hero .wp-block-cover__background{opacity:.56!important;background:linear-gradient(90deg,rgba(8,8,8,.68) 0%,rgba(8,8,8,.36) 48%,rgba(8,8,8,.24) 100%)!important}
.psw-register-hero .wp-block-cover__image-background{object-position:center 43%}
.psw-register-hero .wp-block-cover__inner-container{padding-block:clamp(7rem,12vw,11rem) clamp(3.5rem,7vw,6rem)}
.psw-register-hero__title{font-family:var(--wp--preset--font-family--display);font-size:clamp(3.9rem,7vw,7.8rem);font-weight:400;line-height:.9;letter-spacing:-.045em;max-width:9.5ch;margin:.75rem 0 1.5rem;color:var(--wp--preset--color--salt)}
.psw-register-hero__title em{font-weight:400}
.psw-register-hero__lede{max-width:38rem;font-size:clamp(1.05rem,1rem + .35vw,1.35rem);line-height:1.55;color:color-mix(in srgb,var(--wp--preset--color--salt) 88%,transparent)}
.psw-register-story{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(22rem,.94fr);align-items:end;gap:clamp(2.5rem,6vw,7rem)}
.psw-register-story--reverse{grid-template-columns:minmax(22rem,.94fr) minmax(0,1.06fr)}
.psw-register-story--reverse .psw-register-story__media{order:2}
.psw-register-story--reverse .psw-register-story__copy{order:1}
.psw-register-story__media{margin:0;overflow:hidden;background:#e8e2d9;aspect-ratio:4/5}
.psw-register-story__media img{width:100%;height:100%;object-fit:cover;display:block}
.psw-register-story__copy{max-width:38rem;padding-bottom:clamp(.5rem,2vw,2rem)}
.psw-register-story__copy h2,.psw-register-access__head h2,.psw-register-close h2{font-family:var(--wp--preset--font-family--display);font-weight:400;letter-spacing:-.04em;line-height:.94;text-wrap:balance}
.psw-register-story__copy h2{font-size:clamp(2.8rem,4.5vw,5.5rem);max-width:11ch;margin:.7rem 0 1.5rem}
.psw-register-story__copy>p:not(.tsw-eyebrow){font-size:clamp(1rem,1rem + .18vw,1.18rem);line-height:1.62;max-width:34rem}
.psw-register-access__head{display:grid;grid-template-columns:minmax(0,.75fr) minmax(22rem,1.25fr);gap:clamp(2rem,6vw,7rem);align-items:end;margin-bottom:clamp(3rem,6vw,6rem)}
.psw-register-access__head .tsw-eyebrow{align-self:start}
.psw-register-access__head h2{grid-column:2;font-size:clamp(3rem,5vw,6rem);max-width:10ch;margin:0}
.psw-register-access__head>p:last-child{grid-column:2;max-width:42rem;font-size:1.05rem;line-height:1.65;margin-top:-2rem}
.psw-register-tiers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--tsw-rule)}
.psw-register-tier{padding:clamp(1.6rem,3vw,3rem) clamp(1rem,2.5vw,2.5rem) clamp(2.25rem,4vw,4rem);border-bottom:1px solid var(--tsw-rule);border-right:1px solid var(--tsw-rule);min-height:16rem;display:flex;flex-direction:column}
.psw-register-tier:nth-child(3n){border-right:0}
.psw-register-tier>span,.psw-register-tier small{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--tsw-muted)}
.psw-register-tier h3{font-family:var(--wp--preset--font-family--display);font-size:clamp(1.9rem,2.7vw,3.1rem);font-weight:400;line-height:1;margin:2rem 0 1rem}
.psw-register-tier p{font-size:.96rem;line-height:1.58;max-width:30ch}
.psw-register-tier small{margin-top:auto;padding-top:1.5rem}
.psw-register-close__grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(20rem,.95fr);gap:clamp(3rem,7vw,8rem);align-items:end}
.psw-register-close h2{font-size:clamp(3rem,5.3vw,6.2rem);max-width:10ch;margin:.75rem 0 0}
.psw-register-close__actions>p{max-width:34rem;color:color-mix(in srgb,var(--wp--preset--color--salt) 76%,transparent);font-size:1.05rem;line-height:1.6;margin-bottom:1.75rem}
@media(max-width:900px){
  .psw-register-story,.psw-register-story--reverse{grid-template-columns:1fr;gap:2rem}
  .psw-register-story--reverse .psw-register-story__media,.psw-register-story--reverse .psw-register-story__copy{order:initial}
  .psw-register-story__media{aspect-ratio:4/5;max-height:760px}
  .psw-register-access__head{grid-template-columns:1fr;gap:1.25rem}
  .psw-register-access__head h2,.psw-register-access__head>p:last-child{grid-column:1;margin-top:0}
  .psw-register-tiers{grid-template-columns:repeat(2,minmax(0,1fr))}
  .psw-register-tier:nth-child(3n){border-right:1px solid var(--tsw-rule)}
  .psw-register-tier:nth-child(2n){border-right:0}
  .psw-register-close__grid{grid-template-columns:1fr;gap:2rem}
}
@media(max-width:600px){
  .psw-register-hero{min-height:80svh}
  .psw-register-hero .wp-block-cover__image-background{object-position:center 38%}
  .psw-register-hero .wp-block-cover__inner-container{padding-block:7rem 2.75rem}
  .psw-register-hero__title{font-size:clamp(3.05rem,14vw,4.65rem);line-height:.92;max-width:9ch}
  .psw-register-hero__lede{font-size:1rem;max-width:30ch}
  .psw-register-story__copy h2{font-size:clamp(2.6rem,11.5vw,4rem);max-width:11ch}
  .psw-register-access__head h2,.psw-register-close h2{font-size:clamp(2.65rem,12vw,4.1rem)}
  .psw-register-tiers{grid-template-columns:1fr}
  .psw-register-tier,.psw-register-tier:nth-child(2n),.psw-register-tier:nth-child(3n){border-right:0;min-height:0}
}

/* ---------- v1.1.16 — Dubai/Register typography safety ---------- */
/* Keep the v1.1.14 page widths and composition. Only protect display type from
   clipping or splitting at common desktop/mobile widths. */
.psw-register-page .psw-register-hero__title,
.psw-dubai-page .wp-block-cover h1 {
  overflow: visible;
  overflow-wrap: normal;
  word-break: keep-all;
  hyphens: none;
  text-wrap: nowrap;
  padding-inline-end: .08em;
}

/* The explicit <br> elements still create the intended editorial lines; nowrap
   prevents either line from breaking again in the middle. */
.psw-register-page .psw-register-hero__title {
  white-space: nowrap;
  max-width: none;
  font-size: clamp(3.25rem, 5.75vw, 6.85rem);
  line-height: .94;
  letter-spacing: -.038em;
}
.psw-dubai-page .wp-block-cover h1 {
  white-space: nowrap;
  max-width: none;
  font-size: clamp(3.15rem, 5.6vw, 6.7rem);
  line-height: .94;
  letter-spacing: -.038em;
}

/* Secondary Register display headings may wrap between words, but never split
   a word or crop an italic terminal. */
.psw-register-page .psw-register-story__copy h2,
.psw-register-page .psw-register-access__head h2,
.psw-register-page .psw-register-close h2 {
  overflow: visible;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  padding-inline-end: .08em;
}

@media (max-width: 900px) {
  .psw-register-page .psw-register-hero__title {
    font-size: clamp(2.85rem, 8.7vw, 4.75rem);
  }
  .psw-dubai-page .wp-block-cover h1 {
    font-size: clamp(2.8rem, 8.5vw, 4.65rem);
  }
}

@media (max-width: 600px) {
  .psw-register-page .psw-register-hero__title {
    font-size: clamp(2.18rem, 9.9vw, 3.45rem);
    line-height: .98;
    letter-spacing: -.03em;
  }
  .psw-dubai-page .wp-block-cover h1 {
    font-size: clamp(2.1rem, 9.6vw, 3.35rem);
    line-height: .98;
    letter-spacing: -.03em;
  }
}

@media (max-width: 390px) {
  .psw-register-page .psw-register-hero__title { font-size: clamp(2rem, 9.4vw, 2.65rem); }
  .psw-dubai-page .wp-block-cover h1 { font-size: clamp(1.95rem, 9.2vw, 2.6rem); }
}

/* ---------- v1.1.17 — Register access tier heading integrity ---------- */
/* Keep every access-tier label intact. The three-column desktop grid has a
   deliberately editorial narrow measure, so the display size must be tuned to
   the actual card width rather than the viewport alone. */
.psw-register-tier h3 {
  max-width: none;
  overflow: visible;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  white-space: nowrap;
  text-wrap: nowrap;
  font-size: clamp(1.45rem, 1.7vw, 1.8rem);
  line-height: 1.02;
  letter-spacing: -0.025em;
}

/* Two-column tablet cards have more horizontal room, so restore a slightly
   larger editorial scale while preserving the single-line labels. */
@media (max-width: 900px) {
  .psw-register-tier h3 {
    font-size: clamp(1.7rem, 3.4vw, 2.15rem);
    white-space: nowrap;
  }
}

/* On phones each card spans the full row. Keep the headings elegant but small
   enough that General Admission remains on one line even on narrow screens. */
@media (max-width: 600px) {
  .psw-register-tier h3 {
    font-size: clamp(1.55rem, 7vw, 2rem);
    line-height: 1.04;
    white-space: nowrap;
  }
}

@media (max-width: 360px) {
  .psw-register-tier h3 {
    font-size: 1.45rem;
    letter-spacing: -0.03em;
  }
}


/* ---------- v1.1.19 — persistent mobile navigation ---------- */
/* A sticky element nested inside a short WordPress template-part wrapper can be
   constrained by that wrapper on mobile Safari/Chrome. Use a viewport-fixed
   header on phones/tablets so the Dubai Swim Week navigation reliably follows
   the reader down the page. The site-block padding preserves the exact vertical
   space previously occupied by the in-flow sticky header. */
@media (max-width: 781px) {
  body > .wp-site-blocks {
    padding-top: var(--tsw-header-h);
  }

  .tsw-header,
  .has-hero-header .tsw-header,
  .has-hero-header .tsw-header:not(.is-stuck),
  .has-hero-header .tsw-header.is-stuck {
    position: fixed !important;
    inset-inline: 0 !important;
    top: 0 !important;
    width: 100% !important;
    z-index: 1000 !important;
    margin: 0 !important;
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
  }

  /* Logged-in WordPress users have a 46px mobile admin bar. Keep the public
     navigation directly below it instead of allowing the two bars to overlap. */
  body.admin-bar .tsw-header,
  body.admin-bar.has-hero-header .tsw-header,
  body.admin-bar.has-hero-header .tsw-header.is-stuck {
    top: 46px !important;
  }

  /* Give the persistent bar a subtle separation only after scrolling while
     retaining the permanent white maison header treatment. */
  .tsw-header.is-stuck {
    box-shadow: 0 1px 0 rgba(10,10,10,.08), 0 8px 24px rgba(10,10,10,.045);
  }

  /* The full-screen WordPress navigation overlay must always sit above the
     fixed header and remain independently scrollable on shorter phones. */
  .tsw-nav .wp-block-navigation__responsive-container.is-menu-open {
    z-index: 1200 !important;
  }
  .tsw-nav .wp-block-navigation__responsive-container-close {
    z-index: 1201 !important;
  }
}

/* WordPress uses a shorter desktop admin bar until its 782px breakpoint. */
@media (min-width: 782px) {
  body.admin-bar .tsw-header { top: 32px !important; }
}

/* ---------- v1.1.20 — viewport-persistent mobile header hardening ---------- */
/* Keep the Dubai Swim Week mark + hamburger in view for the full mobile scroll.
   The previous layer already fixed the header; this hardening removes the GPU
   transform that could create a containing block for WordPress' fixed menu
   overlay, and uses the measured header height when available so content never
   slips underneath the navigation. */
@media (max-width: 781px) {
  body > .wp-site-blocks {
    padding-top: var(--psw-mobile-header-height, var(--tsw-header-h)) !important;
  }

  .tsw-header,
  .has-hero-header .tsw-header,
  .has-hero-header .tsw-header:not(.is-stuck),
  .has-hero-header .tsw-header.is-stuck {
    position: fixed !important;
    inset-inline: 0 !important;
    top: 0 !important;
    width: 100% !important;
    max-width: none !important;
    z-index: 1000 !important;
    margin: 0 !important;
    transform: none !important;
    -webkit-transform: none !important;
    backface-visibility: visible !important;
    -webkit-backface-visibility: visible !important;
    will-change: auto;
    /* The header is effectively opaque; dropping blur on mobile saves paint
       work while preserving the exact maison appearance. */
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  /* Ensure a saved Site Editor template-part wrapper never clips the fixed bar
     or its full-screen navigation dialog. */
  .wp-block-template-part:has(> .tsw-header),
  .wp-block-template-part:has(.tsw-header) {
    overflow: visible !important;
    transform: none !important;
    filter: none !important;
    contain: none !important;
    z-index: 1000;
  }

  body.admin-bar .tsw-header,
  body.admin-bar.has-hero-header .tsw-header,
  body.admin-bar.has-hero-header .tsw-header.is-stuck {
    top: 46px !important;
  }

  /* WordPress' responsive menu remains viewport-sized and above the persistent
     header on Safari, Chrome and Android browsers. */
  .tsw-nav .wp-block-navigation__responsive-container.is-menu-open {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    z-index: 1200 !important;
  }

  .tsw-nav .wp-block-navigation__responsive-container-close {
    z-index: 1201 !important;
  }

  html {
    scroll-padding-top: calc(var(--psw-mobile-header-height, var(--tsw-header-h)) + 1rem);
  }
}


/* ---------- v1.1.21 — General Admission two-line tier treatment ---------- */
/* The first Register tier is intentionally two lines. This prevents the long
   label from crossing the vertical divider into Runway while preserving the
   editorial Bodoni scale and the natural space between General and Admission.
   The nth-child fallback also fixes older /tickets/ content saved by Site Editor. */
.psw-register-tier:first-child h3 {
  white-space: normal;
  text-wrap: wrap;
  overflow-wrap: normal;
  word-break: keep-all;
  hyphens: none;
  max-width: 7.5ch;
  line-height: .98;
}
.psw-register-tier:first-child h3 .psw-tier-line {
  display: block;
  white-space: nowrap;
}

/* Give every tier title a hard card boundary so display type can never visually
   run into the next column, even when an older browser ignores text-wrap. */
.psw-register-tier {
  min-width: 0;
  overflow: hidden;
}
.psw-register-tier h3 {
  width: 100%;
  box-sizing: border-box;
}

@media (max-width: 900px) {
  .psw-register-tier:first-child h3 {
    max-width: 8ch;
  }
}

@media (max-width: 600px) {
  .psw-register-tier:first-child h3 {
    max-width: none;
  }
}

/* ---------- v1.1.23 — Register-only navigation + mobile performance pass ---------- */
/* Prevent wide editorial media/type from creating horizontal scroll on small
   browsers while preserving full-bleed sections that intentionally use 100vw. */
html, body { max-width: 100%; }
body { overflow-x: clip; }

img, video, picture, figure { max-width: 100%; }
img { height: auto; }
video[data-tsw-hero] {
  display: block;
  width: 100%;
  max-width: 100%;
  object-fit: cover;
  background: #0a0a0a;
}

@media (max-width: 781px) {
  /* Comfortable tap targets and less accidental zoom/missed taps in the mobile
     navigation without increasing the visible editorial type scale. */
  .tsw-header a,
  .tsw-header button,
  .tsw-nav .wp-block-navigation-item__content,
  .wp-block-button__link {
    min-height: 44px;
  }

  .tsw-nav .wp-block-navigation__responsive-container-content {
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding-bottom: max(2rem, env(safe-area-inset-bottom));
  }

  /* Keep local films GPU-friendly on phones and avoid layout shifts while
     their source is lazily attached just before entering the viewport. */
  .tsw-video-shell,
  .tsw-hero__media,
  .wp-block-cover {
    contain: layout paint;
  }
  video[data-tsw-hero] {
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
  }
}

/* v1.1.24 — Event/entity homepage hero and SEO-facing first screen. */
.tsw-hero__inner--entity{max-width:min(1180px,calc(100vw - 6vw));}
.tsw-hero__entity-title{margin:0;font-family:var(--wp--preset--font-family--display,"Bodoni Moda",serif);font-size:clamp(4.25rem,9.5vw,9.25rem);font-weight:400;line-height:.84;letter-spacing:-.055em;text-wrap:balance;}
.tsw-hero__positioning{max-width:980px;margin:clamp(1rem,2vw,1.65rem) 0 0;font-family:var(--wp--preset--font-family--sans,"Manrope",sans-serif);font-size:clamp(1.08rem,1.7vw,1.55rem);font-weight:500;line-height:1.35;letter-spacing:-.02em;}
.tsw-hero__lede--entity{max-width:900px;margin-top:1.25rem;}
.tsw-hero__facts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin:clamp(1.6rem,3vw,2.6rem) 0 0;border-top:1px solid rgba(255,255,255,.38);border-bottom:1px solid rgba(255,255,255,.38);}
.tsw-hero__facts>div{min-width:0;padding:1rem 1rem 1rem 0;border-right:1px solid rgba(255,255,255,.22);}
.tsw-hero__facts>div+div{padding-left:1rem;}
.tsw-hero__facts>div:last-child{border-right:0;}
.tsw-hero__facts dt{margin:0 0 .45rem;font:600 .68rem/1.2 var(--wp--preset--font-family--sans,"Manrope",sans-serif);letter-spacing:.14em;text-transform:uppercase;opacity:.7;}
.tsw-hero__facts dd{margin:0;font:400 clamp(.78rem,.85vw,.92rem)/1.45 var(--wp--preset--font-family--sans,"Manrope",sans-serif);}
@media (max-width:980px){.tsw-hero__facts{grid-template-columns:repeat(2,minmax(0,1fr));}.tsw-hero__facts>div{border-bottom:1px solid rgba(255,255,255,.18);}.tsw-hero__facts>div:nth-child(even){border-right:0}.tsw-hero__facts>div:last-child{grid-column:1/-1;border-bottom:0;}.tsw-hero__entity-title{font-size:clamp(3.65rem,12vw,7rem);}}
@media (max-width:640px){.tsw-hero__inner--entity{max-width:calc(100vw - 2rem);}.tsw-hero__entity-title{font-size:clamp(3.15rem,16vw,5rem);line-height:.88;letter-spacing:-.045em;white-space:normal;}.tsw-hero__positioning{font-size:1rem;line-height:1.4;max-width:31ch;}.tsw-hero__lede--entity{font-size:.94rem;line-height:1.55;}.tsw-hero__facts{grid-template-columns:1fr;}.tsw-hero__facts>div,.tsw-hero__facts>div+div{padding:.8rem 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.18);}.tsw-hero__facts>div:last-child{grid-column:auto;border-bottom:0}.tsw-hero__facts dd{font-size:.82rem;}.tsw-hero__actions{gap:.65rem;}}


/* Dubai Swim Week v2.0 — Luxury Gulf editorial system */
:root{--dsw-gold:#c6a66a;--dsw-ink:#090909;--dsw-ivory:#f8f6f2}
.dsw-wordmark{display:inline-flex;align-items:baseline;gap:.62rem;color:inherit;text-decoration:none;white-space:nowrap;line-height:1}
.dsw-wordmark__dubai{font-family:var(--wp--preset--font-family--display);font-size:clamp(1.08rem,1.5vw,1.45rem);font-weight:500;letter-spacing:.075em}
.dsw-wordmark__swim{font-family:var(--wp--preset--font-family--grotesk);font-size:.68rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase}
.dsw-wordmark sup{font-size:.5em;top:-.6em;position:relative;margin-left:.12em}
.tsw-header.is-scrolled .dsw-wordmark{color:var(--wp--preset--color--night)}
.dsw-wordmark--footer{color:var(--wp--preset--color--salt)}
.tsw-hero--dubai:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(3,3,3,.66) 0%,rgba(3,3,3,.25) 52%,rgba(3,3,3,.08) 100%);z-index:1}
.tsw-hero--dubai .tsw-hero__inner,.tsw-hero--dubai .tsw-film-toggle{z-index:2}
.tsw-hero--dubai .tsw-hero__positioning{max-width:780px}
.tsw-hero--dubai .tsw-hero__edition span:first-child,.tsw-hero--dubai .tsw-hero__meta span:first-child{color:#f0ddba}
.dsw-editorial-gallery{overflow:hidden}
.dsw-editorial-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(1.2rem,2.4vw,2.5rem);align-items:start}
.dsw-editorial-tile{grid-column:span 4;margin:0 0 clamp(1.5rem,4vw,5rem)}
.dsw-editorial-tile:nth-child(2),.dsw-editorial-tile:nth-child(5){transform:translateY(clamp(1.5rem,5vw,5.5rem))}
.dsw-editorial-tile figure{margin:0;overflow:hidden;background:#e7e1d8;aspect-ratio:3/4}
.dsw-editorial-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.65,.2,1)}
.dsw-editorial-tile:hover img{transform:scale(1.025)}
.dsw-editorial-tile__copy{display:grid;grid-template-columns:2rem 1fr;column-gap:1rem;padding-top:1rem;border-top:1px solid rgba(10,10,10,.22);margin-top:1rem}
.dsw-editorial-tile__copy>span{font-size:.72rem;letter-spacing:.12em;color:#796f63;padding-top:.2rem}
.dsw-editorial-tile__copy .tsw-eyebrow,.dsw-editorial-tile__copy h3,.dsw-editorial-tile__copy p{grid-column:2}
.dsw-editorial-tile__copy h3{font-family:var(--wp--preset--font-family--display);font-size:clamp(1.8rem,2.5vw,3rem);font-weight:400;line-height:1;margin:.25rem 0 .7rem;letter-spacing:-.025em}
.dsw-editorial-tile__copy p:last-child{font-size:.94rem;max-width:28rem;margin:0;color:#464039}
.tsw-dubai-editorial-blocks{padding:clamp(4rem,7vw,8rem) clamp(1.25rem,4vw,4rem)}
.tsw-dubai-editorial-grid{display:grid;gap:clamp(5rem,9vw,10rem)}
.tsw-dubai-editorial-card{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(280px,.68fr);align-items:end;gap:clamp(2rem,5vw,6rem)}
.tsw-dubai-editorial-card--reverse{grid-template-columns:minmax(280px,.68fr) minmax(0,1.12fr)}
.tsw-dubai-editorial-card--reverse .tsw-dubai-editorial-card__media{order:2}.tsw-dubai-editorial-card--reverse .tsw-dubai-editorial-card__copy{order:1}
.tsw-dubai-editorial-card__media{margin:0;overflow:hidden;background:#e9e5de}
.tsw-dubai-editorial-card__media img{width:100%;height:clamp(520px,58vw,880px);object-fit:cover;display:block}
.tsw-dubai-editorial-card:first-child .tsw-dubai-editorial-card__media img{aspect-ratio:1/1;height:auto}
.tsw-dubai-editorial-card__copy{padding-bottom:clamp(.5rem,2vw,2.5rem);max-width:34rem}
.tsw-dubai-editorial-card__copy h3{font-family:var(--wp--preset--font-family--display);font-size:clamp(2.25rem,4.4vw,5rem);font-weight:400;line-height:.96;letter-spacing:-.035em;margin:.75rem 0 1.5rem}
@media(max-width:900px){.dsw-editorial-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dsw-editorial-tile{grid-column:auto}.dsw-editorial-tile:nth-child(2),.dsw-editorial-tile:nth-child(5){transform:none}.tsw-dubai-editorial-card,.tsw-dubai-editorial-card--reverse{grid-template-columns:1fr}.tsw-dubai-editorial-card--reverse .tsw-dubai-editorial-card__media,.tsw-dubai-editorial-card--reverse .tsw-dubai-editorial-card__copy{order:initial}.tsw-dubai-editorial-card__media img{height:auto;aspect-ratio:4/5}.dsw-wordmark__dubai{font-size:1rem}.dsw-wordmark__swim{font-size:.58rem;letter-spacing:.15em}}
@media(max-width:600px){.dsw-editorial-grid{grid-template-columns:1fr}.dsw-editorial-tile figure{aspect-ratio:4/5}.tsw-hero--dubai:after{background:linear-gradient(180deg,rgba(3,3,3,.25),rgba(3,3,3,.72) 72%,rgba(3,3,3,.82))}.dsw-wordmark{gap:.45rem}.dsw-wordmark__swim{font-size:.52rem}}

/* ---------- Dubai Swim Week v2.0.1 — Official registered mark ---------- */
/* Use the supplied stacked Dubai Swim Week® artwork as the canonical site mark.
   The transparent production PNG is derived from the supplied JPG without redrawing
   the lettering, allowing the exact mark to sit cleanly on white and dark surfaces. */
.dsw-wordmark {
  display: block !important;
  flex: 0 0 auto !important;
  width: auto !important;
  height: 64px !important;
  aspect-ratio: 679 / 864 !important;
  background: url('../images/branding/dubai-swim-week-official-logo.png') center / contain no-repeat !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
  overflow: hidden;
}
.dsw-wordmark > span { display: none !important; }
.dsw-wordmark:hover { opacity: .72; }
.dsw-wordmark--footer {
  height: 118px !important;
  filter: brightness(0) invert(1);
  opacity: .98;
}

/* Official mark in the cinematic hero. The image is black in the source artwork;
   invert it to white over moving fashion imagery while preserving the source shape. */
.tsw-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.tsw-hero__official-logo {
  display: block;
  width: clamp(8.75rem, 11.5vw, 11.75rem);
  height: auto;
  margin: 0 0 clamp(1.15rem, 2vw, 1.65rem);
  filter: brightness(0) invert(1) drop-shadow(0 3px 20px rgba(0,0,0,.20));
}
.tsw-hero--dubai .tsw-hero__positioning {
  max-width: 760px;
  margin-top: 0;
  font-size: clamp(1.08rem, 1.7vw, 1.55rem);
  font-weight: 500;
  letter-spacing: -.02em;
}

/* Keep the official vertical mark visually balanced with the navigation. */
.tsw-header .wp-block-group.alignwide {
  min-height: 88px;
  padding-block: .45rem !important;
}

@media (max-width: 900px) {
  .dsw-wordmark { height: 58px !important; }
  .tsw-header .wp-block-group.alignwide { min-height: 78px; }
  .tsw-hero__official-logo { width: clamp(7.75rem, 20vw, 9.5rem); }
}
@media (max-width: 600px) {
  :root { --tsw-header-h: 72px; }
  .dsw-wordmark { height: 50px !important; }
  .dsw-wordmark--footer { height: 96px !important; }
  .tsw-header .wp-block-group.alignwide { min-height: 72px; padding-block: .35rem !important; }
  .tsw-hero__official-logo { width: 7.5rem; margin-bottom: 1rem; }
  .tsw-hero--dubai .tsw-hero__positioning { max-width: 29ch; font-size: 1rem; line-height: 1.42; }
}

/* ---------- Dubai Swim Week v2.0.2 — supplied editorial image refresh ---------- */
/* Four Dimensions: tune the supplied imagery for the existing luxury four-card rhythm. */
.tsw-platform-grid--dsw-202 .tsw-card:nth-child(1) .tsw-card__media img {
  object-position: 52% center;
}
.tsw-platform-grid--dsw-202 .tsw-card:nth-child(2) .tsw-card__media img {
  object-position: center 48%;
}
.tsw-platform-grid--dsw-202 .tsw-card:nth-child(3) .tsw-card__media img {
  object-position: center 38%;
}
.tsw-platform-grid--dsw-202 .tsw-card:nth-child(4) .tsw-card__media img {
  object-position: center 45%;
}

/* The new pool-duo frame is native 3:2; keep its full cinematic width on Highlights. */
.tsw-highlight-mosaic--dsw-202 .tsw-highlight-mosaic__card--wide img {
  aspect-ratio: 3 / 2;
  object-fit: cover;
  object-position: center center;
}
.tsw-highlight-mosaic--dsw-202 .tsw-highlight-mosaic__card:nth-child(1) img {
  object-position: center 48%;
}
.tsw-highlight-mosaic--dsw-202 .tsw-highlight-mosaic__card:nth-child(3) img {
  object-position: center 36%;
}
.tsw-highlight-mosaic--dsw-202 .tsw-highlight-mosaic__card:nth-child(4) img {
  object-position: center 45%;
}


/* ---------- Dubai Swim Week v2.0.8 — page alignment system ---------- */
/* Keep editorial pages inside a predictable visual measure. These rules are
   intentionally shared by the core page heroes so long display faces do not
   create horizontal canvas growth or clipped italic terminals. */
.wp-block-post-content,
.wp-block-post-content > *,
.tsw-page-hero > *,
.tsw-section > *,
.tsw-section .wp-block-column {
  min-width: 0;
  box-sizing: border-box;
}

.tsw-page-hero {
  overflow: clip;
}
.tsw-page-hero .wp-block-heading.has-h-1-font-size,
.tsw-page-hero h1,
body:not(.home) .tsw-section h1.has-h-1-font-size {
  max-width: 12.5ch;
  margin-inline-start: 0;
  margin-inline-end: auto;
  padding-inline-end: .09em;
  overflow: visible;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  white-space: normal;
  text-wrap: balance;
  font-size: clamp(3.25rem, 5.65vw, 6.45rem);
  line-height: .93;
  letter-spacing: -.038em;
}
.tsw-page-hero .is-style-lede {
  max-width: 58ch;
}
.tsw-section .wp-block-heading,
.tsw-section h2,
.tsw-section h3 {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

/* Dubai destination hero: the old nowrap rule could make the second line wider
   than the cover and visually push the page to the right. Preserve the explicit
   editorial line break but allow the phrase itself to wrap when the available
   image width is smaller. */
.psw-dubai-page .dsw-dubai-page-hero {
  width: 100%;
  max-width: 100%;
  margin-inline: 0;
  overflow: hidden;
}
.psw-dubai-page .dsw-dubai-page-hero .wp-block-cover__inner-container {
  width: 100%;
  max-width: 1480px;
  margin-inline: auto;
  box-sizing: border-box;
  padding-inline: clamp(1.25rem, 4vw, 4rem);
  padding-bottom: clamp(2.25rem, 5vw, 5rem);
}
.psw-dubai-page .dsw-dubai-page-hero h1,
.psw-dubai-page .wp-block-cover h1 {
  width: min(100%, 13.25ch);
  max-width: 13.25ch;
  margin: .7rem 0 0;
  padding-inline-end: .12em;
  white-space: normal;
  text-wrap: balance;
  overflow: visible;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  font-size: clamp(3.2rem, 5vw, 6.15rem);
  line-height: .92;
  letter-spacing: -.04em;
}
.psw-dubai-page .dsw-dubai-page-hero h1 em,
.psw-dubai-page .wp-block-cover h1 em {
  font-weight: 400;
}

/* Designers: normalize the three editorial plates after swapping in homepage
   photography with different native aspect ratios. */
.tsw-designer-editorial__card img {
  width: 100%;
  object-fit: cover;
  object-position: center center;
}
.tsw-designer-editorial__card:nth-child(1) img { object-position: center 38%; }
.tsw-designer-editorial__card:nth-child(2) img { object-position: center 42%; }
.tsw-designer-editorial__card:nth-child(3) img { object-position: center 38%; }

@media (max-width: 980px) {
  .tsw-page-hero .wp-block-heading.has-h-1-font-size,
  .tsw-page-hero h1,
  body:not(.home) .tsw-section h1.has-h-1-font-size {
    max-width: 11.5ch;
    font-size: clamp(3rem, 8.5vw, 4.85rem);
  }
  .psw-dubai-page .dsw-dubai-page-hero h1,
  .psw-dubai-page .wp-block-cover h1 {
    width: min(100%, 12ch);
    max-width: 12ch;
    font-size: clamp(2.9rem, 8.2vw, 4.75rem);
  }
}

@media (max-width: 600px) {
  .tsw-page-hero .wp-block-heading.has-h-1-font-size,
  .tsw-page-hero h1,
  body:not(.home) .tsw-section h1.has-h-1-font-size {
    max-width: 10.5ch;
    font-size: clamp(2.55rem, 12vw, 3.75rem);
    line-height: .95;
    letter-spacing: -.03em;
  }
  .tsw-page-hero .is-style-lede {
    max-width: 34ch;
    font-size: 1rem;
    line-height: 1.55;
  }
  .psw-dubai-page .dsw-dubai-page-hero .wp-block-cover__inner-container {
    padding-inline: 1.15rem;
    padding-bottom: 2.25rem;
  }
  .psw-dubai-page .dsw-dubai-page-hero h1,
  .psw-dubai-page .wp-block-cover h1 {
    width: min(100%, 10.8ch);
    max-width: 10.8ch;
    font-size: clamp(2.35rem, 11.25vw, 3.45rem);
    line-height: .96;
    letter-spacing: -.028em;
  }
}


/* ---------- Dubai Swim Week v2.0.12 — official hero + responsive page system ---------- */
/* Header: align the official mark, navigation and CTA on one stable optical axis
   and prevent the right-side controls from forcing overflow at intermediate widths. */
.tsw-header > .wp-block-group.alignwide,
.tsw-header .wp-block-group.alignwide {
  width: min(100%, 1480px);
  max-width: 1480px;
  margin-inline: auto !important;
  padding-inline: clamp(1rem, 3vw, 2.75rem) !important;
  box-sizing: border-box;
  gap: clamp(1rem, 2vw, 2rem);
  align-items: center !important;
}
.tsw-header .wp-block-group.alignwide > .wp-block-group {
  min-width: 0;
  margin-left: auto;
  align-items: center !important;
}
.tsw-header .tsw-nav,
.tsw-header .wp-block-navigation__container {
  min-width: 0;
  align-items: center;
}
.tsw-header .wp-block-navigation-item__content {
  white-space: nowrap;
}

/* New official hero is composed specifically for desktop with the full vertical
   fashion plate on the right and a soft extension under the left-side copy. */
.tsw-hero--dubai .tsw-hero__media video {
  object-position: center center !important;
}
.tsw-hero--dubai .tsw-hero__media::after {
  background: linear-gradient(90deg, rgba(5,5,5,.82) 0%, rgba(5,5,5,.54) 38%, rgba(5,5,5,.15) 68%, rgba(5,5,5,.12) 100%) !important;
}

/* Shared page hardening: columns, covers, custom editorial grids and long
   display headings stay inside the viewport on desktop and mobile. */
body:not(.home) .wp-block-post-content,
body:not(.home) .wp-block-post-content > *,
body:not(.home) .wp-block-columns,
body:not(.home) .wp-block-column,
body:not(.home) .wp-block-group,
body:not(.home) .wp-block-cover__inner-container,
body:not(.home) .tsw-dubai-editorial-card,
body:not(.home) .tsw-dubai-editorial-card__copy {
  min-width: 0;
  box-sizing: border-box;
}
body:not(.home) .wp-block-post-content {
  overflow-x: clip;
}
body:not(.home) .wp-block-cover__inner-container,
body:not(.home) .tsw-page-hero,
body:not(.home) .tsw-section {
  max-width: 100%;
}
body:not(.home) .wp-block-heading,
body:not(.home) .is-style-lede,
body:not(.home) p {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}
body:not(.home) .wp-block-image img,
body:not(.home) .wp-block-cover__image-background,
body:not(.home) .tsw-dubai-editorial-card__media img {
  max-width: 100%;
}

/* Dubai editorial headline: the word “destination” is an intentional single
   typographic unit. Scale the card title to its available column rather than
   permitting a mid-word line break. */
.dsw-destination-lock {
  display: inline-block;
  white-space: nowrap;
}
.psw-dubai-page .tsw-dubai-editorial-card__copy {
  width: 100%;
  max-width: 38rem;
}
.psw-dubai-page .tsw-dubai-editorial-card__copy h3 {
  width: 100%;
  max-width: none;
  font-size: clamp(2.35rem, 3.75vw, 4.5rem);
  line-height: .95;
  text-wrap: pretty;
}

/* More measured page-hero scale on wide monitors so the editorial typography
   remains premium instead of colliding with neighboring columns or media. */
@media (min-width: 1200px) {
  body:not(.home) .tsw-page-hero .wp-block-heading.has-h-1-font-size,
  body:not(.home) .tsw-page-hero h1 {
    font-size: clamp(4rem, 5.15vw, 6.25rem);
    max-width: 13ch;
  }
}

@media (max-width: 1180px) {
  .tsw-header__cta { display: none !important; }
  .tsw-nav .wp-block-navigation__container { gap: clamp(.75rem, 1.5vw, 1.2rem); }
  .tsw-header .wp-block-navigation-item__content { font-size: .64rem; letter-spacing: .11em; }
}

@media (max-width: 900px) {
  body:not(.home) .wp-block-columns {
    gap: clamp(1.5rem, 5vw, 2.75rem);
  }
  body:not(.home) .tsw-section,
  body:not(.home) .tsw-page-hero,
  .tsw-dubai-editorial-blocks {
    padding-inline: clamp(1.25rem, 4.5vw, 2.5rem) !important;
  }
  .psw-dubai-page .tsw-dubai-editorial-card__copy h3 {
    font-size: clamp(2.6rem, 8.2vw, 4.35rem);
  }
  .psw-dubai-page .tsw-dubai-editorial-card__copy {
    max-width: 42rem;
  }
}

@media (max-width: 781px) {
  .tsw-header > .wp-block-group.alignwide,
  .tsw-header .wp-block-group.alignwide {
    min-height: 72px;
    padding-inline: 1rem !important;
    padding-block: .35rem !important;
  }
  .tsw-header .dsw-wordmark {
    margin-right: auto;
  }
  .tsw-header .wp-block-group.alignwide > .wp-block-group {
    margin-left: auto;
    flex: 0 0 auto;
  }
  .tsw-nav .wp-block-navigation__responsive-container-open {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    margin: 0;
  }
  /* Native portrait mobile encode: keep the fashion subject visible and let the
     darker lower gradient support the content hierarchy. */
  .tsw-hero--dubai .tsw-hero__media video {
    object-position: 50% 50% !important;
  }
  .tsw-hero--dubai .tsw-hero__media::after {
    background: linear-gradient(180deg, rgba(5,5,5,.18) 0%, rgba(5,5,5,.30) 32%, rgba(5,5,5,.82) 73%, rgba(5,5,5,.95) 100%) !important;
  }
  body:not(.home) .wp-block-columns:not(.is-not-stacked-on-mobile) {
    flex-wrap: wrap !important;
  }
  body:not(.home) .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
    flex-basis: 100% !important;
  }
  body:not(.home) .wp-block-buttons {
    gap: .75rem;
  }
  body:not(.home) .wp-block-buttons .wp-block-button {
    max-width: 100%;
  }
}

@media (max-width: 600px) {
  body:not(.home) .tsw-section,
  body:not(.home) .tsw-page-hero,
  .tsw-dubai-editorial-blocks {
    padding-inline: 1.1rem !important;
  }
  body:not(.home) .tsw-section {
    padding-block: clamp(3rem, 11vw, 4.5rem) !important;
  }
  body:not(.home) .tsw-page-hero .wp-block-heading.has-h-1-font-size,
  body:not(.home) .tsw-page-hero h1,
  body:not(.home) .tsw-section h1.has-h-1-font-size {
    max-width: 11ch;
    font-size: clamp(2.45rem, 11.5vw, 3.6rem);
    line-height: .96;
    letter-spacing: -.032em;
  }
  .psw-dubai-page .dsw-dubai-page-hero {
    min-height: 72svh !important;
  }
  .psw-dubai-page .dsw-dubai-page-hero h1,
  .psw-dubai-page .wp-block-cover h1 {
    width: min(100%, 11.25ch);
    max-width: 11.25ch;
    font-size: clamp(2.3rem, 10.8vw, 3.3rem);
  }
  .psw-dubai-page .tsw-dubai-editorial-card__copy h3 {
    font-size: clamp(2.25rem, 11vw, 3.35rem);
    letter-spacing: -.03em;
  }
  .dsw-destination-lock { white-space: nowrap; }
  body:not(.home) .wp-block-button,
  body:not(.home) .wp-block-button__link {
    max-width: 100%;
  }
}

@media (max-width: 380px) {
  .psw-dubai-page .tsw-dubai-editorial-card__copy h3 {
    font-size: 2.1rem;
  }
  .psw-dubai-page .dsw-dubai-page-hero h1,
  .psw-dubai-page .wp-block-cover h1 {
    font-size: 2.15rem;
  }
}

/* ---------- Dubai Swim Week v2.0.13 — Highlights alignment refinement ---------- */
/*
 * The Highlights page has accumulated several generations of full-bleed/raw-HTML
 * layout rules. Keep the editorial asymmetry inside a single shared 1480px canvas
 * instead of allowing the section wrapper itself to jump to 100vw.
 */
.tsw-page-hero--editorial,
.tsw-highlights-page,
.tsw-highlight-resort-chapter,
.tsw-highlight-resort-chapter + .tsw-section {
  box-sizing: border-box;
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: max(var(--tsw-gutter), calc((100vw - 1480px) / 2)) !important;
  padding-right: max(var(--tsw-gutter), calc((100vw - 1480px) / 2)) !important;
  overflow-x: clip;
}

/* Keep the Highlights hero copy on one left axis. WordPress constrained-layout
   styles can otherwise auto-center narrow headings independently of the lede. */
.tsw-page-hero--editorial > .is-style-eyebrow,
.tsw-page-hero--editorial > .wp-block-heading,
.tsw-page-hero--editorial > .is-style-lede {
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.tsw-page-hero--editorial > .wp-block-heading {
  width: min(100%, 12.5ch);
  max-width: 12.5ch !important;
}
.tsw-page-hero--editorial > .is-style-lede {
  width: min(100%, 58ch);
  max-width: 58ch !important;
}

/* One consistent inner canvas for both editorial chapters. */
.tsw-highlights-page .tsw-highlights-preview,
.tsw-highlight-resort-chapter .tsw-campaign-preview,
.tsw-highlight-resort-chapter + .tsw-section > .wp-block-columns {
  width: 100% !important;
  max-width: 1480px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  min-width: 0;
  box-sizing: border-box;
}

.tsw-highlights-preview__head,
.tsw-campaign-preview__head {
  grid-template-columns: minmax(0, 1.08fr) minmax(18rem, .92fr);
  gap: clamp(2rem, 5vw, 6rem);
  align-items: end;
  width: 100%;
  max-width: 100%;
}
.tsw-highlights-preview__head > *,
.tsw-campaign-preview__head > * {
  min-width: 0;
}
.tsw-highlights-preview__head h2,
.tsw-campaign-preview__head h2 {
  margin-left: 0;
  margin-right: 0;
  max-width: 10.5ch;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}
.tsw-highlights-preview__intro,
.tsw-campaign-preview__intro {
  width: min(100%, 36rem);
  max-width: 36rem;
  justify-self: end;
  margin: 0;
  padding-bottom: .35rem;
}
.tsw-highlights-preview__intro p,
.tsw-campaign-preview__intro p {
  margin-top: 0;
  margin-bottom: 0;
}

/* Re-anchor the Chapter 01 mosaic to a clean twelve-column editorial grid. */
.tsw-highlight-mosaic {
  width: 100%;
  max-width: 100%;
  margin-inline: 0;
}
.tsw-highlight-mosaic__card,
.tsw-highlight-quartet__card {
  min-width: 0;
  max-width: 100%;
}
@media (min-width: 1200px) {
  .tsw-highlight-mosaic__card--portrait:nth-child(1) { grid-column: 1 / span 4; }
  .tsw-highlight-mosaic__card--wide { grid-column: 6 / -1; margin-top: clamp(1.5rem, 3.5vw, 3.75rem); }
  .tsw-highlight-mosaic__card--portrait:nth-child(3) { grid-column: 2 / span 4; margin-top: clamp(2rem, 3.5vw, 4rem); }
  .tsw-highlight-mosaic__card--portrait:nth-child(4) { grid-column: 8 / span 4; margin-top: clamp(3.5rem, 6vw, 6.5rem); }
}

/* Chapter 02 keeps the magazine offset, but both columns share the same width
   and the stagger is restrained enough to feel deliberate rather than drifting. */
.tsw-highlight-quartet {
  width: 100%;
  max-width: 1320px;
  margin-inline: auto;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(1.25rem, 3vw, 3rem);
  row-gap: clamp(2.5rem, 4vw, 4.5rem);
}
.tsw-highlight-quartet__card--offset {
  margin-top: clamp(2rem, 4vw, 4.5rem);
}

/* Bottom CTA: keep both columns on the same page grid and avoid WordPress
   content-size rules narrowing one side more than the other. */
.tsw-highlight-resort-chapter + .tsw-section > .wp-block-columns {
  gap: clamp(2rem, 5vw, 6rem);
  align-items: center;
}
.tsw-highlight-resort-chapter + .tsw-section .wp-block-column {
  min-width: 0;
}
.tsw-highlight-resort-chapter + .tsw-section .wp-block-heading {
  margin-top: 0;
}

@media (max-width: 980px) {
  .tsw-page-hero--editorial,
  .tsw-highlights-page,
  .tsw-highlight-resort-chapter,
  .tsw-highlight-resort-chapter + .tsw-section {
    padding-left: clamp(1.25rem, 4vw, 2.25rem) !important;
    padding-right: clamp(1.25rem, 4vw, 2.25rem) !important;
  }
  .tsw-highlights-preview__head,
  .tsw-campaign-preview__head {
    grid-template-columns: 1fr;
    gap: 1.5rem;
    align-items: start;
  }
  .tsw-highlights-preview__intro,
  .tsw-campaign-preview__intro {
    justify-self: start;
    width: min(100%, 42rem);
    max-width: 42rem;
  }
  .tsw-highlight-mosaic {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1.4rem, 3vw, 2.25rem) clamp(1rem, 2.5vw, 1.5rem);
  }
  .tsw-highlight-mosaic__card--portrait:nth-child(1),
  .tsw-highlight-mosaic__card--portrait:nth-child(3),
  .tsw-highlight-mosaic__card--portrait:nth-child(4),
  .tsw-highlight-mosaic__card--wide {
    grid-column: auto;
    margin-top: 0;
  }
  .tsw-highlight-mosaic__card--wide {
    grid-column: 1 / -1;
  }
  .tsw-highlight-quartet__card--offset {
    margin-top: 1.75rem;
  }
}

@media (max-width: 700px) {
  .tsw-page-hero--editorial,
  .tsw-highlights-page,
  .tsw-highlight-resort-chapter,
  .tsw-highlight-resort-chapter + .tsw-section {
    padding-left: 1.15rem !important;
    padding-right: 1.15rem !important;
  }
  .tsw-page-hero--editorial > .wp-block-heading {
    width: min(100%, 10.75ch);
    max-width: 10.75ch !important;
  }
  .tsw-highlights-preview__head,
  .tsw-campaign-preview__head {
    margin-bottom: 2.25rem;
  }
  .tsw-highlights-preview__head h2,
  .tsw-campaign-preview__head h2 {
    max-width: 11ch;
    font-size: clamp(2.7rem, 13vw, 4rem);
    line-height: .94;
    letter-spacing: -.035em;
  }
  .tsw-highlight-mosaic,
  .tsw-highlight-quartet {
    grid-template-columns: 1fr;
    gap: 2.25rem;
    max-width: 100%;
  }
  .tsw-highlight-mosaic__card--wide,
  .tsw-highlight-mosaic__card--portrait:nth-child(1),
  .tsw-highlight-mosaic__card--portrait:nth-child(3),
  .tsw-highlight-mosaic__card--portrait:nth-child(4) {
    grid-column: auto;
    margin-top: 0;
  }
  .tsw-highlight-mosaic__card--wide img,
  .tsw-highlight-mosaic__card--portrait img,
  .tsw-highlight-quartet__card img {
    aspect-ratio: 4 / 5;
  }
  .tsw-highlight-quartet__card--offset {
    margin-top: 0;
  }
  .tsw-highlight-mosaic__card figcaption,
  .tsw-highlight-quartet__card figcaption {
    grid-template-columns: 2.25rem minmax(0, 1fr);
    column-gap: .65rem;
  }
  .tsw-highlight-resort-chapter + .tsw-section > .wp-block-columns {
    gap: 1.5rem;
  }
}


/* ---------- Dubai Swim Week v2.0.16 — Highlights editorial typography safety ----------
   Keep the large Vogue-style chapter titles inside their own grid column. The
   previous display scale could make long words such as “silhouette” visually
   collide with the editorial copy on common desktop widths. */
.tsw-highlights-page .tsw-highlights-preview__head,
.tsw-highlight-resort-chapter .tsw-campaign-preview__head {
  grid-template-columns: minmax(0, 1fr) minmax(20rem, .78fr);
  column-gap: clamp(3.5rem, 6vw, 7rem);
  row-gap: 1.75rem;
  align-items: start;
}

.tsw-highlights-page .tsw-highlights-preview__head h2,
.tsw-highlight-resort-chapter .tsw-campaign-preview__head h2 {
  width: 100%;
  max-width: 100%;
  font-size: clamp(3.25rem, 4.2vw, 5rem);
  line-height: .91;
  letter-spacing: -.04em;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
}

.tsw-highlights-page .tsw-highlights-preview__head h2 em,
.tsw-highlight-resort-chapter .tsw-campaign-preview__head h2 em {
  display: inline;
}

.tsw-highlights-page .tsw-highlights-preview__intro,
.tsw-highlight-resort-chapter .tsw-campaign-preview__intro {
  width: min(100%, 32rem);
  max-width: 32rem;
  justify-self: end;
  align-self: start;
  padding-top: clamp(2.65rem, 4.2vw, 4.5rem);
  padding-bottom: 0;
}

.tsw-highlights-page .tsw-highlights-preview__intro p,
.tsw-highlight-resort-chapter .tsw-campaign-preview__intro p {
  font-size: clamp(1rem, .95rem + .18vw, 1.15rem);
  line-height: 1.58;
  max-width: 42ch;
}

@media (max-width: 1180px) {
  .tsw-highlights-page .tsw-highlights-preview__head,
  .tsw-highlight-resort-chapter .tsw-campaign-preview__head {
    grid-template-columns: minmax(0, 1fr) minmax(18rem, .72fr);
    column-gap: clamp(2.5rem, 5vw, 4.5rem);
  }
  .tsw-highlights-page .tsw-highlights-preview__head h2,
  .tsw-highlight-resort-chapter .tsw-campaign-preview__head h2 {
    font-size: clamp(3.1rem, 4.8vw, 4.35rem);
  }
  .tsw-highlights-page .tsw-highlights-preview__intro,
  .tsw-highlight-resort-chapter .tsw-campaign-preview__intro {
    padding-top: 2.5rem;
  }
}

@media (max-width: 980px) {
  .tsw-highlights-page .tsw-highlights-preview__head,
  .tsw-highlight-resort-chapter .tsw-campaign-preview__head {
    grid-template-columns: 1fr;
    gap: 1.35rem;
  }
  .tsw-highlights-page .tsw-highlights-preview__head h2,
  .tsw-highlight-resort-chapter .tsw-campaign-preview__head h2 {
    width: min(100%, 11.5ch);
    max-width: 11.5ch;
    font-size: clamp(3rem, 7vw, 4.15rem);
    line-height: .92;
  }
  .tsw-highlights-page .tsw-highlights-preview__intro,
  .tsw-highlight-resort-chapter .tsw-campaign-preview__intro {
    justify-self: start;
    width: min(100%, 42rem);
    max-width: 42rem;
    padding-top: 0;
  }
}

@media (max-width: 700px) {
  .tsw-highlights-page .tsw-highlights-preview__head h2,
  .tsw-highlight-resort-chapter .tsw-campaign-preview__head h2 {
    width: 100%;
    max-width: 100%;
    font-size: clamp(2.55rem, 11.5vw, 3.65rem);
    line-height: .94;
    letter-spacing: -.035em;
  }
}

/* ---------- Dubai Swim Week v2.0.18 — Homepage image-rendering + Highlights refresh ---------- */
/*
 * The homepage portfolio inherited an older campaign-card aspect-ratio on the
 * <figure> itself. Combined with responsive width/height hints, some browsers
 * could reserve the plate incorrectly and make the photography look like a
 * thin strip. Keep the figure content-driven and put the fashion ratio on the
 * image, where it belongs.
 */
.home .tsw-home-campaigns .tsw-campaign-preview__grid {
  align-items: start;
}
.home .tsw-home-campaigns .tsw-campaign-preview__card {
  aspect-ratio: auto !important;
  overflow: visible !important;
  min-height: 0;
}
.home .tsw-home-campaigns .tsw-campaign-preview__card img {
  display: block;
  width: 100%;
  height: auto !important;
  max-width: 100%;
  aspect-ratio: 2 / 3 !important;
  object-fit: cover !important;
  object-position: center center;
}
.home .tsw-home-campaigns .tsw-campaign-preview__card figcaption {
  position: relative;
  z-index: 1;
}

/* New Chapter 02 owner-supplied plates. The first source is landscape, so a
   deliberate portrait crop keeps the model centered without stretching. */
.tsw-highlight-resort-chapter .tsw-highlight-quartet__card:nth-child(1) img {
  object-position: 50% 48%;
}
.tsw-highlight-resort-chapter .tsw-highlight-quartet__card:nth-child(3) img {
  object-position: 52% 42%;
}

@media (max-width: 960px) {
  .home .tsw-home-campaigns .tsw-campaign-preview__card img {
    aspect-ratio: 3 / 4 !important;
  }
}

@media (max-width: 620px) {
  .home .tsw-home-campaigns .tsw-campaign-preview__grid {
    gap: 2rem;
  }
  .home .tsw-home-campaigns .tsw-campaign-preview__card,
  .home .tsw-home-campaigns .tsw-campaign-preview__card--offset {
    margin-top: 0 !important;
  }
  .home .tsw-home-campaigns .tsw-campaign-preview__card img {
    aspect-ratio: 4 / 5 !important;
  }
}


/* ---------- Dubai Swim Week v2.0.19 — Homepage Shows image rendering ---------- */
/*
 * This editorial row sits close enough to the primary homepage content that
 * content-visibility:auto is counterproductive. Some Chromium builds can keep
 * the 720px intrinsic placeholder alive while the child images are already
 * entering the viewport, producing a large blank field above partially painted
 * cards. Keep native lazy image fetching, but let this section participate in
 * normal layout/paint so its geometry is always deterministic.
 */
.home .tsw-home-campaigns,
.home .tsw-home-campaigns .tsw-campaign-preview {
  content-visibility: visible !important;
  contain: none !important;
  contain-intrinsic-size: auto !important;
}

.home .tsw-home-campaigns .tsw-campaign-preview__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: auto;
  align-items: start;
  width: min(100%, 1280px);
  margin-inline: auto;
}

.home .tsw-home-campaigns .tsw-campaign-preview__card,
.home .tsw-home-campaigns .tsw-campaign-preview__card--offset {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  min-height: 0;
  height: auto !important;
  aspect-ratio: auto !important;
  overflow: visible !important;
}

.home .tsw-home-campaigns .tsw-campaign-preview__card img {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: center center !important;
  flex: 0 0 auto;
}

/* The middle card keeps a modest editorial stagger without creating an empty
   half-screen before the row becomes visible. */
.home .tsw-home-campaigns .tsw-campaign-preview__card--offset {
  margin-top: clamp(1.5rem, 3.5vw, 3.75rem) !important;
}

@media (max-width: 960px) {
  .home .tsw-home-campaigns .tsw-campaign-preview__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .home .tsw-home-campaigns .tsw-campaign-preview__card:nth-child(3) {
    grid-column: 1 / -1;
    width: min(72%, 34rem);
    justify-self: center;
  }
}

@media (max-width: 620px) {
  .home .tsw-home-campaigns .tsw-campaign-preview__grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .home .tsw-home-campaigns .tsw-campaign-preview__card,
  .home .tsw-home-campaigns .tsw-campaign-preview__card--offset,
  .home .tsw-home-campaigns .tsw-campaign-preview__card:nth-child(3) {
    grid-column: auto;
    width: 100%;
    margin-top: 0 !important;
  }
}


/* ---------- Dubai Swim Week v2.0.20 — Homepage spacing + Shows archive media fix ---------- */
/*
 * The portfolio/shows pattern is reused on both the homepage and the Shows
 * archive. Earlier fixes were scoped to .home, so the archive could still
 * inherit the old 3:4 figure containment and the scroll-reveal elements could
 * remain transparent while continuing to reserve their full layout height.
 * Make this shared module deterministic everywhere it is used.
 */
.tsw-home-campaigns {
  content-visibility: visible !important;
  contain: none !important;
  contain-intrinsic-size: auto !important;
  padding-top: clamp(3.25rem, 5vw, 5.75rem) !important;
  padding-bottom: clamp(3.5rem, 5.5vw, 6rem) !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* Do not let a restored scroll position or a delayed IntersectionObserver leave
   invisible content occupying a large blank region. */
.tsw-home-campaigns .tsw-in,
.post-type-archive-psw_show .tsw-in {
  opacity: 1 !important;
  transform: none !important;
}

.tsw-home-campaigns .tsw-campaign-preview__head {
  margin-bottom: clamp(2.25rem, 4vw, 4.25rem) !important;
}

.tsw-home-campaigns .tsw-campaign-preview__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.25rem, 2.4vw, 2.5rem);
  align-items: start;
  width: min(100%, 1280px);
  margin: 0 auto;
}

.tsw-home-campaigns .tsw-campaign-preview__card,
.tsw-home-campaigns .tsw-campaign-preview__card--offset {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  min-height: 0;
  height: auto !important;
  aspect-ratio: auto !important;
  overflow: visible !important;
}

.tsw-home-campaigns .tsw-campaign-preview__card img {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
  object-position: center center !important;
}

.tsw-home-campaigns .tsw-campaign-preview__card--offset {
  margin-top: clamp(1rem, 2.4vw, 2.5rem) !important;
}

/* Show archive cards also keep their featured images in a predictable frame. */
.post-type-archive-psw_show .wp-block-post-template.tsw-grid {
  align-items: start;
}
.post-type-archive-psw_show .wp-block-post-template .tsw-card {
  min-width: 0;
  min-height: 0;
}
.post-type-archive-psw_show .wp-block-post-template .tsw-card__media {
  display: block;
  width: 100%;
  min-height: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}
.post-type-archive-psw_show .wp-block-post-template .tsw-card__media img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

@media (max-width: 960px) {
  .tsw-home-campaigns {
    padding-top: clamp(2.75rem, 6vw, 4.5rem) !important;
    padding-bottom: clamp(3rem, 6vw, 4.75rem) !important;
  }
  .tsw-home-campaigns .tsw-campaign-preview__head {
    margin-bottom: 2.5rem !important;
  }
  .tsw-home-campaigns .tsw-campaign-preview__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .tsw-home-campaigns .tsw-campaign-preview__card:nth-child(3) {
    grid-column: 1 / -1;
    width: min(72%, 34rem);
    justify-self: center;
  }
}

@media (max-width: 620px) {
  .tsw-home-campaigns {
    padding-top: 2.75rem !important;
    padding-bottom: 3.25rem !important;
  }
  .tsw-home-campaigns .tsw-campaign-preview__head {
    margin-bottom: 2rem !important;
  }
  .tsw-home-campaigns .tsw-campaign-preview__grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .tsw-home-campaigns .tsw-campaign-preview__card,
  .tsw-home-campaigns .tsw-campaign-preview__card--offset,
  .tsw-home-campaigns .tsw-campaign-preview__card:nth-child(3) {
    grid-column: auto;
    width: 100%;
    margin-top: 0 !important;
  }
}


/* ---------- Dubai Swim Week v2.0.21 — Remove homepage editorial dead space ---------- */
/*
 * The campaign heading and image grid are sibling elements inside a custom
 * HTML section. WordPress/global style interactions could leave a large
 * reserved vertical band between them even after the card aspect-ratio fixes.
 * Make the vertical rhythm explicit at the module level so there is only one
 * controlled gap between the editorial header and the photography.
 */
.home .tsw-home-campaigns .tsw-campaign-preview {
  display: flex !important;
  flex-direction: column;
  gap: clamp(1.25rem, 2vw, 2rem) !important;
  width: 100%;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}

.home .tsw-home-campaigns .tsw-campaign-preview__head {
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}

.home .tsw-home-campaigns .tsw-campaign-preview__grid {
  min-height: 0 !important;
  height: auto !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  transform: none !important;
}

.home .tsw-home-campaigns .tsw-campaign-preview__card,
.home .tsw-home-campaigns .tsw-campaign-preview__card--offset {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Keep a restrained stagger only on larger screens; the stagger should never
 * read as empty section space. */
@media (min-width: 961px) {
  .home .tsw-home-campaigns .tsw-campaign-preview__card--offset {
    margin-top: clamp(.75rem, 1.4vw, 1.5rem) !important;
  }
}

@media (max-width: 960px) {
  .home .tsw-home-campaigns .tsw-campaign-preview {
    gap: 1.5rem !important;
  }
}

@media (max-width: 620px) {
  .home .tsw-home-campaigns .tsw-campaign-preview {
    gap: 1.25rem !important;
  }
}

/* ---------- Dubai Swim Week v2.0.23 — Campaign grid spacing hardening ---------- */
/*
 * Keep the homepage fashion-authority plates completely content-driven.
 * Older saved Site Editor markup may still carry reveal classes from previous
 * versions; those classes can reserve the full image geometry while clipping
 * the image itself. This module intentionally renders without a reveal mask.
 */
.home .tsw-home-campaigns,
.home .tsw-home-campaigns .tsw-campaign-preview,
.home .tsw-home-campaigns .tsw-campaign-preview__grid,
.home .tsw-home-campaigns .tsw-campaign-preview__card {
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  contain: none !important;
  content-visibility: visible !important;
}

.home .tsw-home-campaigns .tsw-campaign-preview {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}

.home .tsw-home-campaigns .tsw-campaign-preview__head {
  margin: 0 0 clamp(1.5rem, 2.2vw, 2.25rem) !important;
  padding: 0 !important;
}

.home .tsw-home-campaigns .tsw-campaign-preview__grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  grid-auto-rows: max-content !important;
  gap: clamp(1rem, 2vw, 2rem) !important;
  align-items: start !important;
  align-content: start !important;
  width: min(100%, 1280px) !important;
  margin: 0 auto !important;
  padding: 0 !important;
}

.home .tsw-home-campaigns .tsw-campaign-preview__card,
.home .tsw-home-campaigns .tsw-campaign-preview__card--offset,
.home .tsw-home-campaigns .tsw-campaign-preview__card:nth-child(n) {
  display: grid !important;
  grid-template-rows: max-content max-content !important;
  align-content: start !important;
  align-items: start !important;
  align-self: start !important;
  justify-content: stretch !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  background: transparent !important;
}

.home .tsw-home-campaigns .tsw-campaign-preview__card img,
.home .tsw-home-campaigns .is-style-reveal img,
.home .tsw-home-campaigns .tsw-in img {
  position: static !important;
  inset: auto !important;
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: cover !important;
  object-position: center center !important;
  clip-path: none !important;
  -webkit-clip-path: none !important;
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
}

.home .tsw-home-campaigns .is-style-reveal,
.home .tsw-home-campaigns .tsw-in,
.home .tsw-home-campaigns .is-style-reveal.is-visible,
.home .tsw-home-campaigns .tsw-in.is-visible {
  opacity: 1 !important;
  transform: none !important;
  clip-path: none !important;
  -webkit-clip-path: none !important;
  visibility: visible !important;
}

.home .tsw-home-campaigns .tsw-campaign-preview__card figcaption {
  margin: .85rem 0 0 !important;
  padding-top: .85rem !important;
}

@media (max-width: 960px) {
  .home .tsw-home-campaigns .tsw-campaign-preview__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .home .tsw-home-campaigns .tsw-campaign-preview__card:nth-child(3) {
    grid-column: 1 / -1 !important;
    width: min(72%, 34rem) !important;
    justify-self: center !important;
  }
}

@media (max-width: 620px) {
  .home .tsw-home-campaigns .tsw-campaign-preview__head {
    margin-bottom: 1.25rem !important;
  }
  .home .tsw-home-campaigns .tsw-campaign-preview__grid {
    grid-template-columns: 1fr !important;
    gap: 1.75rem !important;
  }
  .home .tsw-home-campaigns .tsw-campaign-preview__card:nth-child(n) {
    grid-column: auto !important;
    width: 100% !important;
  }
}
