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

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

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

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

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

.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/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 — position per viewport tier; 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);
	--emblem-top: clamp(40%, 48vh, 52%);
	--emblem-left: clamp(58%, 66vw, 70%);
	--emblem-width: clamp(9.5rem, 21vw, 17.5rem);
	--emblem-opacity: 0.92;

	position: fixed;
	z-index: 2;
	top: var(--emblem-top);
	left: var(--emblem-left);
	width: var(--emblem-width);
	aspect-ratio: 360 / 430;
	opacity: var(--emblem-opacity);
	transform: translate(-50%, -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-width: min(31.25rem, 128vw);
		--emblem-opacity: 0.42;
	}
}

/* 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-top: 70%;
		--emblem-left: 82%;
		--emblem-width: min(28rem, 58vw);
		--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-top: 68%;
		--emblem-left: 78%;
		--emblem-width: min(28rem, 46vw);
		--emblem-opacity: 0.5;
	}
}

/* Tier 3 — desktop / tall tablet landscape: right-edge companion */
@media (min-width: 64rem) and (max-width: 89.99rem) and (min-height: 52.01rem) {
	.emblem-watermark {
		--emblem-top: clamp(40%, 46vh, 52%);
		--emblem-left: clamp(84%, 90vw, 94%);
		--emblem-width: clamp(11rem, 17vw, 18rem);
		--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-top: 50%;
		--emblem-left: 55%;
		--emblem-width: 500px;
		--emblem-opacity: 0.55;
	}
}

/* Tier 4 — wide / Laptop L: large centered-right watermark */
@media (min-width: 90rem) {
	.emblem-watermark {
		--emblem-top: 50%;
		--emblem-left: 75%;
		--emblem-width: 500px;
		--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-width: min(68vh, 56vw);
		--emblem-opacity: 0.36;
	}
}

@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.32s 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.045s;
}

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

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

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

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

@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 + 0.2s pause (~0.78s) */
	animation: logo-intro-tagline-rise 0.28s cubic-bezier(0.22, 1, 0.36, 1) 0.78s 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.3s 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.24s cubic-bezier(0.34, 1.35, 0.64, 1) 0.28s 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.24s cubic-bezier(0.34, 1.35, 0.64, 1) 0.34s 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.28s cubic-bezier(0.34, 1.4, 0.64, 1) 0.05s 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.22s cubic-bezier(0.34, 1.6, 0.64, 1) 0.12s 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.55s cubic-bezier(0.25, 0.1, 0.25, 1) 0.05s 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.55s 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;
}

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

/* --- 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;
		width: max-content;
		max-width: none;
		flex: 0 1 auto;
		flex-shrink: 1;
		min-width: 0;
		/* Align with “innara” wordmark, not the full lockup+tagline box */
		padding-top: 1.15rem;
		padding-bottom: 0;
		overflow: visible;
	}
}

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

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

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

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

.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 (min-width: 48rem) {
	.hero__body {
		min-height: calc(100svh - 8rem);
		max-width: 42%;
		padding: 0 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(72%, 38rem);
		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%, 38rem);
	}

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

	.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(62%, 34rem);
		align-items: flex-start;
		padding-top: var(--space-3);
	}

	.hero__content {
		width: min(100%, 34rem);
	}

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

	.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: 1 / span 3;
		align-self: center;
		margin-bottom: 0;
	}

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

	.presentation-slide--hero .hero__cta {
		grid-column: 2;
		grid-row: 3;
	}

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

/* --- organisms/philosophy-intro.css --- */
/* Philosophy slide — image + copy, mockup composition */

.organism-philosophy-intro {
	position: relative;
	display: flex;
	flex: 1;
	flex-direction: column;
	min-height: 0;
	overflow: hidden;
	background: transparent;
}

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

.philosophy__geometry {
	position: absolute;
	right: -8%;
	top: 12%;
	z-index: 0;
	width: min(58vw, 28rem);
	aspect-ratio: 1;
	opacity: 0.09;
	pointer-events: none;
	color: var(--color-geometry);
}

