/* Bundled CSS — generated by innara-build-css.mjs */

/* --- fonts.css --- */

/* Self-hosted fonts — generated by innara-build-fonts.mjs */
/* cyrillic-ext */
@font-face {
	font-family: 'Montserrat';
	font-style: normal;
	font-weight: 400 800;
	font-display: optional;
	src: url(../fonts/font-bf4aa17d70b5.woff2) format('woff2');
	unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
	font-family: 'Montserrat';
	font-style: normal;
	font-weight: 400 800;
	font-display: optional;
	src: url(../fonts/font-b4678036a0d5.woff2) format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
	font-family: 'Montserrat';
	font-style: normal;
	font-weight: 400 800;
	font-display: optional;
	src: url(../fonts/font-8a37c0751d1a.woff2) format('woff2');
	unicode-range:
		U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301,
		U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
	font-family: 'Montserrat';
	font-style: normal;
	font-weight: 400 800;
	font-display: optional;
	src: url(../fonts/font-a93986acdb15.woff2) format('woff2');
	unicode-range:
		U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329,
		U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113,
		U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
	font-family: 'Montserrat';
	font-style: normal;
	font-weight: 400 800;
	font-display: optional;
	src: url(../fonts/font-83a31c8196d6.woff2) format('woff2');
	unicode-range:
		U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308,
		U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic */
@font-face {
	font-family: 'Playfair Display';
	font-style: italic;
	font-weight: 400;
	font-display: optional;
	src: url(../fonts/font-6cb535d1d61d.woff2) format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
	font-family: 'Playfair Display';
	font-style: italic;
	font-weight: 400;
	font-display: optional;
	src: url(../fonts/font-5549c172690a.woff2) format('woff2');
	unicode-range:
		U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301,
		U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
	font-family: 'Playfair Display';
	font-style: italic;
	font-weight: 400;
	font-display: optional;
	src: url(../fonts/font-a0a17606a343.woff2) format('woff2');
	unicode-range:
		U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329,
		U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113,
		U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
	font-family: 'Playfair Display';
	font-style: italic;
	font-weight: 400;
	font-display: optional;
	src: url(../fonts/font-668fdabf0905.woff2) format('woff2');
	unicode-range:
		U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308,
		U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic */
@font-face {
	font-family: 'Playfair Display';
	font-style: normal;
	font-weight: 400;
	font-display: optional;
	src: url(../fonts/font-8e474e3e264b.woff2) format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
	font-family: 'Playfair Display';
	font-style: normal;
	font-weight: 400;
	font-display: optional;
	src: url(../fonts/font-49f22872c020.woff2) format('woff2');
	unicode-range:
		U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301,
		U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
	font-family: 'Playfair Display';
	font-style: normal;
	font-weight: 400;
	font-display: optional;
	src: url(../fonts/font-74f689210875.woff2) format('woff2');
	unicode-range:
		U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329,
		U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113,
		U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
	font-family: 'Playfair Display';
	font-style: normal;
	font-weight: 400;
	font-display: optional;
	src: url(../fonts/font-fdd6c391663f.woff2) format('woff2');
	unicode-range:
		U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308,
		U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic */
@font-face {
	font-family: 'Playfair Display';
	font-style: normal;
	font-weight: 500;
	font-display: optional;
	src: url(../fonts/font-8e474e3e264b.woff2) format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
	font-family: 'Playfair Display';
	font-style: normal;
	font-weight: 500;
	font-display: optional;
	src: url(../fonts/font-49f22872c020.woff2) format('woff2');
	unicode-range:
		U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301,
		U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
	font-family: 'Playfair Display';
	font-style: normal;
	font-weight: 500;
	font-display: optional;
	src: url(../fonts/font-74f689210875.woff2) format('woff2');
	unicode-range:
		U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329,
		U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113,
		U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
	font-family: 'Playfair Display';
	font-style: normal;
	font-weight: 500;
	font-display: optional;
	src: url(../fonts/font-fdd6c391663f.woff2) format('woff2');
	unicode-range:
		U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308,
		U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic */
@font-face {
	font-family: 'Playfair Display';
	font-style: normal;
	font-weight: 600;
	font-display: optional;
	src: url(../fonts/font-8e474e3e264b.woff2) format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
	font-family: 'Playfair Display';
	font-style: normal;
	font-weight: 600;
	font-display: optional;
	src: url(../fonts/font-49f22872c020.woff2) format('woff2');
	unicode-range:
		U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301,
		U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
	font-family: 'Playfair Display';
	font-style: normal;
	font-weight: 600;
	font-display: optional;
	src: url(../fonts/font-74f689210875.woff2) format('woff2');
	unicode-range:
		U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329,
		U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113,
		U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
	font-family: 'Playfair Display';
	font-style: normal;
	font-weight: 600;
	font-display: optional;
	src: url(../fonts/font-fdd6c391663f.woff2) format('woff2');
	unicode-range:
		U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308,
		U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* --- main.css --- */
/* Source entry — run `npm run innara:css:build` to regenerate main.bundle.css */
/* --- 01-tokens.css --- */
:root {
	/* Color */
	--color-cream: #f5f1e9;
	--color-text: #4a3e37;
	--color-text-muted: #6c6a66;
	--color-accent: #a67c52;
	--color-texture-base: #e8dfd4;
	--color-texture-mid: #dfd0c0;
	--color-texture-light: #ede4d8;
	--color-geometry: rgb(196 168 138 / 78%);
	--color-sage: #a8b5a4;
	--color-sage-tile: #aeb0a2;
	--color-rose: #c9a08a;
	--color-rose-deep: #b88972;
	--color-rose-tile: #d79275;
	--color-lavender: #d3c4c1;

	/* Typography */
	--font-heading: 'Playfair Display', 'Times New Roman', serif;
	--font-body: 'Montserrat', system-ui, sans-serif;
	--font-eyebrow: var(--font-body);

	/* Reading / flow text */
	--flow-measure: 38rem;
	--flow-measure-narrow: 34rem;
	--flow-size: clamp(1rem, 0.35vw + 0.9rem, 1.125rem);
	--flow-leading: 1.72;
	--flow-tracking: 0.005em;
	--flow-gap: 1.15em;

	/* Spacing scale (8px base) */
	--space-1: 0.25rem;
	--space-2: 0.5rem;
	--space-3: 0.75rem;
	--space-4: 1rem;
	--space-5: 1.25rem;
	--space-6: 1.5rem;
	--space-8: 2rem;
	--space-10: 2.5rem;
	--space-12: 3rem;
	--space-16: 4rem;
	--space-20: 5rem;

	/* Layout */
	--content-max: 34rem;
	--mobile-canvas: 630px;
	--header-pad-x: clamp(1.5rem, 5vw, 5rem);
	--header-pad-y: clamp(2rem, 4.2vh, 2.85rem);
	--hero-content-pad-x: clamp(1.5rem, 5vw, 5rem);
	--hero-split: 42%;

	/* Motion */
	--transition-base: 180ms ease;
}

/* --- 02-base.css --- */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

body {
	margin: 0;
	min-height: 100svh;
	font-family: var(--font-body);
	font-size: 1rem;
	line-height: 1.5;
	color: var(--color-text);
	background: var(--color-cream);
}

img,
svg {
	display: block;
	max-width: 100%;
}

a {
	color: inherit;
}

h1,
p {
	margin: 0;
}

ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 3px;
}

/* --- atoms/text.css --- */
.atom-text--logo-mark {
	font-family: var(--font-heading);
	font-size: clamp(2rem, 8vw, 3.5rem);
	font-weight: 400;
	line-height: 0.95;
	color: var(--color-text);
}

.atom-text--eyebrow {
	font-family: var(--font-eyebrow);
	font-size: clamp(0.625rem, 2.5vw, 0.8125rem);
	font-weight: 400;
	letter-spacing: 0;
	text-transform: uppercase;
	color: var(--color-text-muted);
}

.atom-text--display {
	font-family: var(--font-heading);
	font-size: clamp(2.375rem, 10vw, 4.75rem);
	font-weight: 400;
	line-height: 1.02;
	letter-spacing: 0.01em;
}

.atom-text--body {
	font-family: var(--font-body);
	font-size: clamp(0.9375rem, 2.8vw, 1.0625rem);
	line-height: 1.78;
	color: var(--color-text);
}

/* Single-paragraph flow — prefer molecule-flow-text for multi-paragraph blocks */
.atom-text--flow {
	font-family: var(--font-body);
	font-size: var(--flow-size);
	font-weight: 400;
	line-height: var(--flow-leading);
	letter-spacing: var(--flow-tracking);
	color: var(--color-text);
	text-wrap: pretty;
}

/* --- atoms/link.css --- */
.atom-link {
	text-decoration: none;
	transition: color var(--transition-base);
}

.atom-link--nav {
	position: relative;
	display: inline-block;
	width: 100%;
	padding-bottom: 0.75em;
	font-family: var(--font-body);
	/* Default / burger widths: 14px — inline nav (≥1180) overrides below */
	font-size: clamp(0.6875rem, 2.2vw, 0.875rem);
	font-weight: 400;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--color-text);
	white-space: nowrap;
	transition:
		color 220ms ease,
		letter-spacing 220ms ease,
		font-weight 220ms ease;
}

/* Inline nav — 16–17px, tighter tracking, more substance */
@media (min-width: 73.75rem) {
	.atom-link--nav {
		font-size: clamp(1rem, 1.05vw, 1.0625rem);
		font-weight: 500;
		letter-spacing: 0.12em;
		color: #3f342e;
		padding-bottom: 0.45em;
	}

	.atom-link--nav::before {
		font-weight: 500;
	}

	.atom-link--nav:hover,
	.atom-link--nav:focus-visible {
		color: #2a221d;
		font-weight: 500;
		letter-spacing: 0.08em;
	}

	/* Luxury hover: tone + tracking only — motif reserved for active */
	.atom-link--nav:hover::after,
	.atom-link--nav:focus-visible::after {
		opacity: 0;
		transform: translateX(-50%) scale(0.55);
	}

	.atom-link--nav.is-active {
		color: var(--color-accent);
		font-weight: 500;
		letter-spacing: 0.1em;
	}
}

/*
 * iPad Air landscape (~1180×820) and similar: inline nav starts at 73.75rem
 * but logo + 5 labels collide — trim type/tracking slightly (agent-instructions).
 */
@media (min-width: 73.75rem) and (max-width: 85rem) {
	.atom-link--nav {
		font-size: clamp(0.8125rem, 0.92vw, 0.9375rem);
		letter-spacing: 0.09em;
	}

	.atom-link--nav:hover,
	.atom-link--nav:focus-visible {
		letter-spacing: 0.07em;
	}

	.atom-link--nav.is-active {
		letter-spacing: 0.08em;
	}
}

/* Ultra-wide — hold 17px */
@media (min-width: 120rem) {
	.atom-link--nav {
		font-size: 1.0625rem;
	}
}

.atom-link--nav__short {
	display: none;
}

/* Reserve bold width so hover does not shift sibling links */
.atom-link--nav::before {
	content: attr(data-text);
	display: block;
	font-weight: 800;
	height: 0;
	overflow: hidden;
	visibility: hidden;
	pointer-events: none;
}

/*
 * Logo motif (SVG): line 52 + gap 35 + line 57 ≈ 144 units,
 * stroke 1, circle r=2 → lines ~36% / 36% of motif, hairline + 4× stroke dot.
 * Under the label: ~78% of word width, same ratios.
 */
.atom-link--nav::after {
	content: '';
	position: absolute;
	left: 50%;
	bottom: 0.08em;
	width: 78%;
	height: 5px;
	border-radius: 0;
	background-color: transparent;
	background-image:
		linear-gradient(currentColor, currentColor),
		radial-gradient(circle closest-side, currentColor 72%, transparent 76%),
		linear-gradient(currentColor, currentColor);
	background-size:
		36% 1px,
		4px 4px,
		36% 1px;
	background-position:
		left center,
		center center,
		right center;
	background-repeat: no-repeat;
	transform: translateX(-50%) scale(0.55);
	transform-origin: center;
	opacity: 0;
	transition:
		opacity var(--transition-base),
		transform var(--transition-base);
}

.atom-link--nav:hover,
.atom-link--nav:focus-visible {
	color: var(--color-accent);
	font-weight: 800;
}

.atom-link--nav:hover::after,
.atom-link--nav:focus-visible::after {
	opacity: 1;
	transform: translateX(-50%) scale(1);
}

.atom-link--nav.is-active {
	color: var(--color-accent);
	font-weight: 800;
}

.atom-link--nav.is-active::after {
	opacity: 1;
	transform: translateX(-50%) scale(1);
}

@media (max-width: 47.99rem) {
	.atom-link--nav {
		width: auto;
		font-size: 0.6875rem; /* 11px — readable on iPhone XR */
		letter-spacing: 0.08em;
		padding-bottom: 0.6em;
	}

	.atom-link--nav__long {
		display: none;
	}

	.atom-link--nav__short {
		display: inline;
	}

	.atom-link--nav::before {
		content: attr(data-text-mobile);
	}

	.atom-link--nav::after {
		width: 78%;
		height: 4px;
		background-size:
			36% 1px,
			3.5px 3.5px,
			36% 1px;
	}
}

/* Narrower than XR — keep nav to two lines beside the logo */
@media (max-width: 25.5rem) {
	.atom-link--nav {
		font-size: 0.625rem; /* 10px */
		letter-spacing: 0.04em;
	}

	.atom-link--nav::after {
		width: 78%;
		height: 4px;
		background-size:
			36% 1px,
			3px 3px,
			36% 1px;
	}
}

@media (min-width: 48rem) {
	.atom-link--nav {
		width: auto;
	}
}

/* Large tablet portrait — 14px, tighter tracking so 5 labels fit (often 2 lines) */
@media (min-width: 64rem) and (max-width: 89.99rem) and (orientation: portrait) and (min-height: 52.01rem) {
	.atom-link--nav {
		font-size: 0.875rem; /* 14px */
		letter-spacing: 0.14em;
	}
}

@media (orientation: landscape) and (max-height: 31.25rem) {
	.atom-link--nav {
		width: auto;
		font-size: clamp(0.5rem, 1.55vw, 0.6875rem);
		letter-spacing: 0.1em;
		padding-bottom: 0.45em;
		white-space: nowrap;
	}

	.atom-link--nav::after {
		width: 78%;
		height: 4px;
		background-size:
			36% 1px,
			3px 3px,
			36% 1px;
	}
}

@media (orientation: landscape) and (max-height: 31.25rem) and (max-width: 47.99rem) {
	.atom-link--nav__long {
		display: none;
	}

	.atom-link--nav__short {
		display: inline;
	}

	.atom-link--nav::before {
		content: attr(data-text-mobile);
	}
}

/* --- atoms/book-cta.css --- */
/* Prominent “Book now” — offering headers (sessions, abdominal, …) */

.atom-book-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	min-height: 2.75rem;
	padding: 0.65rem 1.15rem;
	border: 1px solid color-mix(in srgb, var(--color-accent) 55%, var(--color-text));
	border-radius: 0.2rem;
	background: color-mix(in srgb, var(--color-cream) 88%, white);
	box-shadow: 0 1px 0 rgb(74 62 55 / 8%);
	font-family: var(--font-body);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	line-height: 1.2;
	text-transform: uppercase;
	text-align: center;
	color: var(--color-text);
	cursor: pointer;
	transition:
		color var(--transition-base),
		border-color var(--transition-base),
		background var(--transition-base),
		box-shadow var(--transition-base);
}

.atom-book-cta:hover,
.atom-book-cta:focus-visible {
	border-color: var(--color-accent);
	background: color-mix(in srgb, var(--color-accent) 12%, var(--color-cream));
	color: var(--color-accent);
	outline: none;
	box-shadow: 0 2px 12px rgb(74 62 55 / 10%);
}

.atom-book-cta--on-dark {
	border-color: rgb(245 241 233 / 48%);
	background: transparent;
	box-shadow: none;
	color: var(--color-cream);
}

.atom-book-cta--on-dark:hover,
.atom-book-cta--on-dark:focus-visible {
	border-color: rgb(245 241 233 / 78%);
	background: rgb(245 241 233 / 12%);
	color: #f0d7c3;
}

@media (min-width: 56rem) {
	#sessions .atom-book-cta--on-dark,
	#abdominal-therapy .atom-book-cta--on-dark {
		border-color: color-mix(in srgb, var(--color-accent) 55%, var(--color-text));
		background: color-mix(in srgb, var(--color-cream) 88%, white);
		box-shadow: 0 1px 0 rgb(74 62 55 / 8%);
		color: var(--color-text);
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}

	#sessions .atom-book-cta--on-dark:hover,
	#sessions .atom-book-cta--on-dark:focus-visible,
	#abdominal-therapy .atom-book-cta--on-dark:hover,
	#abdominal-therapy .atom-book-cta--on-dark:focus-visible {
		border-color: var(--color-accent);
		background: color-mix(in srgb, var(--color-accent) 12%, var(--color-cream));
		color: var(--color-accent);
		box-shadow: 0 2px 12px rgb(74 62 55 / 10%);
	}
}

/* --- atoms/divider.css --- */
.atom-divider {
	border: 0;
	width: 7.5rem;
	height: 1px;
	margin: 0;
	background: var(--color-accent);
}

/* --- atoms/svg-viewport.css --- */
/*
 * SVG crop viewport — clip window + positionable artwork.
 *
 * Tune on any modifier class, e.g. .atom-svg-viewport--logo-lockup:
 *   --svg-viewport-width   visible width
 *   --svg-viewport-height  visible height
 *   --svg-art-width        rendered SVG width (height follows aspect ratio)
 *   --svg-offset-x         pan artwork horizontally (negative = shift left)
 *   --svg-offset-y         pan artwork vertically (negative = shift up)
 *   --svg-scale            optional scale (default 1)
 */

.atom-svg-viewport {
	--svg-viewport-width: 10rem;
	--svg-viewport-height: 3rem;
	--svg-art-width: 10rem;
	--svg-offset-x: 0px;
	--svg-offset-y: 0px;
	--svg-scale: 1;

	display: block;
	overflow: hidden;
	width: var(--svg-viewport-width);
	height: var(--svg-viewport-height);
}

.atom-svg-viewport__art {
	display: block;
	width: var(--svg-art-width);
	max-width: none;
	height: auto;
	transform: translate3d(var(--svg-offset-x), var(--svg-offset-y), 0) scale(var(--svg-scale));
	transform-origin: 0 0;
	pointer-events: none;
	user-select: none;
}

/* Header lockup — tight viewBox (260×118), ~+10% presence on desktop */
.atom-svg-viewport--logo-lockup {
	--svg-viewport-width: clamp(12rem, 23vw, 16rem);
	--svg-viewport-height: calc(var(--svg-viewport-width) * 118 / 260);
	--svg-art-width: var(--svg-viewport-width);
	--svg-offset-x: 0px;
	--svg-offset-y: 0px;
}

/* Phone — roomy lockup (burger frees the old inline-nav squeeze) */
@media (max-width: 47.99rem) {
	.atom-svg-viewport--logo-lockup {
		--svg-viewport-width: clamp(7.25rem, 38vw, 9.5rem);
	}
}

@media (max-width: 22.5rem) {
	.atom-svg-viewport--logo-lockup {
		--svg-viewport-width: clamp(6.5rem, 42vw, 7.75rem);
	}
}

@media (orientation: landscape) and (max-height: 31.25rem) {
	.atom-svg-viewport--logo-lockup {
		--svg-viewport-width: clamp(6.75rem, 18vw, 9.25rem);
	}
}

/* --- atoms/ornament.css --- */
/* Decorative ornament atom slot */

.atom-ornament {
	display: block;
	width: 100%;
	height: 100%;
	color: inherit;
}

.atom-ornament svg {
	display: block;
	width: 100%;
	height: 100%;
	overflow: visible;
}

.atom-ornament path {
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	vector-effect: non-scaling-stroke;
}

.atom-ornament.is-drawing path {
	transition: stroke-dashoffset 900ms cubic-bezier(0.22, 1, 0.36, 1);
}

@media (prefers-reduced-motion: reduce) {
	.atom-ornament.is-drawing path {
		transition: none;
	}
}

/* --- molecules/logo-lockup.css --- */
.molecule-logo-lockup {
	display: inline-block;
	text-decoration: none;
	line-height: 0;
}

.molecule-logo-lockup:hover .atom-svg-viewport__art,
.molecule-logo-lockup:focus-visible .atom-svg-viewport__art {
	opacity: 0.82;
}

.molecule-logo-lockup .atom-svg-viewport__art {
	transition: opacity var(--transition-base);
}

/* --- molecules/themes-carousel.css --- */
/* Peek themes carousel — stacked neighbors under active (~70% / 15% peeks) */

.molecule-themes-carousel {
	--themes-card-w: 70%;
	--themes-peek: 15%;
	--themes-ease: 560ms cubic-bezier(0.22, 1, 0.36, 1);
	position: relative;
	display: flex;
	flex: 1;
	flex-direction: column;
	justify-content: center;
	gap: var(--space-6);
	width: 100%;
	min-height: 0;
	padding: var(--space-6) 0 var(--space-8);
	outline: none;
}

.themes-carousel__viewport {
	position: relative;
	overflow: hidden;
	width: 100%;
	/* Height from tallest card; absolute cards fill this box */
	min-height: clamp(14rem, 38vh, 22rem);
	touch-action: pan-y;
	cursor: grab;
}

.themes-carousel__viewport.is-dragging {
	touch-action: none;
	cursor: grabbing;
}

.themes-carousel__track {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	min-height: inherit;
}

.themes-carousel__card {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 0;
	display: flex;
	flex-direction: row;
	align-items: stretch;
	width: var(--themes-card-w);
	height: 100%;
	min-height: inherit;
	overflow: hidden;
	border-radius: 0.85rem;
	background: var(--color-texture-light);
	box-shadow: none;
	opacity: 0.35;
	/* left set via --themes-x (px); scale keeps far peeks quieter */
	transform: translate3d(var(--themes-x, 0px), 0, 0) scale(0.94);
	transform-origin: center center;
	transition:
		transform var(--themes-ease),
		opacity 420ms ease,
		box-shadow 420ms ease,
		z-index 0s;
	will-change: transform, opacity;
	pointer-events: none;
}

.themes-carousel__card.is-near-prev,
.themes-carousel__card.is-near-next {
	z-index: 1;
	opacity: 0.95;
	transform: translate3d(var(--themes-x, 0px), 0, 0) scale(0.97);
	pointer-events: auto;
	cursor: pointer;
}

.themes-carousel__card.is-active {
	z-index: 4;
	opacity: 1;
	transform: translate3d(var(--themes-x, 0px), 0, 0) scale(1);
	box-shadow: 0 1.25rem 2.75rem rgb(74 62 55 / 14%);
	pointer-events: auto;
}

.themes-carousel__card--tone-cream {
	background: var(--color-texture-light);
}

.themes-carousel__card--tone-rose {
	background: color-mix(in srgb, var(--color-rose-tile) 42%, var(--color-cream));
}

.themes-carousel__card--tone-sage {
	background: color-mix(in srgb, var(--color-sage-tile) 48%, var(--color-cream));
}

.themes-carousel__card--tone-lavender {
	background: color-mix(in srgb, var(--color-lavender) 55%, var(--color-cream));
}

.themes-carousel__copy {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	justify-content: space-between;
	gap: var(--space-4);
	min-width: 0;
	padding: clamp(var(--space-5), 3vh, var(--space-8));
}

.themes-carousel__index {
	display: inline-block;
	margin-bottom: var(--space-3);
	padding-bottom: 0.35rem;
	border-bottom: 1px solid color-mix(in srgb, var(--color-text-muted) 45%, transparent);
	font-family: var(--font-body);
	font-size: 0.6875rem;
	font-weight: 500;
	max-width: 260px;
	letter-spacing: 0.18em;
	color: var(--color-text-muted);
}

.themes-carousel__headline {
	margin: 0;
	font-family: var(--font-heading);
	font-size: clamp(1.125rem, 2.8vw, 1.625rem);
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--color-text);
	text-wrap: balance;
}

.themes-carousel__eyebrow {
	margin: var(--space-3) 0 0;
	font-family: var(--font-body);
	font-size: 0.75rem;
	font-weight: 400;
	line-height: 1.45;
	color: var(--color-text-muted);
}

.themes-carousel__summary {
	margin: var(--space-3) 0 0;
	max-width: 28ch;
	font-family: var(--font-body);
	font-size: clamp(0.8125rem, 1.5vw, 0.9375rem);
	font-weight: 400;
	line-height: 1.55;
	color: var(--color-text);
	text-wrap: pretty;
}

.themes-carousel__cta {
	flex-shrink: 0;
	margin-top: auto;
}

.themes-carousel__copy > div {
	min-height: 0;
	flex: 1 1 auto;
}

/* Hide secondary copy on peeks so the headline stays the readable signal */
.themes-carousel__card:not(.is-active) .themes-carousel__eyebrow,
.themes-carousel__card:not(.is-active) .themes-carousel__summary,
.themes-carousel__card:not(.is-active) .themes-carousel__cta {
	opacity: 0;
	pointer-events: none;
}

/* Image panel: collapsed on peeks, slides open when active */
.themes-carousel__media {
	flex: 0 0 0;
	width: 0;
	min-width: 0;
	overflow: hidden;
	opacity: 0;
	transition:
		flex-basis var(--themes-ease),
		width var(--themes-ease),
		opacity 360ms ease 80ms;
}

.themes-carousel__media img {
	display: block;
	width: 100%;
	height: 100%;
	min-width: min(50vw, 22rem);
	object-fit: cover;
	object-position: center;
}

.themes-carousel__card.is-active .themes-carousel__media {
	flex-basis: 50%;
	width: 50%;
	opacity: 1;
}

.themes-carousel__nav {
	position: absolute;
	top: 50%;
	z-index: 5;
	display: grid;
	place-items: center;
	width: 2.65rem;
	height: 2.65rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #fff;
	color: var(--color-text);
	box-shadow: 0 0.35rem 1rem rgb(74 62 55 / 14%);
	cursor: pointer;
	transform: translateY(-50%);
	transition:
		color var(--transition-base),
		transform var(--transition-base);
}

.themes-carousel__nav:hover,
.themes-carousel__nav:focus-visible {
	color: var(--color-accent);
}

.themes-carousel__nav:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

/*
 * Both arrows sit on the active card (15%…85%), not on the peek tiles.
 * Inset ~0.75rem from the active card edges.
 */
.themes-carousel__nav--prev {
	left: calc(var(--themes-peek) - 0.77rem);
}

.themes-carousel__nav--next {
	right: calc(var(--themes-peek) - 0.77rem);
}

.themes-carousel__nav svg {
	width: 1.15rem;
	height: 1.15rem;
	pointer-events: none;
}

.themes-carousel__dots {
	display: flex;
	justify-content: center;
	gap: 0.55rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.themes-carousel__dot {
	width: 0.45rem;
	height: 0.45rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgb(74 62 55 / 22%);
	cursor: pointer;
	transition:
		background var(--transition-base),
		transform var(--transition-base);
}

.themes-carousel__dot.is-active {
	background: var(--color-rose-deep);
	transform: scale(1.15);
}

.themes-carousel__dot:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 3px;
}

