/* Milan 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 {
	--msw-header-h: 68px;
	--msw-rule: color-mix(in srgb, var(--wp--preset--color--night) 14%, transparent);
	--msw-rule-light: color-mix(in srgb, var(--wp--preset--color--salt) 22%, transparent);
	--msw-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
	--msw-slow: 900ms;
	--msw-gutter: clamp(1.25rem, 5vw, 3.5rem);
}

@media (min-width: 782px) {
	:root { --msw-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(--msw-gutter); --wp--style--root--padding-right: var(--msw-gutter); }

a { color: inherit; }
p a:not(.wp-element-button), .msw-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, .msw-header--over:not(.is-stuck) :focus-visible { outline-color: var(--wp--preset--color--aqua); }

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

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

/* Buttons */
.wp-element-button, .wp-block-button__link { transition: background-color 240ms var(--msw-ease), color 240ms var(--msw-ease), border-color 240ms var(--msw-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(--msw-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(--msw-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: msw-drift 14s linear infinite;
	opacity: 0.7;
}
@keyframes msw-drift { from { background-position-x: 0; } to { background-position-x: 108px; } }

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

.msw-header {
	position: sticky; top: 0; z-index: 90;
	background: var(--wp--preset--color--salt);
	border-block-end: 1px solid var(--msw-rule);
	transition: background-color 380ms var(--msw-ease), color 380ms var(--msw-ease), border-color 380ms var(--msw-ease);
}
.msw-header .wp-block-group { min-height: var(--msw-header-h); }
.msw-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;
}
.msw-wordmark sup { font-size: 0.42em; vertical-align: super; letter-spacing: 0; }


/* Official Milan 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. */
.msw-brand-logo {
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
	text-decoration: none;
	line-height: 0;
}
.msw-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(--msw-ease), filter 240ms var(--msw-ease);
}
.msw-brand-logo:hover .msw-brand-logo__image { opacity: .76; }

/* The official mark floats directly over cinematic media with no white box. */
.has-hero-header .msw-header:not(.is-stuck) .msw-brand-logo__image {
	background-image: none;
	filter: drop-shadow(0 2px 12px rgba(0,0,0,.32));
}
.msw-header.is-stuck .msw-brand-logo__image {
	background-image: none;
	filter: none;
}
.msw-footer .msw-brand-logo__image {
	width: clamp(13rem, 21vw, 17rem);
	background-image: none;
	filter: none;
}
.msw-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) {
	.msw-brand-logo__image { width: clamp(9rem, 42vw, 11.25rem); }
	.msw-footer .msw-brand-logo__image { width: clamp(12rem, 58vw, 15rem); }
	.msw-hero__brandmark { width: clamp(10.75rem, 51vw, 13.5rem); margin-block-end: .85rem; }
}
@media (max-width: 420px) {
	.msw-brand-logo__image { width: 8.75rem; }
}

/* Transparent over the hero, solid once scrolled. */
.has-hero-header .msw-header {
	position: fixed; inset-inline: 0; top: 0;
	background: transparent; border-block-end-color: transparent; color: var(--wp--preset--color--salt);
}
.has-hero-header .msw-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(--msw-rule);
}
.has-hero-header .msw-header:not(.is-stuck) .wp-block-button__link {
	background: transparent; color: var(--wp--preset--color--salt);
	box-shadow: inset 0 0 0 1px var(--msw-rule-light);
}
.has-hero-header .msw-header:not(.is-stuck) .wp-block-button__link:hover { background: var(--wp--preset--color--salt); color: var(--wp--preset--color--night); }

/* Desktop nav */
.msw-nav .wp-block-navigation__container { gap: clamp(1.1rem, 2vw, 2.2rem); }
.msw-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;
}
.msw-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(--msw-ease);
}
.msw-nav .wp-block-navigation-item__content:hover::after,
.msw-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(--msw-header-h) + 1.5rem) var(--msw-gutter) var(--msw-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(--msw-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 ---------- */

.msw-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);
}
.msw-hero__media { position: absolute; inset: 0; z-index: 0; }
.msw-hero__media img, .msw-hero__media video {
	width: 100%; height: 100%; object-fit: cover; object-position: center 38%;
	animation: msw-hero-scale 18s var(--msw-ease) forwards;
}
@keyframes msw-hero-scale { from { transform: scale(1.06); } to { transform: scale(1); } }
.msw-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%);
}
.msw-hero__inner { position: relative; z-index: 1; width: 100%; }
.msw-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;
}
.msw-hero h1 em { font-style: italic; }
.msw-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); }
.msw-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(--msw-rule-light);
}

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

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

.msw-section { padding-block: var(--wp--preset--spacing--60); }
.msw-section--tight { padding-block: var(--wp--preset--spacing--50); }
.msw-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;
}
.msw-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(--msw-rule);
	margin-block-end: var(--wp--preset--spacing--40);
}
.msw-section-head h2 { margin: 0; }

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

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

.msw-card { position: relative; display: flex; flex-direction: column; }
.msw-card__media {
	position: relative; overflow: hidden; background: var(--wp--preset--color--sand);
	aspect-ratio: 3 / 4;
}
.msw-card--wide .msw-card__media { aspect-ratio: 4 / 3; }
.msw-card__media img {
	width: 100%; height: 100%; object-fit: cover;
	transition: transform var(--msw-slow) var(--msw-ease), filter 500ms var(--msw-ease);
}
.msw-card:hover .msw-card__media img, .msw-card:focus-within .msw-card__media img { transform: scale(1.045); }
.msw-card__body { padding-block-start: 1rem; }
.msw-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;
}
.msw-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;
}
.msw-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; }
.msw-card__link::after { content: ""; position: absolute; inset: 0; } /* whole card clickable, one focus stop */

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

.msw-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(--msw-rule);
	-webkit-overflow-scrolling: touch;
}
.msw-schedule__filters::-webkit-scrollbar { display: none; }
@media (min-width: 900px) { .msw-schedule__filters { flex-wrap: wrap; overflow: visible; } }
.msw-filter {
	flex: 0 0 auto; cursor: pointer; background: transparent; border: 1px solid var(--msw-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(--msw-ease), color 220ms var(--msw-ease), border-color 220ms var(--msw-ease);
}
.msw-filter:hover { border-color: currentColor; }
.msw-filter[aria-pressed="true"] { background: var(--wp--preset--color--night); border-color: var(--wp--preset--color--night); color: var(--wp--preset--color--salt); }

.msw-day { margin-block-end: var(--wp--preset--spacing--40); }
.msw-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(--msw-rule);
}
.msw-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. */
.msw-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(--msw-rule);
	position: relative;
}
.msw-event__time { font-size: 0.8125rem; letter-spacing: 0.12em; text-transform: uppercase; color: color-mix(in srgb, currentColor 70%, transparent); }
.msw-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; }
.msw-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; }
.msw-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); }
.msw-event__actions { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-block-start: 1rem; }
.msw-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(--msw-rule);
}
@media (min-width: 900px) {
	.msw-event { grid-template-columns: 8.5rem 1fr auto; align-items: start; }
	.msw-event__actions { margin-block-start: 0; }
}
.msw-event[hidden] { display: none; }
.msw-schedule__empty { padding-block: var(--wp--preset--spacing--40); font-size: 0.9375rem; }

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

.msw-marquee { overflow: hidden; border-block: 1px solid var(--msw-rule); padding-block: 0.9rem; }
.msw-marquee__track { display: flex; gap: 2.5rem; width: max-content; animation: msw-marquee 42s linear infinite; }
.msw-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 msw-marquee { to { transform: translateX(-50%); } }

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

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

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

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

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

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