.philosophy__body {
	position: relative;
	z-index: 1;
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	gap: 0;
	min-height: 0;
	padding: var(--space-2) var(--header-pad-x) var(--space-6);
}

.philosophy__visual {
	position: relative;
	z-index: 1;
	flex: 0 0 auto;
	width: min(86vw, 22rem);
}

.philosophy__sage {
	position: absolute;
	left: -0.55rem;
	top: 8%;
	bottom: 28%;
	z-index: 0;
	width: clamp(1rem, 3.8vw, 1.5rem);
	background: color-mix(in srgb, var(--color-sage) 68%, var(--color-cream));
	pointer-events: none;
}

.philosophy__figure {
	position: relative;
	z-index: 1;
	margin: 0;
	aspect-ratio: 1 / 1.08;
	overflow: hidden;
	/*
	 * Mobile: keep fern readable in the upper half, then dissolve under the
	 * overlapping copy so type stays legible (mockup overlap).
	 */
	-webkit-mask-image:
		radial-gradient(ellipse 108% 96% at 50% 36%, #000 48%, transparent 78%),
		linear-gradient(
			to bottom,
			#000 0%,
			#000 40%,
			rgb(0 0 0 / 78%) 55%,
			rgb(0 0 0 / 38%) 68%,
			rgb(0 0 0 / 12%) 80%,
			transparent 94%
		);
	mask-image:
		radial-gradient(ellipse 108% 96% at 50% 36%, #000 48%, transparent 78%),
		linear-gradient(
			to bottom,
			#000 0%,
			#000 40%,
			rgb(0 0 0 / 78%) 55%,
			rgb(0 0 0 / 38%) 68%,
			rgb(0 0 0 / 12%) 80%,
			transparent 94%
		);
	-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%;
}

.philosophy__figure picture {
	display: contents;
}

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

.philosophy__content {
	position: relative;
	z-index: 3;
	width: min(100%, 28rem);
	/* Pull copy up over the faded image */
	margin-top: clamp(-9.5rem, -34vw, -7rem);
	padding-bottom: var(--space-2);
}

.philosophy__label {
	margin-bottom: var(--space-4);
}

.philosophy__headline {
	margin: 0 0 var(--space-4);
	max-width: 14ch;
	font-size: clamp(1.75rem, 7.2vw, 2.5rem);
	line-height: 1.08;
	color: var(--color-text);
	text-wrap: balance;
}

.philosophy__headline-accent {
	display: inline;
	color: var(--color-accent);
}

.philosophy__headline-accent::before {
	content: ' ';
}

.philosophy__lede {
	margin: 0;
	max-width: 32rem;
	font-size: clamp(0.8125rem, 3.4vw, 0.9375rem);
	line-height: 1.65;
	color: var(--color-text-muted);
}

/* Mobile portrait — geometry behind the text/image overlap */
@media (max-width: 47.99rem) and (orientation: portrait) {
	.philosophy__geometry {
		top: auto;
		right: auto;
		left: 50%;
		bottom: 6%;
		width: min(92vw, 24rem);
		transform: translateX(-50%);
		opacity: 0.14;
		z-index: 2;
	}

	.philosophy__body {
		justify-content: flex-start;
		padding-top: 0;
	}
}

/* Short phones — tighter stack so everything fits */
@media (max-width: 47.99rem) and (orientation: portrait) and (max-height: 740px) {
	.philosophy__visual {
		width: min(78vw, 18rem);
	}

	.philosophy__figure {
		aspect-ratio: 1 / 0.95;
	}

	.philosophy__content {
		margin-top: clamp(-8rem, -30vw, -5.5rem);
	}

	.philosophy__headline {
		font-size: clamp(1.5rem, 6.5vw, 2rem);
		margin-bottom: var(--space-3);
	}

	.philosophy__lede {
		font-size: 0.8125rem;
		line-height: 1.55;
	}

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

@media (prefers-reduced-motion: no-preference) {
	@keyframes philosophy-visual-in {
		from {
			opacity: 0;
			transform: translateX(-1.25rem) scale(0.98);
		}

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

	@keyframes philosophy-content-in {
		from {
			opacity: 0;
			transform: translateY(1.25rem);
		}

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

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

	.philosophy__content {
		animation: philosophy-content-in 900ms cubic-bezier(0.22, 1, 0.36, 1) 60ms both;
		animation-timeline: view();
		animation-range: entry 10% cover 58%;
	}
}

@media (min-width: 48rem) {
	.philosophy__body {
		flex-direction: row;
		align-items: center;
		justify-content: center;
		gap: clamp(var(--space-8), 5vw, var(--space-16));
		padding-block: var(--space-6);
	}

	.philosophy__visual {
		flex: 0 1 min(42%, 26rem);
		width: auto;
		z-index: 1;
	}

	.philosophy__sage {
		left: -0.65rem;
		top: 12%;
		bottom: 18%;
		width: clamp(1.15rem, 4vw, 1.75rem);
	}

	.philosophy__figure {
		aspect-ratio: 4 / 5;
		-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);
	}

	.philosophy__img {
		object-position: center 35%;
	}

	.philosophy__content {
		flex: 1 1 min(48%, 30rem);
		width: auto;
		max-width: 32rem;
		margin-top: 0;
		z-index: 2;
	}

	.philosophy__geometry {
		right: -4%;
		top: 8%;
		left: auto;
		bottom: auto;
		width: min(48vw, 32rem);
		transform: none;
		opacity: 0.08;
		z-index: 0;
	}

	.philosophy__headline {
		font-size: clamp(2.5rem, 4.8vw, 3.75rem);
		margin-bottom: var(--space-6);
	}

	.philosophy__lede {
		font-size: clamp(0.9375rem, 2.8vw, 1.0625rem);
		line-height: 1.78;
	}

	.philosophy__label {
		margin-bottom: var(--space-5);
	}
}

@media (min-width: 64rem) {
	.philosophy__body {
		padding-inline: clamp(var(--header-pad-x), 7vw, 8rem);
	}

	.philosophy__visual {
		flex-basis: min(40%, 28rem);
	}

	.philosophy__sage {
		left: -1rem;
		width: 1.85rem;
	}
}

/* Phone landscape — compact side-by-side */
@media (orientation: landscape) and (max-height: 31.25rem) {
	.philosophy__body {
		flex-direction: row;
		align-items: center;
		gap: var(--space-6);
		padding-block: var(--space-3);
	}

	.philosophy__visual {
		width: min(38vw, 14rem);
	}

	.philosophy__figure {
		aspect-ratio: 4 / 5;
		-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);
	}

	.philosophy__content {
		max-width: none;
		margin-top: 0;
	}

	.philosophy__headline {
		font-size: clamp(1.35rem, 4vw, 1.85rem);
		margin-bottom: var(--space-3);
	}

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

	.philosophy__lede {
		font-size: 0.875rem;
		line-height: 1.55;
	}

	.philosophy__geometry {
		display: none;
	}
}

/* --- organisms/philosophy-vision.css --- */
.organism-philosophy-vision {
	display: flex;
	flex: 1;
	flex-direction: column;
	justify-content: center;
	padding: var(--space-8) var(--header-pad-x) var(--space-12);
}

.philosophy-vision__inner {
	width: min(100%, 36rem);
}

.philosophy-vision__title {
	margin: 0 0 var(--space-6);
	font-family: var(--font-heading);
	font-size: clamp(1.375rem, 3.2vw, 1.75rem);
	font-weight: 600;
	line-height: 1.2;
	color: var(--color-text);
}

.philosophy-vision__body {
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
}

.philosophy-vision__body p {
	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;
}

/* --- organisms/womens-health-intro.css --- */
/* Women's Health intro — centered title on rose field */

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

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

.womens-health__texture {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	opacity: 0.35;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.35 0 0 0 0 0.22 0 0 0 0 0.16 0 0 0 0.55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	background-size: 180px 180px;
	mix-blend-mode: multiply;
}

.womens-health__silhouette {
	position: absolute;
	top: -4%;
	right: -2%;
	bottom: -4%;
	z-index: 1;
	width: min(72vw, 42rem);
	pointer-events: none;
	overflow: hidden;
}

.womens-health__silhouette picture {
	display: contents;
}

.womens-health__silhouette-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: right center;
	opacity: 1;
}

.womens-health__body {
	position: relative;
	z-index: 2;
	display: flex;
	flex: 1;
	align-items: center;
	justify-content: center;
	min-height: 0;
	padding: var(--space-8) var(--header-pad-x) var(--space-10);
}

.womens-health__content {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: min(100%, 28rem);
	text-align: center;
}

.womens-health__title {
	margin: 0;
	font-size: clamp(2rem, 8vw, 3.25rem);
	font-weight: 500;
	line-height: 1.1;
	letter-spacing: 0.01em;
	color: var(--color-text);
	text-wrap: balance;
}

.womens-health__divider {
	width: min(12rem, 55%);
	margin: var(--space-5) 0;
	background: var(--color-text);
	opacity: 0.7;
}

.womens-health__lede {
	margin: 0;
	max-width: 22rem;
	font-family: var(--font-body);
	font-size: clamp(0.875rem, 3.2vw, 1.0625rem);
	font-style: italic;
	font-weight: 400;
	line-height: 1.55;
	color: var(--color-text);
}

@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__content {
		animation: womens-health-in 900ms cubic-bezier(0.22, 1, 0.36, 1) both;
		animation-timeline: view();
		animation-range: entry 8% cover 55%;
	}
}

@media (min-width: 48rem) {
	.womens-health__silhouette {
		width: min(55vw, 44rem);
	}

	.womens-health__title {
		font-size: clamp(2.75rem, 5vw, 3.75rem);
	}

	.womens-health__divider {
		margin-block: var(--space-6);
	}

	.womens-health__lede {
		max-width: 26rem;
		font-size: clamp(1rem, 1.6vw, 1.125rem);
	}
}

@media (min-width: 64rem) {
	.womens-health__silhouette {
		width: min(48vw, 48rem);
	}
}

/* Phone landscape */
@media (orientation: landscape) and (max-height: 31.25rem) {
	.womens-health__body {
		padding-block: var(--space-4);
	}

	.womens-health__title {
		font-size: clamp(1.5rem, 5vw, 2rem);
	}

	.womens-health__divider {
		margin-block: var(--space-3);
	}

	.womens-health__lede {
		font-size: 0.875rem;
	}

	.womens-health__silhouette {
		width: min(42vw, 18rem);
		opacity: 0.7;
	}
}

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

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

.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;
}

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

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

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

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