@media (max-width: 39.99rem) {
	.molecule-themes-carousel {
		--themes-card-w: 78%;
		--themes-peek: 11%;
	}

	.themes-carousel__viewport {
		min-height: clamp(18rem, 71vh, 32rem);
	}

	.themes-carousel__card {
		flex-direction: column;
	}

	.themes-carousel__card.is-active .themes-carousel__media {
		flex-basis: 42%;
		width: 100%;
		min-height: 9rem;
	}

	.themes-carousel__media img {
		min-width: 100%;
		min-height: 9rem;
	}
}

@media (min-width: 56rem) {
	.molecule-themes-carousel {
		padding-block: var(--space-8) var(--space-10);
	}

	.themes-carousel__viewport {
		min-height: clamp(16rem, 70vh, 70rem);
	}

	.themes-carousel__headline {
		max-width: 260px;

		font-size: clamp(1.35rem, 2.4vw, 1.85rem);
	}
}

/* iPad Mini / compact tablet portrait — larger copy, room for CTA */
@media (min-width: 48rem) and (max-width: 63.99rem) {
	.themes-carousel__viewport {
		min-height: clamp(20rem, 44vh, 28rem);
	}

	.themes-carousel__copy {
		gap: var(--space-3);
		padding: clamp(var(--space-5), 3vh, var(--space-8));
	}

	.themes-carousel__index {
		font-size: 0.75rem;
	}

	.themes-carousel__headline {
		max-width: 260px;
		font-size: clamp(1.25rem, 2.5vw, 1.45rem);
		line-height: 1.15;
	}

	.themes-carousel__eyebrow {
		margin-top: var(--space-3);
		font-size: 0.875rem;
		line-height: 1.45;
	}

	.themes-carousel__summary {
		margin-top: var(--space-3);
		max-width: 32ch;
		font-size: clamp(0.9375rem, 1.6vw, 1.0625rem);
		line-height: 1.5;
	}
}

/* Compact tablet landscape (e.g. iPad Mini 1024×768) */
@media (min-width: 64rem) and (max-height: 52rem) {
	.themes-carousel__copy {
		padding: clamp(var(--space-5), 3vh, var(--space-8));
	}

	.themes-carousel__headline {
		max-width: 260px;
		font-size: clamp(1.35rem, 2.6vw, 1.65rem);
		line-height: 1.12;
	}

	.themes-carousel__eyebrow {
		margin-top: var(--space-3);
		font-size: 0.875rem;
	}

	.themes-carousel__summary {
		margin-top: var(--space-3);
		max-width: 32ch;
		font-size: clamp(0.9375rem, 1.6vw, 1.0625rem);
	}
}

@media (prefers-reduced-motion: reduce) {
	.themes-carousel__card,
	.themes-carousel__media {
		transition: none;
	}
}

/* --- molecules/main-nav.css --- */
/* Main nav — top-level list + Women's Health submenu */

.molecule-main-nav__list {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
	gap: clamp(0.125rem, 1vw, 0.5rem);
}

.molecule-main-nav__list > li {
	flex: 1 1 0;
	min-width: 0;
	text-align: center;
}

.molecule-main-nav__item--has-sub {
	position: relative;
}

.molecule-main-nav__current {
	display: none;
}

.molecule-main-nav__sub {
	display: none;
	margin: 0;
	padding: 0;
	list-style: none;
}

.molecule-main-nav__cta {
	display: none;
}

.atom-link--nav-sub {
	display: block;
	text-decoration: none;
	color: var(--color-text-muted);
	transition: color var(--transition-base);
}

.atom-link--nav-sub:hover,
.atom-link--nav-sub:focus-visible,
.atom-link--nav-sub.is-active {
	color: var(--color-accent);
}

/* Inline cluster + hover submenu — from iPad Air landscape (~1180px) up */
@media (min-width: 73.75rem) {
	.molecule-main-nav__list {
		justify-content: flex-end;
		align-items: center;
		gap: clamp(3rem, 3.25vw, 3.75rem);
	}

	.molecule-main-nav__list > li {
		flex: 0 0 auto;
		text-align: left;
	}

	/* Keep the main label in the same row as siblings — overlays hang below */
	.molecule-main-nav__item--has-sub {
		display: block;
		position: relative;
	}

	.molecule-main-nav__item--has-sub > .atom-link--nav {
		width: auto;
	}

	/* Active subpage label — absolutely under the main item, same baseline for all nav */
	.molecule-main-nav__item--has-sub.is-active-group .molecule-main-nav__current:not([hidden]) {
		position: absolute;
		top: calc(100% + 0.25rem);
		left: 0;
		z-index: 35;
		display: block;
		max-width: 15rem;
		font-family: var(--font-body);
		font-size: 0.6875rem;
		font-weight: 500;
		letter-spacing: 0.14em;
		line-height: 1.35;
		text-transform: uppercase;
		color: var(--color-accent);
		white-space: normal;
		pointer-events: none;
	}

	/* Hover / focus flyout under the item */
	.molecule-main-nav__sub {
		position: absolute;
		top: calc(100% + 0.2rem);
		left: 50%;
		z-index: 45;
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 0.5rem;
		min-width: 15.5rem;
		padding: 0.9rem 1.1rem 1rem;
		border: 1px solid color-mix(in srgb, var(--color-accent) 22%, transparent);
		background: color-mix(in srgb, var(--color-cream) 92%, #fff);
		box-shadow:
			0 0.75rem 1.75rem rgb(74 62 55 / 10%),
			0 0.15rem 0.4rem rgb(74 62 55 / 6%);
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transform: translate(-50%, -0.35rem);
		transition:
			opacity 180ms ease,
			visibility 180ms ease,
			transform 180ms ease;
	}

	.molecule-main-nav__item--has-sub:hover .molecule-main-nav__sub,
	.molecule-main-nav__item--has-sub:focus-within .molecule-main-nav__sub,
	.molecule-main-nav__item--has-sub.is-sub-open .molecule-main-nav__sub {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: translate(-50%, 0);
	}

	/* While flyout is open, hide the single current label */
	.molecule-main-nav__item--has-sub:hover .molecule-main-nav__current,
	.molecule-main-nav__item--has-sub:focus-within .molecule-main-nav__current,
	.molecule-main-nav__item--has-sub.is-sub-open .molecule-main-nav__current {
		opacity: 0;
	}

	.atom-link--nav-sub {
		padding: 0.15rem 0;
		font-family: var(--font-body);
		font-size: 0.75rem;
		font-weight: 500;
		letter-spacing: 0.12em;
		line-height: 1.35;
		text-transform: uppercase;
		white-space: nowrap;
	}

	.atom-link--nav-sub.is-active {
		color: var(--color-accent);
	}
}

/* Compact inline band (iPad Air landscape … short laptops): tighter gaps */
@media (min-width: 73.75rem) and (max-width: 85rem) {
	.molecule-main-nav__list {
		gap: clamp(1.35rem, 2vw, 2.25rem);
	}
}

@media (min-width: 73.75rem) {
	.site-header__nav.molecule-main-nav {
		display: flex;
		flex-direction: row;
		align-items: flex-start;
		justify-content: flex-end;
		width: 100%;
		gap: clamp(0.85rem, 1.4vw, 1.35rem);
	}

	.molecule-main-nav__list {
		flex: 0 0 auto;
	}

	.molecule-main-nav__cta {
		display: block;
		flex: 0 0 auto;
		align-self: center;
		margin-top: 0.05rem;
		padding-left: clamp(0.35rem, 0.8vw, 0.75rem);
		border-left: 1px solid rgb(166 124 82 / 28%);
	}

	.molecule-main-nav__book-cta {
		min-height: 2.125rem;
		padding: 0.45rem 0.75rem;
		font-size: 0.625rem;
		letter-spacing: 0.14em;
		white-space: nowrap;
	}

	.molecule-main-nav__book-cta__short {
		display: none;
	}
}

@media (min-width: 73.75rem) and (max-width: 79rem) {
	.molecule-main-nav__book-cta__long {
		display: none;
	}

	.molecule-main-nav__book-cta__short {
		display: inline;
	}
}

/* --- molecules/main-nav-burger.css --- */
/*
 * Compact nav — luxury full-screen cream overlay
 * Closed: burger right in header
 * Open: same header logo + burger→X in place · cream panel · centered links · langs bottom
 */

.site-header__nav-slot {
	display: contents;
}

.molecule-main-nav__checkbox {
	display: none;
}

.molecule-main-nav__toggle {
	display: none;
}

.molecule-main-nav__chrome {
	display: none;
}

/* Burger below iPad Air landscape (1180px); Air/Pro landscape keep inline nav */
@media (max-width: 73.74rem) {
	.site-header__nav-slot {
		--burger-size: 2.75rem;
		--burger-bar: 1.375rem;
		--burger-bar-h: 2px;
		--burger-gap: 0.4rem;
		--menu-cream: #f6f2ec;

		position: relative;
		/* Below logo (60); above page chrome. Keep always — not only when open —
		   so close fade doesn’t briefly cover the logo (blink). */
		z-index: 50;
		display: block;
		flex: 0 0 auto;
		align-self: center;
		width: var(--burger-size);
		height: var(--burger-size);
		margin-left: auto;
		margin-right: max(0.35rem, env(safe-area-inset-right, 0px));
	}

	/* Always above cream panel stacking context (nav-slot) — open and closing */
	.site-header__logo {
		position: relative;
		z-index: 60;
	}

	.molecule-main-nav__toggle--burger {
		position: absolute;
		inset: 0;
		z-index: 45; /* above cream panel (40) so burger→X stays clickable */
		display: block;
		margin: 0;
		cursor: pointer;
		touch-action: manipulation;
	}

	.molecule-main-nav__toggle--close {
		display: none;
	}

	/* Three equal bars */
	.molecule-main-nav__toggle-btn {
		position: absolute;
		top: 50%;
		left: 50%;
		width: var(--burger-bar);
		height: var(--burger-bar-h);
		margin: calc(var(--burger-bar-h) / -2) 0 0 calc(var(--burger-bar) / -2);
		border-radius: 1px;
		background-color: var(--color-accent);
		transition:
			background-color 0.25s ease,
			transform 0.25s ease;
	}

	.molecule-main-nav__toggle-btn::before,
	.molecule-main-nav__toggle-btn::after {
		position: absolute;
		left: 0;
		width: 100%;
		height: var(--burger-bar-h);
		content: '';
		border-radius: 1px;
		background-color: var(--color-accent);
		transition: transform 0.3s ease;
	}

	.molecule-main-nav__toggle-btn::before {
		transform: translateY(calc(-1 * (var(--burger-gap) + var(--burger-bar-h))));
	}

	.molecule-main-nav__toggle-btn::after {
		transform: translateY(calc(var(--burger-gap) + var(--burger-bar-h)));
	}

	/* Full-screen panel */
	.site-header__nav {
		position: fixed;
		inset: 0;
		z-index: 40;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		width: auto;
		margin: 0;
		padding: max(6.5rem, env(safe-area-inset-top, 0px) + 5.5rem) var(--header-pad-x)
			max(5.5rem, env(safe-area-inset-bottom, 0px) + 4.5rem);
		background-color: var(--menu-cream);
		background-image:
			radial-gradient(rgb(74 62 55 / 2.8%) 0.6px, transparent 0.7px),
			linear-gradient(
				165deg,
				rgb(255 255 255 / 35%) 0%,
				transparent 42%,
				rgb(232 223 212 / 28%) 100%
			);
		background-size:
			3.5px 3.5px,
			auto;
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transition:
			opacity 200ms ease,
			visibility 200ms ease;
	}

	.molecule-main-nav__list {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 1.5rem;
		width: 100%;
		max-width: 22rem;
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.molecule-main-nav__list > li {
		display: block;
		width: 100%;
		margin: 0;
		padding: 0;
		text-align: center;
		opacity: 0;
		transform: translateX(1.25rem);
		transition:
			opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1),
			transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
	}

	.molecule-main-nav__item--has-sub {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 0.85rem;
	}

	.molecule-main-nav__current {
		display: none !important;
	}

	.molecule-main-nav__sub {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 0.55rem;
		width: 100%;
		padding: 0.15rem 0 0.35rem;
	}

	.molecule-main-nav__sub > li {
		width: 100%;
		opacity: 1;
		transform: none;
	}

	.atom-link--nav-sub {
		padding: 0.2rem 0.5rem;
		font-family: var(--font-body);
		font-size: clamp(0.8125rem, 3.2vw, 0.9375rem);
		font-weight: 500;
		letter-spacing: 0.16em;
		line-height: 1.45;
		text-align: center;
		text-transform: uppercase;
		color: color-mix(in srgb, var(--color-text) 72%, transparent);
		pointer-events: none;
		white-space: normal;
	}

	.molecule-main-nav__checkbox:checked ~ .site-header__nav .atom-link--nav-sub {
		pointer-events: auto;
	}

	.molecule-main-nav__checkbox:checked ~ .site-header__nav .atom-link--nav-sub.is-active,
	.molecule-main-nav__checkbox:checked ~ .site-header__nav .atom-link--nav-sub:hover,
	.molecule-main-nav__checkbox:checked ~ .site-header__nav .atom-link--nav-sub:focus-visible {
		color: var(--color-accent);
	}

	.molecule-main-nav__list .atom-link--nav {
		display: inline-block;
		width: auto;
		max-width: 100%;
		padding: 0.35rem 0.5rem;
		overflow: visible;
		color: var(--color-text);
		font-family: var(--font-heading);
		font-size: clamp(1.625rem, 7vw, 2.25rem);
		font-weight: 400;
		letter-spacing: 0.08em;
		line-height: 1.7;
		text-align: center;
		text-transform: uppercase;
		white-space: nowrap;
		pointer-events: none;
		transition:
			color 0.25s ease,
			font-weight 0.25s ease;
	}

	.molecule-main-nav__list .atom-link--nav__long {
		display: none;
	}

	.molecule-main-nav__list .atom-link--nav__short {
		display: inline;
	}

	.molecule-main-nav__list .atom-link--nav::before {
		content: none;
		display: none;
	}

	.molecule-main-nav__list .atom-link--nav::after {
		bottom: 0.15em;
		left: 50%;
		width: 55%;
		opacity: 0;
		transform: translateX(-50%) scale(0.55);
	}

	/* Sticky fahne off — langs only in open overlay */
	.molecule-lang-toggle--dock {
		display: none;
	}

	/* —— Open —— */
	/* Burger stays put and becomes X — no logo jump */
	.molecule-main-nav__checkbox:checked
		~ .molecule-main-nav__toggle--burger
		.molecule-main-nav__toggle-btn {
		background-color: transparent;
	}

	.molecule-main-nav__checkbox:checked
		~ .molecule-main-nav__toggle--burger
		.molecule-main-nav__toggle-btn::before {
		transform: translateY(0) rotate(45deg);
	}

	.molecule-main-nav__checkbox:checked
		~ .molecule-main-nav__toggle--burger
		.molecule-main-nav__toggle-btn::after {
		transform: translateY(0) rotate(-45deg);
	}

	.molecule-main-nav__checkbox:checked ~ .site-header__nav {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		isolation: isolate;
		background-color: var(--menu-cream);
	}

	/* Dedicated menu watermark — behind labels, always visible on cream */
	.molecule-main-nav__checkbox:checked ~ .site-header__nav::before {
		position: absolute;
		z-index: 0;
		top: 48%;
		left: 50%;
		width: min(17.5rem, 68vw);
		aspect-ratio: 360 / 220;
		content: '';
		background: url('../images/logo/logo.svg') center top / 100% auto no-repeat;
		opacity: 0.34;
		transform: translate(-50%, -50%);
		pointer-events: none;
	}

	.molecule-main-nav__checkbox:checked ~ .site-header__nav .molecule-main-nav__list {
		position: relative;
		z-index: 2;
	}

	/* Panel chrome unused — logo/close stay in the page header */
	.molecule-main-nav__checkbox:checked ~ .site-header__nav .molecule-main-nav__chrome {
		display: none;
	}

	.molecule-main-nav__checkbox:checked ~ .site-header__nav .molecule-main-nav__list > li {
		opacity: 1;
		transform: translateX(0);
		pointer-events: auto;
	}

	.molecule-main-nav__checkbox:checked
		~ .site-header__nav
		.molecule-main-nav__list
		> li:nth-child(1) {
		transition-delay: 80ms;
	}

	.molecule-main-nav__checkbox:checked
		~ .site-header__nav
		.molecule-main-nav__list
		> li:nth-child(2) {
		transition-delay: 125ms;
	}

	.molecule-main-nav__checkbox:checked
		~ .site-header__nav
		.molecule-main-nav__list
		> li:nth-child(3) {
		transition-delay: 170ms;
	}

	.molecule-main-nav__checkbox:checked
		~ .site-header__nav
		.molecule-main-nav__list
		> li:nth-child(4) {
		transition-delay: 215ms;
	}

	.molecule-main-nav__checkbox:checked
		~ .site-header__nav
		.molecule-main-nav__list
		> li:nth-child(5) {
		transition-delay: 260ms;
	}

	.molecule-main-nav__cta {
		display: flex;
		justify-content: center;
		width: 100%;
		max-width: 22rem;
		margin-top: 0.35rem;
		padding-top: 1.35rem;
		border-top: 1px solid rgb(166 124 82 / 22%);
		opacity: 0;
		transform: translateX(1.25rem);
		transition:
			opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1),
			transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
	}

	.molecule-main-nav__book-cta {
		width: 100%;
		max-width: 16.5rem;
		min-height: 3rem;
		padding: 0.75rem 1.35rem;
		font-size: 0.6875rem;
		text-decoration: none;
	}

	.molecule-main-nav__book-cta__short {
		display: none;
	}

	.molecule-main-nav__checkbox:checked ~ .site-header__nav .molecule-main-nav__cta {
		opacity: 1;
		transform: translateX(0);
		transition-delay: 305ms;
		pointer-events: auto;
	}

	.molecule-main-nav__checkbox:checked
		~ .site-header__nav
		.molecule-main-nav__list
		> li:nth-child(6) {
		transition-delay: 305ms;
	}

	.molecule-main-nav__checkbox:checked ~ .site-header__nav .atom-link--nav {
		pointer-events: auto;
	}

	.molecule-main-nav__checkbox:checked ~ .site-header__nav .atom-link--nav:hover,
	.molecule-main-nav__checkbox:checked ~ .site-header__nav .atom-link--nav:focus-visible,
	.molecule-main-nav__checkbox:checked ~ .site-header__nav .atom-link--nav.is-active {
		color: var(--color-accent);
	}

	.molecule-main-nav__checkbox:checked ~ .site-header__nav .atom-link--nav:hover::after,
	.molecule-main-nav__checkbox:checked ~ .site-header__nav .atom-link--nav:focus-visible::after,
	.molecule-main-nav__checkbox:checked ~ .site-header__nav .atom-link--nav.is-active::after {
		opacity: 1;
		transform: translateX(-50%) scale(1);
	}

	/* Header stays clickable only on logo + burger while panel covers the page */
	body:has(.molecule-main-nav__checkbox:checked) .template-presentation__header {
		pointer-events: none;
	}

	/*
	 * Page emblem is outside the isolated canvas and would sit on top of
	 * labels — hide it while the panel carries its own watermark layer.
	 */
	body:has(.molecule-main-nav__checkbox:checked) .template-home__canvas.template-presentation {
		z-index: 5;
	}

	body:has(.molecule-main-nav__checkbox:checked) .emblem-watermark {
		opacity: 0;
		visibility: hidden;
	}

	body:has(.molecule-main-nav__checkbox:checked) .site-header__logo,
	body:has(.molecule-main-nav__checkbox:checked) .site-header__nav-slot,
	body:has(.molecule-main-nav__checkbox:checked) .molecule-main-nav__toggle--burger {
		pointer-events: auto;
	}

	body:has(.molecule-main-nav__checkbox:checked) {
		overflow: hidden;
	}

	body:has(.molecule-main-nav__checkbox:checked) .presentation-scroll {
		overflow: hidden;
	}

	body:has(.molecule-main-nav__checkbox:checked) .molecule-scroll-marker {
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
	}

	/* Languages bottom-center on the cream panel */
	body:has(.molecule-main-nav__checkbox:checked) .molecule-lang-toggle--dock {
		display: block;
		top: auto;
		right: auto;
		bottom: max(1.35rem, env(safe-area-inset-bottom, 0px) + 1rem);
		left: 50%;
		z-index: 55;
		transform: translateX(-50%);
		pointer-events: auto;
		opacity: 1;
	}

	body:has(.molecule-main-nav__checkbox:checked) .molecule-lang-toggle__shell {
		flex-direction: row;
		align-items: center;
		min-width: 0;
		background: transparent;
		border: 0;
		border-radius: 0;
		box-shadow: none;
		backdrop-filter: none;
		-webkit-backdrop-filter: none;
	}

	body:has(.molecule-main-nav__checkbox:checked) .molecule-lang-toggle__shell::before {
		display: none;
	}

	body:has(.molecule-main-nav__checkbox:checked) .molecule-lang-toggle__handle {
		display: none !important;
	}

	body:has(.molecule-main-nav__checkbox:checked) .molecule-lang-toggle--dock.is-awaiting-intro,
	body:has(.molecule-main-nav__checkbox:checked) .molecule-lang-toggle--dock.is-intro-enter,
	body:has(.molecule-main-nav__checkbox:checked) .molecule-lang-toggle--dock.is-intro-wiggle {
		opacity: 1 !important;
		transform: translateX(-50%) !important;
		animation: none !important;
		pointer-events: auto !important;
	}

	body:has(.molecule-main-nav__checkbox:checked) .molecule-lang-toggle__list {
		display: flex;
		flex-direction: row;
		align-items: center;
		gap: 1.35rem;
		max-height: none;
		padding: 0;
		opacity: 1;
		overflow: visible;
		pointer-events: auto;
	}

	body:has(.molecule-main-nav__checkbox:checked)
		.molecule-lang-toggle__item
		+ .molecule-lang-toggle__item {
		margin-top: 0;
		padding-top: 0;
		border-top: 0;
	}

	body:has(.molecule-main-nav__checkbox:checked) .molecule-lang-toggle__btn {
		min-width: 0;
		min-height: 0;
		padding: 0.25rem 0.15rem;
		font-size: 0.6875rem;
		font-weight: 500;
		letter-spacing: 0.22em;
		color: var(--color-text-muted);
		opacity: 0.85;
	}

	body:has(.molecule-main-nav__checkbox:checked) .molecule-lang-toggle__btn.is-active,
	body:has(.molecule-main-nav__checkbox:checked) .molecule-lang-toggle__btn:hover,
	body:has(.molecule-main-nav__checkbox:checked) .molecule-lang-toggle__btn:focus-visible {
		color: var(--color-accent);
		font-weight: 700;
		opacity: 1;
	}

	body:has(.molecule-main-nav__checkbox:checked)
		.molecule-lang-toggle--dock.is-collapsed
		.molecule-lang-toggle__shell {
		transform: none;
		opacity: 1;
	}

	@media (prefers-reduced-motion: reduce) {
		.site-header__nav,
		.molecule-main-nav__list > li,
		.molecule-main-nav__toggle-btn,
		.molecule-main-nav__toggle-btn::before,
		.molecule-main-nav__toggle-btn::after {
			transition-duration: 0.01ms !important;
			transition-delay: 0s !important;
		}

		.molecule-main-nav__list > li {
			transform: none;
		}
	}
}

/* --- molecules/lang-toggle.css --- */
/* Top-right language dock — handle grows into language list */

.molecule-lang-toggle--dock {
	position: fixed;
	top: max(env(safe-area-inset-top, 0px), var(--space-3));
	right: 0;
	z-index: 15;
	pointer-events: none;
	transform-origin: 100% 0%;
}

.molecule-lang-toggle__shell {
	pointer-events: auto;
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	overflow: hidden;
	min-width: 2.35rem;
	background: linear-gradient(110deg, rgb(245 241 233 / 94%) 0%, rgb(232 223 212 / 90%) 100%);
	border: 1px solid rgb(166 124 82 / 34%);
	border-right: 0;
	border-radius: 0.85rem 0 0 0.85rem;
	box-shadow:
		-0.25rem 0.2rem 0.9rem rgb(74 62 55 / 16%),
		inset 0 1px 0 rgb(255 255 255 / 45%);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	transition:
		min-height 480ms cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow var(--transition-base),
		transform 480ms cubic-bezier(0.22, 1, 0.36, 1),
		opacity 360ms ease;
}

/* Soft pennant tip */
.molecule-lang-toggle__shell::before {
	content: '';
	position: absolute;
	top: 50%;
	left: -0.36rem;
	width: 0.5rem;
	height: 0.5rem;
	background: rgb(232 223 212 / 92%);
	border-left: 1px solid rgb(166 124 82 / 34%);
	border-bottom: 1px solid rgb(166 124 82 / 34%);
	transform: translateY(-50%) rotate(45deg);
	box-shadow: -0.1rem 0.1rem 0.3rem rgb(74 62 55 / 8%);
	transition: top 480ms cubic-bezier(0.22, 1, 0.36, 1);
}

.molecule-lang-toggle__handle {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	align-self: stretch;
	min-height: 2rem;
	max-height: 2.5rem;
	padding: 0.35rem 0.45rem 0.35rem 0.7rem;
	border: 0;
	background: transparent;
	font-family: var(--font-body);
	font-size: 0.5625rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	text-indent: 0.15em;
	color: var(--color-accent);
	cursor: pointer;
	opacity: 1;
	overflow: hidden;
	transition:
		max-height 420ms cubic-bezier(0.22, 1, 0.36, 1),
		min-height 420ms cubic-bezier(0.22, 1, 0.36, 1),
		padding 420ms cubic-bezier(0.22, 1, 0.36, 1),
		opacity 280ms ease;
}

.molecule-lang-toggle__handle:hover,
.molecule-lang-toggle__handle:focus-visible {
	outline: none;
}

.molecule-lang-toggle__handle-label {
	position: relative;
	z-index: 1;
	display: block;
}

.molecule-lang-toggle__list {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	margin: 0;
	padding: 0 0.3rem;
	list-style: none;
	max-height: 0;
	opacity: 0;
	overflow: hidden;
	pointer-events: none;
	transition:
		max-height 480ms cubic-bezier(0.22, 1, 0.36, 1),
		opacity 320ms ease,
		padding 420ms cubic-bezier(0.22, 1, 0.36, 1);
}

.molecule-lang-toggle__item {
	display: flex;
	align-items: center;
	justify-content: center;
}

.molecule-lang-toggle__item + .molecule-lang-toggle__item {
	margin-top: 0.12rem;
	padding-top: 0.12rem;
	border-top: 1px solid rgb(166 124 82 / 16%);
}

.molecule-lang-toggle__btn {
	position: relative;
	z-index: 1;
	min-width: 1.75rem;
	min-height: 1.45rem;
	padding: 0.15rem 0.3rem 0.15rem 0.1rem;
	border: 0;
	background: transparent;
	font-family: var(--font-body);
	font-size: 0.5625rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	text-indent: 0.2em;
	color: var(--color-text);
	cursor: pointer;
	opacity: 0.7;
	transition:
		color var(--transition-base),
		font-weight var(--transition-base),
		opacity var(--transition-base);
}