.msw-footer { background: var(--wp--preset--color--night); color: var(--wp--preset--color--salt); }
.msw-footer a:hover { color: var(--wp--preset--color--aqua); }
.msw-footer .wp-block-navigation { --wp--style--block-gap: 0.55rem; }
.msw-footer .wp-block-navigation-item__content { font-size: 0.9375rem; }
.msw-footer h2, .msw-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; }
.msw-footer__legal { border-block-start: 1px solid var(--msw-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 ---------- */

.msw-in { opacity: 0; transform: translateY(18px); }
.msw-in.is-visible { opacity: 1; transform: none; transition: opacity 900ms var(--msw-ease), transform 900ms var(--msw-ease); }
.is-style-reveal img { clip-path: inset(0 0 100% 0); transition: clip-path 1200ms var(--msw-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;
	}
	.msw-in { opacity: 1; transform: none; }
	.is-style-reveal img { clip-path: none; }
	.msw-reveal-line > span { transform: none; }
	.msw-hero__media img, .msw-hero__media video { animation: none; }
}

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

/* ---------- Cover-based hero (pattern markup) ---------- */
.msw-hero.wp-block-cover { min-height: 100svh; padding-block: calc(var(--msw-header-h) + 2rem) clamp(2.5rem, 6vh, 4.5rem); }
.msw-hero .wp-block-cover__inner-container { width: 100%; }
.msw-hero .wp-block-cover__image-background,
.msw-hero video.wp-block-cover__video-background { animation: msw-hero-scale 18s var(--msw-ease) forwards; object-position: center 38%; }
.msw-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;
}
.msw-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; }
.msw-hero .msw-hero__lede { max-width: 46ch; }
@media (max-width: 599px) { .msw-hero .wp-block-buttons { width: 100%; } .msw-hero .wp-block-button { flex: 1 1 100%; } .msw-hero .wp-block-button__link { display: block; text-align: center; } }

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

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

.msw-facts { margin: 0; border-block-start: 1px solid var(--msw-rule); }
.msw-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;
}
.msw-facts dd { margin: 0.3rem 0 1.1rem; padding-block-end: 1.1rem; border-block-end: 1px solid var(--msw-rule); font-size: 1rem; }
.msw-facts dd a { text-decoration: underline; text-underline-offset: 0.2em; }

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

.msw-related .msw-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 ---------- */
.msw-hero--film {
	padding: calc(var(--msw-header-h) + 2rem) var(--msw-gutter) clamp(2.5rem, 6vh, 5rem);
}
.msw-hero--film .msw-hero__inner {
	max-width: 1480px;
	margin-inline: auto;
}
.msw-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);
}
.msw-hero--film .msw-hero__brandmark { color: var(--wp--preset--color--salt); }
.msw-hero--film h1 { max-width: 12ch; }
.msw-hero__actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: .85rem 1rem;
	margin-top: clamp(1.5rem, 3vw, 2.25rem);
}
.msw-button--light { background: var(--wp--preset--color--salt) !important; color: var(--wp--preset--color--night) !important; }
.msw-button--light:hover { background: #fff !important; }
.msw-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);
}
.msw-button--outline:hover { background: var(--wp--preset--color--salt) !important; color: var(--wp--preset--color--night) !important; }
.msw-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(--msw-ease), border-color 240ms var(--msw-ease);
}
.msw-editorial-link:hover { gap: 1.05rem; border-bottom-color: currentColor; }
.msw-film-toggle {
	position: absolute;
	z-index: 3;
	right: var(--msw-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;
}
.msw-film-toggle:hover { border-color: currentColor; }

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

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

.msw-film-feature {
	display: grid;
	grid-template-columns: 1fr;
	background: #101619;
	color: var(--wp--preset--color--salt);
	min-height: 72svh;
}
.msw-film-feature__media {
	position: relative;
	min-height: 56svh;
	overflow: hidden;
	background: #0b1418;
}
.msw-film-feature__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(11,20,24,.24), transparent 44%);
	pointer-events: none;
}
.msw-film-feature__media video {
	width: 100%;
	height: 100%;
	min-height: 56svh;
	object-fit: cover;
	object-position: center center;
	display: block;
}
.msw-film-feature__copy {
	padding: clamp(3rem, 6vw, 7rem) var(--msw-gutter);
	align-self: center;
}
.msw-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;
}
.msw-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);
}
.msw-film-feature__copy > p:not(.msw-eyebrow):not(.msw-film-feature__lede) { max-width: 52ch; color: color-mix(in srgb, var(--wp--preset--color--salt) 74%, transparent); }
.msw-film-feature__copy .msw-editorial-link { margin-top: 1.5rem; }
.msw-film-toggle--feature { right: 1.25rem; bottom: 1.25rem; }

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

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

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

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

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

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

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

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


/* v1.2 — fashion editorial spreads */
.msw-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);
}
.msw-fashion-spread::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  border-top: 1px solid var(--msw-rule);
}
.msw-fashion-spread__look { margin: 0; }
.msw-fashion-spread__look--light { margin-top: clamp(4rem, 10vw, 10rem); }
.msw-fashion-spread__image { overflow: hidden; background: var(--wp--preset--color--night); }
.msw-fashion-spread__look--dark .msw-fashion-spread__image { aspect-ratio: 2 / 3; }
.msw-fashion-spread__look--light .msw-fashion-spread__image { aspect-ratio: 4 / 5; }
.msw-fashion-spread__image img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.msw-fashion-spread__look:hover img { transform: scale(1.025); }
.msw-fashion-spread figcaption { display: grid; gap: .25rem; padding-top: .9rem; }
.msw-fashion-spread figcaption span,
.msw-fashion-spread figcaption em { font-family: var(--wp--preset--font-family--body); font-size: .6875rem; letter-spacing: .13em; text-transform: uppercase; font-style: normal; }
.msw-fashion-spread figcaption span { opacity: .55; }
.msw-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; }
.msw-fashion-spread figcaption em { opacity: .72; max-width: 34ch; line-height: 1.55; }
.msw-fashion-spread__masthead { position: sticky; top: calc(var(--msw-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; }
.msw-fashion-spread__masthead span { font-family: var(--wp--preset--font-family--display); font-size: clamp(4rem, 8vw, 8rem); line-height: .75; letter-spacing: -.06em; }
.msw-fashion-spread__masthead small { font-size: .625rem; letter-spacing: .18em; text-transform: uppercase; opacity: .58; }

.msw-page-editorial-strip {
  width: min(calc(100% - var(--msw-gutter) - var(--msw-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;
}
.msw-page-editorial-strip--reverse .msw-page-editorial-strip__media { order: 2; }
.msw-page-editorial-strip__media { aspect-ratio: 4 / 5; overflow: hidden; }
.msw-page-editorial-strip__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.msw-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; }
.msw-page-editorial-strip__copy p { max-width: 44ch; font-size: clamp(1.05rem, 1rem + .25vw, 1.25rem); line-height: 1.55; }
.msw-page-editorial-strip__note { border-top: 1px solid var(--msw-rule); margin-top: 2rem; padding-top: 1rem; font-size: .75rem !important; letter-spacing: .1em; text-transform: uppercase; }

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


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


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


/* v1.4 — luxury swim editorial refresh */
.msw-fashion-spread__look--light .msw-fashion-spread__image img { object-position: center 34%; }
.msw-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) {
  .msw-fashion-spread__look--light .msw-fashion-spread__image img { object-position: center 30%; }
  .msw-designer-call .wp-block-image img { min-height: 32rem; object-position: center 38%; }
}


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

/* A quieter fashion-house scale for the primary navigation lockup. */
.msw-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) {
	.msw-hero--film .msw-hero__inner {
		width: min(47vw, 43rem);
		max-width: 43rem;
		margin-left: auto;
		margin-right: 0;
	}
	.msw-hero--film h1 {
		max-width: 9.7ch;
		font-size: clamp(4.25rem, 6.15vw, 7.35rem);
	}
	.msw-hero--film .msw-hero__lede {
		max-width: 40ch;
	}
	.msw-hero__edition {
		margin-block-end: clamp(1.75rem, 4.5vh, 3.5rem);
	}
	.msw-hero__meta {
		max-width: 100%;
	}
	.msw-hero--film .msw-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. */
.msw-film-toggle {
	left: var(--msw-gutter);
	right: auto;
}

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

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

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

.msw-highlights-page { --archive-max: 1480px; background: var(--wp--preset--color--salt); color: var(--wp--preset--color--night); }
.msw-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); }
.msw-highlights-hero__media { position: absolute; inset: 0; }
.msw-highlights-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 42%; display: block; }
.msw-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%); }
.msw-highlights-hero__copy { position: relative; z-index: 1; width: min(calc(100% - var(--msw-gutter) - var(--msw-gutter)), var(--archive-max)); margin: 0 auto; padding: calc(var(--msw-header-h) + 6rem) 0 clamp(3.5rem, 8vh, 7rem); }
.msw-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; }
.msw-highlights-hero__copy h1 em { font-style: italic; font-weight: 400; }
.msw-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); }

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