.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__select,
.contact-form__textarea {
	width: 100%;
	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);
	appearance: none;
}

.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__location {
	margin: var(--space-5) 0 0;
	font-family: var(--font-heading);
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--color-text-muted);
}

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

	.contact__intro {
		flex: 0 1 42%;
		max-width: 26rem;
	}

	.contact__intro .prose__title {
		font-size: clamp(1.75rem, 3vw, 2.25rem);
	}

	.contact-form {
		flex: 1 1 58%;
		grid-template-columns: 1fr 1fr;
		gap: var(--space-3) var(--space-4);
		align-content: center;
	}

	.contact-form__field--interest,
	.contact-form__field--message,
	.contact-form__submit {
		grid-column: 1 / -1;
	}

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

	.contact__intro {
		flex-basis: 38%;
	}
}

@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);
}

@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);
	}
}

/* --- 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/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, slightly leaner overall chrome */
	padding: calc(max(env(safe-area-inset-top, 0px), var(--header-pad-y)) + 0.55rem)
		var(--header-pad-x) var(--space-3);
	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-3);
		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;
}

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--philosophy {
	background: transparent;
}

.presentation-slide--womens-health {
	background: var(--color-rose);
}

.presentation-slide--womens-health-index {
	background: var(--color-cream);
	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.14;
	}

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

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

	.hero__body-text {
		margin-bottom: var(--space-6);
	}

	.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;
	}
}