.molecule-lang-toggle__btn:hover,
.molecule-lang-toggle__btn:focus-visible {
	color: var(--color-accent);
	opacity: 1;
	outline: none;
}

.molecule-lang-toggle__btn.is-active {
	color: var(--color-accent);
	font-weight: 700;
	opacity: 1;
}

/* Expanded: handle folds away, list grows inside the same shell */
.molecule-lang-toggle--dock.is-expanded .molecule-lang-toggle__handle {
	max-height: 0;
	min-height: 0;
	padding-top: 0;
	padding-bottom: 0;
	opacity: 0;
	pointer-events: none;
}

.molecule-lang-toggle--dock.is-expanded .molecule-lang-toggle__list {
	max-height: 8rem;
	opacity: 1;
	padding: 0.45rem 0.3rem 0.45rem 0.7rem;
	pointer-events: auto;
}

/* Collapsed: peek slightly into the edge */
.molecule-lang-toggle--dock.is-collapsed .molecule-lang-toggle__shell {
	transform: translateX(0.4rem);
	opacity: 0.9;
}

.molecule-lang-toggle--dock.is-collapsed .molecule-lang-toggle__shell:hover,
.molecule-lang-toggle--dock.is-collapsed .molecule-lang-toggle__shell:focus-within {
	transform: translateX(0.08rem);
	opacity: 1;
}

/* Intro */
.molecule-lang-toggle--dock.is-awaiting-intro {
	opacity: 0;
	transform: translateY(-0.85rem);
	pointer-events: none;
}

.molecule-lang-toggle--dock.is-intro-enter {
	animation: lang-toggle-fade-in 0.65s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.molecule-lang-toggle--dock.is-intro-wiggle {
	animation: lang-toggle-wiggle 0.72s ease;
}

@keyframes lang-toggle-fade-in {
	from {
		opacity: 0;
		transform: translateY(-0.85rem);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes lang-toggle-wiggle {
	0%,
	100% {
		transform: translateX(0) rotate(0deg);
	}

	18% {
		transform: translateX(-0.35rem) rotate(-2.2deg);
	}

	36% {
		transform: translateX(0.28rem) rotate(1.8deg);
	}

	54% {
		transform: translateX(-0.18rem) rotate(-1.2deg);
	}

	72% {
		transform: translateX(0.1rem) rotate(0.6deg);
	}
}

@media (max-width: 47.99rem) {
	.molecule-lang-toggle--dock {
		top: max(env(safe-area-inset-top, 0px), 0.65rem);
	}

	.molecule-lang-toggle__shell {
		min-width: 2.1rem;
		border-radius: 0.7rem 0 0 0.7rem;
	}

	.molecule-lang-toggle__handle {
		min-height: 1.75rem;
		padding: 0.28rem 0.35rem 0.28rem 0.55rem;
		font-size: 0.5rem;
		letter-spacing: 0.16em;
	}

	.molecule-lang-toggle__btn {
		font-size: 0.5rem;
		letter-spacing: 0.16em;
	}

	.molecule-lang-toggle--dock.is-expanded .molecule-lang-toggle__list {
		padding: 0.35rem 0.25rem 0.35rem 0.55rem;
	}

	.molecule-lang-toggle--dock.is-collapsed .molecule-lang-toggle__shell {
		transform: translateX(0.45rem);
	}
}

@media (orientation: landscape) and (max-height: 31.25rem) {
	.molecule-lang-toggle--dock {
		top: max(env(safe-area-inset-top, 0px), 0.35rem);
	}

	.molecule-lang-toggle__handle {
		min-height: 1.5rem;
		min-width: 1.9rem;
		font-size: 0.475rem;
	}

	.molecule-lang-toggle__btn {
		min-height: 1.15rem;
		padding-block: 0.08rem;
		font-size: 0.475rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.molecule-lang-toggle__shell,
	.molecule-lang-toggle__handle,
	.molecule-lang-toggle__list,
	.molecule-lang-toggle--dock.is-intro-enter,
	.molecule-lang-toggle--dock.is-intro-wiggle {
		animation: none !important;
		transition: opacity 160ms ease !important;
	}

	.molecule-lang-toggle--dock.is-awaiting-intro {
		opacity: 1;
		transform: none;
	}
}

/* --- molecules/headline-stack.css --- */
.molecule-headline-stack {
	display: flex;
	flex-direction: column;
	gap: clamp(0.125rem, 0.35vh, 0.25rem);
}

/* Phone portrait — airy gap between primary / secondary lines */
@media (max-width: 47.99rem) and (orientation: portrait) {
	.presentation-slide--hero .molecule-headline-stack {
		/* gap: clamp(1rem, 2.8vh, 1.5rem); */
	}
}

.molecule-headline-stack__title {
	margin: 0;
	text-wrap: balance;
}

/* balance breaks badly in narrow columns — use pretty on compact tablets */
@media (min-width: 48rem) and (max-width: 63.99rem), (min-width: 64rem) and (max-height: 52rem) {
	.molecule-headline-stack__title {
		text-wrap: pretty;
		max-width: none;
		min-width: 30rem;
	}
}

.molecule-headline-stack__title--primary {
	color: var(--color-text);
}

.molecule-headline-stack__title--secondary {
	color: var(--color-accent);
}

/* --- molecules/cta-link.css --- */
.molecule-cta-link {
	display: inline-flex;
	flex-direction: column;
	gap: 0.35rem;
	align-self: flex-start;
	text-decoration: none;
	color: var(--color-text);
	transition: color var(--transition-base);
}

.molecule-cta-link__label {
	font-family: var(--font-body);
	font-size: clamp(0.625rem, 2vw, 0.6875rem);
	font-weight: 400;
	letter-spacing: 0.22em;
	text-transform: uppercase;
}

.molecule-cta-link__label::after {
	content: ' →';
}

.molecule-cta-link__rule {
	display: block;
	width: min(17.5rem, 100%);
	height: 1px;
	background: currentcolor;
}

.molecule-cta-link:hover,
.molecule-cta-link:focus-visible {
	color: var(--color-accent);
}

/* --- molecules/quick-facts.css --- */
/* Offering quick facts — location, duration, price */

.molecule-quick-facts {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	margin: clamp(var(--space-5), 3vh, var(--space-8)) 0 0;
	padding: 0;
	max-width: 36rem;
}

.quick-facts__item {
	flex: 1 1 0;
	min-width: min(100%, 6.5rem);
	margin: 0;
	padding: 0 clamp(var(--space-4), 2.5vw, var(--space-6));
}

.quick-facts__item:first-child {
	padding-left: 0;
}

.quick-facts__item:not(:first-child) {
	border-left: 1px solid color-mix(in srgb, var(--color-text-muted) 38%, transparent);
}

.quick-facts__label {
	display: block;
	margin-bottom: var(--space-2);
	font-family: var(--font-body);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--color-text-muted);
}

.quick-facts__value {
	margin: 0;
	font-family: var(--font-body);
	font-size: clamp(0.875rem, 1.2vw, 1rem);
	font-weight: 400;
	line-height: 1.45;
	color: var(--color-text);
}

@media (max-width: 39.99rem) {
	.molecule-quick-facts {
		flex-direction: column;
		gap: var(--space-4);
	}

	.quick-facts__item {
		flex: 1 1 auto;
		min-width: 0;
		padding: 0;
	}

	.quick-facts__item:not(:first-child) {
		border-left: 0;
		padding-top: var(--space-4);
		border-top: 1px solid color-mix(in srgb, var(--color-text-muted) 38%, transparent);
	}
}

/* Single-line availability note (e.g. abdominal therapy) */
.molecule-quick-facts-note + .molecule-quick-facts {
	margin-top: clamp(var(--space-4), 2vh, var(--space-5));
}

.molecule-quick-facts-note {
	margin: clamp(var(--space-5), 3vh, var(--space-8)) 0 0;
	padding-top: clamp(var(--space-5), 3vh, var(--space-6));
	max-width: 36rem;
	border-top: 1px solid color-mix(in srgb, var(--color-text-muted) 38%, transparent);
	font-family: var(--font-body);
	font-size: clamp(0.875rem, 1.2vw, 1rem);
	font-weight: 400;
	line-height: 1.55;
	color: var(--color-text);
	text-wrap: pretty;
}

/* --- molecules/section-label.css --- */
.molecule-section-label {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: var(--space-4);
}

.molecule-section-label__rule {
	flex: 1;
	max-width: clamp(4rem, 18vw, 12rem);
	height: 1px;
	background: rgb(74 62 55 / 22%);
}

.molecule-section-label__text {
	font-family: var(--font-heading);
	font-size: clamp(1.125rem, 2.8vw, 1.625rem);
	font-weight: 400;
	font-style: italic;
	line-height: 1;
	color: var(--color-accent);
	text-transform: lowercase;
}

/* Eyebrow + short rule below — Philosophy mockup */
.molecule-section-label--eyebrow {
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-start;
	gap: var(--space-3);
}

.molecule-section-label--eyebrow .molecule-section-label__text {
	font-family: var(--font-body);
	font-size: clamp(0.6875rem, 1.6vw, 0.8125rem);
	font-style: normal;
	font-weight: 500;
	letter-spacing: 0.18em;
	line-height: 1.2;
	color: var(--color-text);
	text-transform: uppercase;
}

.molecule-section-label--eyebrow .molecule-section-label__rule {
	flex: none;
	width: 2.75rem;
	max-width: none;
	background: rgb(74 62 55 / 45%);
}

/* --- molecules/flow-text.css --- */
/*
 * molecule-flow-text
 *
 * Long-form reading copy (Fließtext). Body face, reading measure, paragraph rhythm.
 * Use for multi-paragraph slides — not for display headlines or short hero ledes.
 *
 * Markup:
 *   <div class="molecule-flow-text">
 *     <p>…</p>
 *     <p>…</p>
 *   </div>
 *
 * Modifiers:
 *   --narrow   tighter measure
 *   --lede     slightly larger opening block
 *   --muted    secondary / supporting tone
 */

.molecule-flow-text {
	display: flex;
	flex-direction: column;
	gap: var(--flow-gap);
	width: 100%;
	max-width: var(--flow-measure);
	margin: 0;
	font-family: var(--font-body);
	font-size: var(--flow-size);
	font-weight: 400;
	line-height: var(--flow-leading);
	letter-spacing: var(--flow-tracking);
	color: var(--color-text);
	text-wrap: pretty;
}

.molecule-flow-text > :first-child {
	margin-block-start: 0;
}

.molecule-flow-text > :last-child {
	margin-block-end: 0;
}

.molecule-flow-text p {
	margin: 0;
	max-width: 68ch;
}

.molecule-flow-text a {
	color: var(--color-accent);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
	transition: color var(--transition-base);
}

.molecule-flow-text a:hover,
.molecule-flow-text a:focus-visible {
	color: var(--color-text);
}

.molecule-flow-text--narrow {
	max-width: var(--flow-measure-narrow);
}

.molecule-flow-text--narrow p {
	max-width: 62ch;
}

.molecule-flow-text--lede {
	font-size: clamp(1.0625rem, 0.45vw + 0.95rem, 1.1875rem);
	line-height: 1.65;
	color: var(--color-text-muted);
}

.molecule-flow-text--lede p {
	max-width: 58ch;
}

.molecule-flow-text--muted {
	color: var(--color-text-muted);
}

/* Nested lists inside flow */
.molecule-flow-text ul,
.molecule-flow-text ol {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0.65em;
}

.molecule-flow-text ul > li,
.molecule-flow-text ol > li {
	position: relative;
	padding-left: 1.15em;
	max-width: 68ch;
}

.molecule-flow-text ul > li::before {
	content: '';
	position: absolute;
	top: 0.7em;
	left: 0;
	width: 0.3rem;
	height: 0.3rem;
	border-radius: 50%;
	background: var(--color-accent);
}

.molecule-flow-text ol {
	counter-reset: flow-ol;
}

.molecule-flow-text ol > li {
	counter-increment: flow-ol;
}

.molecule-flow-text ol > li::before {
	content: counter(flow-ol) '.';
	position: absolute;
	left: 0;
	font-variant-numeric: tabular-nums;
	color: var(--color-accent);
}

/* Pull / closing line — stays in the display face for editorial contrast */
.molecule-flow-text__pull {
	margin: 0.35em 0 0;
	max-width: 36ch;
	font-family: var(--font-heading);
	font-size: clamp(1.125rem, 0.55vw + 1rem, 1.4375rem);
	font-weight: 500;
	font-style: italic;
	line-height: 1.4;
	letter-spacing: 0.01em;
	color: var(--color-text);
	text-wrap: balance;
}

@media (max-width: 47.99rem) {
	.molecule-flow-text {
		font-size: clamp(0.9375rem, 2.6vw, 1.0625rem);
		line-height: 1.7;
	}

	.molecule-flow-text--lede {
		font-size: clamp(1rem, 2.8vw, 1.125rem);
	}
}

/* --- molecules/sacred-geometry.css --- */
.molecule-sacred-geometry {
	width: 100%;
	height: 100%;
	color: var(--color-geometry);
}

/* --- molecules/mosaic-tile.css --- */
/*
 * molecule-mosaic-tile
 *
 * Reusable mosaic cell for Elementor/WP later via amelie_innara_part().
 * Props (data-* / future $args):
 *   size:  2x2 | 2x1 | 1x2 | 1x1
 *   type:  section | full-image
 *   tone:  cream | rose | sage | lavender  (section only)
 *   href / headline / eyebrow / ctaLabel
 * Numbering: automatic via CSS counter on --type-section (see organism-mosaic-tile-grid).
 */

.molecule-mosaic-tile {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	min-height: 0;
	overflow: hidden;
	background: var(--color-cream);
	color: var(--color-text);
}

.molecule-mosaic-tile--tone-cream {
	background: #f4ebe4;
}

.molecule-mosaic-tile--tone-rose {
	background: var(--color-rose-tile);
}

.molecule-mosaic-tile--tone-sage {
	background: var(--color-sage-tile);
}

.molecule-mosaic-tile--tone-lavender {
	background: var(--color-lavender);
}

.molecule-mosaic-tile--round-tr {
	border-top-right-radius: clamp(1.5rem, 4vw, 3rem);
}

/* Soft torn / feathered right edge (size 2x2 sessions tile) */
.molecule-mosaic-tile--edge-torn {
	-webkit-mask-image: linear-gradient(
		to right,
		#000 0%,
		#000 78%,
		rgb(0 0 0 / 70%) 88%,
		rgb(0 0 0 / 20%) 96%,
		transparent 100%
	);
	mask-image: linear-gradient(
		to right,
		#000 0%,
		#000 78%,
		rgb(0 0 0 / 70%) 88%,
		rgb(0 0 0 / 20%) 96%,
		transparent 100%
	);
}

.molecule-mosaic-tile--type-section {
	padding: clamp(var(--space-5), 2.4vw, var(--space-8));
	justify-content: space-between;
	gap: var(--space-4);
}

.molecule-mosaic-tile__index {
	font-family: var(--font-body);
	font-size: clamp(0.6875rem, 1.4vw, 0.8125rem);
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1;
	color: var(--color-text);
	opacity: 0.72;
}

.molecule-mosaic-tile__index::before {
	content: counter(mosaic-section, decimal-leading-zero);
}

.molecule-mosaic-tile__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	justify-content: center;
	gap: var(--space-3);
	min-height: 0;
}

.molecule-mosaic-tile__headline {
	margin: 0;
	font-family: var(--font-heading);
	font-size: clamp(1rem, 2.1vw, 1.375rem);
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	text-wrap: balance;
	color: var(--color-text);
}

.molecule-mosaic-tile__eyebrow {
	margin: 0;
	font-family: var(--font-body);
	font-size: clamp(0.6875rem, 1.3vw, 0.8125rem);
	font-weight: 400;
	line-height: 1.45;
	color: var(--color-text);
	opacity: 0.78;
}

.molecule-mosaic-tile__cta {
	margin-top: auto;
	align-self: flex-start;
}

.molecule-mosaic-tile__cta .molecule-cta-link__rule {
	display: none;
}

.molecule-mosaic-tile__cta .molecule-cta-link__label {
	letter-spacing: 0.16em;
}

/* full-image */
.molecule-mosaic-tile--type-full-image {
	padding: 0;
}

.molecule-mosaic-tile__media {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.molecule-mosaic-tile--type-full-image picture {
	display: contents;
}

/* Size → CSS Grid placement (parent is 5-col on desktop) */
.molecule-mosaic-tile--size-2x2 {
	grid-column: span 2;
	grid-row: span 2;
}

.molecule-mosaic-tile--size-2x1 {
	grid-column: span 2;
	grid-row: span 1;
}

.molecule-mosaic-tile--size-1x2 {
	grid-column: span 1;
	grid-row: span 2;
}

.molecule-mosaic-tile--size-1x1 {
	grid-column: span 1;
	grid-row: span 1;
}

@media (max-width: 47.99rem) {
	.molecule-mosaic-tile--size-2x2,
	.molecule-mosaic-tile--size-2x1,
	.molecule-mosaic-tile--size-1x2,
	.molecule-mosaic-tile--size-1x1 {
		grid-column: span 2;
		grid-row: span 1;
	}

	.molecule-mosaic-tile--size-1x2 {
		min-height: clamp(14rem, 52vw, 20rem);
	}

	.molecule-mosaic-tile--type-section {
		min-height: clamp(11rem, 42vw, 15rem);
	}
}

/* --- molecules/emblem-watermark.css --- */
/* Fixed emblem watermark — height-driven size; stroke weights via data-stage */

.emblem-watermark {
	--emblem-stroke-thin: 1;
	--emblem-stroke-thick: 3;
	--emblem-dot-scale: 1;
	--emblem-transition: 0.55s cubic-bezier(0.4, 0, 0.2, 1);
	/*
	 * Default (tablet / desktop): height-driven size so narrowing the
	 * viewport does not shrink the emblem. ~85% on-page, ~15% clipped right.
	 */
	--emblem-top: 90%;
	--emblem-left: 100%;
	--emblem-height: 140vh;
	--emblem-shift-x: -65%;
	--emblem-opacity: 0.92;

	position: fixed;
	z-index: 2;
	top: var(--emblem-top);
	left: var(--emblem-left);
	height: var(--emblem-height);
	width: auto;
	aspect-ratio: 360 / 430;
	opacity: var(--emblem-opacity);
	transform: translate(var(--emblem-shift-x), -50%);
	pointer-events: none;
	color: rgb(154 133 117 / 72%);
	visibility: hidden;
}

.emblem-watermark.has-emblem {
	visibility: visible;
}

.emblem-watermark.is-hidden {
	opacity: 0;
	visibility: hidden;
}

.emblem-watermark svg {
	display: block;
	width: 100%;
	height: 100%;
	overflow: visible;
	opacity: 0.3;
}

.emblem-watermark #innara-emblem-circle,
.emblem-watermark #innara-emblem-triangle-left,
.emblem-watermark #innara-emblem-triangle-right,
.emblem-watermark #innara-emblem-stem,
.emblem-watermark #innara-emblem-spiral {
	stroke: currentcolor;
	stroke-width: var(--emblem-stroke-thin);
	transition: stroke-width var(--emblem-transition);
}

.emblem-watermark #innara-emblem-dot {
	fill: currentcolor;
	transform: scale(var(--emblem-dot-scale));
	transform-box: fill-box;
	transform-origin: center;
	transition: transform var(--emblem-transition);
}

/* Stage 1+ — circle */
.emblem-watermark[data-stage='1'] #innara-emblem-circle,
.emblem-watermark[data-stage='2'] #innara-emblem-circle,
.emblem-watermark[data-stage='3'] #innara-emblem-circle,
.emblem-watermark[data-stage='4'] #innara-emblem-circle {
	stroke-width: var(--emblem-stroke-thick);
}

/* Stage 2+ — i (stem + dot) */
.emblem-watermark[data-stage='2'] #innara-emblem-stem,
.emblem-watermark[data-stage='3'] #innara-emblem-stem,
.emblem-watermark[data-stage='4'] #innara-emblem-stem {
	stroke-width: var(--emblem-stroke-thick);
}

.emblem-watermark[data-stage='2'],
.emblem-watermark[data-stage='3'],
.emblem-watermark[data-stage='4'] {
	--emblem-dot-scale: 1.65;
}

/* Stage 3+ — spiral */
.emblem-watermark[data-stage='3'] #innara-emblem-spiral,
.emblem-watermark[data-stage='4'] #innara-emblem-spiral {
	stroke-width: var(--emblem-stroke-thick);
}

/* Stage 4 — triangle */
.emblem-watermark[data-stage='4'] #innara-emblem-triangle-left,
.emblem-watermark[data-stage='4'] #innara-emblem-triangle-right {
	stroke-width: var(--emblem-stroke-thick);
}

/* Tier 1 — phone portrait: centered watermark behind content */
@media (max-width: 47.99rem) and (orientation: portrait) {
	.emblem-watermark {
		--emblem-top: 88%;
		--emblem-left: 50%;
		--emblem-height: auto;
		--emblem-shift-x: -50%;
		--emblem-opacity: 0.42;
		width: min(31.25rem, 128vw);
		height: auto;
	}
}

/* Tier 2 — tablet portrait (iPad Mini, iPad Air … 768–1023px) */
@media (min-width: 48rem) and (max-width: 63.99rem) and (orientation: portrait) {
	.emblem-watermark {
		--emblem-opacity: 0.5;
	}
}

/* Tier 2b — compact tablet landscape (e.g. iPad Mini 1024×768) */
@media (min-width: 64rem) and (max-width: 89.99rem) and (max-height: 52rem) and (min-height: 31.26rem) {
	.emblem-watermark {
		--emblem-opacity: 0.5;
	}
}

/* Tier 3 — desktop / tall tablet landscape */
@media (min-width: 64rem) and (max-width: 89.99rem) and (min-height: 52.01rem) {
	.emblem-watermark {
		--emblem-opacity: 0.72;
	}
}

/* Tier 3p — large tablet portrait (iPad Pro 1024×1366) */
@media (min-width: 64rem) and (max-width: 89.99rem) and (orientation: portrait) and (min-height: 52.01rem) {
	.emblem-watermark {
		--emblem-opacity: 0.55;
	}
}

/* Tier 4 — wide / Laptop L */
@media (min-width: 90rem) {
	.emblem-watermark {
		--emblem-opacity: 0.6;
	}
}

/*
 * Phone / short landscape — LAST so it wins over width-based tablet tiers
 * (Pixel 10 landscape is ~924×412 and would otherwise match tablet width bands).
 * Centered + large, still clear of the header.
 */
@media (orientation: landscape) and (max-height: 31.25rem) {
	.emblem-watermark {
		--emblem-top: 64%;
		--emblem-left: 50%;
		--emblem-height: auto;
		--emblem-shift-x: -50%;
		--emblem-opacity: 0.36;
		width: min(68vh, 56vw);
		height: auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	.emblem-watermark {
		--emblem-transition: 0ms;
	}
}

/* --- molecules/logo-intro.css --- */
/**
 * First-load logo intro — emblem draw + wordmark letter fly-in + tagline rise.
 * Plays once per tab session, then fades the site in.
 */
.molecule-logo-intro {
	position: fixed;
	inset: 0;
	z-index: 10000;
	display: none;
	align-items: center;
	justify-content: center;
	background: var(--color-cream, #f5f1e9);
	transition: opacity 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

html.logo-intro-active .molecule-logo-intro {
	display: flex;
}

.molecule-logo-intro.is-leaving {
	opacity: 0;
	pointer-events: none;
}

.molecule-logo-intro__stack {
	display: flex;
	flex-direction: column;
	align-items: center;
	/* Same optical air above and below the emblem */
	gap: clamp(0.75rem, 1.8vh, 1.1rem);
	padding-inline: 1.5rem;
}

.molecule-logo-intro__word {
	display: flex;
	align-items: baseline;
	justify-content: center;
	gap: 0.42em;
	margin: 0;
	color: #9a8575;
	font-family: var(--font-body, 'Montserrat', system-ui, sans-serif);
	font-size: clamp(1.625rem, 5.5vw, 2.35rem);
	font-weight: 400;
	letter-spacing: 0.08em;
	line-height: 1;
	text-transform: lowercase;
}

.molecule-logo-intro__letter {
	display: inline-block;
	opacity: 0;
	transform: translate3d(0, -0.9em, 0) rotate(-4deg);
	will-change: transform, opacity;
}

html.logo-intro-active .molecule-logo-intro.is-playing .molecule-logo-intro__letter {
	animation: logo-intro-letter-fly 0.46s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

/* “innara” starts with the circle */
.molecule-logo-intro__letter:nth-child(1) {
	animation-delay: 0s;
}

.molecule-logo-intro__letter:nth-child(2) {
	animation-delay: 0.065s;
}

.molecule-logo-intro__letter:nth-child(3) {
	animation-delay: 0.13s;
}

.molecule-logo-intro__letter:nth-child(4) {
	animation-delay: 0.195s;
}

.molecule-logo-intro__letter:nth-child(5) {
	animation-delay: 0.26s;
}

.molecule-logo-intro__letter:nth-child(6) {
	animation-delay: 0.325s;
}

@keyframes logo-intro-letter-fly {
	0% {
		opacity: 0;
		transform: translate3d(0, -0.9em, 0) rotate(-5deg);
	}
	100% {
		opacity: 1;
		transform: translate3d(0, 0, 0) rotate(0deg);
	}
}

.molecule-logo-intro__mark {
	/* Crop empty bottom of logo.svg viewBox (360×430; mark sits in top ~half) */
	width: min(58vw, 300px);
	aspect-ratio: 360 / 215;
	overflow: hidden;
	line-height: 0;
}

.molecule-logo-intro__mark svg {
	display: block;
	width: 100%;
	height: auto;
	/* Natural SVG is taller than the crop window — keep top alignment */
	margin: 0;
	vertical-align: top;
}

.molecule-logo-intro__tagline {
	margin: 0;
	color: #9a8575;
	font-family: var(--font-body, 'Montserrat', system-ui, sans-serif);
	font-size: clamp(0.6875rem, 2.2vw, 0.8125rem);
	font-weight: 400;
	letter-spacing: 0.38em;
	line-height: 1.2;
	text-align: center;
	text-transform: uppercase;
	opacity: 0;
	transform: translate3d(0, 1.1em, 0);
	will-change: transform, opacity;
}

html.logo-intro-active .molecule-logo-intro.is-playing .molecule-logo-intro__tagline {
	/* After triangle + pause (~1.13s at 1.45×) */
	animation: logo-intro-tagline-rise 0.4s cubic-bezier(0.22, 1, 0.36, 1) 1.13s forwards;
}

@keyframes logo-intro-tagline-rise {
	0% {
		opacity: 0;
		transform: translate3d(0, 0.85em, 0);
	}
	100% {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
}

/*
 * 1 circle + innara + spiral + “i” (together)
 * 2 triangle
 * 3 pause 0.2s
 * 4 school of self-care
 */
.molecule-logo-intro #innara-emblem-circle,
.molecule-logo-intro #innara-emblem-triangle-left,
.molecule-logo-intro #innara-emblem-triangle-right,
.molecule-logo-intro #innara-emblem-stem,
.molecule-logo-intro #innara-emblem-spiral,
.molecule-logo-intro #innara-emblem-dot {
	opacity: 0;
}

/* Emblem motions only after .is-playing (synced with wordmark) */
.molecule-logo-intro.is-playing #innara-emblem-circle {
	stroke-dasharray: 566;
	stroke-dashoffset: 566;
	animation: logo-intro-circle-draw 0.44s cubic-bezier(0.4, 0, 0.2, 1) 0s forwards;
}

@keyframes logo-intro-circle-draw {
	0% {
		stroke-dashoffset: 566;
		opacity: 1;
	}
	100% {
		stroke-dashoffset: 0;
		opacity: 1;
	}
}

.molecule-logo-intro.is-playing #innara-emblem-triangle-left {
	transform-box: fill-box;
	transform-origin: 50% 50%;
	animation: logo-intro-tri-left 0.35s cubic-bezier(0.34, 1.35, 0.64, 1) 0.4s forwards;
}

@keyframes logo-intro-tri-left {
	0% {
		opacity: 0;
		transform: translate(-14px, -8px);
	}
	100% {
		opacity: 1;
		transform: translate(0, 0);
	}
}

.molecule-logo-intro.is-playing #innara-emblem-triangle-right {
	transform-box: fill-box;
	transform-origin: 50% 50%;
	animation: logo-intro-tri-right 0.35s cubic-bezier(0.34, 1.35, 0.64, 1) 0.49s forwards;
}

@keyframes logo-intro-tri-right {
	0% {
		opacity: 0;
		transform: translate(14px, -8px);
	}
	100% {
		opacity: 1;
		transform: translate(0, 0);
	}
}

.molecule-logo-intro.is-playing #innara-emblem-stem {
	transform-origin: 100px 190px;
	transform-box: fill-box;
	animation: logo-intro-stem-in 0.4s cubic-bezier(0.34, 1.4, 0.64, 1) 0.07s forwards;
}