.msw-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; }
.msw-archive-feature__image { min-height: 78svh; }
.msw-archive-feature__image > img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; display: block; }
.msw-archive-feature__copy { padding: clamp(4rem, 7vw, 8rem) clamp(2rem, 6vw, 7rem); align-self: center; }
.msw-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; }
.msw-archive-feature__copy > p:not(.msw-eyebrow) { max-width: 40ch; font-size: 1.1rem; line-height: 1.62; }
.msw-archive-feature__secondary { width: min(72%, 24rem); margin: clamp(2rem, 5vw, 4rem) 0 0 auto; aspect-ratio: 3 / 4.2; overflow: hidden; }
.msw-archive-feature__secondary img { width: 100%; height: 100%; object-fit: cover; object-position: center 35%; display: block; }

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

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

.msw-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; }
.msw-highlights-editorial__media { min-height: 75svh; overflow: hidden; }
.msw-highlights-editorial__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 46%; display: block; }
.msw-highlights-editorial__copy { padding: clamp(4rem, 7vw, 8rem) clamp(2rem, 6vw, 7rem); align-self: center; }
.msw-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; }
.msw-highlights-editorial__copy h2 em { font-style: italic; font-weight: 400; }
.msw-highlights-editorial__copy > p:not(.msw-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) {
	.msw-highlights-preview__head,
	.msw-archive-intro { grid-template-columns: 1fr; gap: 1.5rem; }
	.msw-highlights-preview__head h2 { max-width: 10ch; }
	.msw-highlights-preview__grid { grid-template-columns: 1.2fr .8fr; }
	.msw-archive-card--wide { grid-column: 1 / -1; }
	.msw-archive-feature,
	.msw-highlights-editorial { grid-template-columns: 1fr; }
	.msw-archive-feature__image { min-height: 66svh; }
	.msw-highlights-editorial__media { min-height: 64svh; }
	.msw-campaign-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
	.msw-highlights-preview__grid,
	.msw-archive-triptych,
	.msw-arrivals-grid { grid-template-columns: 1fr; }
	.msw-archive-card--wide,
	.msw-archive-card--portrait { aspect-ratio: 4 / 5; }
	.msw-archive-triptych figure:nth-child(2),
	.msw-archive-triptych figure:nth-child(3),
	.msw-arrivals-grid figure:nth-child(2) { margin-top: 0; }
	.msw-archive-triptych img,
	.msw-arrivals-grid img { aspect-ratio: 4 / 5; }
	.msw-campaign-grid { gap: .55rem; }
	.msw-campaign-grid figure:nth-child(even) { margin-top: 1.5rem; }
	.msw-highlights-hero { min-height: 82svh; }
	.msw-highlights-hero__copy h1 { font-size: clamp(3.8rem, 18vw, 6.3rem); }
	.msw-archive-feature__copy,
	.msw-highlights-editorial__copy { padding-inline: var(--msw-gutter); }
	.msw-archive-feature__secondary { width: 82%; }
}

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


/* ---------- v1.10.0 — Season 01 campaign archive ---------- */
.msw-campaign-preview { width: 100%; }
.msw-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);
}
.msw-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;
}
.msw-campaign-preview__head h2 em { font-style: italic; font-weight: 400; }
.msw-campaign-preview__intro { max-width: 38rem; padding-bottom: .45rem; }
.msw-campaign-preview__intro p { font-size: clamp(1.02rem,.96rem + .28vw,1.22rem); line-height: 1.58; max-width: 46ch; }
.msw-campaign-preview__intro .msw-editorial-link { margin-top: 1.25rem; }
.msw-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;
}
.msw-campaign-preview__card { margin: 0; }
.msw-campaign-preview__card--offset { margin-top: clamp(3rem,7vw,7rem); }
.msw-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(--msw-ease), box-shadow .8s var(--msw-ease);
}
.msw-campaign-preview__card:hover img { transform: translateY(-.35rem); box-shadow: 0 30px 80px rgba(16,19,20,.14); }
.msw-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(--msw-rule); margin-top: .85rem; }
.msw-campaign-preview__card figcaption span { grid-row: 1 / 3; font-size: .65rem; letter-spacing: .15em; opacity: .48; }
.msw-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; }
.msw-campaign-preview__card figcaption small { font-size: .64rem; letter-spacing: .14em; text-transform: uppercase; opacity: .6; }

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

@media (max-width: 960px) {
  .msw-campaign-preview__head { grid-template-columns: 1fr; gap: 1.4rem; }
  .msw-campaign-preview__head h2 { max-width: 10ch; }
  .msw-campaign-preview__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .msw-campaign-preview__card:nth-child(3) { grid-column: 1 / -1; width: min(72%, 34rem); justify-self: center; }
}
@media (max-width: 620px) {
  .msw-campaign-preview__grid { grid-template-columns: 1fr; gap: 2.25rem; }
  .msw-campaign-preview__card--offset { margin-top: 0; }
  .msw-campaign-preview__card:nth-child(3) { grid-column: auto; width: 100%; }
  .msw-campaign-preview__card img { max-height: none; }
  .msw-designer-call .msw-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. */
.msw-highlights-page {
  box-sizing: border-box;
  overflow-x: clip;
  text-align: left;
}
.msw-highlights-page *,
.msw-highlights-page *::before,
.msw-highlights-page *::after { box-sizing: border-box; }
.msw-highlights-page :is(h1,h2,h3,p,figcaption,.msw-eyebrow,.msw-editorial-link) { text-align: left; }

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

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

/* Never crop poster/flyer copy on Highlights or the homepage campaign module. */
.msw-campaign-grid figure,
.msw-campaign-preview__card { overflow: visible; }
.msw-campaign-grid img,
.msw-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. */
.msw-highlights-page :is(h1,h2,h3,p,figcaption,span,strong,small,a) {
  overflow-wrap: anywhere;
  word-break: normal;
}
.msw-highlights-hero__copy h1 {
  max-width: min(7ch, 100%);
}

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

@media (max-width: 620px) {
  .msw-highlights-hero__copy,
  .msw-archive-section {
    width: calc(100% - var(--msw-gutter) - var(--msw-gutter));
  }
  .msw-highlights-hero__copy h1 {
    font-size: clamp(3.25rem, 16vw, 5.4rem);
    line-height: .88;
  }
  .msw-campaign-grid { grid-template-columns: 1fr; gap: 2rem; }
  .msw-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. */
.msw-footer a[href*="tiktok.com"],
.msw-footer a[href*="youtube.com"],
.msw-footer a[href*="youtu.be"],
.msw-footer a[href*="facebook.com"],
.msw-footer a[href*="twitter.com"],
.msw-footer a[href*="x.com"],
.msw-footer a[href*="linkedin.com"] { display: none !important; }

/* ---------- v1.12 schedule / core resilience ---------- */
.msw-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(--msw-rule);
	text-align: left;
}
.msw-schedule__edition span {
	font-size: .6875rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: color-mix(in srgb, currentColor 62%, transparent);
}
.msw-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) {
	.msw-schedule__edition { grid-template-columns: 1fr auto 1fr; align-items: end; }
	.msw-schedule__edition strong { text-align: center; }
	.msw-schedule__edition span:last-child { text-align: right; }
}
.msw-event--placeholder .msw-event__title { color: color-mix(in srgb, currentColor 78%, transparent); }

/* ---------- v1.13 public program + footer hardening ---------- */
.msw-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);
}
.msw-schedule--preview .msw-event__title { text-wrap: balance; }
.msw-schedule--preview .msw-event__meta span { white-space: normal; }

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

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

.msw-swim-motion {
  position: relative;
  background: #071014;
  color: var(--wp--preset--color--salt);
  overflow: hidden;
}
.msw-swim-motion__media {
  position: relative;
  min-height: clamp(38rem, 82svh, 60rem);
  overflow: hidden;
}
.msw-swim-motion__media video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 48%;
}
.msw-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;
}
.msw-swim-motion__copy {
  position: absolute;
  z-index: 2;
  left: var(--msw-gutter);
  bottom: clamp(4rem, 8vw, 8rem);
  width: min(38rem, calc(100% - var(--msw-gutter) - var(--msw-gutter)));
}
.msw-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;
}
.msw-swim-motion__copy p:not(.msw-eyebrow) {
  max-width: 34ch;
  font-size: clamp(1.05rem, .98rem + .35vw, 1.3rem);
  line-height: 1.5;
}
.msw-swim-motion__copy .msw-editorial-link { margin-top: 1.25rem; }

