/* Paris 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 Paris 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-paris-cover .wp-block-cover__background { opacity: .62 !important; }
.tsw-paris-cover .wp-block-cover__image-background { object-position: center 46%; }
.tsw-paris-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(100% - (2 * 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 Paris 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(100% - (2 * 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(100% - (2 * 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% - (2 * 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% - (2 * 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 programme + 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% - (2 * 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% - (2 * 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% - (2 * 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 Paris 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;
}


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

/* The supplied stacked Paris Swim Week mark is the only public site logo. */
.tsw-brand-logo {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center;
  min-width: 0 !important;
  line-height: 0;
}
.tsw-brand-logo__image {
  display: block !important;
  width: 45px !important;
  height: 57px !important;
  aspect-ratio: 493 / 626 !important;
  background: url('../images/paris-swim-week-logo.png') center/contain no-repeat !important;
  filter: none !important;
  opacity: 1;
}
.tsw-brand-logo__wordmark,
.tsw-brand-logo__subline { display: none !important; }
.tsw-footer .tsw-brand-logo__image {
  width: 84px !important;
  height: 107px !important;
  filter: invert(1) !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--paris {
  min-height: min(900px, calc(100vh - var(--tsw-header-h)));
  background: #090909 !important;
}
.tsw-hero--paris .tsw-hero__media {
  inset: 0 !important;
  right: 0 !important;
}
.tsw-hero--paris .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--paris .tsw-hero__media video {
  width: 100%; height: 100%; object-fit: cover;
  object-position: 50% 43% !important;
  filter: saturate(.82) contrast(1.03);
}
.tsw-hero--paris .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--paris { min-height: calc(100svh - var(--tsw-header-h)); }
  .tsw-hero--paris .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--paris .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;
  }
}