@keyframes logo-intro-stem-in {
	0% {
		opacity: 0;
		transform: translateY(12px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

.molecule-logo-intro.is-playing #innara-emblem-dot {
	transform-box: fill-box;
	transform-origin: 50% 50%;
	animation: logo-intro-dot 0.32s cubic-bezier(0.34, 1.6, 0.64, 1) 0.17s forwards;
}

@keyframes logo-intro-dot {
	0% {
		opacity: 0;
		transform: scale(0);
	}
	100% {
		opacity: 1;
		transform: scale(1);
	}
}

.molecule-logo-intro.is-playing #innara-emblem-spiral.is-animating {
	opacity: 1;
	animation: logo-intro-spiral 0.8s cubic-bezier(0.25, 0.1, 0.25, 1) 0.07s both;
}

@keyframes logo-intro-spiral {
	0% {
		opacity: 1;
		stroke-dashoffset: var(--spiral-len);
	}
	100% {
		opacity: 1;
		stroke-dashoffset: 0;
	}
}

/* Site fades in under / after splash */
html.logo-intro-active .template-presentation__backdrop,
html.logo-intro-active .emblem-watermark,
html.logo-intro-active .molecule-scroll-marker,
html.logo-intro-active .template-home {
	opacity: 0;
}

html.logo-intro-done .template-presentation__backdrop,
html.logo-intro-done .emblem-watermark,
html.logo-intro-done .molecule-scroll-marker,
html.logo-intro-done .template-home {
	opacity: 1;
	transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

@media (prefers-reduced-motion: reduce) {
	/*
	 * iOS “Reduce Motion”: keep a gentle opacity choreography (no fly/scale),
	 * so the intro still reads as intentional rather than a static flash.
	 */
	html.logo-intro-active .molecule-logo-intro.is-playing .molecule-logo-intro__letter {
		transform: none;
		animation: logo-intro-fade-in 0.35s ease forwards;
	}

	html.logo-intro-active .molecule-logo-intro.is-playing .molecule-logo-intro__tagline {
		transform: none;
		animation: logo-intro-fade-in 0.4s ease 0.55s forwards;
	}

	.molecule-logo-intro.is-playing #innara-emblem-circle {
		animation: logo-intro-fade-in 0.35s ease forwards;
		stroke-dashoffset: 0;
	}

	.molecule-logo-intro.is-playing #innara-emblem-triangle-left,
	.molecule-logo-intro.is-playing #innara-emblem-triangle-right {
		transform: none;
		animation: logo-intro-fade-in 0.3s ease 0.2s forwards;
	}

	.molecule-logo-intro.is-playing #innara-emblem-stem,
	.molecule-logo-intro.is-playing #innara-emblem-dot {
		transform: none;
		animation: logo-intro-fade-in 0.3s ease 0.08s forwards;
	}

	.molecule-logo-intro.is-playing #innara-emblem-spiral.is-animating {
		animation: logo-intro-fade-in 0.45s ease 0.05s forwards;
		stroke-dashoffset: 0;
	}

	@keyframes logo-intro-fade-in {
		from {
			opacity: 0;
		}
		to {
			opacity: 1;
		}
	}

	.molecule-logo-intro {
		transition-duration: 0.3s;
	}

	html.logo-intro-done .template-presentation__backdrop,
	html.logo-intro-done .emblem-watermark,
	html.logo-intro-done .molecule-scroll-marker,
	html.logo-intro-done .template-home {
		transition-duration: 0.35s;
	}
}

/* --- molecules/scroll-marker.css --- */
/* Sticky scroll progress — inactive dots, active slide as capsule + arrow */

.molecule-scroll-marker {
	position: fixed;
	bottom: clamp(1.25rem, 3.5vh, 2.25rem);
	left: 50%;
	z-index: 4;
	transform: translateX(-50%);
	pointer-events: auto;
}

.molecule-scroll-marker__list {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin: 0;
	padding: 0.5rem 0.875rem;
	list-style: none;
	border-radius: 999px;
	background: rgb(74 62 55 / 10%);
	box-shadow: 0 0.25rem 1rem rgb(74 62 55 / 8%);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

.molecule-scroll-marker__item {
	display: flex;
}

.molecule-scroll-marker__link {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 1.25rem;
	height: 2.125rem;
	text-decoration: none;
	color: #fff;
}

/* Inactive dot — crossfades with icon */
.molecule-scroll-marker__link::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 0.5rem;
	height: 0.5rem;
	border: 1.5px solid #fff;
	border-radius: 50%;
	background: transparent;
	box-shadow: 0 0 0 1px rgb(74 62 55 / 14%);
	opacity: 1;
	transform: translate(-50%, -50%) scale(1);
	transition:
		opacity 280ms ease,
		transform 320ms cubic-bezier(0.34, 1.15, 0.64, 1),
		background 180ms ease;
}

.molecule-scroll-marker__link:not(.is-active):hover::before,
.molecule-scroll-marker__link:not(.is-active):focus-visible::before {
	background: rgb(255 255 255 / 45%);
}

.molecule-scroll-marker__link.is-active::before {
	opacity: 0;
	transform: translate(-50%, -50%) scale(0.35);
}

.molecule-scroll-marker__icon {
	display: block;
	width: 100%;
	height: 100%;
	opacity: 0;
	transform: scale(0.72);
	transition:
		opacity 280ms ease,
		transform 320ms cubic-bezier(0.34, 1.15, 0.64, 1);
}

.molecule-scroll-marker__link.is-active .molecule-scroll-marker__icon {
	opacity: 1;
	transform: scale(1);
}

.molecule-scroll-marker__link.is-active:hover .molecule-scroll-marker__icon,
.molecule-scroll-marker__link.is-active:focus-visible .molecule-scroll-marker__icon {
	opacity: 0.88;
}

@media (prefers-reduced-motion: no-preference) {
	html.is-ready .molecule-scroll-marker__link.is-active .molecule-scroll-marker__icon {
		animation: scroll-marker-nudge 2.4s ease-in-out infinite;
		animation-delay: 320ms;
	}
}

@keyframes scroll-marker-nudge {
	0%,
	100% {
		transform: scale(1) translateY(0);
	}

	50% {
		transform: scale(1) translateY(2px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.molecule-scroll-marker__link::before,
	.molecule-scroll-marker__icon {
		transition: none;
	}
}

/* --- molecules/contact-channels.css --- */
/* Contact channels — text+icon links, CI typography (no pill cards) */

.molecule-contact-channels {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-4) var(--space-6);
	margin-top: var(--space-8);
}

.molecule-contact-channels__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	padding: 0.15rem 0 0.35rem;
	border: 0;
	border-bottom: 1px solid color-mix(in srgb, var(--color-accent) 42%, transparent);
	background: transparent;
	font-family: var(--font-body);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--color-text);
	transition:
		color var(--transition-base),
		border-color var(--transition-base);
}

.molecule-contact-channels__btn[hidden] {
	display: none;
}

.molecule-contact-channels__btn:hover,
.molecule-contact-channels__btn:focus-visible {
	color: var(--color-accent);
	border-bottom-color: var(--color-accent);
	outline: none;
}

.molecule-contact-channels__icon {
	display: block;
	width: 1rem;
	height: 1rem;
	flex-shrink: 0;
	color: currentcolor;
}

.molecule-contact-channels__icon svg {
	display: block;
	width: 100%;
	height: 100%;
	fill: none;
	stroke: currentcolor;
	stroke-width: 1.25;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.molecule-contact-channels__icon--filled svg,
.molecule-contact-channels__icon--filled svg path {
	fill: currentcolor;
	stroke: none;
}

.presentation-slide--contact .presentation-slide__inner {
	width: min(100%, 40rem);
}

@media (max-width: 47.99rem) {
	.molecule-contact-channels {
		gap: var(--space-3) var(--space-5);
		margin-top: var(--space-6);
	}
}

/* --- molecules/editorial-image.css --- */
/* Reusable Philosophy-style image treatment for desktop offering sections */

.editorial-image {
	position: relative;
	width: 100%;
	height: 100%;
	min-height: 0;
}

.editorial-image__sage {
	position: absolute;
	top: 12%;
	bottom: 18%;
	left: -1rem;
	z-index: 0;
	width: clamp(1.15rem, 2vw, 1.85rem);
	background: color-mix(in srgb, var(--color-sage) 68%, var(--color-cream));
	pointer-events: none;
}

.editorial-image__figure {
	position: relative;
	z-index: 1;
	width: 100%;
	height: 100%;
	margin: 0;
	overflow: hidden;
	-webkit-mask-image:
		radial-gradient(ellipse 88% 82% at 48% 46%, #000 42%, transparent 78%),
		linear-gradient(#000 0 0);
	mask-image:
		radial-gradient(ellipse 88% 82% at 48% 46%, #000 42%, transparent 78%),
		linear-gradient(#000 0 0);
	-webkit-mask-composite: source-in;
	mask-composite: intersect;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: 100% 100%;
	mask-size: 100% 100%;
}

.editorial-image__figure picture {
	display: contents;
}

.editorial-image__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.editorial-image--sessions .editorial-image__img {
	object-position: center 48%;
}

.editorial-image--abdominal .editorial-image__img {
	object-position: center 46%;
}

.editorial-image.editorial-image--abdominal {
	animation: none;
}

.editorial-image--abdominal .editorial-image__figure {
	-webkit-mask-image:
		radial-gradient(ellipse 88% 82% at 48% 46%, #000 64%, transparent 100%),
		linear-gradient(#000 0 0);
	mask-image:
		radial-gradient(ellipse 88% 82% at 48% 46%, #000 64%, transparent 100%),
		linear-gradient(#000 0 0);
}

.editorial-image--yoga .editorial-image__img {
	object-position: center 56%;
}

.editorial-image--workshops .editorial-image__img {
	object-position: center;
}

.editorial-image--about .editorial-image__img {
	object-position: center 42%;
}

.editorial-image--contact .editorial-image__img {
	object-position: center 68%;
}

.editorial-image--contact .editorial-image__sage {
	display: none;
}

.editorial-image--womens-health .editorial-image__img {
	object-position: center 50%;
}

.editorial-image--philosophy .editorial-image__img {
	object-position: center 28%;
}

@media (prefers-reduced-motion: no-preference) {
	@keyframes editorial-image-in {
		from {
			opacity: 0;
			transform: translateY(1.25rem) scale(0.985);
		}

		to {
			opacity: 1;
			transform: translateY(0) scale(1);
		}
	}

	.editorial-image {
		animation: editorial-image-in 900ms cubic-bezier(0.22, 1, 0.36, 1) both;
		animation-timeline: view();
		animation-range: entry 8% cover 55%;
	}
}

/* --- organisms/site-header.css --- */
.organism-site-header {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-6);
	width: 100%;
}

/* Compact header + burger — phones & tablets below iPad Air landscape (~1180px) */
@media (max-width: 73.74rem) {
	.organism-site-header {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		gap: var(--space-4);
		min-height: 3rem;
	}

	.site-header__logo {
		flex: 0 1 auto;
		min-width: 0;
		align-self: center;
	}
}

@media (min-width: 73.75rem) {
	.organism-site-header {
		flex-direction: row;
		align-items: flex-start;
		/* Cluster logo + nav — less barren mid-field, still left-anchored */
		justify-content: flex-start;
		gap: clamp(1.75rem, 2.8vw, 2.75rem);
	}

	.site-header__logo {
		flex: 0 0 auto;
		/* Shift lockup into the open field (~40–56px) */
		margin-inline-start: clamp(1.5rem, 2.8vw, 3.5rem);
	}

	.site-header__nav {
		position: relative;
		z-index: 30;
		flex: 1 1 auto;
		width: auto;
		min-width: 0;
		max-width: none;
		/* Align with “innara” wordmark, not the full lockup+tagline box */
		padding-top: 1.15rem;
		padding-bottom: 0;
		overflow: visible;
	}
}

/* Give the wordmark a little more room vs. nav at ~1180px */
@media (min-width: 73.75rem) and (max-width: 85rem) {
	.organism-site-header {
		gap: clamp(1.1rem, 1.8vw, 1.75rem);
	}

	.site-header__logo {
		margin-inline-start: clamp(0.75rem, 1.6vw, 1.75rem);
	}
}

.site-header__nav {
	width: 100%;
}

/* --- organisms/hero.css --- */
/* Mobile-first hero — texture visible everywhere, content floats on top */

.organism-hero {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 100svh;
	overflow: hidden;
	background: transparent;
}

.page--presentation .presentation-slide.organism-hero {
	min-height: 100%;
	height: 100%;
	overflow: visible;
}

.presentation-slide--hero.organism-hero {
	flex: 1;
	min-height: 100%;
}

.hero__body {
	position: relative;
	z-index: 2;
	display: flex;
	flex: 1;
	align-items: center;
	padding: 0 var(--hero-content-pad-x) var(--space-8);
}

.hero__content {
	width: min(100%, var(--content-max));
	container-type: inline-size;
}

.hero__tagline {
	margin: 0;
	max-width: none;
	margin-bottom: var(--space-5);
	font-family: var(--font-body);
	/* Scale to content width so longest locale (DE) stays on one line on narrow phones */
	font-size: clamp(0.4375rem, calc(100cqw / 36), 0.9375rem);
	font-weight: 400;
	line-height: 1.55;
	letter-spacing: 0.01em;
	color: var(--color-accent);
	white-space: nowrap;
}

.hero__offerings {
	margin: 0;
	max-width: none;
	font-family: var(--font-body);
	/* Scale to content width so longest locale (DE) stays on one line on narrow phones */
	font-size: clamp(0.4375rem, calc(100cqw / 41), 0.9375rem);
	font-weight: 400;
	line-height: 1.55;
	letter-spacing: 0.01em;
	color: var(--color-rose-deep);
	white-space: nowrap;
}

.hero__headline {
	margin-bottom: var(--space-8);
}

.hero__divider {
	margin-bottom: var(--space-8);
}

.hero__body-text {
	max-width: 29rem;
	margin-bottom: var(--space-6);
}

.hero__offerings {
	margin-bottom: var(--space-8);
}

.hero__ctas {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-5);
}

/* iPad Mini / compact tablet — wider copy column, tighter vertical rhythm */
@media (min-width: 48rem) and (max-width: 63.99rem), (min-width: 64rem) and (max-height: 52rem) {
	.presentation-slide--hero .atom-text--body {
		min-width: 34rem;
	}

	.presentation-slide--hero .hero__tagline {
		margin-bottom: var(--space-4);
	}

	.presentation-slide--hero .hero__headline {
		margin-bottom: var(--space-5);
	}

	.presentation-slide--hero .hero__divider {
		margin-bottom: var(--space-5);
	}

	.presentation-slide--hero .hero__body-text {
		margin-bottom: var(--space-5);
	}

	.presentation-slide--hero .hero__offerings {
		margin-bottom: var(--space-5);
	}

	.presentation-slide--hero .hero__ctas {
		gap: var(--space-4);
	}
}

.hero__leaf-shadow {
	position: absolute;
	left: -10%;
	bottom: 0;
	z-index: 1;
	width: min(70vw, 28rem);
	height: min(40vw, 16rem);
	pointer-events: none;
	background: radial-gradient(ellipse at 20% 80%, rgb(74 62 55 / 6%) 0%, transparent 70%);
}

@media (max-width: 48rem) {
	.hero__content {
		padding: 25px;
	}
	.atom-text--display .hero__headline {
		line-height: 1.4;
	}
}
@media (min-width: 48rem) {
	.hero__body {
		min-height: calc(100svh - 8rem);
		max-width: 42%;
		/* Extra air under header logo before hero copy (INN-041) */
		padding: var(--space-8) var(--hero-content-pad-x) var(--space-16);
	}

	.presentation-slide--hero .hero__body {
		flex: 1;
		min-height: 0;
	}

	.hero__leaf-shadow {
		left: 0;
		width: min(45vw, 24rem);
		height: min(30vw, 14rem);
	}
}

/* iPad Mini / compact tablet — portrait (768–1023px) */
@media (min-width: 48rem) and (max-width: 63.99rem) {
	.hero__body {
		max-width: min(92%, 42rem);
		align-items: flex-start;
		padding-top: var(--space-4);
		min-height: 0;
	}

	.presentation-slide--hero .hero__body {
		min-height: 0;
	}

	.hero__content {
		width: min(100%, 42rem);
		padding-top: clamp(1.25rem, 4vh, 3rem);
	}

	.presentation-slide--hero .atom-text--display {
		font-size: clamp(2.25rem, 5.8vw, 3.25rem);
		line-height: 1.08;
	}
}

/* iPad Mini / compact tablet — landscape (e.g. 1024×768) */
@media (min-width: 64rem) and (max-height: 52rem) {
	.hero__body {
		max-width: min(88%, 42rem);
		align-items: flex-start;
		padding-top: var(--space-3);
	}

	.hero__content {
		width: min(100%, 42rem);
		padding-top: clamp(1rem, 3vh, 2.5rem);
	}

	.presentation-slide--hero .atom-text--display {
		font-size: clamp(2rem, 4.2vw, 2.75rem);
		line-height: 1.08;
	}
}

@media (min-width: 64rem) {
	.organism-hero {
		--hero-split: 50%;
	}

	.hero__body {
		max-width: var(--hero-split);
		padding-bottom: clamp(3rem, 8vh, 5rem);
	}
}

/* Large tablet portrait (iPad Pro) — wider hero headlines */
@media (min-width: 64rem) and (max-width: 89.99rem) and (orientation: portrait) and (min-height: 52.01rem) {
	.organism-hero {
		--hero-split: 50%;
	}
}

/* Laptop L / wide — headlines take ~60% */
@media (min-width: 90rem) {
	.organism-hero {
		--hero-split: 60%;
	}

	.hero__body {
		margin-top: 2.5rem;
		padding-left: clamp(3rem, 7vw, 7rem);
	}
}

/* Phone landscape — headline left 50%, body right 50% */
@media (orientation: landscape) and (max-height: 31.25rem) {
	.presentation-slide--hero .hero__body {
		max-width: 100%;
		min-height: 0;
		align-items: center;
		padding-top: clamp(0.75rem, 4.5vh, 1.5rem);
		padding-bottom: var(--space-4);
	}

	.presentation-slide--hero .hero__content {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		column-gap: clamp(var(--space-4), 4vw, var(--space-8));
		row-gap: var(--space-2);
		width: 100%;
		max-width: none;
		align-self: center;
	}

	.presentation-slide--hero .hero__headline {
		grid-column: 1;
		grid-row: 2 / span 3;
		align-self: center;
		margin-bottom: 0;
	}

	.presentation-slide--hero .hero__tagline {
		grid-column: 1;
		grid-row: 1;
		align-self: end;
		max-width: none;
		margin-bottom: var(--space-2);
	}

	.presentation-slide--hero .hero__divider {
		grid-column: 2;
		grid-row: 1;
		margin-bottom: var(--space-2);
	}

	.presentation-slide--hero .hero__body-text {
		grid-column: 2;
		grid-row: 2;
		max-width: none;
		margin-bottom: var(--space-2);
	}

	.presentation-slide--hero .hero__offerings {
		grid-column: 2;
		grid-row: 3;
		max-width: none;
		margin-bottom: var(--space-2);
	}

	.presentation-slide--hero .hero__ctas {
		grid-column: 2;
		grid-row: 4;
	}

	.presentation-slide--hero .atom-text--display {
		font-size: clamp(1.25rem, 3.8vw, 1.875rem);
		line-height: 1.08;
	}
}

/* --- organisms/womens-health-intro.css --- */
/* Women's Health — shared slide shell plus the editorial hero (cream canvas, terracotta curve from the right, quiet silhouette) */

/* Shell — shared by the hero slide and the themes slide */
.organism-womens-health-intro {
	position: relative;
	display: flex;
	flex: 1;
	flex-direction: column;
	min-height: 0;
	overflow: hidden;
}

.page--presentation .presentation-slide.organism-womens-health-intro {
	min-height: 100%;
	height: 100%;
}

/* ── Editorial hero ─────────────────────────────────────────────── */

.organism-womens-health-intro--hero {
	isolation: isolate;
	justify-content: stretch;
	background: transparent;
}

/* Beats the cream fill that presentation.css puts on every womens-health slide */
.presentation-slide--womens-health.organism-womens-health-intro--hero {
	background: transparent;
}

/* Terracotta curve sweeping in from the right */
.organism-womens-health-intro--hero::after {
	content: '';
	position: absolute;
	inset: -2px;
	z-index: 1;
	background: color-mix(in srgb, var(--color-rose-tile) 90%, transparent);
	-webkit-mask-image: url('../images/womens-health-curve-right-mask.svg');
	mask-image: url('../images/womens-health-curve-right-mask.svg');
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: 100% 100%;
	mask-size: 100% 100%;
	pointer-events: none;
}

/* Decorations from the previous composition, kept in the markup but unused here */
.womens-health__texture,
.womens-health__body,
.womens-health__ornament {
	display: none;
}

.womens-health__wallpaper {
	position: absolute;
	inset: -2px;
	z-index: 0;
	overflow: hidden;
	background: transparent;
	pointer-events: none;
}

.womens-health__silhouette {
	position: absolute;
	top: 12%;
	bottom: 15%;
	left: -5%;
	z-index: 1;
	width: min(92vw, 42rem);
	overflow: visible;
	pointer-events: none;
}

.womens-health__silhouette picture {
	display: contents;
}

.womens-health__silhouette-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: left center;
	opacity: 0.17;
	filter: grayscale(1) sepia(0.25) contrast(1.35);
	mix-blend-mode: multiply;
	/* Fades out towards the bottom; soft top fade avoids a dark multiply seam */
	-webkit-mask-image: linear-gradient(
		to bottom,
		transparent 0%,
		#000 14%,
		#000 58%,
		transparent 100%
	);
	mask-image: linear-gradient(to bottom, transparent 0%, #000 14%, #000 58%, transparent 100%);
}

.womens-health__lower {
	position: relative;
	z-index: 3;
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	justify-content: flex-start;
	width: 100%;
	min-height: 100%;
	padding: clamp(17rem, 42svh, 24rem) var(--header-pad-x) clamp(2.5rem, 7svh, 5rem);
	background: transparent;
}

.womens-health__label {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	margin: 0 0 clamp(var(--space-6), 4vh, var(--space-10));
	font-family: var(--font-eyebrow);
	font-size: clamp(0.75rem, 2.8vw, 0.8125rem);
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--color-text);
}

.womens-health__label::after {
	content: '';
	flex: 1;
	max-width: 6.5rem;
	height: 1px;
	background: var(--color-rose-deep);
	opacity: 0.45;
}

.womens-health__statement {
	position: relative;
	z-index: 2;
	margin: 0;
	max-width: 9.2ch;
	font-family: var(--font-heading);
	font-size: clamp(2.8rem, 11.5vw, 5.5rem);
	font-weight: 500;
	line-height: 1.01;
	letter-spacing: -0.025em;
	color: var(--color-text);
	text-wrap: balance;
}

.womens-health__statement span {
	display: block;
}

.womens-health__statement-accent {
	color: var(--color-rose-deep);
}

@media (min-width: 48rem) {
	.womens-health__silhouette {
		top: 8%;
		bottom: 10%;
		left: 2%;
		width: min(58vw, 46rem);
	}

	.womens-health__lower {
		padding: clamp(18rem, 40svh, 27rem) max(var(--header-pad-x), 8vw) clamp(3rem, 8svh, 6rem);
	}

	.womens-health__statement {
		max-width: 10.5ch;
		font-size: clamp(4rem, 7.2vw, 6.75rem);
	}
}

@media (min-width: 48rem) and (orientation: portrait) {
	.womens-health__statement {
		font-size: clamp(3.25rem, min(7.2vw, 6.5svh), 6.75rem);
	}
}

@media (max-width: 47.99rem) {
	.womens-health__silhouette {
		top: 14%;
	}

	.womens-health__lower {
		/* svh was pushing copy below the visible scrollport on iOS (URL bar) */
		/* padding-top: clamp(8.5rem, 24svh, 13.5rem); */
		padding-bottom: calc(
			clamp(3.25rem, 7svh, 4.5rem) + env(safe-area-inset-bottom, 0px) + 2.75rem
		);
	}

	.womens-health__statement {
		min-width: 11ch;
		font-size: clamp(2.35rem, min(10.5vw, 6.25svh), 4.85rem);
	}
}

@media (max-width: 47.99rem) and (max-height: 860px) {
	.womens-health__lower {
		padding-top: clamp(7.5rem, 21svh, 11.5rem);
	}

	.womens-health__statement {
		font-size: clamp(2.15rem, min(9.8vw, 5.75svh), 4.35rem);
		line-height: 1.05;
	}
}

@media (min-width: 48rem) and (orientation: landscape) {
	.womens-health__lower {
		padding: clamp(9rem, 24svh, 13rem) max(var(--header-pad-x), 9vw) clamp(2.5rem, 7svh, 5rem);
	}

	.womens-health__statement {
		max-width: 16ch;
		font-size: clamp(3.5rem, 5.3vw, 5rem);
	}
}

/* Phone landscape */
@media (orientation: landscape) and (max-height: 31.25rem) {
	.womens-health__silhouette {
		top: 4%;
		bottom: 4%;
		left: 8%;
		width: min(42vw, 22rem);
	}

	.womens-health__lower {
		padding: clamp(7rem, 30svh, 9rem) max(var(--header-pad-x), 12vw) var(--space-6);
	}

	.womens-health__label {
		margin-bottom: var(--space-3);
	}

	.womens-health__statement {
		max-width: 14ch;
		font-size: clamp(2rem, 6vw, 3.25rem);
	}
}

@media (prefers-reduced-motion: no-preference) {
	@keyframes womens-health-in {
		from {
			opacity: 0;
			transform: translateY(1.25rem);
		}

		to {
			opacity: 1;
			transform: translateY(0);
		}
	}

	.womens-health__label,
	.womens-health__statement {
		animation: womens-health-in 900ms cubic-bezier(0.22, 1, 0.36, 1) both;
		animation-timeline: view();
		animation-range: entry 8% cover 55%;
	}
}

/* --- organisms/womens-health-index.css --- */
/* Women's Health index — section intro + mosaic hub */

.organism-womens-health-index {
	position: relative;
	display: flex;
	flex: 1;
	flex-direction: column;
	min-height: 0;
	overflow: hidden;
	background: var(--color-cream);
}

.page--presentation .presentation-slide.organism-womens-health-index {
	min-height: 100%;
	height: auto;
}

.womens-health-index__wave {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background: var(--color-cream);
	overflow: hidden;
}

.womens-health-index__wave::after {
	content: '';
	position: absolute;
	top: -8%;
	right: -6%;
	width: min(68%, 48rem);
	height: 120%;
	background: var(--color-rose-tile);
	border-radius: 48% 0 0 62% / 36% 0 0 48%;
	opacity: 0.95;
}

.womens-health-index__inner {
	position: relative;
	z-index: 1;
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: clamp(var(--space-8), 5vh, var(--space-12));
	justify-content: center;
	padding: var(--space-6) var(--header-pad-x) var(--space-10);
	min-height: 0;
}

.womens-health-index__intro {
	width: min(100%, 34rem);
}

.womens-health-index__label {
	margin-bottom: var(--space-5);
}

.womens-health-index__headline {
	margin: 0 0 var(--space-5);
	max-width: 16ch;
	font-size: clamp(1.85rem, 5.5vw, 3rem);
	line-height: 1.12;
	color: var(--color-text);
	text-wrap: balance;
}

.womens-health-index__headline-accent {
	color: var(--color-rose-deep);
	font-style: italic;
}

.womens-health-index__headline-accent::before {
	content: ' ';
}

.womens-health-index__lede {
	margin: 0;
	max-width: 34rem;
	color: var(--color-text-muted);
}

.womens-health-index__mosaic {
	width: 100%;
	min-height: 0;
}

@media (prefers-reduced-motion: no-preference) {
	@keyframes wh-index-in {
		from {
			opacity: 0;
			transform: translateY(1.25rem);
		}

		to {
			opacity: 1;
			transform: translateY(0);
		}
	}

	.womens-health-index__intro,
	.womens-health-index__mosaic {
		animation: wh-index-in 900ms cubic-bezier(0.22, 1, 0.36, 1) both;
		animation-timeline: view();
		animation-range: entry 6% cover 50%;
	}

	.womens-health-index__mosaic {
		animation-delay: 80ms;
	}
}

@media (min-width: 48rem) {
	.womens-health-index__inner {
		padding-block: var(--space-8) var(--space-12);
	}

	.womens-health-index__headline {
		font-size: clamp(2.25rem, 4vw, 3.25rem);
	}
}

/* Tablet / laptop landscape — lede beside headline to free vertical room for mosaic */
@media (min-width: 48rem) and (orientation: landscape) {
	.womens-health-index__inner {
		gap: clamp(var(--space-4), 3.5vh, var(--space-8));
		padding-block: clamp(var(--space-4), 3vh, var(--space-8))
			clamp(var(--space-5), 4vh, var(--space-10));
	}

	.womens-health-index__intro {
		display: grid;
		grid-template-columns: minmax(14rem, 1.15fr) minmax(12rem, 0.85fr);
		grid-template-areas:
			'label label'
			'headline lede';
		column-gap: clamp(var(--space-6), 3vw, var(--space-12));
		row-gap: var(--space-4);
		align-items: end;
		width: min(100%, 52rem);
	}

	.womens-health-index__label {
		grid-area: label;
		margin-bottom: 0;
	}

	.womens-health-index__headline {
		grid-area: headline;
		margin: 0;
		max-width: none;
		font-size: clamp(1.75rem, 3.2vw, 2.75rem);
	}

	.womens-health-index__lede {
		grid-area: lede;
		max-width: none;
		padding-bottom: 0.15em;
		font-size: clamp(0.8125rem, 1.35vw, 0.9375rem);
		line-height: 1.55;
	}
}

@media (min-width: 48rem) and (orientation: landscape) and (max-height: 52rem) {
	.womens-health-index__inner {
		gap: var(--space-4);
		justify-content: space-between;
	}

	.womens-health-index__intro {
		row-gap: var(--space-3);
	}

	.womens-health-index__headline {
		font-size: clamp(1.5rem, 2.8vw, 2.25rem);
	}

	.organism-womens-health-index .organism-mosaic-tile-grid__canvas {
		aspect-ratio: 5 / 1.95;
		min-height: clamp(14rem, 28vh, 20rem);
		grid-template-rows: repeat(2, minmax(0, 1fr));
	}
}

@media (orientation: landscape) and (max-height: 31.25rem) {
	.womens-health-index__inner {
		gap: var(--space-3);
		padding-block: var(--space-3) var(--space-5);
	}

	.womens-health-index__headline {
		font-size: clamp(1.35rem, 4vw, 1.75rem);
	}

	.womens-health-index__lede {
		font-size: 0.8125rem;
		line-height: 1.5;
	}
}

/* --- organisms/content-no-image.css --- */
/* Content no-image / mirrored presentation slides (INN-048, INN-050) */

.organism-content-no-image {
	display: grid;
	flex: 1;
	align-items: center;
	gap: clamp(var(--space-6), 4vw, var(--space-12));
	width: min(100%, 72rem);
	margin: 0 auto;
	padding: var(--space-8) var(--header-pad-x) var(--space-12);
	min-height: 0;
}

.content-no-image__main {
	display: grid;
	gap: clamp(var(--space-6), 3vw, var(--space-10));
	min-width: 0;
}

.content-no-image__copy {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	min-width: 0;
}

.content-no-image__index {
	display: inline-flex;
	flex-direction: column;
	gap: 0.45rem;
	align-self: flex-start;
	font-family: var(--font-body);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	color: var(--color-text-muted);
}

.content-no-image__index::after {
	content: '';
	display: block;
	width: 1.75rem;
	height: 1px;
	background: currentcolor;
	opacity: 0.55;
}

.content-no-image__title {
	margin: 0;
	font-family: var(--font-heading);
	font-size: clamp(1.5rem, 3.8vw, 2.35rem);
	font-weight: 500;
	line-height: 1.12;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--color-text);
	text-wrap: balance;
}

.content-no-image__tagline {
	margin: 0;
	font-family: var(--font-body);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-text-muted);
}

.content-no-image__body {
	display: flex;
	flex-direction: column;
	gap: 0.95em;
	margin: 0;
	max-width: 42rem;
}

.content-no-image__body p {
	margin: 0;
	font-family: var(--font-body);
	font-size: clamp(0.875rem, 1.2vw, 1rem);
	line-height: 1.65;
	color: var(--color-text);
	text-wrap: pretty;
}

.content-no-image__includes {
	min-width: 0;
}

.content-no-image__includes-heading {
	margin: 0 0 var(--space-4);
	font-family: var(--font-heading);
	font-size: clamp(1rem, 2vw, 1.125rem);
	font-weight: 500;
	font-style: italic;
	line-height: 1.35;
	color: var(--color-text);
}

.content-no-image__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.content-no-image__list li {
	position: relative;
	padding-left: 1rem;
	margin: 0 0 0.65em;
	font-family: var(--font-body);
	font-size: clamp(0.8125rem, 1.1vw, 0.9375rem);
	line-height: 1.5;
	color: var(--color-text);
}

.content-no-image__list li::before {
	content: '';
	position: absolute;
	top: 0.55em;
	left: 0;
	width: 0.28rem;
	height: 0.28rem;
	border-radius: 50%;
	background: var(--color-accent);
}

.content-no-image__header-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
	width: 100%;
}

@media (max-width: 55.99rem) and (orientation: portrait) {
	.organism-content-no-image--video-mobile .content-no-image__header-sticky {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: var(--space-3);
	}

	.organism-content-no-image--video-mobile .content-no-image__header-toolbar .atom-book-cta {
		position: relative;
		z-index: 1;
	}
}

.content-no-image__cta {
	margin-top: var(--space-2);
}

.content-no-image__ornament {
	display: grid;
	place-items: center;
	align-self: center;
	justify-self: center;
	width: min(100%, 16rem);
	aspect-ratio: 1;
	color: rgb(74 62 55 / 55%);
	pointer-events: none;
}

.content-no-image__ornament .atom-ornament,
.content-no-image__ornament svg {
	width: 100%;
	height: 100%;
}

.organism-content-no-image--mirrored .content-no-image__ornament {
	order: -1;
}

.content-no-image__video-bg {
	display: none;
}

.content-no-image__media {
	display: none;
}

@media (max-width: 55.99rem) and (orientation: portrait) {
	#sessions {
		background: #4a3e37;
	}

	#sessions.presentation-slide--wh-layout {
		justify-content: flex-start;
	}

	.organism-content-no-image--video-mobile {
		position: relative;
		display: flex;
		flex: 1;
		flex-direction: column;
		align-items: stretch;
		align-self: stretch;
		width: 100%;
		max-width: none;
		margin: 0;
		min-height: 100%;
		padding: 0 var(--header-pad-x) var(--space-10);
	}

	.content-no-image__video-bg {
		position: absolute;
		inset: 0 calc(-1 * var(--header-pad-x));
		z-index: 0;
		display: block;
		overflow: clip;
		pointer-events: none;
		background: #4a3e37;
	}

	.content-no-image__video-bg video,
	.content-no-image__video-veil {
		position: absolute;
		inset: 0;
		display: block;
		width: 100%;
		height: 100%;
	}

	.content-no-image__video-bg video {
		object-fit: cover;
		object-position: center 42%;
		opacity: 0.86;
		filter: saturate(0.48) contrast(0.7) brightness(0.62);
	}

	.content-no-image__video-veil {
		background:
			linear-gradient(to bottom, rgb(50 39 34 / 34%), rgb(50 39 34 / 58%)),
			rgb(245 241 233 / 5%);
	}

	.organism-content-no-image--video-mobile .content-no-image__main {
		position: relative;
		z-index: 1;
		display: flex;
		flex-direction: column;
		gap: 0;
		min-width: 0;
	}

	.organism-content-no-image--video-mobile .content-no-image__header-sticky {
		position: sticky;
		top: 0;
		z-index: 5;
		margin-inline: calc(-1 * var(--header-pad-x));
		padding-inline: calc(var(--header-pad-x) + var(--space-4));
		padding-top: var(--space-2);
		padding-bottom: clamp(var(--space-6), 4vh, var(--space-8));
		border: 0;
		box-shadow: none;
		background: transparent;
		transform: translateZ(0);
	}

	.organism-content-no-image--video-mobile .content-no-image__header-sticky::after {
		content: '';
		position: absolute;
		z-index: 0;
		pointer-events: none;
		left: 0;
		right: 0;
		top: calc(-1 * var(--space-2));
		bottom: 0;
		background: linear-gradient(
			180deg,
			rgb(28 22 18 / 86%) 0%,
			rgb(32 24 20 / 68%) 48%,
			rgb(32 24 20 / 34%) 72%,
			rgb(32 24 20 / 0%) 100%
		);
		-webkit-backdrop-filter: blur(28px) saturate(125%);
		backdrop-filter: blur(28px) saturate(125%);
		-webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 52%, transparent 100%);
		mask-image: linear-gradient(to bottom, #000 0%, #000 52%, transparent 100%);
	}

	.organism-content-no-image--video-mobile .content-no-image__header-sticky > * {
		position: relative;
		z-index: 1;
	}

	@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
		.organism-content-no-image--video-mobile .content-no-image__header-sticky::after {
			background: linear-gradient(
				180deg,
				rgb(28 22 18 / 94%) 0%,
				rgb(32 24 20 / 88%) 55%,
				rgb(32 24 20 / 55%) 78%,
				rgb(32 24 20 / 0%) 100%
			);
			-webkit-backdrop-filter: none;
			backdrop-filter: none;
		}
	}

	.organism-content-no-image--video-mobile .content-no-image__scroll-body {
		position: relative;
		z-index: 1;
		display: flex;
		flex-direction: column;
		gap: clamp(var(--space-6), 3vw, var(--space-10));
		padding-top: var(--space-2);
		min-width: 0;
	}

	.organism-content-no-image--video-mobile
		:is(
			.content-no-image__index,
			.content-no-image__title,
			.content-no-image__body p,
			.quick-facts__label,
			.quick-facts__value,
			.content-no-image__includes-heading,
			.content-no-image__list li,
			.content-no-image__cta,
			.atom-book-cta--on-dark
		) {
		color: var(--color-cream);
		text-shadow: 0 1px 14px rgb(32 24 20 / 58%);
	}

	.organism-content-no-image--video-mobile .atom-book-cta--on-dark {
		text-shadow: none;
	}

	.organism-content-no-image--video-mobile .content-no-image__tagline {
		color: #f0d7c3;
		text-shadow: 0 1px 12px rgb(32 24 20 / 55%);
	}

	.organism-content-no-image--video-mobile .quick-facts__label {
		color: #f0d7c3;
	}

	.organism-content-no-image--video-mobile .quick-facts__item:not(:first-child) {
		border-left-color: rgb(245 241 233 / 28%);
		border-top-color: rgb(245 241 233 / 28%);
	}

	.organism-content-no-image--video-mobile .molecule-quick-facts-note {
		border-top-color: rgb(245 241 233 / 28%);
	}

	.organism-content-no-image--video-mobile .content-no-image__list li::before {
		background: rgb(245 241 233 / 78%);
	}

	.organism-content-no-image--video-mobile .content-no-image__cta:hover,
	.organism-content-no-image--video-mobile .content-no-image__cta:focus-visible {
		color: #f0d7c3;
	}
}