.msw-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;
}
.msw-contact-email:hover { opacity: .72; }
#mailing-list { scroll-margin-top: calc(var(--msw-header-h) + 1.5rem); }

@media (min-width: 900px) {
  .msw-film-feature--resort { grid-template-columns: minmax(20rem, .78fr) minmax(28rem, 1.22fr); }
  .msw-film-feature--resort .msw-film-feature__media,
  .msw-film-feature--resort .msw-film-feature__media video { min-height: 0; }
}
@media (max-width: 781px) {
  .msw-film-feature--resort { padding: 1.25rem var(--msw-gutter) 3.5rem; }
  .msw-film-feature--resort .msw-film-feature__media { max-height: 76svh; }
  .msw-swim-motion__media { min-height: 72svh; }
  .msw-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%); }
  .msw-swim-motion__copy { bottom: 3.75rem; }
}

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

.msw-designers-intro { display: grid; grid-template-columns: minmax(0,.92fr) minmax(24rem,.72fr); gap: clamp(2.5rem,6vw,7rem); align-items: center; }
.msw-designers-intro__archive { margin: 0; background: #fff; }
.msw-designers-intro__archive img { display: block; width: 100%; height: auto; max-height: 80rem; object-fit: contain; }
.msw-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; }
.msw-designers-intro__copy > p:not(.msw-eyebrow) { max-width: 42ch; line-height: 1.62; }
.msw-small-note { margin-top: 1.5rem; font-size: .72rem; letter-spacing: .06em; opacity: .55; }

.msw-designer-roster { border-top: 1px solid var(--msw-rule); }
.msw-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(--msw-rule); }
.msw-designer-row__index { font-size: .66rem; letter-spacing: .18em; opacity: .48; }
.msw-designer-row__logo { min-height: 8rem; display: flex; align-items: center; justify-content: center; background: #fff; overflow: hidden; }
.msw-designer-row__logo img { display: block; width: min(90%, 18rem); max-height: 8rem; object-fit: contain; }
.msw-designer-row__identity { min-width: 0; padding-block: 1.5rem; }
.msw-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; }
.msw-designer-row__identity p { margin: .8rem 0 0; font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; opacity: .58; }

.msw-official-launch__grid { display: grid; grid-template-columns: minmax(0,.9fr) minmax(24rem,.75fr); gap: clamp(2.5rem,6vw,7rem); align-items: center; }
.msw-official-launch__art { margin: 0; background: #fff; }
.msw-official-launch__art img { display: block; width: 100%; height: auto; max-height: 72rem; object-fit: contain; }
.msw-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; }
.msw-official-launch__copy > p:not(.msw-eyebrow) { max-width: 43ch; line-height: 1.62; }
.msw-official-launch__copy .msw-editorial-link { margin-top: 1.2rem; }

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

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

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

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

.msw-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(--msw-ease), transform .35s var(--msw-ease);
}
.msw-designer-mark:hover,
.msw-designer-mark:focus-visible {
  background: #fff;
  opacity: .64;
  transform: translateY(-2px);
}
.msw-designer-mark__logo {
  min-height: clamp(6.5rem,8vw,8.5rem);
  background: transparent;
  overflow: visible;
}
.msw-designer-mark__logo img {
  width: auto;
  max-width: min(100%, 11.5rem);
  max-height: 5.5rem;
  object-fit: contain;
  filter: none;
}
.msw-designer-mark__name {
  color: #070707;
  font-size: .62rem;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  opacity: .62;
}

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

.msw-designer-roster {
  background: #fff;
  border-color: rgba(7,7,7,.14);
}
.msw-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;
}
.msw-designer-row__index {
  color: #070707;
  opacity: .38;
}
.msw-designer-row__logo {
  min-height: 7rem;
  justify-content: flex-start;
  overflow: visible;
}
.msw-designer-row__logo img {
  width: auto;
  max-width: min(92%, 13rem);
  max-height: 5.5rem;
  object-fit: contain;
  filter: none;
}
.msw-designer-row__identity {
  padding-block: clamp(2rem,3vw,3.25rem);
}
.msw-designer-row__identity h2 {
  color: #070707;
  font-size: clamp(2.35rem,1.8rem + 2vw,4.6rem);
  letter-spacing: -.042em;
}
.msw-designer-row__identity p {
  color: #070707;
  opacity: .48;
  letter-spacing: .18em;
}

@media (max-width: 980px) {
  .msw-designer-mark { min-height: 13rem; }
  .msw-designer-row { grid-template-columns: 2.75rem minmax(9rem,.42fr) minmax(0,1fr); }
}
@media (max-width: 620px) {
  .msw-designer-mark {
    min-height: 0;
    padding: 2.4rem 0;
  }
  .msw-designer-mark__logo {
    justify-content: flex-start;
    min-height: 5.5rem;
  }
  .msw-designer-mark__logo img { max-width: 10.5rem; max-height: 4.75rem; }
  .msw-designer-row {
    grid-template-columns: 2.1rem minmax(0,1fr);
    padding-block: 1.6rem;
  }
  .msw-designer-row__logo {
    grid-column: 2;
    justify-content: flex-start;
    min-height: 5.5rem;
  }
  .msw-designer-row__logo img { max-width: 11rem; max-height: 4.75rem; }
  .msw-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,.msw-editorial-h3,.msw-hero h1) { text-wrap: balance; }
.msw-section > :where(*):not(.alignfull) { min-width: 0; }
.msw-video-shell video { display: block; background: #081015; }

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

.msw-contact-jump {
  display: flex; flex-wrap: wrap; gap: .7rem 1.4rem; margin-top: 1.5rem;
}
.msw-contact-jump a,
.msw-contact-invitation__return a,
.msw-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(--msw-header-h) + 2rem); }
.msw-contact-columns { align-items: stretch; }
.msw-contact-form-section .msw-form { max-width: none; }
.msw-contact-invitation {
  background: var(--wp--preset--color--sand);
  padding: clamp(1.5rem, 3vw, 3rem);
  align-self: stretch;
}
.msw-contact-invitation .msw-newsletter { grid-template-columns: 1fr; max-width: none; margin-top: 2rem; }
.msw-contact-invitation .msw-submit { width: 100%; }
.msw-contact-invitation__return { margin-top: 1.5rem; }
.msw-invitation-contact { margin-top: 1.15rem !important; font-size: .86rem; opacity: .72; }

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

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

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

@media (max-width: 520px) {
  .msw-hero__edition { display: flex; flex-direction: column; align-items: flex-start; }
  .msw-hero__actions { gap: .75rem; }
  .msw-hero__actions .wp-element-button,
  .msw-hero__actions .msw-editorial-link { width: 100%; max-width: none; justify-content: center; }
  .msw-hero__actions .msw-editorial-link { padding: .9rem 0; }
  .msw-designer-edit__grid { grid-template-columns: 1fr; }
  .msw-designer-mark, .msw-designer-mark:nth-child(2n) { border-right: 0; border-bottom: 1px solid var(--msw-rule); }
  .msw-designer-mark:last-child { grid-column: auto; }
  .msw-designer-row { grid-template-columns: 2.2rem minmax(0,1fr); gap: 1rem; padding-block: 1.25rem; }
  .msw-designer-row__logo { grid-column: 2; justify-content: flex-start; min-height: 5.5rem; }
  .msw-designer-row__identity { grid-column: 2; padding-top: 0; }
  .msw-film-toggle { bottom: 1rem; }
  .msw-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) {
  .msw-designer-edit__grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
  .msw-designer-mark { border-right: 1px solid rgba(7,7,7,.14); border-top: 0; }
  .msw-designer-mark:nth-child(4n) { border-right: 0; }
  .msw-designer-mark:nth-child(n+5) { border-top: 1px solid rgba(7,7,7,.14); }
  .msw-designer-mark:last-child { grid-column: auto; }
}
@media (min-width: 521px) and (max-width: 1024px) {
  .msw-designer-edit__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .msw-designer-mark,
  .msw-designer-mark:nth-child(2n) {
    grid-column: auto;
    border-top: 0;
    border-bottom: 0;
    border-right: 1px solid rgba(7,7,7,.14);
  }
  .msw-designer-mark:nth-child(2n) { border-right: 0; }
  .msw-designer-mark:nth-child(n+3) { border-top: 1px solid rgba(7,7,7,.14); }
  .msw-designer-mark:last-child { grid-column: auto; }
}
@media (max-width: 520px) {
  .msw-designer-edit__grid { grid-template-columns: 1fr; }
  .msw-designer-mark,
  .msw-designer-mark:nth-child(2n),
  .msw-designer-mark:last-child {
    grid-column: auto;
    border-right: 0;
    border-top: 1px solid rgba(7,7,7,.14);
    border-bottom: 0;
  }
  .msw-designer-mark:first-child { border-top: 0; }
}

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

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

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