@media (max-width: 55.99rem) and (orientation: portrait) and (prefers-reduced-motion: reduce) {
	.content-no-image__video-bg {
		background:
			linear-gradient(rgb(50 39 34 / 42%), rgb(50 39 34 / 62%)),
			var(--section-video-poster, none) center / cover no-repeat;
	}

	.content-no-image__video-bg video {
		display: none;
	}
}

@media (min-width: 56rem) {
	.organism-content-no-image {
		grid-template-columns: minmax(0, 1.35fr) minmax(12rem, 0.75fr);
	}

	.organism-content-no-image--editorial {
		grid-template-columns: minmax(18rem, 0.9fr) minmax(0, 1.1fr);
		align-items: center;
		gap: clamp(var(--space-6), 4vw, var(--space-12));
		width: min(100%, 74rem);
		padding: var(--space-8) var(--header-pad-x) var(--space-12);
	}

	.organism-content-no-image--editorial .content-no-image__media {
		display: block;
		grid-column: 1;
		width: min(100%, 26rem);
		aspect-ratio: 4 / 5;
		justify-self: end;
	}

	.organism-content-no-image--editorial .content-no-image__main {
		grid-column: 2;
		grid-template-columns: 1fr;
		width: min(100%, 32rem);
	}

	.content-no-image__header-sticky {
		display: flex;
		flex-direction: column;
		gap: var(--space-3);
	}

	.content-no-image__header-toolbar {
		width: 100%;
	}

	.content-no-image__scroll-body {
		display: flex;
		flex-direction: column;
		gap: clamp(var(--space-6), 3vw, var(--space-10));
		min-width: 0;
	}

	.content-no-image__header-sticky {
		position: static;
		margin: 0;
		padding: 0;
		background: transparent;
		box-shadow: none;
		transform: none;
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}

	.content-no-image__scroll-body {
		padding-top: 0;
	}

	.organism-content-no-image--mirrored {
		grid-template-columns: minmax(12rem, 0.75fr) minmax(0, 1.35fr);
	}

	.organism-content-no-image--mirrored .content-no-image__main {
		order: 2;
	}

	.organism-content-no-image--mirrored .content-no-image__ornament {
		order: 1;
	}

	.content-no-image__main {
		grid-template-columns: minmax(0, 1.15fr) minmax(12rem, 0.85fr);
		align-items: start;
	}

	.content-no-image__ornament {
		width: min(100%, 22rem);
	}
}

@media (min-width: 56rem) and (max-height: 48rem) {
	.organism-content-no-image {
		padding-block: var(--space-5) var(--space-8);
	}

	.content-no-image__body p,
	.content-no-image__list li {
		font-size: 0.8125rem;
		line-height: 1.5;
	}

	.content-no-image__ornament {
		width: min(100%, 15rem);
	}
}

/* --- organisms/text-media-cutout.css --- */
/* Text + fancy cutout media (INN-049) + tall portrait cutout (INN-051/052) */

.organism-text-media-cutout {
	position: relative;
	display: grid;
	flex: 1;
	align-items: center;
	gap: clamp(var(--space-6), 4vw, var(--space-12));
	width: min(100%, 74rem);
	margin: 0 auto;
	padding: var(--space-8) var(--header-pad-x) var(--space-12);
	min-height: 0;
}

.text-media-cutout__copy {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	min-width: 0;
	padding-left: var(--space-4);
}

.text-media-cutout__copy::before {
	content: '';
	position: absolute;
	top: 0.2rem;
	bottom: 0.2rem;
	left: 0;
	width: 1px;
	background: rgb(74 62 55 / 28%);
}

.text-media-cutout__index {
	margin: 0;
	font-family: var(--font-body);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	color: var(--color-text-muted);
}

.text-media-cutout__title {
	margin: 0;
	font-family: var(--font-heading);
	font-size: clamp(1.5rem, 3.6vw, 2.25rem);
	font-weight: 500;
	line-height: 1.12;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--color-text);
	text-wrap: balance;
}

.text-media-cutout__eyebrow {
	margin: 0;
	font-family: var(--font-body);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--color-accent);
}

.text-media-cutout__body {
	display: flex;
	flex-direction: column;
	gap: 0.95em;
	margin: 0;
	max-width: 38rem;
}

.text-media-cutout__body p {
	margin: 0;
	font-family: var(--font-body);
	font-size: clamp(0.875rem, 1.15vw, 1rem);
	line-height: 1.65;
	color: var(--color-text);
	text-wrap: pretty;
}

.text-media-cutout__featured {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	max-width: 28rem;
	padding: var(--space-5);
	border: 1px solid rgb(74 62 55 / 16%);
	border-radius: 0.35rem;
	background: rgb(255 255 255 / 35%);
}

.text-media-cutout__featured-title {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	margin: 0;
	font-family: var(--font-heading);
	font-size: 1.0625rem;
	font-weight: 500;
	color: var(--color-text);
}

.text-media-cutout__featured-icon {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 1.5rem;
	height: 1.5rem;
	color: var(--color-accent);
}

.text-media-cutout__featured-icon svg {
	width: 100%;
	height: 100%;
}

.text-media-cutout__featured-body {
	margin: 0;
	font-family: var(--font-body);
	font-size: 0.875rem;
	line-height: 1.55;
	color: var(--color-text);
}

.text-media-cutout__aside {
	margin: 0;
	font-family: var(--font-body);
	font-size: 0.8125rem;
	font-style: italic;
	color: var(--color-text-muted);
}

.text-media-cutout__together {
	margin: var(--space-4) 0 0;
	font-family: var(--font-heading);
	font-size: clamp(1.125rem, 2.4vw, 1.375rem);
	font-weight: 500;
	font-style: italic;
	line-height: 1.35;
	color: var(--color-text);
}

.text-media-cutout__closing {
	margin: var(--space-4) 0 0;
	max-width: 34rem;
	font-family: var(--font-heading);
	font-size: clamp(1rem, 2.2vw, 1.1875rem);
	font-weight: 500;
	font-style: italic;
	line-height: 1.45;
	color: var(--color-text);
}

.text-media-cutout__cta {
	margin-top: var(--space-2);
}

.text-media-cutout__chapters {
	position: relative;
	min-width: 0;
}

.text-media-cutout__identity {
	position: sticky;
	top: 0;
	z-index: 3;
	width: 100%;
	min-width: 0;
	padding-top: clamp(var(--space-6), 6vh, var(--space-10));
	padding-bottom: var(--space-8);
	isolation: isolate;
	background: transparent;
}

.text-media-cutout__identity-content {
	position: relative;
	z-index: 1;
}

.text-media-cutout__chapter {
	display: flex;
	align-items: center;
	min-height: 0;
	padding-block: var(--space-6);
}

.text-media-cutout__subheading {
	margin: 0;
	max-width: 28ch;
	font-family: var(--font-heading);
	font-size: clamp(1.25rem, 3.2vw, 1.75rem);
	font-weight: 500;
	line-height: 1.25;
	color: var(--color-text);
	text-wrap: balance;
}

.text-media-cutout__benefits {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	width: 100%;
	max-width: 36rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.text-media-cutout__benefits li {
	position: relative;
	padding: var(--space-4) var(--space-4) var(--space-4) 1.5rem;
	border-top: 1px solid rgb(74 62 55 / 16%);
	font-family: var(--font-body);
	font-size: clamp(0.875rem, 2.4vw, 1rem);
	line-height: 1.45;
	color: var(--color-text);
}

.text-media-cutout__benefits li::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 0;
	width: 0.45rem;
	height: 0.45rem;
	border: 1px solid var(--color-rose-deep);
	border-radius: 50%;
	transform: translateY(-50%);
}

.text-media-cutout__media {
	position: relative;
	justify-self: center;
	width: min(100%, 22rem);
	aspect-ratio: 3 / 4;
}

.text-media-cutout__media--bodywork {
	width: min(100%, 28rem);
	aspect-ratio: 4 / 5;
}

.text-media-cutout__frame {
	width: 100%;
	height: 100%;
	overflow: hidden;
	/* Organic left edge, straighter right — Version 1 tall portrait */
	clip-path: polygon(28% 0%, 100% 0%, 100% 100%, 24% 100%, 0% 82%, 18% 58%, 2% 34%, 22% 10%);
}

.text-media-cutout__frame--bodywork {
	clip-path: none;
	-webkit-mask-image: url('../images/abdominal-massage-oval-mask.svg');
	mask-image: url('../images/abdominal-massage-oval-mask.svg');
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: 100% 100%;
	mask-size: 100% 100%;
}

.text-media-cutout__frame picture {
	display: contents;
}

.text-media-cutout__frame img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
}

.text-media-cutout__frame--yoga img {
	object-position: center 59%;
}

.text-media-cutout__frame--yoga {
	-webkit-mask-image: url('../images/yoga-oval-mask.svg');
	mask-image: url('../images/yoga-oval-mask.svg');
}

.text-media-cutout__media--about {
	aspect-ratio: 1;
}

.text-media-cutout__about-mobile {
	align-self: center;
	width: min(100%, 24rem);
	aspect-ratio: 1;
	margin-bottom: var(--space-4);
}

.organism-text-media-cutout--about .text-media-cutout__index {
	display: none;
}

/*
 * Marble-backdrop bodywork — frosted sticky headline band on all chapter slides.
 * Mobile portrait video slides (#abdominal-therapy, #yoga, #events) override ::after
 * later with the dark frosted band over the pinned video.
 */
.organism-text-media-cutout--bodywork .text-media-cutout__identity {
	top: 0;
	z-index: 5;
	margin-inline: calc(-1 * var(--header-pad-x));
	padding-inline: calc(var(--header-pad-x) + var(--space-4));
	padding-top: var(--space-2);
	padding-bottom: clamp(var(--space-6), 4vh, var(--space-8));
	border: 0;
	box-shadow: none;
	background: transparent;
	isolation: auto;
	transform: translateZ(0);
}

.organism-text-media-cutout--bodywork .text-media-cutout__identity::after {
	content: '';
	position: absolute;
	z-index: 0;
	pointer-events: none;
	inset-inline: 0 calc(-1 * var(--text-media-identity-mask-extend));
	top: calc(-1 * var(--space-2));
	bottom: 0;
	background: linear-gradient(
		180deg,
		rgb(245 241 233 / 97%) 0%,
		rgb(245 241 233 / 88%) 32%,
		rgb(245 241 233 / 72%) 52%,
		rgb(245 241 233 / 42%) 72%,
		rgb(245 241 233 / 0%) 100%
	);
	-webkit-backdrop-filter: blur(28px) saturate(125%);
	backdrop-filter: blur(28px) saturate(125%);
	-webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 58%, transparent 100%);
	mask-image: linear-gradient(to bottom, #000 0%, #000 58%, transparent 100%);
}

.organism-text-media-cutout--bodywork
	.text-media-cutout__identity-content.text-media-cutout__copy::before {
	display: none;
}

.organism-text-media-cutout--bodywork .text-media-cutout__identity-content > * {
	position: relative;
	z-index: 1;
}

.organism-text-media-cutout--bodywork .text-media-cutout__copy .text-media-cutout__body {
	max-width: 100%;
}

@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
	.organism-text-media-cutout--bodywork .text-media-cutout__identity::after {
		background: linear-gradient(
			180deg,
			rgb(245 241 233 / 94%) 0%,
			rgb(245 241 233 / 78%) 55%,
			rgb(245 241 233 / 42%) 78%,
			rgb(245 241 233 / 0%) 100%
		);
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}
}

@media (max-width: 55.99rem) {
	.organism-text-media-cutout--video-mobile .text-media-cutout__identity::after {
		bottom: 0;
	}
}

.text-media-cutout__header-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
	width: 100%;
}

.text-media-cutout__identity-content:has(.text-media-cutout__header-toolbar) {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--space-3);
}

.text-media-cutout__identity-content:has(.text-media-cutout__header-toolbar)
	.text-media-cutout__header-toolbar {
	position: relative;
	z-index: 1;
}

#womens-health-index .text-media-cutout__title {
	max-width: 14ch;
	font-size: clamp(1.55rem, 6.5vw, 2.35rem);
	line-height: 1.12;
	letter-spacing: 0.02em;
	text-transform: none;
}

.text-media-cutout__title--sentence {
	font-size: clamp(1.5rem, 3.6vw, 2.125rem);
	line-height: 1.2;
	letter-spacing: 0.02em;
	text-transform: none;
}

/* Text-only editorial chapters — same snap/offset as About, ohne Mediaspalte */
.organism-text-media-cutout--text-only {
	width: 100%;
	max-width: 90rem;
	margin-inline: auto;
	padding: var(--space-6) var(--header-pad-x) var(--space-10);
}

.organism-text-media-cutout--text-only .text-media-cutout__chapters {
	width: 100%;
}

.organism-text-media-cutout--text-only .text-media-cutout__copy {
	width: min(100%, 36rem);
	margin-inline: auto;
}

.organism-text-media-cutout--text-only.text-media-cutout-host--wide
	.text-media-cutout__chapter--wide
	.text-media-cutout__copy {
	width: min(100%, 68rem);
}

@media (min-width: 56rem) {
	.organism-text-media-cutout--text-only .text-media-cutout__copy {
		width: min(100%, 32rem);
		margin-left: auto;
		margin-right: 0;
	}

	.organism-text-media-cutout--text-only.organism-text-media-cutout--wide
		.text-media-cutout__chapter--wide
		.text-media-cutout__copy {
		width: min(100%, 68rem);
		margin-inline: auto;
	}
}

.text-media-cutout__title--philosophy {
	max-width: 14ch;
	font-size: clamp(1.75rem, 6.5vw, 2.35rem);
	line-height: 1.12;
	letter-spacing: normal;
	text-transform: none;
}

.text-media-cutout__title-accent {
	color: var(--color-accent);
}

.text-media-cutout__title-accent::before {
	content: ' ';
}

.text-media-cutout__lede {
	color: var(--color-text-muted);
}

.text-media-cutout__eyebrow--muted {
	font-family: var(--font-body);
	font-size: clamp(0.8125rem, 1.4vw, 0.9375rem);
	font-weight: 400;
	line-height: 1.55;
	letter-spacing: normal;
	text-transform: none;
	color: var(--color-text-muted);
}

@media (max-width: 55.99rem) {
	.organism-text-media-cutout--philosophy .text-media-cutout__media--philosophy-desktop {
		display: none;
	}

	#philosophy .text-media-cutout__about-mobile,
	#womens-health-index .text-media-cutout__about-mobile {
		aspect-ratio: 4 / 5;
	}

	#philosophy .text-media-cutout__about-mobile .editorial-image,
	#womens-health-index .text-media-cutout__about-mobile .editorial-image {
		height: 100%;
	}
}

.text-media-cutout__frame--plain {
	clip-path: none;
	-webkit-mask-image: none;
	mask-image: none;
}

.text-media-cutout__frame--plain img {
	object-fit: contain;
	object-position: center;
}

@media (max-width: 55.99rem) {
	.organism-text-media-cutout--about .text-media-cutout__media--about-desktop {
		display: none;
	}
}

.text-media-cutout__accent {
	position: absolute;
	left: -0.35rem;
	bottom: 8%;
	z-index: 1;
	width: clamp(3.5rem, 8vw, 5rem);
	aspect-ratio: 1;
	color: rgb(74 62 55 / 62%);
	pointer-events: none;
}

.text-media-cutout__accent .atom-ornament,
.text-media-cutout__accent svg {
	width: 100%;
	height: 100%;
}

/* Bodywork sticky scroll — image stays pinned while chapters flow on the left */
.organism-text-media-cutout--bodywork {
	/* sticky-chapters.js replaces the fallbacks with the measured header and scrollport height */
	--text-media-identity-offset: var(--sticky-chapters-offset, clamp(7.5rem, 20vh, 12rem));
	--text-media-chapter-height: calc(
		var(--sticky-chapters-viewport, 100svh) - var(--text-media-identity-offset) - 2px
	);
	/* Frosted band extends past the text column so scrolling copy cannot peek beside titles */
	--text-media-identity-mask-extend: clamp(3.5rem, 9vw, 11rem);
	width: 100%;
	padding: var(--space-6) var(--header-pad-x) var(--space-10);
}

.organism-text-media-cutout--bodywork .text-media-cutout__media--bodywork {
	order: -1;
	margin-bottom: var(--space-4);
}

.organism-text-media-cutout--bodywork .text-media-cutout__chapter {
	/* One wheel/touch gesture advances one chapter, then yoga — like sessions.
	   The margin parks every chapter below the pinned header, matching section entry. */
	position: relative;
	z-index: 1;
	scroll-snap-align: start;
	scroll-snap-stop: always;
	scroll-margin-top: var(--text-media-identity-offset);
	/* Top-aligned so each chapter starts where the first one does on entry */
	align-items: flex-start;
	/* A snap area taller than the scrollport would let the browser rest between chapters */
	min-height: var(--text-media-chapter-height);
	padding-block: var(--space-4) clamp(var(--space-8), 8vh, var(--space-14));
}

.text-media-cutout__video-bg {
	display: none;
}

@media (max-width: 55.99rem) and (orientation: portrait) {
	:is(#abdominal-therapy, #yoga, #events) {
		background: #4a3e37;
	}

	.organism-text-media-cutout--video-mobile {
		position: relative;
		background: transparent;
	}

	:is(#abdominal-therapy, #yoga, #events).presentation-slide--wh-layout {
		background: #4a3e37;
	}

	/* The layer spans exactly one slide, so the pinned video inside it can never
	   bleed into the following section. */
	.organism-text-media-cutout--video-mobile .text-media-cutout__video-bg {
		position: absolute;
		inset: 0 calc(-1 * var(--header-pad-x));
		z-index: 0;
		display: block;
		overflow: clip;
		pointer-events: none;
	}

	.organism-text-media-cutout--video-mobile .text-media-cutout__chapters {
		position: relative;
		z-index: 1;
	}

	.text-media-cutout__video-bg-sticky {
		position: sticky;
		top: 0;
		width: 100%;
		height: var(--sticky-chapters-viewport, 100svh);
		overflow: hidden;
		background: #4a3e37;
	}

	.text-media-cutout__video-bg video,
	.text-media-cutout__video-veil {
		position: absolute;
		inset: 0;
		display: block;
		width: 100%;
		height: 100%;
	}

	.text-media-cutout__video-bg video {
		object-fit: cover;
		object-position: center;
		opacity: 0.82;
		filter: saturate(0.5) contrast(0.74) brightness(0.8);
	}

	.text-media-cutout__video-veil {
		background:
			linear-gradient(to bottom, rgb(50 39 34 / 20%), rgb(50 39 34 / 48%)),
			rgb(245 241 233 / 6%);
	}

	.organism-text-media-cutout--video-mobile .text-media-cutout__media {
		display: none;
	}

	/*
	 * Frosted sticky title band: tint + blur live on ::after (masked fade) so the
	 * header box edge never cuts backdrop-filter abruptly.
	 */
	.organism-text-media-cutout--video-mobile .text-media-cutout__identity {
		position: sticky;
		top: 0;
		z-index: 5;
		margin-inline: calc(-1 * var(--header-pad-x));
		padding-inline: calc(var(--header-pad-x) + var(--space-4));
		padding-bottom: clamp(var(--space-6), 4vh, var(--space-8));
		border: 0;
		box-shadow: none;
		background: transparent;
		isolation: auto;
		scroll-snap-align: none;
		scroll-margin-top: 0;
		transform: translateZ(0);
	}

	.organism-text-media-cutout--video-mobile .text-media-cutout__identity::after {
		content: '';
		position: absolute;
		z-index: 0;
		pointer-events: none;
		inset-inline: 0 calc(-1 * var(--text-media-identity-mask-extend));
		top: calc(-1 * var(--space-4));
		bottom: -2.75rem;
		background: linear-gradient(
			180deg,
			rgb(28 22 18 / 86%) 0%,
			rgb(32 24 20 / 68%) 48%,
			rgb(32 24 20 / 34%) 72%,
			rgb(32 24 20 / 0%) 100%
		);
		-webkit-backdrop-filter: blur(28px) saturate(125%);
		backdrop-filter: blur(28px) saturate(125%);
		-webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 52%, transparent 100%);
		mask-image: linear-gradient(to bottom, #000 0%, #000 52%, transparent 100%);
	}

	.organism-text-media-cutout--video-mobile .text-media-cutout__identity::before {
		display: none;
	}

	.organism-text-media-cutout--video-mobile
		.text-media-cutout__identity-content.text-media-cutout__copy::before {
		display: none;
	}

	.organism-text-media-cutout--video-mobile .text-media-cutout__identity-content > * {
		position: relative;
		z-index: 1;
	}

	@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
		.organism-text-media-cutout--video-mobile .text-media-cutout__identity::after {
			background: linear-gradient(
				180deg,
				rgb(28 22 18 / 94%) 0%,
				rgb(32 24 20 / 88%) 55%,
				rgb(32 24 20 / 55%) 78%,
				rgb(32 24 20 / 0%) 100%
			);
			-webkit-backdrop-filter: none;
			backdrop-filter: none;
		}
	}

	.organism-text-media-cutout--video-mobile .text-media-cutout__copy::before {
		display: none;
	}

	.organism-text-media-cutout--video-mobile .text-media-cutout__chapter {
		position: relative;
		z-index: 1;
		scroll-snap-align: start;
		scroll-snap-stop: always;
		scroll-margin-top: var(--text-media-identity-offset);
		min-height: var(--text-media-chapter-height);
		align-items: flex-start;
		padding-block: var(--space-4) clamp(var(--space-8), 8vh, var(--space-14));
		animation: none;
	}

	.organism-text-media-cutout--video-mobile.organism-text-media-cutout--bodywork {
		padding: var(--space-6) var(--header-pad-x) var(--space-10);
	}

	.organism-text-media-cutout--video-mobile
		:is(
			.text-media-cutout__index,
			.text-media-cutout__title,
			.text-media-cutout__body p,
			.text-media-cutout__quick-facts,
			.quick-facts__label,
			.quick-facts__value,
			.text-media-cutout__subheading,
			.text-media-cutout__benefits li,
			.text-media-cutout__featured-title,
			.text-media-cutout__featured-body,
			.text-media-cutout__aside,
			.text-media-cutout__cta,
			.atom-book-cta--on-dark
		) {
		color: var(--color-cream);
		text-shadow: 0 1px 14px rgb(32 24 20 / 58%);
	}

	.organism-text-media-cutout--video-mobile .atom-book-cta--on-dark {
		text-shadow: none;
	}

	.organism-text-media-cutout--video-mobile .text-media-cutout__eyebrow {
		color: #f0d7c3;
		text-shadow: 0 1px 12px rgb(32 24 20 / 55%);
	}

	.organism-text-media-cutout--video-mobile .molecule-quick-facts-note {
		border-top-color: rgb(245 241 233 / 28%);
	}

	.organism-text-media-cutout--video-mobile .quick-facts__label {
		color: #f0d7c3;
	}

	.organism-text-media-cutout--video-mobile .quick-facts__item:not(:first-child) {
		border-left-color: rgb(245 241 233 / 28%);
		border-top-color: rgb(245 241 233 / 28%);
	}

	.organism-text-media-cutout--video-mobile .text-media-cutout__benefits li {
		border-top-color: rgb(245 241 233 / 28%);
	}

	.organism-text-media-cutout--video-mobile .text-media-cutout__benefits li::before {
		border-color: rgb(245 241 233 / 76%);
	}

	.organism-text-media-cutout--video-mobile .text-media-cutout__cta:hover,
	.organism-text-media-cutout--video-mobile .text-media-cutout__cta:focus-visible {
		color: #f0d7c3;
	}

	.organism-text-media-cutout--video-mobile .text-media-cutout__featured {
		border-color: rgb(245 241 233 / 28%);
		background: rgb(32 24 20 / 28%);
		-webkit-backdrop-filter: blur(4px);
		backdrop-filter: blur(4px);
	}

	.organism-text-media-cutout--video-mobile .text-media-cutout__featured-icon {
		color: #f0d7c3;
	}
}

@media (max-width: 55.99rem) and (orientation: portrait) and (prefers-reduced-motion: reduce) {
	.organism-text-media-cutout--video-mobile .text-media-cutout__video-bg-sticky {
		background:
			linear-gradient(rgb(50 39 34 / 34%), rgb(50 39 34 / 52%)),
			var(--section-video-poster, none) center / cover no-repeat;
	}

	.text-media-cutout__video-bg video {
		display: none;
	}
}

@media (prefers-reduced-motion: no-preference) {
	/* Opacity only — a transform would shift the snap area and break chapter alignment */
	@keyframes text-media-cutout-chapter-in {
		from {
			opacity: 0.35;
		}

		to {
			opacity: 1;
		}
	}

	.organism-text-media-cutout--bodywork .text-media-cutout__chapter {
		animation: text-media-cutout-chapter-in linear both;
		animation-timeline: view();
		animation-range: entry 5% cover 38%;
	}

	/* Sticky chapter scroll: partial opacity reads as “washed out” body copy at snap */
	[data-sticky-chapters] .text-media-cutout__chapter {
		animation: none;
	}
}

@media (min-width: 56rem) {
	.text-media-cutout__about-mobile {
		display: none;
	}

	.organism-text-media-cutout {
		grid-template-columns: minmax(0, 1.1fr) minmax(16rem, 0.9fr);
	}

	.organism-text-media-cutout--offering {
		gap: clamp(var(--space-6), 4vw, var(--space-12));
		width: min(100%, 74rem);
		margin-inline: auto;
		padding: var(--space-8) var(--header-pad-x) var(--space-12);
	}

	.organism-text-media-cutout--offering .text-media-cutout__media {
		width: min(100%, 26rem);
		aspect-ratio: 4 / 5;
		justify-self: start;
	}

	.organism-text-media-cutout--offering .text-media-cutout__copy {
		width: min(100%, 32rem);
	}

	.organism-text-media-cutout--offering > .text-media-cutout__copy {
		justify-self: end;
	}

	.organism-text-media-cutout--bodywork {
		grid-template-columns: minmax(0, 1.1fr) minmax(18rem, 0.9fr);
		align-items: start;
	}

	.organism-text-media-cutout--bodywork .text-media-cutout__chapters {
		grid-column: 1;
		grid-row: 1;
		overflow-x: clip;
	}

	.organism-text-media-cutout--bodywork .text-media-cutout__media--bodywork {
		/* A viewport-tall sticky box keeps the centred image inside its own slide —
		   a translated sticky image would bleed into the previous and next section. */
		position: sticky;
		top: 0;
		display: grid;
		align-content: center;
		order: 0;
		align-self: start;
		grid-column: 2;
		grid-row: 1;
		width: 100%;
		max-width: 26rem;
		height: var(--sticky-chapters-viewport, 100svh);
		aspect-ratio: auto;
		margin-bottom: 0;
	}

	.organism-text-media-cutout--bodywork .text-media-cutout__media--bodywork .editorial-image {
		height: auto;
		aspect-ratio: 4 / 5;
	}

	.organism-text-media-cutout--about .text-media-cutout__media--about {
		max-width: 24rem;
	}

	.organism-text-media-cutout--philosophy .text-media-cutout__media--bodywork,
	#womens-health-index .text-media-cutout__media--bodywork {
		aspect-ratio: 4 / 5;
	}

	.organism-text-media-cutout--about .text-media-cutout__media--about .editorial-image,
	.organism-text-media-cutout--about .text-media-cutout__about-mobile .editorial-image {
		width: 100%;
		aspect-ratio: 1;
		height: auto;
	}

	#womens-health-index .text-media-cutout__media--about .editorial-image--womens-health,
	.organism-text-media-cutout--philosophy
		.text-media-cutout__media--bodywork
		.editorial-image--philosophy {
		aspect-ratio: 4 / 5;
	}

	.organism-text-media-cutout--bodywork .text-media-cutout__chapter {
		padding-block: var(--space-4) clamp(var(--space-10), 9vh, var(--space-16));
	}

	.organism-text-media-cutout--bodywork .text-media-cutout__copy {
		width: min(100%, 32rem);
		margin-left: auto;
	}

	/*
	 * Full-width frosted shell: text stays in the trailing 32rem column, mask spans
	 * the whole chapter track (+ extend) so snap chapter 2+ cannot peek beside titles.
	 */
	.organism-text-media-cutout--bodywork .text-media-cutout__identity {
		display: grid;
		grid-template-columns: minmax(0, 1fr) min(100%, 32rem);
		align-items: start;
	}

	.organism-text-media-cutout--bodywork .text-media-cutout__identity-content {
		grid-column: 2;
		width: 100%;
		max-width: none;
		margin-inline: 0;
	}

	.organism-text-media-cutout--bodywork-reverse .text-media-cutout__identity {
		grid-template-columns: min(100%, 32rem) minmax(0, 1fr);
	}

	.organism-text-media-cutout--bodywork-reverse .text-media-cutout__identity-content {
		grid-column: 1;
	}

	/* Text column sits right of the image — bleed toward gap and outer edge */
	.organism-text-media-cutout--bodywork-reverse .text-media-cutout__identity::after {
		inset-inline: calc(-1 * var(--text-media-identity-mask-extend));
	}

	.organism-text-media-cutout--bodywork .text-media-cutout__benefits {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: clamp(var(--space-5), 3vw, var(--space-8));
	}

	.organism-text-media-cutout--bodywork-reverse {
		grid-template-columns: minmax(18rem, 0.9fr) minmax(0, 1.1fr);
	}

	.organism-text-media-cutout--bodywork-reverse .text-media-cutout__chapters {
		grid-column: 2;
	}

	.organism-text-media-cutout--bodywork-reverse .text-media-cutout__media--bodywork {
		grid-column: 1;
		justify-self: end;
		margin-left: 0;
	}

	.organism-text-media-cutout--bodywork-reverse .text-media-cutout__copy {
		margin-left: 0;
	}

	.organism-text-media-cutout:not(.organism-text-media-cutout--offering)
		.text-media-cutout__media {
		width: min(100%, 26rem);
		justify-self: end;
	}
}

@media (min-width: 56rem) and (max-height: 48rem) {
	.organism-text-media-cutout {
		padding-block: var(--space-5) var(--space-8);
	}

	.organism-text-media-cutout--bodywork {
		--text-media-identity-offset: var(--sticky-chapters-offset, clamp(6.5rem, 18vh, 10rem));
	}

	.organism-text-media-cutout--bodywork .text-media-cutout__chapter {
		padding-block: var(--space-8);
	}

	.organism-text-media-cutout--bodywork .text-media-cutout__chapter:first-of-type {
		padding-top: var(--space-3);
	}

	.text-media-cutout__body p {
		font-size: 0.8125rem;
		line-height: 1.5;
	}

	.text-media-cutout__media {
		width: min(100%, 18rem);
	}
}

/* --- organisms/booking-modal.css --- */
/* Booking modal — editorial contact dialog (portrait + channel cards + form) */

html.booking-modal-open .presentation-scroll {
	overflow: hidden;
}

.organism-booking-modal {
	--booking-bg: #f7f3ee;
	--booking-bg-soft: #f2ece5;
	--booking-border: rgb(165 145 120 / 18%);
	--booking-accent: #b38455;
	--booking-accent-hover: #c49262;
	--booking-headline: #4b3b33;
	--booking-body: #6b625b;
	--booking-input-bg: rgb(255 255 255 / 42%);
	/* Set from JS on mobile — design canvas 390px, scaled to fit viewport */
	--booking-design-width: 390;
	--booking-ui-scale: 1;
	--booking-motion-scale: 0.97;

	position: fixed;
	inset: 0;
	z-index: 1200;
	display: grid;
	place-items: center;
	padding: max(var(--space-4), env(safe-area-inset-top, 0px))
		max(var(--space-4), env(safe-area-inset-right, 0px))
		max(var(--space-4), env(safe-area-inset-bottom, 0px))
		max(var(--space-4), env(safe-area-inset-left, 0px));
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition:
		opacity 0.25s ease,
		visibility 0.25s ease;
}

.organism-booking-modal.is-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.booking-modal__backdrop {
	position: absolute;
	inset: 0;
	border: 0;
	background: rgb(43 34 28 / 46%);
	cursor: pointer;
}

.booking-modal__scale-host {
	position: relative;
	z-index: 1;
	max-width: 100%;
	max-height: 100%;
}

.booking-modal__dialog {
	position: relative;
	z-index: 1;
	width: min(100%, 72rem);
	max-height: min(94svh, 56rem);
	overflow: auto;
	border: 1px solid var(--booking-border);
	border-radius: 0.65rem;
	background-color: var(--booking-bg);
	background-image: url('../images/hero-texture.png');
	background-size: 420px auto;
	background-repeat: repeat;
	box-shadow: 0 28px 72px rgb(43 34 28 / 16%);
	opacity: 0;
	transform: scale(var(--booking-motion-scale));
	transform-origin: center center;
	transition:
		opacity 0.25s ease,
		transform 0.25s ease;
}

.organism-booking-modal.is-open .booking-modal__dialog {
	opacity: 1;
	--booking-motion-scale: 1;
	transform: scale(var(--booking-motion-scale));
}

@media (prefers-reduced-motion: reduce) {
	.organism-booking-modal {
		--booking-motion-scale: 1;
	}

	.booking-modal__dialog {
		opacity: 1;
		transition: none;
	}
}

.booking-modal__dialog::before {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: linear-gradient(
		165deg,
		rgb(247 243 238 / 94%) 0%,
		rgb(247 243 238 / 88%) 48%,
		rgb(242 236 229 / 92%) 100%
	);
	pointer-events: none;
}

.booking-modal__close {
	position: absolute;
	top: var(--space-4);
	right: var(--space-4);
	z-index: 4;
	display: grid;
	place-items: center;
	width: 3.5rem;
	height: 3.5rem;
	padding: 0;
	border: 1px solid var(--booking-border);
	border-radius: 50%;
	background: rgb(255 255 255 / 38%);
	font-family: var(--font-body);
	font-size: 1.5rem;
	font-weight: 300;
	line-height: 1;
	color: var(--booking-headline);
	cursor: pointer;
	transition:
		background var(--transition-base),
		border-color var(--transition-base);
}

.booking-modal__close:hover,
.booking-modal__close:focus-visible {
	border-color: rgb(165 145 120 / 32%);
	background: rgb(255 255 255 / 58%);
	outline: none;
}

.booking-modal__layout {
	position: relative;
	z-index: 1;
	display: grid;
	gap: clamp(var(--space-8), 5vw, var(--space-10));
	padding: clamp(var(--space-8), 6vw, var(--space-12)) clamp(var(--space-6), 5vw, var(--space-10));
}

/* —— Intro column —— */

.booking-modal__intro {
	display: flex;
	flex-direction: column;
	gap: var(--space-6);
	min-width: 0;
}

.booking-modal__portrait-wrap {
	position: relative;
	width: min(100%, 15rem);
	margin-inline: auto;
}

.booking-modal__botanical {
	position: absolute;
	left: -18%;
	top: 8%;
	z-index: 0;
	width: 72%;
	opacity: 0.12;
	pointer-events: none;
	filter: saturate(0.85);
}

.booking-modal__portrait {
	position: relative;
	z-index: 1;
	margin: 0;
	aspect-ratio: 4 / 5.2;
	overflow: hidden;
	border-radius: 48% 48% 42% 42% / 38% 38% 58% 58%;
	-webkit-mask-image: radial-gradient(ellipse 92% 96% at 50% 38%, #000 58%, transparent 92%);
	mask-image: radial-gradient(ellipse 92% 96% at 50% 38%, #000 58%, transparent 92%);
}

.booking-modal__portrait img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 18%;
}

.booking-modal__intro-copy {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	text-align: center;
}

.booking-modal__badge {
	display: grid;
	place-items: center;
	align-self: center;
	width: 1.35rem;
	height: 1.35rem;
	border: 1px solid var(--booking-border);
	border-radius: 50%;
	font-family: var(--font-body);
	font-size: 0.65rem;
	font-style: italic;
	color: var(--booking-accent);
}

.booking-modal__title {
	margin: 0;
	font-family: var(--font-heading);
	font-size: clamp(1.65rem, 4.5vw, 2.15rem);
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: 0.02em;
	color: var(--booking-headline);
}

.booking-modal__rule {
	width: min(5.5rem, 40%);
	height: 1px;
	margin: 0 auto;
	background: var(--booking-border);
}

.booking-modal__lede {
	margin: 0;
	max-width: 22rem;
	margin-inline: auto;
	font-family: var(--font-body);
	font-size: clamp(0.875rem, 2.2vw, 0.9375rem);
	line-height: 1.65;
	letter-spacing: 0.02em;
	color: var(--booking-body);
	text-wrap: pretty;
}

.booking-modal__intro-ornament {
	display: grid;
	place-items: center;
	margin-top: auto;
	padding-top: var(--space-4);
	color: var(--booking-accent);
	opacity: 0.08;
}

.booking-modal__intro-ornament svg {
	width: 3.25rem;
	height: 3.25rem;
}

/* —— Form column —— */

.booking-modal__panel {
	display: flex;
	flex-direction: column;
	gap: var(--space-6);
	min-width: 0;
	padding-top: clamp(0px, 1vw, var(--space-2));
}

.booking-modal__channels {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}

.booking-modal__channels-legend {
	margin: 0 0 var(--space-2);
	padding: 0;
	font-family: var(--font-body);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--booking-body);
}

.booking-modal__channel {
	position: relative;
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: var(--space-4);
	min-height: 3.75rem;
	padding: var(--space-3) var(--space-4);
	border: 1px solid var(--booking-border);
	border-radius: 0.65rem;
	background: var(--booking-input-bg);
	cursor: pointer;
	transition:
		background var(--transition-base),
		border-color var(--transition-base);
}

.booking-modal__channel[hidden] {
	display: none;
}

.booking-modal__channel:hover {
	background: rgb(255 255 255 / 58%);
}

.booking-modal__channel:has(input:checked) {
	border-color: color-mix(in srgb, var(--booking-accent) 55%, var(--booking-border));
	background: rgb(255 255 255 / 62%);
}

.booking-modal__channel input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.booking-modal__channel-icon {
	display: grid;
	place-items: center;
	width: 1.35rem;
	height: 1.35rem;
	color: var(--booking-headline);
}

.booking-modal__channel-icon svg {
	width: 100%;
	height: 100%;
	fill: none;
	stroke: currentcolor;
	stroke-width: 1.25;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.booking-modal__channel-icon--filled svg,
.booking-modal__channel-icon--filled svg path {
	fill: currentcolor;
	stroke: none;
}

.booking-modal__channel-label {
	font-family: var(--font-body);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--booking-headline);
}

.booking-modal__channel-radio {
	display: block;
	width: 1.125rem;
	height: 1.125rem;
	border: 1px solid rgb(165 145 120 / 42%);
	border-radius: 50%;
	transition:
		border-color var(--transition-base),
		box-shadow var(--transition-base);
}

.booking-modal__channel:has(input:checked) .booking-modal__channel-radio {
	border-color: var(--booking-accent);
	box-shadow: inset 0 0 0 0.28rem var(--booking-accent);
}

.booking-modal__form {
	display: flex;
	flex-direction: column;
	gap: var(--space-6);
	margin-top: 2.5rem;
}

.booking-modal__field {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
}

.booking-modal__label {
	font-family: var(--font-body);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--booking-body);
}

.booking-modal__input,
.booking-modal__textarea {
	width: 100%;
	padding: 0 1rem;
	border: 1px solid var(--booking-border);
	border-radius: 0.65rem;
	background: var(--booking-input-bg);
	font-family: var(--font-body);
	font-size: 0.9375rem;
	line-height: 1.45;
	letter-spacing: 0.015em;
	color: var(--booking-headline);
	transition: border-color var(--transition-base);
}

.booking-modal__input {
	min-height: 3.25rem;
}

.booking-modal__textarea {
	min-height: 9rem;
	padding-block: 0.85rem;
	resize: vertical;
}

.booking-modal__input::placeholder,
.booking-modal__textarea::placeholder {
	color: rgb(107 98 91 / 48%);
}