/* Designer Focus — Zyba Collection. */
.msw-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);
}
.msw-zyba-feature__copy {
  padding-right: clamp(1rem,3vw,3rem);
  align-self: center;
}
.msw-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;
}
.msw-zyba-feature__copy > p:not(.msw-eyebrow) {
  max-width: 38ch;
  line-height: 1.62;
}
.msw-zyba-feature figure { margin: 0; }
.msw-zyba-feature figcaption {
  margin-top: .7rem;
  padding-top: .7rem;
  border-top: 1px solid var(--msw-rule);
  font-size: .625rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  opacity: .58;
}
@media (max-width: 980px) {
  .msw-zyba-feature { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .msw-zyba-feature__copy { grid-column: 1 / -1; padding-right: 0; max-width: 42rem; }
}
@media (max-width: 620px) {
  .msw-zyba-feature { grid-template-columns: 1fr; gap: 2rem; }
  .msw-zyba-feature__copy { grid-column: auto; }
  .msw-highlights-page .msw-highlights-hero {
    min-height: 76svh;
  }
}

/* Designer Discovery Zyba photography should also retain its full composition. */
.msw-platform-grid .msw-card:nth-child(2) .msw-card__media {
  background: #0a0a0a;
}
.msw-platform-grid .msw-card:nth-child(2) .msw-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. */
.msw-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;
}
.msw-highlights-page .msw-archive-section,
.msw-highlights-page .msw-highlights-hero__copy {
  width: min(calc(100% - var(--msw-gutter) - var(--msw-gutter)), 1480px) !important;
  max-width: 1480px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0;
  padding-right: 0;
  min-width: 0;
}
.msw-highlights-page .msw-archive-intro {
  display: block;
  width: min(100%, 64rem);
  max-width: 64rem;
  margin-left: 0 !important;
  margin-right: auto !important;
}
.msw-highlights-page .msw-archive-intro h2 {
  width: 100%;
  max-width: 15ch;
  margin-left: 0;
  margin-right: 0;
}
.msw-highlights-page .msw-archive-intro p {
  width: min(100%, 48rem);
  max-width: 48rem;
  margin-left: 0;
  margin-right: 0;
}
.msw-highlights-page :is(.msw-archive-triptych,.msw-arrivals-grid,.msw-campaign-grid,.msw-zyba-feature) {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-left: 0;
  margin-right: 0;
}
.msw-highlights-page :is(.msw-archive-triptych,.msw-arrivals-grid,.msw-campaign-grid,.msw-zyba-feature) > * {
  min-width: 0;
  max-width: 100%;
}
.msw-highlights-page :is(.msw-archive-triptych,.msw-arrivals-grid,.msw-campaign-grid,.msw-zyba-feature) img,
.msw-highlights-page .msw-archive-feature img,
.msw-highlights-page .msw-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. */
.msw-highlights-page .msw-archive-triptych figure:nth-child(2),
.msw-highlights-page .msw-archive-triptych figure:nth-child(3),
.msw-highlights-page .msw-arrivals-grid figure:nth-child(2),
.msw-highlights-page .msw-campaign-grid figure:nth-child(even) {
  margin-top: 0;
}
@media (max-width: 1180px) {
  .msw-highlights-page .msw-archive-triptych,
  .msw-highlights-page .msw-arrivals-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .msw-highlights-page .msw-archive-triptych figure:last-child,
  .msw-highlights-page .msw-arrivals-grid figure:last-child {
    grid-column: 1 / -1;
    width: min(100%, 42rem);
  }
  .msw-highlights-page .msw-campaign-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 700px) {
  .msw-highlights-page {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .msw-highlights-page .msw-archive-section,
  .msw-highlights-page .msw-highlights-hero__copy {
    width: calc(100% - var(--msw-gutter) - var(--msw-gutter)) !important;
  }
  .msw-highlights-page .msw-archive-triptych,
  .msw-highlights-page .msw-arrivals-grid,
  .msw-highlights-page .msw-campaign-grid,
  .msw-highlights-page .msw-zyba-feature {
    grid-template-columns: 1fr !important;
  }
  .msw-highlights-page .msw-archive-triptych figure:last-child,
  .msw-highlights-page .msw-arrivals-grid figure:last-child {
    grid-column: auto;
    width: 100%;
  }
  .msw-highlights-page .msw-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. */
.msw-home-designers .msw-designer-mark__logo,
.msw-designer-roster .msw-designer-row__logo {
  background: #fff !important;
}
.msw-home-designers .msw-designer-mark__logo img,
.msw-designer-roster .msw-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. */
.msw-designer-mark[data-designer="verseau"] .msw-designer-mark__logo img {
  max-width: min(100%, 12.5rem);
  max-height: 4.4rem;
}
.msw-designer-row[data-designer="verseau"] .msw-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. */
.msw-designer-mark[data-designer="newkini"] .msw-designer-mark__logo img {
  max-width: 6.4rem;
  max-height: 6.4rem;
}
.msw-designer-row[data-designer="newkini"] .msw-designer-row__logo img {
  max-width: 6.8rem;
  max-height: 6.8rem;
}

@media (max-width: 620px) {
  .msw-designer-mark[data-designer="verseau"] .msw-designer-mark__logo img,
  .msw-designer-row[data-designer="verseau"] .msw-designer-row__logo img {
    max-width: 11.25rem;
    max-height: 4rem;
  }
  .msw-designer-mark[data-designer="newkini"] .msw-designer-mark__logo img,
  .msw-designer-row[data-designer="newkini"] .msw-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. */
.msw-highlights-page .msw-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. */
.msw-home-designers .msw-designer-mark__logo,
.msw-designer-roster .msw-designer-row__logo {
  background: #fff !important;
}
.msw-home-designers .msw-designer-mark__logo img,
.msw-designer-roster .msw-designer-row__logo img {
  mix-blend-mode: normal !important;
  filter: none !important;
  object-fit: contain;
}

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

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

/* ---------- v1.18.4 — forced Verseau/Newkini logo correction ---------- */
.msw-designer-mark[data-designer="verseau"] .msw-designer-mark__logo,
.msw-designer-mark[data-designer="newkini"] .msw-designer-mark__logo,
.msw-designer-row[data-designer="verseau"] .msw-designer-row__logo,
.msw-designer-row[data-designer="newkini"] .msw-designer-row__logo {
  background: #fff !important;
  isolation: isolate;
}
.msw-designer-mark[data-designer="verseau"] img,
.msw-designer-mark[data-designer="newkini"] img,
.msw-designer-row[data-designer="verseau"] img,
.msw-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.
 */
.msw-home-designers .msw-designer-edit__grid {
  align-items: stretch;
}
.msw-home-designers .msw-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);
}
.msw-home-designers .msw-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;
}
.msw-home-designers .msw-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;
}
.msw-home-designers .msw-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. */
.msw-home-designers .msw-designer-mark[data-designer="verseau"] .msw-designer-mark__logo img,
.msw-home-designers .msw-designer-mark[data-designer="topknomswim"] .msw-designer-mark__logo img,
.msw-home-designers .msw-designer-mark[data-designer="kiraelle"] .msw-designer-mark__logo img,
.msw-home-designers .msw-designer-mark[data-designer="hanalei-baybe"] .msw-designer-mark__logo img {
  max-width: min(84%, 14rem);
}
.msw-home-designers .msw-designer-mark[data-designer="newkini"] .msw-designer-mark__logo img {
  width: clamp(5.75rem, 7vw, 7.25rem);
  max-width: 7.25rem;
  max-height: 7.25rem;
}
.msw-home-designers .msw-designer-mark[data-designer="elite-swimwear"] .msw-designer-mark__logo img,
.msw-home-designers .msw-designer-mark[data-designer="leona-swim"] .msw-designer-mark__logo img,
.msw-home-designers .msw-designer-mark[data-designer="zyba-collection"] .msw-designer-mark__logo img {
  max-width: min(68%, 11.5rem);
}

/* Designers page: a fixed logo column keeps every mark on the same baseline. */
.msw-designer-roster .msw-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);
}
.msw-designer-roster .msw-designer-row__logo {
  width: 100%;
  min-height: 8.5rem;
  display: grid;
  place-items: center;
  padding: 1rem;
  background: #fff !important;
  overflow: visible;
}
.msw-designer-roster .msw-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;
}
.msw-designer-roster .msw-designer-row__identity {
  align-self: center;
  padding-block: 1.5rem;
}
.msw-designer-roster .msw-designer-row__identity h2,
.msw-designer-roster .msw-designer-row__identity p {
  margin-left: 0;
  margin-right: 0;
}
.msw-designer-roster .msw-designer-row[data-designer="verseau"] .msw-designer-row__logo img,
.msw-designer-roster .msw-designer-row[data-designer="topknomswim"] .msw-designer-row__logo img,
.msw-designer-roster .msw-designer-row[data-designer="kiraelle"] .msw-designer-row__logo img,
.msw-designer-roster .msw-designer-row[data-designer="hanalei-baybe"] .msw-designer-row__logo img {
  max-width: min(90%, 16rem);
}
.msw-designer-roster .msw-designer-row[data-designer="newkini"] .msw-designer-row__logo img {
  width: clamp(6.25rem, 7vw, 7.6rem);
  max-width: 7.6rem;
  max-height: 7.6rem;
}
.msw-designer-roster .msw-designer-row[data-designer="elite-swimwear"] .msw-designer-row__logo img,
.msw-designer-roster .msw-designer-row[data-designer="leona-swim"] .msw-designer-row__logo img,
.msw-designer-roster .msw-designer-row[data-designer="zyba-collection"] .msw-designer-row__logo img {
  max-width: min(72%, 12.5rem);
}

/* Large desktop: preserve breathing room without letting marks become oversized. */
@media (min-width: 1440px) {
  .msw-home-designers .msw-designer-mark {
    min-height: 16.5rem;
    padding-inline: clamp(1.75rem, 2vw, 2.5rem);
  }
  .msw-designer-roster .msw-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) {
  .msw-home-designers .msw-designer-mark {
    min-height: 13.75rem;
    grid-template-rows: minmax(7.5rem, 1fr) auto;
  }
  .msw-designer-roster .msw-designer-row {
    grid-template-columns: 2.75rem minmax(11.5rem, 15rem) minmax(0, 1fr);
    column-gap: clamp(1.25rem, 3vw, 2.5rem);
  }
  .msw-designer-roster .msw-designer-row__logo {
    min-height: 7rem;
    padding-inline: .65rem;
  }
  .msw-designer-roster .msw-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) {
  .msw-home-designers .msw-designer-edit__grid {
    grid-template-columns: 1fr;
  }
  .msw-home-designers .msw-designer-mark,
  .msw-home-designers .msw-designer-mark:nth-child(2n),
  .msw-home-designers .msw-designer-mark:last-child {
    min-height: 11.5rem;
    grid-template-rows: minmax(6rem, 1fr) auto;
    padding: 1.75rem var(--msw-gutter) 1.35rem;
    border-right: 0;
  }
  .msw-home-designers .msw-designer-mark__logo {
    min-height: 6rem;
    padding: .45rem 0;
  }
  .msw-home-designers .msw-designer-mark__logo img {
    max-width: min(72vw, 12rem);
    max-height: 4.75rem;
  }
  .msw-home-designers .msw-designer-mark[data-designer="newkini"] .msw-designer-mark__logo img {
    width: 6rem;
    max-width: 6rem;
    max-height: 6rem;
  }
  .msw-home-designers .msw-designer-mark__name {
    font-size: .6rem;
    letter-spacing: .17em;
  }

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

@media (max-width: 420px) {
  .msw-home-designers .msw-designer-mark {
    min-height: 10.75rem;
    padding-top: 1.45rem;
  }
  .msw-home-designers .msw-designer-mark__logo img {
    max-width: min(76vw, 11rem);
  }
  .msw-designer-roster .msw-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.
 */
.msw-home-designers .msw-designer-mark__logo {
  min-height: 9rem;
  height: 9rem;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 1rem;
}
.msw-home-designers .msw-designer-mark__logo img {
  margin: 0 auto;
  transform-origin: 50% 50%;
}
.msw-home-designers .msw-designer-mark[data-designer="verseau"] .msw-designer-mark__logo img {
  width: 13rem;
  max-width: 82%;
  height: auto;
  max-height: 3.8rem;
  transform: translateY(.05rem);
}
.msw-home-designers .msw-designer-mark[data-designer="newkini"] .msw-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. */
.msw-designer-roster .msw-designer-row {
  align-items: center;
}
.msw-designer-roster .msw-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;
}
.msw-designer-roster .msw-designer-row__logo img {
  margin: 0 auto;
  transform-origin: 50% 50%;
}
.msw-designer-roster .msw-designer-row[data-designer="verseau"] .msw-designer-row__logo img {
  width: 14.25rem;
  max-width: 88%;
  height: auto;
  max-height: 4.1rem;
  transform: translateY(.08rem);
}
.msw-designer-roster .msw-designer-row[data-designer="newkini"] .msw-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. */
.msw-designer-roster .msw-designer-row__identity {
  align-self: center;
}

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

@media (max-width: 700px) {
  .msw-home-designers .msw-designer-mark__logo {
    height: 7rem;
    min-height: 7rem;
    padding-inline: 0;
  }
  .msw-home-designers .msw-designer-mark[data-designer="verseau"] .msw-designer-mark__logo img {
    width: min(68vw, 11.25rem);
    max-width: min(68vw, 11.25rem);
    transform: none;
  }
  .msw-home-designers .msw-designer-mark[data-designer="newkini"] .msw-designer-mark__logo img {
    width: 5.75rem;
    height: 5.75rem;
    max-width: 5.75rem;
    max-height: 5.75rem;
    transform: translateY(.12rem);
  }
  .msw-designer-roster .msw-designer-row__logo {
    height: 7rem;
    min-height: 7rem;
    padding-inline: 1rem;
  }
  .msw-designer-roster .msw-designer-row[data-designer="verseau"] .msw-designer-row__logo img {
    width: min(72vw, 12rem);
    max-width: min(72vw, 12rem);
    transform: none;
  }
  .msw-designer-roster .msw-designer-row[data-designer="newkini"] .msw-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.
 */
.msw-home-designers .msw-designer-mark[data-designer="newkini"] .msw-designer-mark__logo {
  align-items: center;
  justify-content: center;
}
.msw-home-designers .msw-designer-mark[data-designer="newkini"] .msw-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) {
  .msw-home-designers .msw-designer-mark[data-designer="newkini"] .msw-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) {
  .msw-home-designers .msw-designer-mark[data-designer="newkini"] .msw-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.
 */
.msw-designer-edit__grid .msw-designer-mark {
  display: grid;
  grid-template-rows: 8.25rem auto;
  align-content: center;
  align-items: center;
  justify-items: center;
  min-width: 0;
}
.msw-designer-edit__grid .msw-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;
}
.msw-designer-edit__grid .msw-designer-mark__logo img {
  display: block;
  margin: 0 auto !important;
  object-fit: contain;
  object-position: center center;
  transform: none !important;
}
.msw-designer-edit__grid .msw-designer-mark__name {
  width: 100%;
  margin: 0;
  text-align: center;
  align-self: end;
}
/* The circular Newkini artwork is centered geometrically; do not lift it. */
.msw-designer-edit__grid .msw-designer-mark[data-designer="newkini"] .msw-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. */
.msw-designer-edit__grid .msw-designer-mark:has(img[alt="Newkini logo"]) .msw-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. */
.msw-designer-roster .msw-designer-row__logo {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center;
}
.msw-designer-roster .msw-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. */
  .msw-designer-edit__grid .msw-designer-mark,
  .msw-home-designers .msw-designer-edit__grid .msw-designer-mark,
  .msw-home-designers .msw-designer-mark:nth-child(2n),
  .msw-home-designers .msw-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(--msw-gutter) 1.15rem;
    gap: .8rem;
  }
  .msw-designer-edit__grid .msw-designer-mark__logo,
  .msw-home-designers .msw-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;
  }
  .msw-designer-edit__grid .msw-designer-mark__logo img,
  .msw-home-designers .msw-designer-mark__logo img {
    margin: 0 auto !important;
    max-width: min(64vw, 11.5rem);
    max-height: 4.7rem;
    transform: none !important;
  }
  .msw-designer-edit__grid .msw-designer-mark[data-designer="newkini"] .msw-designer-mark__logo img,
  .msw-designer-edit__grid .msw-designer-mark:has(img[alt="Newkini logo"]) .msw-designer-mark__logo img {
    width: 5.55rem;
    height: 5.55rem;
    max-width: 5.55rem;
    max-height: 5.55rem;
    transform: none !important;
  }
  .msw-designer-edit__grid .msw-designer-mark__name,
  .msw-home-designers .msw-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. */
  .msw-designer-roster .msw-designer-row {
    grid-template-columns: 1fr;
    justify-items: center;
    padding: 2rem 0 1.8rem;
    gap: .65rem;
  }
  .msw-designer-roster .msw-designer-row__index {
    display: none;
  }
  .msw-designer-roster .msw-designer-row__logo {
    grid-column: 1 !important;
    width: 100%;
    height: 6.75rem;
    min-height: 6.75rem;
    padding: 0 var(--msw-gutter);
    justify-content: center !important;
  }
  .msw-designer-roster .msw-designer-row__logo img {
    margin: 0 auto !important;
    max-width: min(68vw, 12rem);
    max-height: 4.8rem;
    transform: none !important;
  }
  .msw-designer-roster .msw-designer-row[data-designer="newkini"] .msw-designer-row__logo img {
    width: 5.75rem;
    height: 5.75rem;
    max-width: 5.75rem;
    max-height: 5.75rem;
    transform: none !important;
  }
  .msw-designer-roster .msw-designer-row__identity {
    grid-column: 1 !important;
    width: 100%;
    padding: .15rem var(--msw-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.
 */
.msw-designer-edit__grid .msw-designer-mark,
.msw-home-designers .msw-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;
}
.msw-designer-edit__grid .msw-designer-mark__logo,
.msw-home-designers .msw-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;
}
.msw-designer-edit__grid .msw-designer-mark__logo img,
.msw-home-designers .msw-designer-mark__logo img,
.msw-designer-edit__grid .msw-designer-mark[data-designer="newkini"] .msw-designer-mark__logo img,
.msw-home-designers .msw-designer-mark[data-designer="newkini"] .msw-designer-mark__logo img,
.msw-designer-edit__grid .msw-designer-mark[data-designer="verseau"] .msw-designer-mark__logo img,
.msw-home-designers .msw-designer-mark[data-designer="verseau"] .msw-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;
}
.msw-designer-edit__grid .msw-designer-mark__name,
.msw-home-designers .msw-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. */
.msw-designer-roster .msw-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;
}
.msw-designer-roster .msw-designer-row__logo img,
.msw-designer-roster .msw-designer-row[data-designer="newkini"] .msw-designer-row__logo img,
.msw-designer-roster .msw-designer-row[data-designer="verseau"] .msw-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) {
  .msw-designer-edit__grid,
  .msw-home-designers .msw-designer-edit__grid {
    grid-template-columns: 1fr !important;
  }
  .msw-designer-edit__grid .msw-designer-mark,
  .msw-home-designers .msw-designer-mark,
  .msw-home-designers .msw-designer-mark:nth-child(2n),
  .msw-home-designers .msw-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(--msw-gutter) 1.1rem !important;
    gap: .55rem !important;
    border-right: 0 !important;
  }
  .msw-designer-edit__grid .msw-designer-mark__logo,
  .msw-home-designers .msw-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;
  }
  .msw-designer-edit__grid .msw-designer-mark__logo img,
  .msw-home-designers .msw-designer-mark__logo img,
  .msw-designer-edit__grid .msw-designer-mark[data-designer="newkini"] .msw-designer-mark__logo img,
  .msw-home-designers .msw-designer-mark[data-designer="newkini"] .msw-designer-mark__logo img,
  .msw-designer-edit__grid .msw-designer-mark[data-designer="verseau"] .msw-designer-mark__logo img,
  .msw-home-designers .msw-designer-mark[data-designer="verseau"] .msw-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;
  }
  .msw-designer-edit__grid .msw-designer-mark__name,
  .msw-home-designers .msw-designer-mark__name {
    text-align: center !important;
    justify-self: center !important;
    align-self: center !important;
    line-height: 1.2 !important;
  }

  .msw-designer-roster .msw-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;
  }
  .msw-designer-roster .msw-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(--msw-gutter) !important;
    margin: 0 !important;
  }
  .msw-designer-roster .msw-designer-row__logo img,
  .msw-designer-roster .msw-designer-row[data-designer="newkini"] .msw-designer-row__logo img,
  .msw-designer-roster .msw-designer-row[data-designer="verseau"] .msw-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;
  }
  .msw-designer-roster .msw-designer-row__identity {
    grid-column: 1 !important;
    width: 100% !important;
    padding: .1rem var(--msw-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) {
  .msw-film-feature,
  .msw-swim-motion,
  .msw-home-designers,
  .msw-campaign-preview,
  .msw-archive-section,
  .msw-designer-roster-wrap {
    content-visibility: auto;
    contain-intrinsic-size: 720px;
  }
}

/* Video poster remains the visual surface until the optimized source is actually playing. */
.msw-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) {
  .msw-card:hover .msw-card__media img,
  .msw-card:focus-within .msw-card__media img,
  .msw-fashion-spread__look:hover img,
  .msw-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) {
  .msw-header .wp-block-group.alignwide {
    width: 100%;
    padding-inline: var(--msw-gutter);
    gap: .65rem;
  }
  .msw-header .wp-block-group.alignwide > .wp-block-group {
    gap: .55rem !important;
    margin-left: auto;
  }
  .msw-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;
  }
  .msw-nav .wp-block-navigation__responsive-container-open svg {
    width: 1.55rem;
    height: 1.55rem;
  }
  .msw-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(--msw-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(--msw-gutter);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    padding: .7rem;
    z-index: 2;
  }
}

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

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