.booking-modal__input:focus-visible,
.booking-modal__textarea:focus-visible {
	border-color: var(--booking-accent);
	outline: none;
}

.booking-modal__submit {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-3);
	width: 100%;
	min-height: 3.5rem;
	padding: 0 1.25rem;
	border: 1px solid var(--booking-accent);
	border-radius: 0.65rem;
	background: var(--booking-accent);
	font-family: var(--font-body);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: #fff;
	cursor: pointer;
	transition:
		background var(--transition-base),
		border-color var(--transition-base);
}

.booking-modal__submit:hover,
.booking-modal__submit:focus-visible {
	background: var(--booking-accent-hover);
	border-color: var(--booking-accent-hover);
	outline: none;
}

.booking-modal__submit-icon {
	display: block;
	width: 1rem;
	height: 1rem;
}

.booking-modal__submit-icon path {
	fill: none;
	stroke: currentcolor;
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.booking-modal__privacy {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);
	margin: 0;
	font-family: var(--font-body);
	font-size: 0.6875rem;
	line-height: 1.45;
	letter-spacing: 0.04em;
	color: rgb(107 98 91 / 72%);
	text-align: center;
}

.booking-modal__privacy-icon {
	display: block;
	width: 0.85rem;
	height: 0.85rem;
	color: var(--booking-accent);
	opacity: 0.65;
}

.booking-modal__presets {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	clip-path: inset(50%);
}

.booking-modal__step {
	display: flex;
	flex-direction: column;
	gap: inherit;
}

.booking-modal__channel-pill {
	display: none;
	align-items: center;
	gap: var(--space-3);
	width: 100%;
	margin: 0 0 var(--space-4);
	padding: var(--space-2) var(--space-3);
	border: 1px solid var(--booking-border);
	border-radius: 0.5rem;
	background: var(--booking-input-bg);
}

.booking-modal__channel-pill-icon {
	display: grid;
	place-items: center;
	flex-shrink: 0;
	width: 2rem;
	height: 2rem;
	color: var(--booking-accent);
}

.booking-modal__channel-pill-icon svg {
	display: block;
	width: 1.25rem;
	height: 1.25rem;
	fill: none;
	stroke: currentcolor;
	stroke-width: 1.35;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.booking-modal__channel-pill-icon--filled svg,
.booking-modal__channel-pill-icon--filled svg path {
	fill: currentcolor;
	stroke: none;
}

.booking-modal__channel-pill-icon svg circle[fill='currentcolor'] {
	fill: currentcolor;
	stroke: none;
}

.booking-modal__channel-pill-label {
	flex: 1;
	min-width: 0;
	font-family: var(--font-body);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--booking-headline);
}

.booking-modal__channel-pill-edit {
	flex-shrink: 0;
	margin: 0;
	padding: 0.35rem 0.5rem;
	border: 0;
	border-radius: 0.25rem;
	background: transparent;
	font-family: var(--font-body);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-decoration: underline;
	text-underline-offset: 0.15em;
	color: var(--booking-accent);
	cursor: pointer;
}

.booking-modal__channel-pill-edit:hover,
.booking-modal__channel-pill-edit:focus-visible {
	color: var(--booking-accent-hover);
	outline: none;
}

.booking-modal__hp {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.booking-modal__status {
	margin: 0;
	font-family: var(--font-body);
	font-size: 0.75rem;
	line-height: 1.45;
	color: #8b3a32;
	text-align: center;
}

.booking-modal__status[data-tone='success'] {
	color: color-mix(in srgb, var(--booking-accent) 85%, #2f5a32);
}

@media (min-width: 48rem) {
	.booking-modal__layout {
		grid-template-columns: minmax(0, 0.38fr) minmax(0, 0.62fr);
		align-items: stretch;
		gap: clamp(var(--space-8), 4vw, var(--space-12));
		padding: clamp(3rem, 5vw, 4rem);
	}

	.booking-modal__intro {
		padding-right: clamp(var(--space-4), 2vw, var(--space-6));
	}

	.booking-modal__intro-copy {
		text-align: left;
	}

	.booking-modal__badge {
		align-self: flex-start;
	}

	.booking-modal__rule {
		margin-inline: 0;
	}

	.booking-modal__lede {
		max-width: none;
		margin-inline: 0;
	}

	.booking-modal__portrait-wrap {
		margin-inline: 0;
		width: min(100%, 15rem);
	}

	.booking-modal__panel {
		padding-top: 0;
		padding-left: clamp(var(--space-4), 2vw, var(--space-8));
		border-left: 1px solid var(--booking-border);
	}

	.booking-modal__channel-pill {
		display: none !important;
	}

	.booking-modal__step--channels,
	.booking-modal__step--form {
		display: flex !important;
	}
}

@media (max-width: 47.99rem) {
	.organism-booking-modal {
		align-items: center;
		padding: max(0.5rem, env(safe-area-inset-top, 0px))
			max(0.5rem, env(safe-area-inset-right, 0px))
			max(0.5rem, env(safe-area-inset-bottom, 0px))
			max(0.5rem, env(safe-area-inset-left, 0px));
	}

	.booking-modal__scale-host .booking-modal__dialog {
		width: calc(var(--booking-design-width) * 1px);
		max-width: none;
		max-height: none;
		overflow: visible;
		transform: scale(calc(var(--booking-ui-scale) * var(--booking-motion-scale)));
		transform-origin: top left;
	}

	.organism-booking-modal.is-open .booking-modal__scale-host .booking-modal__dialog {
		transform: scale(calc(var(--booking-ui-scale) * var(--booking-motion-scale)));
	}

	.booking-modal__layout {
		gap: var(--space-5);
		padding: var(--space-6) var(--space-5) var(--space-5);
		padding-top: calc(var(--space-8) + var(--space-2));
	}

	.booking-modal__intro {
		gap: var(--space-4);
	}

	.booking-modal__portrait-wrap {
		width: min(100%, 10.5rem);
	}

	.booking-modal__botanical,
	.booking-modal__intro-ornament {
		display: none;
	}

	.booking-modal__title {
		font-size: clamp(1.35rem, 5.5vw, 1.65rem);
	}

	.booking-modal__lede {
		font-size: 0.8125rem;
		line-height: 1.55;
	}

	.booking-modal__panel {
		gap: var(--space-4);
	}

	/* Mobile wizard — CSS fallback so steps stay split even if JS ran on desktop first */
	.organism-booking-modal[data-booking-mobile-phase='channels'] .booking-modal__step--form {
		display: none !important;
	}

	.organism-booking-modal[data-booking-mobile-phase='form'] .booking-modal__step--channels {
		display: none !important;
	}

	.booking-modal__channel {
		min-height: 3.15rem;
		padding: var(--space-2) var(--space-3);
		gap: var(--space-3);
	}

	.booking-modal__form {
		margin-top: var(--space-5);
		gap: var(--space-4);
	}

	.organism-booking-modal[data-booking-mobile-phase='form'] .booking-modal__channel-pill {
		display: flex;
	}

	.booking-modal__step--form .booking-modal__form {
		margin-top: 0;
	}

	.booking-modal__input {
		min-height: 2.85rem;
	}

	.booking-modal__textarea {
		min-height: 4.75rem;
	}

	.booking-modal__submit {
		min-height: 3.15rem;
	}

	.booking-modal__close {
		top: var(--space-2);
		right: var(--space-2);
		width: 2.75rem;
		height: 2.75rem;
		font-size: 1.35rem;
	}
}

/* --- organisms/mosaic-tile-grid.css --- */
/*
 * organism-mosaic-tile-grid
 *
 * Canvas for molecule-mosaic-tile children.
 * Desktop: 5 columns × 2 rows (matches WH index mockup).
 * Mobile: 2 columns, stacked auto-flow.
 *
 * WP / Elementor: amelie_innara_part('organism-mosaic-tile-grid', { tiles: [...] })
 * Each tile becomes a nested molecule-mosaic-tile with size/type/tone fields.
 */

.organism-mosaic-tile-grid {
	--mosaic-gap: clamp(0.55rem, 1.2vw, 0.85rem);
	position: relative;
	width: 90%;
	counter-reset: mosaic-section;
}

.organism-mosaic-tile-grid__canvas {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-auto-rows: minmax(11rem, auto);
	gap: var(--mosaic-gap);

	align-items: stretch;
}

.organism-mosaic-tile-grid .molecule-mosaic-tile--type-section {
	counter-increment: mosaic-section;
}

@media (min-width: 48rem) {
	.organism-mosaic-tile-grid {
		width: 80%;
	}
	.organism-mosaic-tile-grid__canvas {
		grid-template-columns: repeat(5, minmax(0, 1fr));
		grid-template-rows: repeat(2, minmax(11rem, 1fr));
		aspect-ratio: 5 / 2.15;
		min-height: clamp(18rem, 36vw, 26rem);
	}
}

@media (min-width: 64rem) {
	.organism-mosaic-tile-grid__canvas {
		min-height: clamp(20rem, 32vw, 28rem);
	}
}

/* --- organisms/quote-feature.css --- */
/*
 * organism-quote-feature
 *
 * Full-bleed petals + narrow paper strip + light serif quote overlapping.
 * WP / Elementor: amelie_innara_part('organism-quote-feature', {
 *   quote, attribution, backgroundImage
 * })
 */

.organism-quote-feature {
	position: relative;
	display: flex;
	flex: 1;
	flex-direction: column;
	min-height: 0;
	overflow: hidden;
	background: #8a5a5c;
	color: #f3ebe2;
}

.page--presentation .presentation-slide.organism-quote-feature {
	min-height: 100%;
	height: 100%;
}

.quote-feature__backdrop {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
}

#philosophy-quote .quote-feature__backdrop::after {
	content: '';
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: clamp(6rem, 18vh, 12rem);
	background: linear-gradient(to bottom, rgb(243 235 226 / 0%), var(--color-cream));
}

.quote-feature__backdrop picture {
	display: contents;
}

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

.quote-feature__veil {
	position: absolute;
	inset: 0;
	background: radial-gradient(
		ellipse 70% 60% at 50% 45%,
		rgb(30 16 18 / 10%) 0%,
		rgb(40 22 26 / 26%) 100%
	);
}

.quote-feature__body {
	position: relative;
	z-index: 1;
	display: flex;
	flex: 1;
	align-items: center;
	justify-content: center;
	min-height: 0;
	padding: var(--space-8) var(--header-pad-x);
}

.quote-feature__stage {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: min(100%, 44rem);
	min-height: clamp(18rem, 58vh, 30rem);
}

/* Narrow paper strip — decorative; quote intentionally overlaps it */
.quote-feature__panel {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 0;
	width: min(42%, 14.5rem);
	height: min(82%, 26rem);
	transform: translate(-50%, -50%);
	background: #e8d9cb;
	box-shadow: 0 1.25rem 2.75rem rgb(40 22 26 / 22%);
	pointer-events: none;
}

.quote-feature__panel::after {
	content: '';
	position: absolute;
	inset: 0;
	opacity: 0.45;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.45 0 0 0 0 0.35 0 0 0 0 0.28 0 0 0 0.45 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	background-size: 160px 160px;
	mix-blend-mode: multiply;
	pointer-events: none;
}

.quote-feature__quote {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: clamp(var(--space-8), 6vh, var(--space-12));
	width: min(100%, 38rem);
	margin: 0;
	padding: clamp(var(--space-8), 8vh, var(--space-16)) var(--space-4);
	border: 0;
	text-align: center;
}

.quote-feature__quote::before {
	content: '';
	position: absolute;
	inset: 18% 28%;
	z-index: -1;
	border-radius: 45%;
	background: radial-gradient(ellipse at center, rgb(28 14 16 / 28%) 0%, rgb(28 14 16 / 0%) 70%);
	pointer-events: none;
}

.quote-feature__text {
	margin: 0;
	font-family: var(--font-heading);
	font-size: clamp(1.35rem, 4.2vw, 2.35rem);
	font-weight: 400;
	font-style: normal;
	line-height: 1.35;
	letter-spacing: 0.01em;
	color: #f8f1e8;
	text-wrap: balance;
	-webkit-text-stroke: 0.55px rgb(24 12 14 / 55%);
	paint-order: stroke fill;
	text-shadow:
		0 0 3px rgb(20 10 12 / 95%),
		0 1px 2px rgb(20 10 12 / 95%),
		0 2px 8px rgb(20 10 12 / 80%),
		0 0 20px rgb(20 10 12 / 65%),
		0 0 40px rgb(20 10 12 / 45%);
}

.quote-feature__text::before {
	content: '“';
}

.quote-feature__text::after {
	content: '”';
}

.quote-feature__attribution {
	font-family: var(--font-body);
	font-size: clamp(0.6875rem, 1.5vw, 0.8125rem);
	font-style: normal;
	font-weight: 400;
	letter-spacing: 0.04em;
	line-height: 1.4;
	color: #f8f1e8;
	text-shadow:
		0 0 2px rgb(20 10 12 / 90%),
		0 1px 3px rgb(20 10 12 / 80%),
		0 2px 12px rgb(20 10 12 / 55%);
}

.quote-feature__attribution::before {
	content: '— ';
}

/* Long copy — same composition, slightly smaller type */
.organism-quote-feature--long .quote-feature__quote {
	width: min(100%, 40rem);
	gap: clamp(var(--space-6), 5vh, var(--space-10));
}

.organism-quote-feature--long .quote-feature__text {
	font-size: clamp(1.05rem, 3.3vw, 1.45rem);
	line-height: 1.5;
}

.organism-quote-feature--long .quote-feature__panel {
	width: min(36%, 13rem);
	height: min(88%, 28rem);
}

@media (prefers-reduced-motion: no-preference) {
	@keyframes quote-feature-in {
		from {
			opacity: 0;
			transform: translateY(1rem);
		}

		to {
			opacity: 1;
			transform: translateY(0);
		}
	}

	.quote-feature__quote {
		animation: quote-feature-in 900ms cubic-bezier(0.22, 1, 0.36, 1) both;
		animation-timeline: view();
		animation-range: entry 8% cover 55%;
	}
}

@media (min-width: 48rem) {
	.quote-feature__panel {
		width: min(32%, 15rem);
		height: min(76%, 28rem);
	}

	.quote-feature__quote {
		width: min(100%, 42rem);
	}

	.quote-feature__text {
		font-size: clamp(1.75rem, 3.2vw, 2.6rem);
	}

	.organism-quote-feature--long .quote-feature__text {
		font-size: clamp(1.25rem, 2.35vw, 1.7rem);
		line-height: 1.48;
	}

	.organism-quote-feature--long .quote-feature__quote {
		width: min(100%, 46rem);
	}

	.organism-quote-feature--long .quote-feature__panel {
		width: min(28%, 14rem);
		height: min(80%, 30rem);
	}
}

@media (orientation: landscape) and (max-height: 31.25rem) {
	.quote-feature__stage {
		min-height: 0;
	}

	.quote-feature__panel {
		width: min(28%, 11rem);
		height: min(90%, 15rem);
	}

	.quote-feature__quote {
		gap: var(--space-4);
		padding-block: var(--space-4);
	}

	.quote-feature__text {
		font-size: clamp(1.1rem, 3.5vw, 1.5rem);
	}

	.organism-quote-feature--long .quote-feature__text {
		font-size: clamp(0.95rem, 2.8vw, 1.2rem);
	}
}

/* --- organisms/prose.css --- */
/* Shared prose / offer slides for landing content */

.organism-prose {
	display: flex;
	flex: 1;
	flex-direction: column;
	justify-content: center;
	width: min(100%, 75%);
	margin: 0 auto;
	padding: var(--space-8) var(--header-pad-x) var(--space-12);
}

@media (max-width: 48rem) {
	.organism-prose {
		padding: 0px;
		line-height: 1.3;
	}
}

.organism-prose--narrow {
	width: min(100%, 50%);
}

.organism-prose--quote {
	width: min(100%, 36rem);
	padding-block: var(--space-12);
}

.prose__eyebrow {
	margin: 0 0 var(--space-4);
	font-family: var(--font-eyebrow);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--color-accent);
}

.prose__title {
	margin: 0 0 var(--space-6);
	font-family: var(--font-heading);
	font-size: clamp(1.5rem, 3.6vw, 2.125rem);
	font-weight: 500;
	line-height: 1.2;
	color: var(--color-text);
}

.prose__tagline {
	margin: calc(var(--space-4) * -1) 0 var(--space-6);
	font-family: var(--font-body);
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-text-muted);
}

/* Flow blocks — typography lives on molecule-flow-text */
.prose__body.molecule-flow-text,
.organism-prose .molecule-flow-text {
	margin-top: 0;
}

.prose__text {
	margin: 0;
	font-family: var(--font-body);
	font-size: var(--flow-size);
	font-weight: 400;
	line-height: var(--flow-leading);
	letter-spacing: var(--flow-tracking);
	color: var(--color-text);
	/*max-width: 68ch;*/
	text-wrap: pretty;
}

.prose__closing {
	margin: var(--space-8) 0 0;
	/*max-width: 36ch;*/
	font-family: var(--font-heading);
	font-size: clamp(1.125rem, 2.6vw, 1.375rem);
	font-weight: 500;
	font-style: italic;
	line-height: 1.45;
	color: var(--color-text);
	text-wrap: balance;
}

.prose__heading {
	margin: var(--space-8) 0 var(--space-4);
	font-family: var(--font-heading);
	font-size: clamp(1.0625rem, 2.2vw, 1.25rem);
	font-weight: 600;
	line-height: 1.3;
	color: var(--color-text);
}

.prose__list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.prose__list--inset {
	margin-top: var(--space-4);
}

.prose__list li {
	position: relative;
	padding-left: 1.15rem;
	font-family: var(--font-body);
	font-size: var(--flow-size);
	line-height: 1.55;
	color: var(--color-text);
	max-width: 68ch;
}

.prose__list li::before {
	content: '';
	position: absolute;
	top: 0.65em;
	left: 0;
	width: 0.35rem;
	height: 0.35rem;
	border-radius: 50%;
	background: var(--color-accent);
}

.prose__notice {
	margin: var(--space-6) 0 0;
	font-family: var(--font-body);
	font-size: 0.8125rem;
	line-height: 1.6;
	color: var(--color-text-muted);
}

.prose__offer {
	margin-top: var(--space-8);
	padding-top: var(--space-6);
	border-top: 1px solid color-mix(in srgb, var(--color-accent) 28%, transparent);
}

.prose__offer + .prose__offer {
	margin-top: var(--space-6);
}

.prose__offer-title {
	margin: 0 0 var(--space-2);
	font-family: var(--font-heading);
	font-size: clamp(1.0625rem, 2.2vw, 1.25rem);
	font-weight: 600;
	line-height: 1.3;
	color: var(--color-text);
}

.prose__offer-tagline {
	margin: 0 0 var(--space-3);
	font-family: var(--font-body);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-text-muted);
}

.prose__meta {
	display: grid;
	gap: var(--space-4);
	margin: var(--space-8) 0 0;
}

.prose__meta-item {
	margin: 0;
}

.prose__meta-label {
	display: block;
	margin-bottom: var(--space-1);
	font-family: var(--font-body);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--color-accent);
}

.prose__meta-value {
	font-family: var(--font-heading);
	font-size: 1rem;
	line-height: 1.5;
	color: var(--color-text);
}

.prose__cta {
	margin-top: var(--space-8);
	align-self: flex-start;
}

.prose__featured {
	margin-top: var(--space-8);
	padding-top: var(--space-6);
	border-top: 1px solid color-mix(in srgb, var(--color-accent) 28%, transparent);
}

.prose__featured-title {
	margin: 0 0 var(--space-3);
	font-family: var(--font-heading);
	font-size: clamp(1.125rem, 2.4vw, 1.375rem);
	font-weight: 600;
	line-height: 1.3;
	color: var(--color-text);
}

.prose__aside {
	margin: var(--space-6) 0 0;
	font-family: var(--font-body);
	font-size: 0.875rem;
	line-height: 1.6;
	color: var(--color-text-muted);
}

/* Quote slide — soft ground wash */
.presentation-slide--quote {
	position: relative;
	isolation: isolate;
}

.presentation-slide--quote::before {
	content: '';
	position: absolute;
	inset: 8% 6% 10%;
	z-index: 0;
	border-radius: clamp(1.25rem, 3vw, 2rem);
	background: color-mix(in srgb, var(--color-texture-mid) 42%, var(--color-cream));
	pointer-events: none;
}

.presentation-slide--quote .organism-prose {
	position: relative;
	z-index: 1;
}

.prose__quote {
	margin: 0;
	padding: 0;
	border: 0;
}

.prose__quote-text {
	margin: 0;
	font-family: var(--font-heading);
	font-size: clamp(1.0625rem, 2.5vw, 1.3125rem);
	font-weight: 400;
	font-style: italic;
	line-height: 1.65;
	color: var(--color-text);
}

.prose__quote-attribution {
	display: block;
	margin-top: var(--space-6);
	font-family: var(--font-body);
	font-size: 0.8125rem;
	font-weight: 500;
	font-style: normal;
	letter-spacing: 0.06em;
	color: var(--color-text-muted);
}

/* Contact form */
.organism-contact {
	display: flex;
	flex: 1;
	flex-direction: column;
	justify-content: center;
	gap: var(--space-8);
	width: min(100%, 36rem);
	margin: 0 auto;
	padding: var(--space-6) var(--header-pad-x) var(--space-10);
	min-height: 0;
}

.contact__intro {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.contact__intro .prose__title {
	margin-bottom: var(--space-4);
}

.contact__intro .molecule-contact-channels {
	margin-top: var(--space-6);
}

.text-media-cutout__chapter--wide .contact-form {
	width: 100%;
}

@media (min-width: 48rem) {
	.text-media-cutout__chapter--wide .contact-form {
		grid-template-columns: 1fr 1fr;
		gap: var(--space-3) var(--space-4);
		align-content: start;
	}

	.text-media-cutout__chapter--wide .contact-form__field--interest,
	.text-media-cutout__chapter--wide .contact-form__field--message,
	.text-media-cutout__chapter--wide .contact-form__submit {
		grid-column: 1 / -1;
	}
}

.contact__intro .presentation-slide__legal-link {
	margin-top: var(--space-6);
}

.contact-form {
	display: grid;
	gap: var(--space-3);
	margin: 0;
	min-width: 0;
}

.contact-form__field {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	min-width: 0;
	max-width: 100%;
}

.contact-form__select-wrap {
	position: relative;
	display: block;
	width: 100%;
	min-width: 0;
	max-width: 100%;
}

.contact-form__select-wrap::after {
	content: '';
	position: absolute;
	top: 50%;
	right: 0.9rem;
	width: 0.45rem;
	height: 0.45rem;
	border-right: 1.5px solid color-mix(in srgb, var(--color-accent) 72%, var(--color-text));
	border-bottom: 1.5px solid color-mix(in srgb, var(--color-accent) 72%, var(--color-text));
	transform: translateY(-70%) rotate(45deg);
	pointer-events: none;
}

.contact-form__label {
	font-family: var(--font-body);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--color-text-muted);
}

.contact-form__input,
.contact-form__textarea {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	padding: 0.75rem 0.9rem;
	border: 1px solid color-mix(in srgb, var(--color-accent) 35%, transparent);
	border-radius: 0;
	background: color-mix(in srgb, #fff 55%, var(--color-cream));
	font-family: var(--font-heading);
	font-size: 0.9375rem;
	line-height: 1.4;
	color: var(--color-text);
}

.contact-form__select {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	padding: 0.75rem 2.35rem 0.75rem 0.9rem;
	border: 1px solid color-mix(in srgb, var(--color-accent) 35%, transparent);
	border-radius: 0;
	background: color-mix(in srgb, #fff 55%, var(--color-cream));
	font-family: var(--font-body);
	font-size: 0.9375rem;
	font-weight: 400;
	line-height: 1.45;
	letter-spacing: 0.015em;
	color: var(--color-text);
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	text-overflow: ellipsis;
	white-space: nowrap;
	overflow: hidden;
}

.contact-form__select:invalid {
	color: var(--color-text-muted);
}

.contact-form__select option {
	color: var(--color-text);
}

.contact-form__textarea {
	min-height: 5.5rem;
	resize: vertical;
}

.contact-form__input:focus-visible,
.contact-form__select:focus-visible,
.contact-form__textarea:focus-visible {
	outline: 2px solid color-mix(in srgb, var(--color-accent) 55%, transparent);
	outline-offset: 2px;
}

.contact-form__submit {
	justify-self: start;
	margin-top: var(--space-1);
	padding: 0.85rem 1.4rem;
	border: 1px solid var(--color-accent);
	background: transparent;
	font-family: var(--font-body);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--color-accent);
	cursor: pointer;
	transition:
		color var(--transition-base),
		background-color var(--transition-base),
		border-color var(--transition-base);
}

.contact-form__submit:hover,
.contact-form__submit:focus-visible {
	background: var(--color-accent);
	color: var(--color-cream);
}

.contact-form__status {
	margin: 0;
	font-family: var(--font-body);
	font-size: 0.8125rem;
	line-height: 1.45;
	color: #8b3a32;
	text-align: left;
}

.contact-form__status[data-tone='success'] {
	color: color-mix(in srgb, var(--color-accent) 85%, #2f5a32);
}

.contact__location {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	margin: var(--space-5) 0 0;
	font-family: var(--font-heading);
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--color-text-muted);
	text-decoration: none;
	transition: color var(--transition-base);
}

.contact__location:hover,
.contact__location:focus-visible {
	color: var(--color-accent);
	outline: none;
}

.contact__location-icon {
	display: block;
	flex-shrink: 0;
	width: 0.95rem;
	height: 0.95rem;
	color: currentcolor;
}

.contact__location-icon svg {
	display: block;
	width: 100%;
	height: 100%;
	fill: none;
	stroke: currentcolor;
	stroke-width: 1.25;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* Contact slide — same two-column About layout; compact single-column form */
#contact .contact__intro .molecule-contact-channels {
	margin-top: var(--space-4);
}

#contact .contact-form {
	margin-top: var(--space-5);
	grid-template-columns: 1fr;
	gap: var(--space-2);
}

#contact .contact-form__input,
#contact .contact-form__select,
#contact .contact-form__textarea {
	padding: 0.65rem 0.85rem;
	font-size: 0.875rem;
}

#contact .contact-form__textarea {
	min-height: 4.25rem;
}

#contact .contact-form__submit {
	margin-top: var(--space-2);
	padding: 0.75rem 1.25rem;
}

#contact .contact__intro .presentation-slide__legal-link {
	margin-top: var(--space-5);
}

#contact .text-media-cutout__about-mobile {
	margin-top: var(--space-6);
}

@media (min-width: 56rem) {
	#contact .organism-text-media-cutout--about .text-media-cutout__chapter,
	.presentation-slide--contact .text-media-cutout__chapter {
		align-items: flex-start;
		padding-block: var(--space-3) clamp(var(--space-6), 6vh, var(--space-10));
	}

	#contact .contact-form {
		grid-template-columns: 1fr 1fr;
		gap: var(--space-2) var(--space-3);
	}

	#contact .contact-form__field--interest,
	#contact .contact-form__field--message,
	#contact .contact-form__submit {
		grid-column: 1 / -1;
	}
}

.presentation-slide--prose {
	min-height: 100%;
}