.msw-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(--msw-rule);
  padding: 1.25rem;
}
.msw-designer-mark--placeholder small {
  margin-top: .55rem;
  font-size: .6rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  opacity: .58;
}
.msw-designer-mark__textmark {
  font-family: var(--wp--preset--font-family--display);
  font-size: 1.25rem;
  line-height: 1;
}


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

/* The supplied stacked Milan Swim Week mark is the only public site logo. */
.msw-brand-logo {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center;
  min-width: 0 !important;
  line-height: 0;
}
.msw-brand-logo__image {
  display: block !important;
  width: 45px !important;
  height: 57px !important;
  aspect-ratio: 493 / 626 !important;
  background: none !important;
  filter: none !important;
  opacity: 1;
}
.msw-brand-logo__wordmark,
.msw-brand-logo__subline { display: none !important; }
.msw-footer .msw-brand-logo__image {
  width: 84px !important;
  height: 107px !important;
  filter: invert(1) !important;
}

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

/* Full-bleed cinematic hero: fashion film first, copy second. */
.msw-hero--milan {
  min-height: min(900px, calc(100vh - var(--msw-header-h)));
  background: #090909 !important;
}
.msw-hero--milan .msw-hero__media {
  inset: 0 !important;
  right: 0 !important;
}
.msw-hero--milan .msw-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;
}
.msw-hero--milan .msw-hero__media video {
  width: 100%; height: 100%; object-fit: cover;
  object-position: 50% 43% !important;
  filter: saturate(.82) contrast(1.03);
}
.msw-hero--milan .msw-hero__inner {
  max-width: 1480px;
  margin-inline: auto;
  padding-left: var(--msw-gutter) !important;
  padding-right: var(--msw-gutter) !important;
}
.msw-hero h1 {
  max-width: 11ch;
  font-family: var(--wp--preset--font-family--display);
  font-weight: 400;
  letter-spacing: -.045em;
  line-height: .88;
}
.msw-hero__lede { max-width: 56ch; font-size: clamp(1rem,1.25vw,1.2rem); line-height: 1.55; }
.msw-hero__edition,
.msw-hero__meta { letter-spacing: .16em; }