@media (min-width: 48rem) {
	.organism-contact {
		flex-direction: row;
		align-items: center;
		gap: clamp(var(--space-8), 4vw, var(--space-16));
		width: min(100%, 68rem);
		padding-block: var(--space-6);
	}

	.organism-contact .contact__intro {
		flex: 0 1 42%;
		max-width: 26rem;
	}

	.organism-contact .contact__intro .prose__title {
		font-size: clamp(1.75rem, 3vw, 2.25rem);
	}

	.organism-contact .contact-form {
		flex: 1 1 58%;
		grid-template-columns: 1fr 1fr;
		gap: var(--space-3) var(--space-4);
		align-content: center;
	}

	.organism-contact .contact-form__field--interest,
	.organism-contact .contact-form__field--message,
	.organism-contact .contact-form__submit {
		grid-column: 1 / -1;
	}

	.organism-contact .contact-form__textarea {
		min-height: 4.75rem;
	}
}

@media (min-width: 64rem) {
	.organism-contact {
		gap: clamp(var(--space-10), 5vw, var(--space-20));
		padding-inline: clamp(var(--header-pad-x), 5vw, 6rem);
	}

	.organism-contact .contact__intro {
		flex-basis: 38%;
	}
}

/* About-style cutout: intro block fills the text column (not the legacy two-column organism) */
#contact .text-media-cutout__copy.contact__intro {
	flex: 1 1 auto;
	width: 100%;
	max-width: 32rem;
}

@media (prefers-reduced-motion: no-preference) {
	@keyframes prose-in {
		from {
			opacity: 0;
			transform: translateY(1.25rem);
		}

		to {
			opacity: 1;
			transform: translateY(0);
		}
	}

	.organism-prose,
	.organism-contact {
		animation: prose-in 850ms cubic-bezier(0.22, 1, 0.36, 1) both;
		animation-timeline: view();
		animation-range: entry 8% cover 45%;
	}
}

/* --- organisms/section-placeholder.css --- */
/* Minimal full-viewport slides for scroll-linked emblem stages */

.presentation-slide__inner {
	display: flex;
	flex: 1;
	flex-direction: column;
	justify-content: center;
	width: min(100%, 36rem);
	min-height: 0;
	margin: 0 auto;
	padding: var(--space-8) var(--header-pad-x);
}

.presentation-slide__title {
	margin-bottom: var(--space-6);
	font-family: var(--font-heading);
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 500;
	line-height: 1.15;
	color: var(--color-text);
}

.presentation-slide__lede {
	max-width: 32rem;
	font-size: clamp(0.95rem, 1.6vw, 1.0625rem);
	line-height: 1.7;
	color: var(--color-text-muted);
}

.presentation-slide__legal-link {
	margin-top: var(--space-8);
	font-family: var(--font-body);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.presentation-slide__legal-link .atom-link {
	color: var(--color-text-muted);
	border-bottom: 1px solid color-mix(in srgb, var(--color-accent) 40%, transparent);
	padding-bottom: 0.15em;
	transition:
		color var(--transition-base),
		border-color var(--transition-base);
}

.presentation-slide__legal-link .atom-link:hover,
.presentation-slide__legal-link .atom-link:focus-visible {
	color: var(--color-accent);
	border-bottom-color: var(--color-accent);
}

/* --- organisms/impressum.css --- */
/* Impressum — last presentation slide, typographic, CI-aligned (no cards) */

.organism-impressum {
	display: flex;
	flex: 1;
	flex-direction: column;
	justify-content: center;
	width: min(100%, 52rem);
	min-height: 0;
	margin: 0 auto;
	padding: var(--space-8) var(--header-pad-x) var(--space-12);
}

.impressum__title {
	margin: 0 0 var(--space-8);
	font-family: var(--font-heading);
	font-size: clamp(2rem, 4.5vw, 2.75rem);
	font-weight: 500;
	line-height: 1.12;
	color: var(--color-text);
}

.impressum__lede {
	max-width: 36rem;
	margin: 0 0 var(--space-10);
	font-family: var(--font-body);
	font-size: clamp(0.875rem, 1.4vw, 1rem);
	line-height: 1.7;
	color: var(--color-text-muted);
}

.impressum__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-8) var(--space-12);
}

.organism-impressum--in-cutout {
	width: 100%;
	padding: 0;
	justify-content: flex-start;
}

.organism-impressum--in-cutout .impressum__grid {
	width: 100%;
}

@media (min-width: 48rem) {
	.impressum__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: start;
	}

	.impressum__block--wide {
		grid-column: 1 / -1;
	}
}

.impressum__block {
	min-width: 0;
}

.impressum__heading {
	margin: 0 0 var(--space-4);
	padding-bottom: var(--space-3);
	border-bottom: 1px solid color-mix(in srgb, var(--color-accent) 35%, transparent);
	font-family: var(--font-body);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--color-accent);
}

.impressum__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.impressum__row {
	display: grid;
	grid-template-columns: minmax(6.5rem, 9rem) minmax(0, 1fr);
	gap: var(--space-2) var(--space-4);
	padding: 0.35rem 0;
	font-family: var(--font-body);
	font-size: clamp(0.8125rem, 1.3vw, 0.9375rem);
	line-height: 1.55;
}

.impressum__label {
	margin: 0;
	color: var(--color-text-muted);
	letter-spacing: 0.02em;
}

.impressum__value {
	margin: 0;
	color: var(--color-text);
	overflow-wrap: anywhere;
}

.impressum__value:empty::before,
.impressum__value.is-empty::before,
.impressum__value a.is-empty::before {
	content: '—';
	color: var(--color-text-muted);
}

.impressum__value a {
	color: var(--color-text);
	text-decoration: none;
	border-bottom: 1px solid color-mix(in srgb, var(--color-accent) 55%, transparent);
	transition:
		color var(--transition-base),
		border-color var(--transition-base);
}

.impressum__value a:hover,
.impressum__value a:focus-visible {
	color: var(--color-accent);
	border-bottom-color: var(--color-accent);
}

.impressum__prose {
	margin: 0;
	font-family: var(--font-body);
	font-size: clamp(0.8125rem, 1.25vw, 0.875rem);
	line-height: 1.7;
	color: var(--color-text-muted);
}

.impressum__prose + .impressum__prose {
	margin-top: var(--space-4);
}

.impressum__prose a {
	color: var(--color-accent);
	text-decoration: none;
	border-bottom: 1px solid color-mix(in srgb, var(--color-accent) 45%, transparent);
}

.impressum__channels {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3) var(--space-5);
	margin-top: var(--space-3);
}

.impressum__channel {
	font-family: var(--font-body);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--color-text);
	text-decoration: none;
	border-bottom: 1px solid color-mix(in srgb, var(--color-accent) 40%, transparent);
	padding-bottom: 0.15em;
	transition:
		color var(--transition-base),
		border-color var(--transition-base);
}

.impressum__channel[hidden] {
	display: none;
}

.impressum__channel:hover,
.impressum__channel:focus-visible {
	color: var(--color-accent);
	border-bottom-color: var(--color-accent);
}

@media (max-width: 47.99rem) {
	.organism-impressum {
		justify-content: flex-start;
		padding-top: var(--space-6);
		padding-bottom: var(--space-10);
	}

	.impressum__row {
		grid-template-columns: 1fr;
		gap: 0.15rem;
		padding: 0.45rem 0;
	}
}

@media (orientation: landscape) and (max-height: 31.25rem) {
	.organism-impressum {
		justify-content: flex-start;
		padding-top: var(--space-3);
		padding-bottom: var(--space-6);
	}

	.impressum__title {
		margin-bottom: var(--space-4);
		font-size: clamp(1.35rem, 3.2vw, 1.75rem);
	}

	.impressum__lede {
		margin-bottom: var(--space-5);
	}

	.impressum__grid {
		gap: var(--space-4) var(--space-8);
	}
}

/* --- organisms/site-footer.css --- */
/* Site footer — desktop columns + mobile link rows */

.organism-site-footer {
	position: relative;
	isolation: isolate;
	padding: var(--space-10) var(--header-pad-x) var(--space-8);
	color: var(--color-text);
}

.organism-site-footer::before {
	content: '';
	position: absolute;
	top: 0;
	left: var(--header-pad-x);
	right: var(--header-pad-x);
	height: 1px;
	background: rgb(166 124 82 / 55%);
}

.site-footer__geometry {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	overflow: hidden;
}

.site-footer__geometry img {
	position: absolute;
	height: auto;
	opacity: 0.22;
}

.site-footer__ornament--circles {
	right: -2%;
	top: 8%;
	width: clamp(9rem, 22vw, 14rem);
}

.site-footer__ornament--flower {
	left: 50%;
	bottom: 2%;
	width: clamp(10rem, 28vw, 18rem);
	transform: translateX(-50%);
	opacity: 0.18;
}

.site-footer__inner {
	position: relative;
	z-index: 1;
	max-width: 72rem;
	margin: 0 auto;
}

.site-footer__main {
	display: grid;
	gap: var(--space-10);
}

@media (min-width: 56rem) {
	.site-footer__main {
		grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr) minmax(0, 0.85fr);
		align-items: start;
		gap: clamp(var(--space-8), 4vw, var(--space-16));
	}
}

.site-footer__brand {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-5);
}

.site-footer__logo {
	display: inline-block;
	line-height: 0;
	text-decoration: none;
}

.site-footer__logo .atom-svg-viewport__art {
	width: min(100%, 15.5rem);
	height: auto;
}

.site-footer__frame {
	display: block;
	width: clamp(5.5rem, 12vw, 8rem);
	height: auto;
	margin-top: calc(var(--space-5) * -0.25);
	opacity: 0.72;
}

.site-footer__emblem {
	display: block;
	width: 2.25rem;
	aspect-ratio: 682 / 504;
	background-color: var(--color-accent);
	mask-image: url('../../images/footer/footer-spirals.svg');
	mask-repeat: no-repeat;
	mask-position: center;
	mask-size: contain;
	-webkit-mask-image: url('../../images/footer/footer-spirals.svg');
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: center;
	-webkit-mask-size: contain;
}

.site-footer__tagline {
	margin: 0;
	max-width: 16ch;
	font-family: var(--font-heading);
	font-size: clamp(1.25rem, 2.8vw, 1.625rem);
	font-weight: 500;
	font-style: italic;
	line-height: 1.35;
	color: var(--color-text);
	text-wrap: balance;
}

.site-footer__nav-title {
	margin: 0 0 var(--space-5);
	font-family: var(--font-body);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--color-accent);
}

.site-footer__nav-rule {
	display: block;
	width: 2.75rem;
	height: 1px;
	margin-top: var(--space-3);
	background: rgb(166 124 82 / 65%);
}

.site-footer__links {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0;
}

.site-footer__link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
	padding: 0.85rem 0;
	border-bottom: 1px solid rgb(74 62 55 / 14%);
	font-family: var(--font-heading);
	font-size: clamp(1.0625rem, 2.4vw, 1.25rem);
	font-weight: 400;
	line-height: 1.25;
	color: var(--color-text);
	text-decoration: none;
	transition: color var(--transition-base);
}

.site-footer__link:hover,
.site-footer__link:focus-visible {
	color: var(--color-accent);
}

.site-footer__link-chevron {
	flex-shrink: 0;
	font-family: var(--font-body);
	font-size: 0.875rem;
	font-weight: 400;
	color: var(--color-accent);
	opacity: 0.85;
}

@media (min-width: 56rem) {
	.site-footer__link {
		justify-content: flex-start;
		padding: 0.35rem 0;
		border-bottom: none;
		font-size: 1.0625rem;
	}

	.site-footer__link-chevron {
		display: none;
	}
}

.site-footer__disclaimer {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-4);
	max-width: 36rem;
	margin: var(--space-12) auto 0;
	text-align: center;
}

.site-footer__disclaimer-icon {
	width: 1.35rem;
	height: 1.35rem;
	color: var(--color-accent);
}

.site-footer__disclaimer-text {
	margin: 0;
	font-family: var(--font-body);
	font-size: 0.8125rem;
	line-height: 1.55;
	color: var(--color-text-muted);
	text-wrap: pretty;
}

.site-footer__bar {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-5);
	margin-top: var(--space-10);
	padding-top: var(--space-6);
	border-top: 1px solid rgb(74 62 55 / 12%);
	font-family: var(--font-body);
	font-size: 0.75rem;
	color: var(--color-text-muted);
}

@media (min-width: 56rem) {
	.site-footer__bar {
		flex-direction: row;
		justify-content: space-between;
		align-items: center;
	}
}

.site-footer__copyright {
	margin: 0;
}

.site-footer__legal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--space-4) var(--space-6);
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer__legal a {
	font-size: inherit;
	color: inherit;
	text-decoration: none;
	transition: color var(--transition-base);
}

.site-footer__legal a:hover,
.site-footer__legal a:focus-visible {
	color: var(--color-accent);
}

.presentation-slide--site-footer {
	min-height: auto;
	scroll-snap-align: end;
	scroll-snap-stop: normal;
}

.presentation-slide--site-footer .organism-site-footer {
	padding-bottom: max(var(--space-10), env(safe-area-inset-bottom, 0px));
}

/* --- templates/home.css --- */
.template-home {
	height: 100dvh;
	height: calc(var(--vh, 1dvh) * 100);
}

.template-home__canvas {
	width: 100%;
	max-width: 100%;
}

.page--home {
	overflow: hidden;
}

/* --- templates/legal-page.css --- */
/* Standalone legal pages (impressum, privacy) */

.page--legal {
	min-height: 100%;
	background: var(--color-cream);
	color: var(--color-text);
}

.page--legal .legal-page__header {
	padding: calc(max(env(safe-area-inset-top, 0px), var(--header-pad-y)) + 0.35rem)
		var(--header-pad-x) var(--space-6);
}

.page--legal .legal-page__main {
	padding: 0 var(--header-pad-x) var(--space-12);
}

.organism-legal-document {
	max-width: 42rem;
	margin: 0 auto;
	padding: var(--space-4) 0 var(--space-16);
}

.legal-document__title {
	margin: 0 0 var(--space-8);
	font-family: var(--font-heading);
	font-size: clamp(1.75rem, 4vw, 2.25rem);
	font-weight: 500;
	line-height: 1.15;
	color: var(--color-text);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.legal-document__section + .legal-document__section {
	margin-top: var(--space-10);
}

.legal-document__heading {
	margin: 0 0 var(--space-4);
	font-family: var(--font-heading);
	font-size: clamp(1.125rem, 2.6vw, 1.375rem);
	font-weight: 600;
	line-height: 1.3;
	color: var(--color-text);
}

.legal-document__subheading {
	margin: var(--space-8) 0 var(--space-4);
	font-family: var(--font-heading);
	font-size: 1.0625rem;
	font-weight: 600;
	line-height: 1.35;
	color: var(--color-text);
}

.legal-document__prose {
	margin: 0;
	font-family: var(--font-body);
	font-size: var(--flow-size);
	line-height: var(--flow-leading);
	color: var(--color-text);
}

.legal-document__prose + .legal-document__prose {
	margin-top: var(--flow-gap);
}

.legal-document__prose a {
	color: var(--color-accent);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
}

.legal-document__prose a:hover,
.legal-document__prose a:focus-visible {
	text-decoration: underline;
}

.legal-document__address {
	margin: 0;
	font-style: normal;
	line-height: 1.65;
}

.legal-document__list {
	margin: var(--space-4) 0 0;
	padding: 0 0 0 1.15rem;
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
}

.legal-document__list li {
	font-family: var(--font-body);
	font-size: var(--flow-size);
	line-height: 1.55;
	color: var(--color-text);
}

.legal-document__meta {
	margin: 0 0 var(--space-8);
	font-family: var(--font-body);
	font-size: 0.875rem;
	color: var(--color-text-muted);
}

.page--legal .organism-site-footer::before {
	left: 0;
	right: 0;
}

.page--legal .organism-site-footer {
	padding-inline: var(--header-pad-x);
}

/* --- templates/presentation.css --- */
/* Full-viewport scroll snapping — one wheel/touch gesture advances one slide */

.page--presentation {
	overflow: hidden;
	background: var(--color-cream);
}

.page--presentation .template-home,
.page--presentation .template-home__canvas {
	background: transparent;
}

.template-home__canvas.template-presentation {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 0;
	isolation: isolate;
}

.template-presentation__backdrop {
	position: fixed;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background: var(--color-cream);
}

.template-presentation__backdrop picture {
	display: contents;
}

.template-presentation__backdrop-img {
	position: fixed;
	top: 0;
	right: 0;
	z-index: 0;
	height: 100vh;
	height: 100svh;
	height: 100dvh;
	width: auto;
	max-width: none;
	object-fit: contain;
	object-position: right center;
	/* Soften hard marble edge into cream */
	-webkit-mask-image: linear-gradient(
		to right,
		transparent 0%,
		rgb(0 0 0 / 35%) 10%,
		rgb(0 0 0 / 88%) 24%,
		#000 38%,
		#000 100%
	);
	mask-image: linear-gradient(
		to right,
		transparent 0%,
		rgb(0 0 0 / 35%) 10%,
		rgb(0 0 0 / 88%) 24%,
		#000 38%,
		#000 100%
	);
}

.template-presentation__header {
	position: relative;
	z-index: 3;
	flex-shrink: 0;
	/* More top air; extra bottom gap before hero copy (INN-041) */
	padding: calc(max(env(safe-area-inset-top, 0px), var(--header-pad-y)) + 0.55rem)
		var(--header-pad-x) var(--space-6);
	background: transparent;
	align-items: center;
}

@media (min-width: 73.75rem) {
	.template-presentation__header {
		padding-top: calc(max(env(safe-area-inset-top, 0px), var(--header-pad-y)) + 0.35rem);
		padding-right: max(5rem, env(safe-area-inset-right, 0px) + 4.5rem);
		padding-bottom: var(--space-6);
		align-items: center;
	}
}

.presentation-scroll {
	position: relative;
	z-index: 1;
	flex: 1;
	min-height: 0;
	overflow-y: auto;
	overscroll-behavior-y: contain;
	scroll-snap-type: y mandatory;
}

@media (prefers-reduced-motion: no-preference) {
	html.is-ready .presentation-scroll {
		scroll-behavior: smooth;
	}
}

html:not(.is-ready) .presentation-scroll {
	scroll-behavior: auto !important;
}

/* While restoring reload position, snap would pull the scrollport back to hero on iOS */
html.innara-restore-scroll .presentation-scroll {
	scroll-snap-type: none !important;
	scroll-behavior: auto !important;
}

html:not(.is-ready) .emblem-watermark *,
html:not(.is-ready) .molecule-scroll-marker__link::before,
html:not(.is-ready) .molecule-scroll-marker__icon {
	transition: none !important;
}

.presentation-slide {
	display: flex;
	flex-direction: column;
	min-height: 100%;
	scroll-snap-align: start;
	scroll-snap-stop: always;
}

.presentation-slide--vision {
	background: transparent;
}

.presentation-slide--prose,
.presentation-slide--quote,
.presentation-slide--contact {
	scroll-snap-stop: normal;
}

.presentation-slide--womens-health {
	/* Texture + cream lower box own their fills; no rose underlay */
	background: var(--color-cream);
}

.presentation-slide--womens-health.organism-womens-health-intro--hero {
	background: transparent;
}

.presentation-slide--womens-health-themes {
	background: var(--color-cream);
	scroll-snap-stop: normal;
}

.presentation-slide--wh-layout {
	background: transparent;
	scroll-snap-stop: normal;
}

.page--presentation .presentation-slide--bodywork {
	height: auto;
	min-height: 100%;
	/* Chapters own every snap point here — a section stop would double up with the first one */
	scroll-snap-align: none;
	scroll-snap-stop: normal;
}

.presentation-slide--quote-feature {
	background: #5c3d42;
}

/* --- 03-mobile-scale.css --- */
/* Mobile typography & spacing — fluid, no canvas zoom */

@media (max-width: 47.99rem) {
	:root {
		--header-pad-x: max(1.125rem, env(safe-area-inset-left, 0px) + 1rem);
		--header-pad-y: max(1.125rem, env(safe-area-inset-top, 0px) + 0.85rem);
		--hero-content-pad-x: max(1.125rem, env(safe-area-inset-left, 0px) + 1rem);
	}

	.organism-site-header {
		gap: var(--space-4);
	}

	.template-presentation__header {
		padding-top: calc(max(env(safe-area-inset-top, 0px), var(--header-pad-y)) + 0.35rem);
		padding-bottom: var(--space-4);
		padding-right: max(1rem, env(safe-area-inset-right, 0px) + 0.65rem);
	}

	.atom-text--display {
		font-size: clamp(1.875rem, 9.5vw, 2.75rem);
		line-height: 1.06;
	}

	.atom-text--body {
		font-size: clamp(0.875rem, 3.8vw, 1rem);
		line-height: 1.65;
	}

	.presentation-slide--hero .hero__body {
		align-items: flex-start;
		padding-top: clamp(1.75rem, 5.5vh, 2.75rem);
		padding-bottom: var(--space-6);
	}

	.presentation-slide--hero .atom-text--display {
		line-height: 1.4;
	}

	.hero__tagline {
		margin-bottom: var(--space-4);
	}

	.hero__headline {
		margin-bottom: var(--space-5);
	}

	.hero__divider {
		margin-bottom: var(--space-5);
	}

	.hero__body-text {
		margin-bottom: var(--space-6);
	}

	.hero__offerings {
		margin-bottom: var(--space-5);
	}

	.hero__leaf-shadow {
		width: min(72vw, 18rem);
		height: min(42vw, 10rem);
	}

	.molecule-scroll-marker {
		bottom: max(0.75rem, env(safe-area-inset-bottom, 0px) + 0.5rem);
	}

	.molecule-scroll-marker__list {
		gap: 0.28rem;
		padding: 0.2rem 0.4rem;
	}

	.molecule-scroll-marker__link {
		width: 0.6875rem;
		height: 1.1875rem;
	}

	.molecule-scroll-marker__link::before {
		width: 0.275rem;
		height: 0.275rem;
		border-width: 1px;
	}
}

@media (max-width: 47.99rem) and (max-height: 740px) {
	.atom-text--display {
		font-size: clamp(1.625rem, 8.5vw, 2.25rem);
	}

	.presentation-slide--hero .hero__body {
		padding-top: clamp(1.75rem, 5.5vh, 2.5rem);
	}

	.hero__headline,
	.hero__divider {
		margin-bottom: var(--space-5);
	}

	.hero__body-text {
		margin-bottom: var(--space-4);
	}
}

/* iPad Mini / compact tablet portrait — stacked header + reserved scroll area */
@media (min-width: 48rem) and (max-width: 63.99rem) {
	:root {
		--header-pad-x: clamp(1.25rem, 4vw, 2.5rem);
	}

	.template-presentation__header {
		position: sticky;
		top: 0;
		z-index: 10;
		flex-shrink: 0;
		padding-bottom: var(--space-3);
		background: transparent;
		backdrop-filter: none;
		-webkit-backdrop-filter: none;
	}

	.organism-site-header {
		gap: var(--space-4);
	}

	.presentation-slide--hero .hero__body {
		min-height: 0;
	}
}

/* Phone landscape — compact header, undo tablet-portrait sticky chrome */
@media (orientation: landscape) and (max-height: 31.25rem) {
	:root {
		--header-pad-x: max(1rem, env(safe-area-inset-left, 0px) + 0.75rem);
		--hero-content-pad-x: max(1rem, env(safe-area-inset-left, 0px) + 0.75rem);
	}

	.template-presentation__header {
		position: relative;
		top: auto;
		padding-top: calc(max(env(safe-area-inset-top, 0px), 0.375rem) + 0.375rem);
		padding-bottom: var(--space-2);
		background: transparent;
		backdrop-filter: none;
		-webkit-backdrop-filter: none;
	}

	.organism-site-header {
		gap: var(--space-2);
	}

	.presentation-slide--hero .hero__body {
		padding-top: clamp(0.75rem, 4.5vh, 1.5rem);
		padding-bottom: var(--space-3);
	}

	.hero__headline {
		margin-bottom: 0;
	}

	.hero__body-text {
		font-size: clamp(0.75rem, 2.2vw, 0.875rem);
		line-height: 1.55;
		margin-bottom: var(--space-2);
	}

	.molecule-scroll-marker {
		bottom: max(0.375rem, env(safe-area-inset-bottom, 0px) + 0.25rem);
	}

	.molecule-scroll-marker__list {
		gap: 0.25rem;
		padding: 0.1875rem 0.35rem;
	}

	.molecule-scroll-marker__link {
		width: 0.6875rem;
		height: 1.125rem;
	}

	.molecule-scroll-marker__link::before {
		width: 0.25rem;
		height: 0.25rem;
		border-width: 1px;
	}
}

/* --- 04-gsap-motion.css --- */
/*
 * Optional GSAP motion layer.
 * Remove this import plus gsap-motion.js and its vendor scripts to disable it.
 */

html.has-gsap-motion .editorial-image,
html.has-gsap-motion .womens-health__label,
html.has-gsap-motion .womens-health__statement {
	animation: none;
}

html.has-gsap-motion .presentation-scroll {
	overflow-x: hidden;
}

/* Keep hero copy hidden until GSAP intro runs (avoids a flash before defer scripts load). */
html.logo-intro-done:not(.hero-intro-ready) #hero .hero__tagline,
html.logo-intro-done:not(.hero-intro-ready) #hero .molecule-headline-stack__title,
html.logo-intro-done:not(.hero-intro-ready) #hero .hero__divider,
html.logo-intro-done:not(.hero-intro-ready) #hero .hero__body-text,
html.logo-intro-done:not(.hero-intro-ready) #hero .hero__offerings,
html.logo-intro-done:not(.hero-intro-ready) #hero .hero__cta,
html.logo-intro-done:not(.hero-intro-ready) #hero .hero__ctas,
html.logo-intro-done:not(.hero-intro-ready) #hero .hero__leaf-shadow {
	opacity: 0;
}

html.has-gsap-motion .philosophy__figure,
html.has-gsap-motion .editorial-image__figure,
html.has-gsap-motion .text-media-cutout__frame,
html.has-gsap-motion .quote-feature__backdrop {
	contain: paint;
}

html.has-gsap-motion .philosophy__img,
html.has-gsap-motion .editorial-image__img,
html.has-gsap-motion .quote-feature__backdrop-img,
html.has-gsap-motion .womens-health__silhouette-img {
	will-change: transform;
}

html.has-gsap-motion .philosophy__sage,
html.has-gsap-motion .editorial-image__sage {
	transform-origin: center bottom;
	will-change: transform;
}

html.has-gsap-motion .atom-divider,
html.has-gsap-motion .molecule-section-label__rule,
html.has-gsap-motion .molecule-cta-link__rule {
	transform-origin: left center;
}

html.has-gsap-motion .quote-feature__backdrop {
	overflow: hidden;
}

html.has-gsap-motion .womens-health__silhouette {
	will-change: transform, opacity;
}

html.has-gsap-motion .molecule-sacred-geometry {
	transform-origin: center;
	will-change: transform;
}

@media (prefers-reduced-motion: reduce) {
	html.has-gsap-motion [style] {
		will-change: auto;
	}
}