/* Editorial scale and restraint. */
h1,h2,h3,.msw-editorial-h3,.msw-card__title { text-wrap: balance; }
.msw-section { position: relative; }
.msw-section-head { align-items: flex-end; }
.msw-section-head h2 { max-width: 13ch; }
.is-style-eyebrow,.msw-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. */
.msw-card__media,
.msw-editorial-media,
.msw-fashion-spread__image,
.msw-archive-card,
.msw-campaign-preview__card,
.msw-page-editorial-strip__media,
.msw-page-story__media,
.wp-block-cover { overflow: hidden; }
.msw-card__media img,
.msw-editorial-media img,
.msw-fashion-spread__image img,
.msw-archive-card img,
.msw-campaign-preview__card img,
.msw-page-editorial-strip__media img,
.msw-page-story__media img,
.wp-block-cover__image-background {
  filter: saturate(.84) contrast(1.025);
  transition: transform 700ms var(--msw-ease), filter 700ms var(--msw-ease);
}
@media (hover:hover) {
  .msw-card:hover img,
  .msw-archive-card:hover img,
  .msw-campaign-preview__card:hover img { transform: scale(1.018); filter: saturate(.92) contrast(1.03); }
}
.msw-platform-grid .msw-card { background: transparent; border: 0; }
.msw-platform-grid .msw-card__media { aspect-ratio: 3 / 4; }
.msw-platform-grid .msw-card__body { padding-inline: 0; border-top: 1px solid rgba(255,255,255,.22); }

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

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

@media (max-width: 1050px) {
  .msw-header__cta { display:none; }
}
@media (max-width: 781px) {
  :root { --msw-header-h: 72px; }
  .msw-brand-logo__image { width: 36px !important; height: 46px !important; }
  .msw-header .wp-block-group.alignwide { padding-inline: 1rem !important; }
  .msw-hero--milan { min-height: calc(100svh - var(--msw-header-h)); }
  .msw-hero--milan .msw-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;
  }
  .msw-hero--milan .msw-hero__media video { object-position: 50% 42% !important; }
  .msw-hero h1 { max-width: 10ch; font-size: clamp(3rem,15vw,5.25rem) !important; line-height:.89; }
  .msw-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 */
.msw-highlights-preview__grid--supplied {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: clamp(.9rem, 1.6vw, 1.6rem);
}
.msw-highlights-preview__grid--supplied .msw-archive-card {
  aspect-ratio: auto;
}
.msw-highlights-preview__grid--supplied .msw-archive-card img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: center center;
}
.msw-highlights-preview__grid--supplied .msw-archive-card:nth-child(2) {
  margin-top: clamp(2rem, 5vw, 5rem);
}
.msw-highlights-preview__grid--supplied .msw-archive-card:nth-child(3) {
  margin-top: clamp(.75rem, 2.4vw, 2.4rem);
}
@media (max-width: 899px) {
  .msw-highlights-preview__grid--supplied {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .msw-highlights-preview__grid--supplied .msw-archive-card:nth-child(3) {
    grid-column: 1 / -1;
    width: min(58%, 30rem);
    margin-inline: auto;
  }
}
@media (max-width: 620px) {
  .msw-highlights-preview__grid--supplied {
    grid-template-columns: 1fr;
    gap: 1.4rem;
  }
  .msw-highlights-preview__grid--supplied .msw-archive-card,
  .msw-highlights-preview__grid--supplied .msw-archive-card:nth-child(2),
  .msw-highlights-preview__grid--supplied .msw-archive-card:nth-child(3) {
    width: 100%;
    margin: 0;
    grid-column: auto;
  }
  .msw-highlights-preview__grid--supplied .msw-archive-card img {
    aspect-ratio: 4 / 5;
  }
}

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

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

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


/* v1.0.3 — owner-supplied Four Dimensions editorial imagery */
.msw-platform-grid .msw-card:nth-child(1) .msw-card__media img,
.msw-platform-grid .msw-card:nth-child(2) .msw-card__media img,
.msw-platform-grid .msw-card:nth-child(3) .msw-card__media img,
.msw-platform-grid .msw-card:nth-child(4) .msw-card__media img { object-position: center center; }
/* v1.0.5 — owner-supplied Designer Perspective imagery */
.msw-designer-editorial__card:nth-child(1) img { object-position: center center; }
.msw-designer-editorial__card:nth-child(2) img { object-position: center center; }
.msw-designer-editorial__card:nth-child(3) img { object-position: center center; }

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

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


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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

/* ---------- Milan Swim Week 1.0 — Milan Edition brand system ---------- */
:root {
  --msw-limestone: #eee9e1;
  --msw-bronze: #9d8263;
}

/* Text-built wordmark keeps the Milan identity crisp at every viewport. */
.msw-brand-logo__image { display: none !important; background-image: none !important; }
.msw-brand-logo__wordmark {
  display: grid !important;
  gap: .08rem;
  min-width: 8.4rem;
  color: currentColor;
  font-family: var(--wp--preset--font-family--grotesk, "Manrope", sans-serif);
  font-size: .76rem;
  font-weight: 600;
  line-height: .93;
  letter-spacing: .20em;
  text-transform: uppercase;
  white-space: nowrap;
}
.msw-brand-logo__wordmark span:last-child {
  font-size: .67rem;
  letter-spacing: .15em;
}
.msw-brand-logo__wordmark sup {
  position: relative;
  top: -.18em;
  margin-left: .22em;
  font-size: .48em;
  letter-spacing: 0;
}
.msw-brand-logo:hover .msw-brand-logo__wordmark { opacity: .68; }
.msw-brand-logo--footer .msw-brand-logo__wordmark {
  min-width: 11rem;
  font-size: 1rem;
  color: var(--wp--preset--color--salt, #f8f6f2);
}
.msw-brand-logo--footer .msw-brand-logo__wordmark span:last-child { font-size: .86rem; }

/* Milan editorial treatment: sharper grid, generous white space, restrained warm stone. */
.msw-milan-editorial-blocks,
.msw-milan-editorial-blocks--page { background: var(--wp--preset--color--salt, #f8f6f2); }
.msw-milan-editorial-card__media,
.msw-highlight-mosaic__card,
.msw-highlight-quartet__card { background: var(--msw-limestone); }
.msw-schedule__edition,
.msw-archive-kicker { border-color: color-mix(in srgb, var(--msw-bronze) 45%, transparent); }
.msw-footer__disclaimer {
  max-width: 78rem;
  color: color-mix(in srgb, var(--wp--preset--color--salt, #f8f6f2) 62%, transparent);
  line-height: 1.55;
}

@media (max-width: 781px) {
  .msw-brand-logo__wordmark { min-width: 7.25rem; font-size: .68rem; }
  .msw-brand-logo__wordmark span:last-child { font-size: .60rem; }
  .msw-brand-logo--footer .msw-brand-logo__wordmark { min-width: 9rem; font-size: .84rem; }
  .msw-brand-logo--footer .msw-brand-logo__wordmark span:last-child { font-size: .72rem; }
}


/* ---------- Milan Swim Week 1.0.1 — supplied official logo ---------- */
/* Uses the owner-supplied Milan Swim Week artwork. The asset is only tightly
   cropped to remove unused JPG canvas; the mark itself is not redrawn. */
.msw-brand-logo__wordmark,
.msw-brand-logo__subline {
  display: none !important;
}
.msw-brand-logo__image {
  display: block !important;
  width: 3.35rem !important;
  height: auto !important;
  aspect-ratio: 484 / 611 !important;
  background-image: url('../images/milan-swim-week-logo.jpg') !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
  filter: none !important;
  opacity: 1 !important;
  transition: opacity 220ms var(--msw-ease) !important;
}
.msw-brand-logo:hover .msw-brand-logo__image {
  opacity: .76 !important;
}
.msw-footer .msw-brand-logo__image,
.msw-brand-logo--footer .msw-brand-logo__image {
  width: 4.7rem !important;
  filter: invert(1) !important;
}
.has-hero-header .msw-header:not(.is-stuck) .msw-brand-logo__image,
.msw-header.is-stuck .msw-brand-logo__image {
  background-image: url('../images/milan-swim-week-logo.jpg') !important;
  filter: none !important;
}
@media (max-width: 781px) {
  .msw-brand-logo__image { width: 2.85rem !important; }
  .msw-footer .msw-brand-logo__image,
  .msw-brand-logo--footer .msw-brand-logo__image { width: 4.15rem !important; }
}
@media (max-width: 420px) {
  .msw-brand-logo__image { width: 2.7rem !important; }
}
