/* Frequency Balancing theme. Order: tokens, base, header, hero, sections, cards, profile, funnel, prose, footer, motion. */

/* 1. Tokens */

:root {
	color-scheme: light dark;
	--ehz-ink: #17302E;
	--ehz-ink-soft: #3C5754;
	--ehz-muted: #4E6A66;
	--ehz-sea: #1F6F6B;
	--ehz-sea-strong: #134B48;
	--ehz-sea-deep: #134B48;
	--ehz-sand: #F6F1E8;
	--ehz-mist: #E4EFEC;
	--ehz-shell: #FFFCF7;
	--ehz-gold: #C08A34;
	--ehz-gold-ink: #8A5F16;
	--ehz-gold-soft: #E8CE9A;
	--ehz-line: #17302E24;
	--ehz-line-strong: #17302E42;
	--ehz-dawn: #FBEEDF;
	--ehz-dawn-deep: #F4DDC4;
	--ehz-coral: #D9744F;
	--ehz-coral-ink: #A8482A;
	--ehz-error: #A63B2E;
	--ehz-error-bg: #A63B2E1A;
	--ehz-error-line: #E0B4A8;
	--ehz-gold-line: #C08A3473;
	--ehz-gold-soft-line: #E8CE9A80;
	--ehz-gold-wash: #E8CE9A4D;
	--ehz-on-accent: var(--ehz-shell);
	--ehz-on-gold: var(--ehz-ink);
	--ehz-on-dark: var(--ehz-sand);
	--ehz-on-dark-strong: var(--ehz-shell);
	--ehz-on-dark-soft: #F6F1E8E6;
	--ehz-on-dark-muted: #F6F1E8CC;
	--ehz-on-dark-line: #F6F1E873;
	--ehz-on-dark-faint: #F6F1E826;
	--ehz-sand-wash: #F6F1E880;
	--ehz-glass: #F6F1E8E0;
	--ehz-glass-strong: #F6F1E8F2;
	--ehz-ring: var(--ehz-mist);
	--ehz-scrim-tool: #0E3A3873;
	--ehz-scrim: linear-gradient(97deg, #0E3A38EB, #0E3A38E0 36%, #10423FD1 50%, #134B4857 64%, #134B481A 78%, #134B480A), linear-gradient(180deg, #0E3A3866, #134B4800 22%, #134B4800 80%, var(--ehz-mist));
	--ehz-scrim-phone: linear-gradient(180deg, #0E3A3838, #0E3A380F 30%, #0E3A381F);
	--ehz-scrim-copy: linear-gradient(180deg, #0E3A3800, #0E3A384D 2.5rem, #0E3A38B8 5rem, #0E3A38E0 7.5rem, #0E3A38EB);
	--ehz-shadow-sheet: 0 24px 40px -30px #134B48CC;
	--ehz-shadow-card: 0 24px 40px -30px #134B488C;
	--ehz-shadow-bar: 0 14px 40px #0A282640;
	--ehz-glow: radial-gradient(60% 80% at 100% 100%, #D9744F4D, #D9744F00 60%);
	--ehz-glow-footer: radial-gradient(50% 70% at 100% 0%, #D9744F33, #D9744F00 60%);
	--ehz-band-end: var(--ehz-sea);
	--ehz-f-bg: var(--ehz-mist);
	--ehz-f-ink: var(--ehz-sea-strong);
	/* Focus tints: low saturation so the tags read as labels, not alerts (the former coral looked red on sand). */
	--ehz-f-coral-bg: #F1E4DD;
	--ehz-f-coral-ink: #8A5744;
	--ehz-f-gold-bg: #F2E8D6;
	--ehz-f-gold-ink: #7C6132;
	--ehz-f-sage-bg: #E3EBDC;
	--ehz-f-sage-ink: #4E6A41;
	--ehz-f-plum-bg: #E9E4EC;
	--ehz-f-plum-ink: #5F4E6B;
	--ehz-icon-sun: none;
	--ehz-icon-moon: block;

	--ehz-font-display: "Fraunces", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
	--ehz-font-body: "Figtree", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;

	--ehz-size-display: clamp(2.5rem, 1.6rem + 3.6vw, 4.2rem);
	--ehz-size-h1: clamp(2.1rem, 1.6rem + 2.1vw, 3.1rem);
	--ehz-size-h2: clamp(1.7rem, 1.4rem + 1.3vw, 2.3rem);
	--ehz-size-h3: clamp(1.2rem, 1.1rem + .4vw, 1.4rem);
	--ehz-size-lede: clamp(1.075rem, 1rem + .35vw, 1.25rem);
	--ehz-size-body: 1.0625rem;
	--ehz-size-small: .875rem;
	--ehz-size-tiny: .78rem;

	--ehz-space-section: clamp(3.5rem, 2rem + 6vw, 7rem);
	--ehz-space-block: clamp(2rem, 1.4rem + 2.4vw, 3.25rem);

	--ehz-radius-card: 22px 22px 22px 6px;
	--ehz-radius-panel: 26px;
	--ehz-radius-field: 12px;

	--ehz-header-h: 4.75rem;
	--ehz-gutter: 2.5rem;
}

/* 2. Base + typography */

*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	background: var(--ehz-sand);
	color: var(--ehz-ink);
	font-family: var(--ehz-font-body);
	font-size: var(--ehz-size-body);
	line-height: 1.75;
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

body.ehz-nav-open { overflow: hidden; }
html { scrollbar-gutter: stable; } /* the open menu hides the scrollbar; keep the gutter so the header does not jump */

img,
svg,
video { max-width: 100%; height: auto; }

img { display: block; }

/* Layout display values must never win over the hidden attribute. */
[hidden] { display: none !important; }

h1, h2, h3, h4 {
	font-family: var(--ehz-font-display);
	font-weight: 400;
	font-optical-sizing: auto;
	font-variation-settings: "SOFT" 0, "WONK" 1;
	line-height: 1.14;
	letter-spacing: -.015em;
	color: var(--ehz-ink);
	margin: 0 0 .6em;
	text-wrap: balance;
}

h1 { font-size: var(--ehz-size-h1); }
h2 { font-size: var(--ehz-size-h2); }
h3 { font-size: var(--ehz-size-h3); }
h4 { font-size: 1.1rem; }

p { margin: 0 0 1.1em; }
p:last-child { margin-bottom: 0; }

a { color: var(--ehz-sea); text-decoration-thickness: 1px; text-underline-offset: .18em; }

a:hover { color: var(--ehz-coral-ink); }

strong { font-weight: 600; }

::selection { background: var(--ehz-dawn-deep); color: var(--ehz-sea-strong); }

:focus-visible { outline: 2px solid var(--ehz-sea); outline-offset: 3px; border-radius: 4px; }

.ehz-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100;
	padding: .8rem 1.2rem;
	background: var(--ehz-sea-deep);
	color: var(--ehz-on-dark);
	border-radius: 0 0 12px 0;
	font-weight: 600;
	text-decoration: none;
}

.ehz-skip:focus { left: 0; color: var(--ehz-on-dark); }

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

/* 3. Layout helpers */

@media (min-width: 900px) {
	:root { --ehz-gutter: 5rem; }
}

@media (max-width: 559px) {
	:root { --ehz-gutter: 2rem; }
}

.ehz-container {
	width: min(100% - var(--ehz-gutter), 70rem);
	margin-inline: auto;
}

/* One rhythm: sections pad both ends, a page head only the top. */
.ehz-section { padding-block: var(--ehz-space-section); }
.ehz-section--funnel { background: var(--ehz-mist); border-block: 1px solid var(--ehz-gold-line); }
.ehz-section--steps { background: linear-gradient(180deg, var(--ehz-dawn), var(--ehz-sand)); }

/* Reveal on scroll; ehz-reveal-off is the dead-man switch without theme.js. */
.js:not(.ehz-reveal-off) [data-ehz-reveal],
.js:not(.ehz-reveal-off) [data-ehz-reveal="stagger"] > * {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity .6s ease, transform .6s cubic-bezier(.22, .61, .36, 1);
}

.js [data-ehz-reveal="stagger"] { opacity: 1; transform: none; transition: none; }

.js [data-ehz-reveal].is-revealed,
.js [data-ehz-reveal="stagger"].is-revealed > * { opacity: 1; transform: none; }

/* 4. Header + navigation */

.ehz-funnel { scroll-margin-top: calc(var(--ehz-header-h) + 1rem); }

.ehz-header {
	position: sticky;
	top: 0;
	z-index: 40;
	background: var(--ehz-glass);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid transparent;
	transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.ehz-header.is-stuck {
	border-bottom-color: var(--ehz-line);
	box-shadow: var(--ehz-shadow-sheet);
	background: var(--ehz-glass-strong);
}

.ehz-header__inner {
	width: min(100% - var(--ehz-gutter), 70rem);
	margin-inline: auto;
	min-height: var(--ehz-header-h);
	transition: min-height .22s ease;
	display: flex;
	align-items: center;
	gap: 1rem;
}

@media (max-width: 899px) {
	:root { --ehz-header-h: 4.25rem; }
}

.ehz-header.is-compact .ehz-header__inner { min-height: 3.85rem; }
.ehz-header.is-compact .ehz-brand__name { font-size: 1.1rem; }
.ehz-header.is-compact .ehz-brand__tagline { opacity: 0; visibility: hidden; }

/* Flex, not block: inline-flex would ride high on line leading. */
.ehz-brand { display: flex; align-items: center; margin-right: auto; }

.ehz-brand__link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	gap: .7rem;
	text-decoration: none;
	color: var(--ehz-ink);
}

/* Logo pieces (see ehz_theme_mark* in functions.php): one-colour files are masks painted with currentColor. */
span.ehz-mark {
	display: inline-block;
	height: var(--ehz-mark-h, 34px);
	aspect-ratio: 976 / 683;
	background-color: currentColor;
	-webkit-mask: var(--ehz-mark-url) center / contain no-repeat;
	mask: var(--ehz-mark-url) center / contain no-repeat;
}
.ehz-mark-color { display: block; height: auto; width: auto; max-height: 100%; }
.ehz-wordmark {
	display: inline-block;
	height: var(--ehz-wordmark-h, 30px);
	aspect-ratio: 937 / 226;
	background-color: currentColor;
	-webkit-mask: var(--ehz-wordmark-url) left center / contain no-repeat;
	mask: var(--ehz-wordmark-url) left center / contain no-repeat;
	vertical-align: middle;
}

/* 1px down: the classic mark's bottom dot pulls its optical centre low. */
.ehz-brand__mark { color: var(--ehz-sea); display: inline-flex; }
.ehz-brand__mark .ehz-mark--classic { transform: translateY(1px); }
/* "wave" lockup: name with a letter-spaced small-caps descriptor and a short gold hairline beneath. */
.ehz-brand__text--wave { gap: .15rem; }
.ehz-brand__text--wave .ehz-brand__name { font-size: 1.18rem; }
.ehz-brand__descriptor { font-size: .6rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--ehz-muted); padding-top: .25rem; position: relative; }
.ehz-brand__descriptor::before { content: ""; position: absolute; top: 0; left: 0; width: 2.2rem; height: 1px; background: var(--ehz-gold); }
.ehz-header.is-compact .ehz-brand__descriptor { display: none; }
.ehz-header.is-compact .ehz-brand__text--wave .ehz-brand__name { font-size: 1.08rem; }

/* ---- "freqbal" lockup (proposal 07.10.): stacked mark + two-line name + spaced descriptor ---- */
/* Mark as SVG in green, words as HTML in the site's faces (Sebastian 08.10.): Fraunces for the name, Figtree caps beneath. */
.ehz-lockup { --ehz-lockup-serif: var(--ehz-font-display); --ehz-lockup-sans: var(--ehz-font-body); display: inline-flex; flex-direction: column; align-items: center; text-align: center; color: inherit; text-decoration: none; }
.ehz-lockup__mark { display: inline-flex; flex: none; margin-bottom: .55em; }
.ehz-lockup__name { font-family: var(--ehz-lockup-serif); font-weight: 500; font-size: 1.05rem; line-height: 1.08; letter-spacing: -.01em; font-variation-settings: "SOFT" 0, "WONK" 1; }
.ehz-lockup__descriptor { margin-top: .45em; font-family: var(--ehz-lockup-sans); font-size: 10.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--ehz-muted); white-space: nowrap; }

/* Header: the export's one-line SVG as is (viewBox 300×56); colour follows the row, size via height only. */
.ehz-brand__link--freqbal { color: var(--ehz-ink); display: inline-flex; align-items: center; }
.ehz-brand__link--freqbal .ehz-lockup-svg { display: block; height: 56px; width: auto; color: var(--ehz-ink); transition: height .22s ease; }
/* 56px = the export's own height (scale 1), so the outlined glyphs keep their pixel grid on 1x screens; the caps line steps back. */
.ehz-brand__link--freqbal .ehz-lockup-svg__sub { color: var(--ehz-muted); }
/* Small sizes drop the tiny caps line (it frays below ~8px) and centre the name on the mark. */
.ehz-header.is-compact .ehz-brand__link--freqbal .ehz-lockup-svg { height: 42px; }
.ehz-header.is-compact .ehz-brand__link--freqbal .ehz-lockup-svg__sub { display: none; }
.ehz-header.is-compact .ehz-brand__link--freqbal .ehz-lockup-svg__name { transform: translate(66.4px, 33px); }
@media (max-width: 699px) {
	.ehz-brand__link--freqbal .ehz-lockup-svg { height: 38px; }
	.ehz-brand__link--freqbal .ehz-lockup-svg__sub { display: none; }
	.ehz-brand__link--freqbal .ehz-lockup-svg__name { transform: translate(66.4px, 33px); }
}
@media (max-width: 379px) { .ehz-brand__link--freqbal .ehz-lockup-svg { height: 34px; } }

/* Header: the landscape lockup in the row – mark left, two-line name and spaced descriptor right. Compact bar → mark + name. */
.ehz-brand--freqbal .ehz-brand__link--freqbal { color: var(--ehz-ink); }
.ehz-lockup--landscape { flex-direction: row; align-items: center; gap: .8rem; text-align: left; }
.ehz-lockup--landscape .ehz-lockup__mark { margin: 0; color: var(--ehz-sea); }
.ehz-lockup--landscape .ehz-mark { width: 44px; height: 44px; }
.ehz-lockup--landscape .ehz-lockup__text { display: flex; flex-direction: column; align-items: flex-start; padding-top: 3px; } /* optical centre against the mark */
.ehz-lockup--landscape .ehz-lockup__name { font-size: 1.3rem; line-height: 1; white-space: nowrap; transition: font-size .22s ease; }
.ehz-lockup--landscape .ehz-lockup__descriptor { margin: .35em 0 0 2px; color: var(--ehz-muted); opacity: 1; } /* 2px optical indent: the F's side bearing */
.ehz-header.is-compact .ehz-lockup--landscape .ehz-lockup__descriptor { display: none; }
.ehz-header.is-compact .ehz-lockup--landscape .ehz-lockup__name { font-size: 1.15rem; }
.ehz-header.is-compact .ehz-lockup--landscape .ehz-mark { width: 34px; height: 34px; }
@media (max-width: 699px) {
	.ehz-lockup--landscape { gap: .55rem; }
	.ehz-lockup--landscape .ehz-lockup__name { font-size: .95rem; }
	.ehz-lockup--landscape .ehz-lockup__descriptor { display: none; }
	.ehz-lockup--landscape .ehz-mark { width: 32px; height: 32px; }
}
@media (max-width: 379px) {
	.ehz-lockup--landscape .ehz-lockup__name { font-size: .85rem; }
}

/* Home hero: the lockup stands beside the copy, framed by a hairline – quiet, not a banner. */
.ehz-hero__inner--lockup { display: flex; align-items: center; gap: clamp(2rem, 5vw, 5rem); }
.ehz-hero__lockup { flex: none; order: 2; margin-left: auto; padding: 2.4rem 2.6rem 2.2rem; border: 1px solid color-mix(in srgb, var(--ehz-sand) 38%, transparent); border-radius: 22px; background: color-mix(in srgb, var(--ehz-sea-deep) 55%, transparent); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); color: var(--ehz-sand); }
.ehz-hero__lockup .ehz-lockup__name { font-size: 1.9rem; }
.ehz-hero__lockup .ehz-lockup__descriptor { color: var(--ehz-sand); opacity: .85; }
@media (max-width: 899px) { .ehz-hero__lockup { display: none; } }

/* Footer: the signet alone from the export, cream, sized to the text block beside it (Sebastian 07.10. spät). */
.ehz-footer__mark .ehz-mark--freqbal { width: 48px; height: 48px; }
.ehz-footer .ehz-footer__mark--lockup { display: block; margin-bottom: 1.25rem; color: #FFFFFF; }
.ehz-footer .ehz-footer__mark--lockup .ehz-lockup-svg { display: block; height: 46px; width: auto; color: #FFFFFF; } /* outline SVG, all white on the green */
.ehz-footer .ehz-footer__mark--lockup .ehz-lockup--landscape,
.ehz-footer .ehz-footer__mark--lockup .ehz-lockup__mark,
.ehz-footer .ehz-footer__mark--lockup .ehz-lockup__name,
.ehz-footer .ehz-footer__mark--lockup .ehz-lockup__descriptor { color: #FFFFFF; } /* HTML fallback */
.ehz-brand__mark .ehz-mark-color { height: 40px; width: auto; }
/* Tagline out of flow so the wordmark meets the row centre. */
.ehz-brand__text { position: relative; display: flex; flex-direction: column; line-height: 1.15; }

.ehz-brand__name {
	font-family: var(--ehz-font-display);
	font-size: 1.22rem;
	transition: font-size .22s ease;
	font-variation-settings: "SOFT" 0, "WONK" 1;
	letter-spacing: -.01em;
	white-space: nowrap;
}

.ehz-brand__name .ehz-wordmark { display: block; }

@media (max-width: 379px) {
	.ehz-brand__name { font-size: 1.08rem; }
	.ehz-brand__name .ehz-wordmark { --ehz-wordmark-h: 26px; }
	.ehz-brand__mark .ehz-mark-color { height: 34px; }
}

.ehz-brand__tagline {
	position: absolute;
	top: 100%;
	left: 0;
	white-space: nowrap;
	font-size: var(--ehz-size-tiny);
	color: var(--ehz-muted);
	letter-spacing: .02em;
	transition: opacity .18s ease;
}

.custom-logo-link { display: inline-flex; }
.custom-logo { max-height: 3rem; width: auto; }

/* Whole-pixel SVG bars render evenly at 2x; the scheme toggle shares the disc. */
.ehz-navtoggle,
.ehz-themetoggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--ehz-line-strong);
	background: transparent;
	color: var(--ehz-ink);
	border-radius: 999px;
	cursor: pointer;
}

.ehz-navtoggle__bars { display: block; flex: none; }

.ehz-themetoggle:hover { border-color: var(--ehz-gold); }
html:not(.js) .ehz-themetoggle { display: none; }

/* Account button: the toggle's disc; on desktops a pill with its label wherever the row has room (theme.js). */
.ehz-accountlink {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .45rem;
	flex: none;
	min-width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--ehz-line-strong);
	border-radius: 999px;
	color: var(--ehz-ink);
	font-size: .95rem;
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
}
.ehz-accountlink:hover { border-color: var(--ehz-gold); }
.ehz-accountlink .ehz-icon { flex: none; }
.ehz-accountlink__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

@media (max-width: 899px) {
	.ehz-header__inner { gap: .6rem; }
}

@media (min-width: 1024px) {
	.ehz-accountlink { margin-left: -.5rem; } /* pairs with the scheme toggle; icon only, the label stays for screen readers */
}

.ehz-navtoggle__bar {
	transform-box: fill-box; /* rotate each bar about its own centre, not the SVG origin */
	transform-origin: center;
	transition: transform .2s ease, opacity .15s ease;
}

[aria-expanded="true"] .ehz-navtoggle__bar--top { transform: translateY(6px) rotate(45deg); }
[aria-expanded="true"] .ehz-navtoggle__bar--mid { opacity: 0; }
[aria-expanded="true"] .ehz-navtoggle__bar--bottom { transform: translateY(-6px) rotate(-45deg); }

.ehz-nav { display: none; align-items: center; gap: 1.75rem; }

.ehz-nav.is-open {
	display: flex;
	position: absolute;
	inset: var(--ehz-header-h) 0 auto;
	flex-direction: column;
	align-items: stretch;
	gap: .25rem;
	padding: 1rem calc(var(--ehz-gutter) / 2) 1.6rem;
	background: var(--ehz-shell);
	border-bottom: 1px solid var(--ehz-line);
	box-shadow: var(--ehz-shadow-sheet);
	max-height: calc(100vh - var(--ehz-header-h));
	overflow-y: auto;
}

.ehz-menu {
	display: flex;
	flex-direction: column;
	gap: .1rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ehz-menu a {
	display: block;
	padding: .65rem 0;
	color: var(--ehz-ink);
	text-decoration: none;
	font-weight: 500;
	border-bottom: 1px solid var(--ehz-line);
}

.ehz-menu li:last-child a { border-bottom: 0; }

.ehz-nav.is-open .ehz-nav__cta { margin-top: .9rem; min-height: 48px; justify-content: center; }

.ehz-menu .current-menu-item > a,
.ehz-menu .current_page_item > a { color: var(--ehz-sea-strong); }

/* Desktop row from 1024px (11.10., was 900px): below that the six items, account icon and CTA no longer fit on one line,
   so tablets in portrait get the menu button; landscape tablets (1024px) keep the row. */
@media (min-width: 1024px) {
	.ehz-navtoggle { display: none; }

	.ehz-nav,
	.ehz-nav.is-open { display: contents; }

	.ehz-menu {
		flex-direction: row;
		align-items: center;
		gap: 1rem; /* was 1.35rem; the account icon needs the room with a six-item menu at 1280px */
		margin-right: .25rem;
	}

	.ehz-themetoggle,
	.ehz-accountlink { order: 1; }
	.ehz-nav__cta { order: 2; padding: .6rem 1.2rem; }

	.ehz-menu a {
		padding: .35rem 0;
		border-bottom: 1px solid transparent;
		font-size: .98rem;
	}

	.ehz-menu a:hover { border-bottom-color: var(--ehz-gold); }

	.ehz-menu .current-menu-item > a,
	.ehz-menu .current_page_item > a { border-bottom-color: var(--ehz-gold); }

	.ehz-menu .sub-menu {
		position: absolute;
		display: none;
		min-width: 12rem;
		padding: .5rem .9rem;
		background: var(--ehz-shell);
		border: 1px solid var(--ehz-line);
		border-radius: 14px;
		box-shadow: var(--ehz-shadow-sheet);
	}

	.ehz-menu li:hover > .sub-menu,
	.ehz-menu li:focus-within > .sub-menu { display: block; }

	/* One line per item (08.10.): menu labels, the CTA and the lockup never break; the row tightens instead. */
	.ehz-brand { flex: none; }
	.ehz-menu a,
	.ehz-nav__cta { white-space: nowrap; }
}

/* The six-item menu, account icon and CTA share the row with the lockup (70rem wide at most), so gaps and type are a touch
   tighter than before; between 1024 and 1279px everything steps down a little more (type, gaps, lockup, CTA). */
@media (min-width: 1024px) {
	.ehz-header__inner { gap: .7rem; }
	.ehz-menu { gap: .75rem; margin-right: 0; }
	.ehz-menu a { font-size: .92rem; }
	.ehz-btn.ehz-nav__cta { padding: .55rem 1rem; } /* .ehz-btn.: beats .ehz-btn--small, which comes later */
}
@media (min-width: 1024px) and (max-width: 1279px) {
	.ehz-header__inner { gap: .5rem; }
	.ehz-menu { gap: .55rem; }
	.ehz-menu a { font-size: .84rem; }
	.ehz-btn.ehz-nav__cta { padding: .5rem .85rem; font-size: .86rem; }
	.ehz-header:not(.is-compact) .ehz-brand__link--freqbal .ehz-lockup-svg { height: 44px; }
}
/* Landscape tablets: the row takes 20px more on each side than the page gutter, so it still fits on one line. */
@media (min-width: 1024px) and (max-width: 1099px) {
	.ehz-header__inner { width: min(100% - 2.5rem, 70rem); }
}

/* 5. Hero: full-bleed clip, one CTA. Copy on the grid, tools (pause, prototype clip picker) out of its way. */

.ehz-hero { position: relative; overflow: hidden; isolation: isolate; min-height: 78vh; display: flex; align-items: center; padding-block: clamp(4rem, 3rem + 6vw, 7rem); background: var(--ehz-sea-deep); color: var(--ehz-on-dark); }
.ehz-hero__media { position: absolute; inset: -12% 0 0; z-index: -2; will-change: transform; transform: translate3d(0, var(--ehz-shift, 0px), 0); }
.ehz-hero__video { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Works for high-key clips: dark on the left half under the words, clear on the subject, mist at the foot. */
.ehz-hero__scrim { position: absolute; inset: 0; z-index: -1; background: var(--ehz-scrim); }

.ehz-hero__copy { max-width: 38rem; }
.ehz-hero__title { max-width: 36rem; font-size: var(--ehz-size-display); line-height: 1.04; letter-spacing: -.025em; margin-bottom: .4em; color: var(--ehz-on-dark); text-shadow: 0 2px 30px var(--ehz-scrim-tool); }
/* Signal: a regular sine from the end of the headline text to the screen edge, fading out towards the edge.
   theme.js sets --ehz-signal-x (text end), -y (middle of the last line) and -w (to the hero's edge) on the h1;
   the hero's overflow clips the rest. The words span is a block so lines break exactly as before. */
.ehz-hero__title { position: relative; }
.ehz-hero__words { display: block; }
.ehz-hero__signal { display: none; }
.ehz-hero.has-signal .ehz-hero__signal { --ehz-signal-gap: .4em; display: block; position: absolute; left: 0; top: calc(var(--ehz-signal-y) - .45em); width: var(--ehz-signal-w); height: .9em; color: var(--ehz-on-dark); opacity: .55; clip-path: inset(0 0 0 calc(var(--ehz-signal-x) + var(--ehz-signal-gap))); -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 12rem), transparent); mask-image: linear-gradient(to right, #000 calc(100% - 12rem), transparent); pointer-events: none; }
.ehz-hero__signal-svg { display: block; width: 100%; height: 100%; }
/* Intro (hero.php arms .is-intro before first paint, theme.js drops it once everything has run): the words fade
   in first; once they stand, theme.js draws the signal as a hairline from the text end and lets the sine grow out of
   it (is-signal fades it in); lede, buttons and trust follow. Only opacity, filter and transform move, so the layout
   is the final one from the first frame. */
.ehz-hero.is-intro .ehz-hero__words { animation: ehz-hero-intro-title .85s .1s cubic-bezier(.2, .65, .2, 1) both; }
.ehz-hero.is-intro .ehz-hero__signal { opacity: 0; transition: opacity .6s; }
.ehz-hero.is-intro.is-signal .ehz-hero__signal { opacity: .55; }
.ehz-hero.is-intro .ehz-hero__lede { animation: ehz-hero-intro-rise .7s 1.15s cubic-bezier(.2, .65, .2, 1) both; }
.ehz-hero.is-intro .ehz-hero__actions { animation: ehz-hero-intro-rise .7s 1.3s cubic-bezier(.2, .65, .2, 1) both; }
.ehz-hero.is-intro .ehz-hero__trust { animation: ehz-hero-intro-rise .7s 1.45s cubic-bezier(.2, .65, .2, 1) both; }
@keyframes ehz-hero-intro-title { from { opacity: 0; filter: blur(6px); transform: translateY(6px); } to { opacity: 1; filter: blur(0); transform: none; } }
@keyframes ehz-hero-intro-rise { from { opacity: 0; transform: translateY(.5rem); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .ehz-hero.is-intro .ehz-hero__words, .ehz-hero.is-intro .ehz-hero__lede, .ehz-hero.is-intro .ehz-hero__actions, .ehz-hero.is-intro .ehz-hero__trust { animation: none; } .ehz-hero.is-intro .ehz-hero__signal { opacity: .55; transition: none; } }
.ehz-hero__lede { font-size: var(--ehz-size-lede); line-height: 1.6; color: var(--ehz-on-dark-soft); max-width: 32rem; margin-bottom: 1.8rem; }
.ehz-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.4rem; margin-bottom: 1.5rem; }

/* The one dominant action: gold on the dark clip. */
.ehz-hero .ehz-hero__cta { min-height: 54px; padding-inline: 2.1rem; font-size: 1.05rem; }
.ehz-hero .ehz-hero__cta,
.ehz-stickycta .ehz-stickycta__btn { background: var(--ehz-gold); color: var(--ehz-on-gold); }
.ehz-hero .ehz-hero__cta:hover,
.ehz-stickycta .ehz-stickycta__btn:hover { background: var(--ehz-gold-soft); color: var(--ehz-on-gold); }
/* Hero button in white on gold (Sebastian 08.10.), both schemes. */
.ehz-hero .ehz-hero__cta,
.ehz-hero .ehz-hero__cta:hover { color: #FFFFFF; }

.ehz-hero__browse { display: inline-flex; align-items: center; min-height: 44px; color: var(--ehz-on-dark); font-weight: 500; text-decoration: underline; text-decoration-color: var(--ehz-gold-soft); text-underline-offset: .3em; }
.ehz-hero__browse:hover { color: var(--ehz-on-dark-strong); text-decoration-color: var(--ehz-on-dark-strong); }

.ehz-hero__trust { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; font-size: var(--ehz-size-small); color: var(--ehz-on-dark-muted); }
.ehz-hero__trust li { display: inline-flex; align-items: center; gap: .45rem; }
.ehz-hero__trust .ehz-icon { flex: none; width: 16px; height: 16px; color: var(--ehz-gold-soft); }

.ehz-hero__tools { position: absolute; right: clamp(1.25rem, 3vw, 2.5rem); bottom: clamp(1.25rem, 3vw, 2.25rem); z-index: 2; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .5rem .8rem; }

/* Icon-only, quiet in the corner; the label stays for screen readers. */
.ehz-hero__mediatoggle { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; padding: 0; border: 1px solid var(--ehz-on-dark-line); border-radius: 50%; background: var(--ehz-scrim-tool); backdrop-filter: blur(6px); color: var(--ehz-on-dark); opacity: .55; cursor: pointer; transition: opacity .16s ease; }
.ehz-hero__mediatoggle:hover, .ehz-hero__mediatoggle:focus-visible { opacity: 1; }
.ehz-hero__mediatoggle-icon { width: 9px; height: 11px; border-left: 3px solid currentColor; border-right: 3px solid currentColor; }
.ehz-hero__mediatoggle.is-paused .ehz-hero__mediatoggle-icon { border: 0; width: 0; height: 0; border-top: 5.5px solid transparent; border-bottom: 5.5px solid transparent; border-left: 9px solid currentColor; margin-left: 2px; }

/* Prototype clip picker: numbered discs, the active one gold. */
.ehz-hero__picker { display: inline-flex; align-items: center; gap: .6rem; }
.ehz-hero__proto { padding: .2rem .6rem; border: 1px solid var(--ehz-gold-soft-line); border-radius: 999px; background: var(--ehz-gold-wash); color: var(--ehz-gold-soft); font-size: .66rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.ehz-hero__picks { display: flex; gap: .35rem; }
.ehz-hero__pick { width: 44px; height: 44px; padding: 0; border: 1.5px solid var(--ehz-gold-soft); border-radius: 50%; background: var(--ehz-scrim-tool); backdrop-filter: blur(6px); color: var(--ehz-on-dark); font: inherit; font-size: .9rem; font-weight: 600; cursor: pointer; transition: background-color .16s ease, color .16s ease; }
.ehz-hero__pick:hover { border-color: var(--ehz-on-dark); }
.ehz-hero__pick[aria-pressed="true"] { background: var(--ehz-gold); border-color: var(--ehz-gold); color: var(--ehz-on-gold); }

/* Phone follow capsule on profiles: floats inset from the edges in deep sea with the brand's leaf corner,
   carries who you are booking, steps aside while reading downwards (theme.js). */
.ehz-stickycta { --ehz-capsule: #12302D; position: fixed; left: .625rem; right: .625rem; bottom: calc(.625rem + env(safe-area-inset-bottom)); z-index: 30; display: none; align-items: center; gap: .7rem; padding: .45rem .45rem .45rem .5rem; border-radius: 22px 22px 22px 6px; background: var(--ehz-capsule); color: var(--ehz-on-dark); box-shadow: var(--ehz-shadow-bar), inset 0 0 0 1px var(--ehz-on-dark-faint); transform: translateY(calc(100% + 1.5rem)); visibility: hidden; transition: transform .34s cubic-bezier(.2, .8, .2, 1), visibility .34s; }
.ehz-stickycta.is-visible { transform: none; visibility: visible; }
.ehz-stickycta__photo { flex: none; width: 44px; height: 44px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 2px var(--ehz-capsule), 0 0 0 3.5px var(--ehz-gold-soft); }
.ehz-stickycta__who { flex: 1; min-width: 0; display: grid; gap: .1rem; line-height: 1.2; }
.ehz-stickycta__name { font-family: var(--ehz-font-display); font-size: 1.02rem; font-weight: 500; color: var(--ehz-on-dark-strong); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ehz-stickycta__note { font-size: .8rem; color: var(--ehz-gold-soft); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ehz-stickycta .ehz-stickycta__btn { flex: none; min-height: 48px; padding-inline: 1.15rem; font-size: .95rem; border-radius: 16px 16px 16px 4px; }
@media (max-width: 339px) { .ehz-stickycta__photo { display: none; } }
@media (prefers-reduced-motion: reduce) { .ehz-stickycta { transition: visibility 0s; } }

@media (max-width: 899px) {
	.ehz-hero { min-height: 70vh; }
}

@media (max-width: 699px) {
	.ehz-hero { min-height: 68vh; min-height: 68svh; flex-direction: column; align-items: stretch; justify-content: flex-end; padding-block: 5rem 1rem; }
	.ehz-hero__video { object-position: 64% 38%; }
	/* Light veil; the dark part hangs on the copy block, so contrast holds at any height and on any clip. */
	.ehz-hero__scrim { background: var(--ehz-scrim-phone); }
	.ehz-hero__copy { position: relative; z-index: 0; }
	.ehz-hero__copy::before { content: ""; position: absolute; left: 50%; top: -8rem; bottom: -30rem; width: 100vw; transform: translateX(-50%); z-index: -1; background: var(--ehz-scrim-copy); }
	.ehz-hero__title { font-size: clamp(2.375rem, 2rem + 1.6vw, 2.625rem); }
	.ehz-hero__lede { font-size: 1.0625rem; line-height: 1.5; margin-bottom: 1.25rem; }
	.ehz-hero__actions { flex-direction: column; align-items: stretch; gap: .2rem; margin-bottom: .9rem; }
	.ehz-hero .ehz-hero__cta { min-height: 52px; }
	.ehz-hero__browse { align-self: center; }
	.ehz-hero__trust { font-size: .8rem; gap: .25rem .8rem; padding-right: 2.75rem; /* room for the pause icon */ }
	.ehz-hero__trust li:nth-child(n+3) { display: none; }
	/* Only the pause icon: stay in the corner. With the prototype picker the row moves under the copy. */
	.ehz-hero__tools { right: 1rem; bottom: .75rem; }
	.ehz-hero__tools:has(.ehz-hero__picker) { position: static; margin-top: 1.2rem; padding-inline: calc(var(--ehz-gutter) / 2); justify-content: center; gap: .4rem .6rem; }
	.ehz-hero__mediatoggle { width: 32px; height: 32px; }
	.ehz-hero__pick { width: 38px; height: 38px; font-size: .82rem; }
	.ehz-hero__picker { flex-wrap: wrap; justify-content: center; }
	.ehz-stickycta { display: flex; }
	body.ehz-stickycta-on { padding-bottom: calc(5.25rem + env(safe-area-inset-bottom)); }
}

/* 6. Sections, bands, steps */

.ehz-sectionhead { margin-bottom: var(--ehz-space-block); max-width: 46rem; }

.ehz-sectionhead--split {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem 2rem;
	max-width: none;
}

.ehz-sectionhead--split > div { max-width: 40rem; }

.ehz-sectionhead__title { font-size: var(--ehz-size-h2); margin-bottom: .35em; }

.ehz-sectionhead__lede {
	color: var(--ehz-muted);
	font-size: var(--ehz-size-lede);
	line-height: 1.6;
	max-width: 46ch;
	margin: 0;
}

/* One left edge: the head spans the container, only the measure is capped. */
.ehz-pagehead {
	position: relative;
	overflow: hidden;
	padding-block: var(--ehz-space-section) 0;
	background: linear-gradient(180deg, var(--ehz-dawn), transparent);
}

.ehz-pagehead__inner { position: relative; }

.ehz-pagehead__eyebrow {
	margin: 0 0 1rem;
	font-size: var(--ehz-size-tiny);
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--ehz-gold-ink);
}

.ehz-pagehead__title { font-size: var(--ehz-size-h1); margin-bottom: .35em; max-width: 46rem; }

.ehz-pagehead__lede {
	color: var(--ehz-muted);
	font-size: var(--ehz-size-lede);
	line-height: 1.6;
	margin: 0;
	max-width: 46rem;
}

.ehz-pagehead__action { margin: 1.2rem 0 0; }
.ehz-pagehead__lede p { margin-bottom: .6em; }
.ehz-pagehead__lede p:last-child { margin-bottom: 0; }

.ehz-pagehead__mark {
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	color: var(--ehz-coral);
	opacity: .16;
	pointer-events: none;
}

.ehz-pagehead__mark svg { width: clamp(8rem, 16vw, 14rem); height: auto; }

/* Featured image: 3:2 beside the copy, under it on phones. */
.ehz-pagehead--visual .ehz-pagehead__inner { display: grid; gap: 2rem 3rem; align-items: center; }
.ehz-pagehead--visual .ehz-pagehead__mark { display: none; }

@media (min-width: 1000px) {
	.ehz-pagehead--visual .ehz-pagehead__inner { grid-template-columns: minmax(0, 46rem) minmax(18rem, 26rem); justify-content: space-between; }
}

.ehz-pagehead__visual {
	position: relative;
	aspect-ratio: 3 / 2;
	border-radius: 24px 24px 24px 8px;
	overflow: hidden;
	background: var(--ehz-mist);
}

.ehz-pagehead__visual img { width: 100%; height: 100%; object-fit: cover; }

.ehz-pagehead__visual::after,
.ehz-card__photo::after {
	content: "";
	position: absolute;
	inset: 10px;
	border: 1px solid var(--ehz-gold-soft-line);
	border-radius: 16px 16px 16px 4px;
	background: linear-gradient(180deg, transparent 62%, var(--ehz-sand-wash));
	pointer-events: none;
}

@media (max-width: 999px) {
	.ehz-pagehead__mark { display: none; }
}

.ehz-page__after { margin-top: var(--ehz-space-block); }

/* Inner pages: reading column + sticky aside; the results state drops the aside. */
.ehz-page__grid { display: grid; gap: clamp(2rem, 4vw, 4rem); align-items: start; }

@media (min-width: 1000px) {
	.ehz-page__grid { grid-template-columns: minmax(0, 46rem) 20rem; justify-content: space-between; }
	.ehz-page__aside { position: sticky; top: calc(var(--ehz-header-h) + 1.5rem); }
	.ehz-page__grid:has([data-ehz-state="results"]) { grid-template-columns: 1fr; }
}

.ehz-page__grid:has([data-ehz-state="results"]) .ehz-page__aside { display: none; }

.ehz-aside {
	display: grid;
	gap: .7rem;
	padding: 1.4rem;
	background: var(--ehz-shell);
	border: 1px solid var(--ehz-gold-line);
	border-radius: 20px;
}

.ehz-aside__title { font-size: 1.3rem; margin: 0; }
.ehz-aside__text { margin: 0; color: var(--ehz-muted); font-size: var(--ehz-size-small); line-height: 1.6; }
.ehz-aside__text p { margin: 0 0 .6em; }
.ehz-aside__text p:last-child { margin: 0; }
.ehz-aside .ehz-btn { justify-self: start; margin-top: .3rem; }

.ehz-steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: clamp(1.5rem, 3vw, 2.75rem);
}

@media (min-width: 760px) {
	.ehz-steps { grid-template-columns: repeat(3, 1fr); }
}

.ehz-step { border-top: 1px solid var(--ehz-gold-line); padding-top: 1.1rem; }

.ehz-step__num {
	display: block;
	font-family: var(--ehz-font-display);
	font-size: 2.6rem;
	line-height: 1;
	background: linear-gradient(135deg, var(--ehz-sea), var(--ehz-coral));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	width: max-content;
	margin-bottom: .5rem;
}

.ehz-step__title { font-size: var(--ehz-size-h3); margin-bottom: .45em; }
.ehz-step__text { color: var(--ehz-muted); margin: 0; }

.ehz-band {
	background: var(--ehz-glow), linear-gradient(115deg, var(--ehz-sea-deep) 40%, var(--ehz-band-end));
	color: var(--ehz-on-dark);
	border-radius: var(--ehz-radius-panel);
	padding: clamp(1.75rem, 1rem + 3vw, 3.25rem);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem 2.5rem;
	position: relative;
	overflow: hidden;
}

.ehz-band::after {
	content: "";
	position: absolute;
	right: -6rem;
	top: -8rem;
	width: 22rem;
	height: 22rem;
	border-radius: 50%;
	border: 1px solid var(--ehz-gold-soft-line);
	pointer-events: none;
}

.ehz-band__copy { max-width: 34rem; position: relative; }
.ehz-band__title { color: var(--ehz-on-dark); font-size: var(--ehz-size-h2); margin-bottom: .35em; }
.ehz-band__text { color: var(--ehz-on-dark-soft); margin: 0; }

.ehz-band__action { display: flex; flex-wrap: wrap; gap: .75rem; position: relative; }

/* Closing band on the profile: a hairline and a full section gap separate it from the content above. */
.ehz-profile__divider { border: 0; border-top: 1px solid var(--ehz-gold-line); margin: 0 0 var(--ehz-space-section); }
.ehz-band--profile { margin-bottom: var(--ehz-space-section); }
/* Below a page's content column, with the same breathing room the profile keeps above its band. */
.ehz-band--page { margin-top: var(--ehz-space-section); }

@media (max-width: 559px) {
	.ehz-band__action,
	.ehz-band__action .ehz-btn { width: 100%; }
	.ehz-profile__photo { max-width: none; }
}
.ehz-band--spaced { margin-top: var(--ehz-space-section); }

/* Buttons */

.ehz-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	padding: .8rem 1.5rem;
	border-radius: 999px;
	border: 1.5px solid transparent;
	background: var(--ehz-sea);
	color: var(--ehz-on-accent);
	font-family: var(--ehz-font-body);
	font-size: .98rem;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}

.ehz-btn:hover { background: var(--ehz-sea-strong); color: var(--ehz-on-accent); transform: translateY(-1px); }
.ehz-btn:active { transform: none; }

.ehz-btn--secondary,
.ehz-btn--ghost {
	background: transparent;
	color: var(--ehz-sea-strong);
	border-color: var(--ehz-gold);
}

.ehz-btn--secondary:hover,
.ehz-btn--ghost:hover { background: var(--ehz-dawn-deep); border-color: var(--ehz-gold-ink); color: var(--ehz-sea-strong); }

.ehz-btn--light { background: var(--ehz-on-dark); color: var(--ehz-sea-deep); }
.ehz-btn--light:hover { background: var(--ehz-on-dark-strong); color: var(--ehz-sea-deep); }

/* Ghost: the outline button a shade lighter; dark bands re-tint it. */
.ehz-btn--ghost { border-color: var(--ehz-gold-line); }

.ehz-band .ehz-btn--ghost,
.ehz-footer .ehz-btn--ghost {
	color: var(--ehz-on-dark);
	border-color: var(--ehz-on-dark-line);
}

.ehz-band .ehz-btn--ghost:hover,
.ehz-footer .ehz-btn--ghost:hover { background: var(--ehz-on-dark-faint); color: var(--ehz-on-dark); }

.ehz-btn--large { padding: .95rem 1.9rem; font-size: 1.03rem; }
.ehz-btn--small { padding: .6rem 1.15rem; font-size: .9rem; }

@media (max-width: 899px) {
	.ehz-btn--small { min-height: 44px; }
}
.ehz-btn--block { width: 100%; }

.ehz-hero :focus-visible,
.ehz-band :focus-visible,
.ehz-footer :focus-visible { outline-color: var(--ehz-gold-soft); }

.ehz-link,
.ehz-results__all:not(.ehz-btn) { display: inline-block; padding-block: .45rem; margin-block: -.45rem; }

.ehz-link {
	font-weight: 600;
	color: var(--ehz-sea-strong);
	text-decoration: underline;
	text-decoration-color: var(--ehz-gold);
	text-underline-offset: .3em;
}

.ehz-link--strong { font-size: var(--ehz-size-lede); }

/* 7. Cards + tags */

.ehz-cards,
.ehz-results__grid {
	display: grid;
	gap: clamp(1.25rem, 2.5vw, 2rem);
	grid-template-columns: 1fr;
}

@media (min-width: 620px) {
	.ehz-cards { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1000px) {
	.ehz-cards { grid-template-columns: repeat(3, 1fr); }
}

.ehz-card,
.ehz-post {
	display: flex;
	flex-direction: column;
	background: var(--ehz-shell);
	border: 1px solid var(--ehz-line);
	border-radius: var(--ehz-radius-card);
	overflow: hidden;
	transition: border-color .18s ease, transform .22s ease, box-shadow .22s ease;
}

.ehz-card:hover { border-color: var(--ehz-gold); transform: translateY(-3px); box-shadow: var(--ehz-shadow-card); }

.ehz-card__photo { display: block; position: relative; aspect-ratio: 1; background: var(--ehz-mist); overflow: hidden; }

.ehz-card__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.ehz-card:hover .ehz-card__photo img { transform: scale(1.03); }

.ehz-card__name { font-size: 1.32rem; margin: 1.25rem 1.4rem .25rem; }

.ehz-card__name a { color: inherit; text-decoration: none; }
.ehz-card__name a:hover,
.ehz-card__name a:focus-visible { text-decoration: underline; text-decoration-color: var(--ehz-gold); text-underline-offset: .18em; }

.ehz-card__tagline,
.ehz-post__excerpt {
	margin: 0 1.4rem .9rem;
	color: var(--ehz-muted);
	font-size: var(--ehz-size-small);
	line-height: 1.6;
}

.ehz-card__tags { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 1.4rem .9rem; }

.ehz-tag {
	display: inline-flex;
	align-items: center;
	padding: .28rem .7rem;
	border-radius: 999px;
	background: var(--ehz-f-bg);
	color: var(--ehz-ink);
	font-size: var(--ehz-size-tiny);
	font-weight: 500;
	line-height: 1.5;
}

.ehz-tags { display: flex; flex-wrap: wrap; gap: .45rem; }
/* Area-of-focus palette, keyed by slug on cards, profile items and funnel chips (default = sea). */
[data-ehz-focus="emotional-balance"], [data-ehz-option-id="emotional-balance"],
[data-ehz-focus="relationships"], [data-ehz-option-id="relationships"],
[data-ehz-focus="energy-vitality"], [data-ehz-option-id="energy-vitality"] { --ehz-f-bg: var(--ehz-f-coral-bg); --ehz-f-ink: var(--ehz-f-coral-ink); }
[data-ehz-focus="abundance-prosperity"], [data-ehz-option-id="abundance-prosperity"],
[data-ehz-focus="life-purpose-clarity"], [data-ehz-option-id="life-purpose-clarity"] { --ehz-f-bg: var(--ehz-f-gold-bg); --ehz-f-ink: var(--ehz-f-gold-ink); }
[data-ehz-focus="animals-pets"], [data-ehz-option-id="animals-pets"],
[data-ehz-focus="home-environment"], [data-ehz-option-id="home-environment"] { --ehz-f-bg: var(--ehz-f-sage-bg); --ehz-f-ink: var(--ehz-f-sage-ink); }
[data-ehz-focus="custom-programs"], [data-ehz-option-id="custom-programs"],
[data-ehz-focus="sleep-support"], [data-ehz-option-id="sleep-support"] { --ehz-f-bg: var(--ehz-f-plum-bg); --ehz-f-ink: var(--ehz-f-plum-ink); }

.ehz-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: .3rem 1rem;
	margin: 0 1.4rem .9rem;
	color: var(--ehz-muted);
	font-size: var(--ehz-size-tiny);
}

.ehz-card__meta-item { display: inline-flex; align-items: center; gap: .35rem; }

/* Near matches: "What's different" row; pills and box live in the plugin's funnel.css. */
.ehz-card .ehz-card__diff { margin: 0 1.4rem .9rem; }

.ehz-card__price {
	margin: 0 1.4rem;
	font-family: var(--ehz-font-display);
	font-size: 1.3rem;
	font-weight: 400;
	line-height: 1.25;
	color: var(--ehz-ink);
}

.ehz-card__unit,
.ehz-booking__unit {
	display: block;
	font-family: var(--ehz-font-body);
	font-size: var(--ehz-size-tiny);
	font-weight: 400;
	color: var(--ehz-muted);
	letter-spacing: .01em;
}

.ehz-card__cta { margin: auto 1.4rem 1.4rem; padding-top: 1.1rem; }
.ehz-card__cta .ehz-btn { width: 100%; }

/* 8. Profile */

.ehz-profile__grid {
	display: grid;
	gap: clamp(2rem, 1rem + 3.5vw, 3.5rem);
	padding-block: clamp(2.5rem, 1.5rem + 4vw, 4.5rem) var(--ehz-space-block);
}

@media (min-width: 1000px) {
	.ehz-profile__grid { grid-template-columns: 320px minmax(0, 1fr); align-items: start; }
	/* The booking box follows the reader down the page: the rail is as tall as the text beside it,
	   and the box comes last in it so nothing scrolls across it. */
	.ehz-profile__side { align-self: stretch; align-content: start; }
	.ehz-booking { order: 1; position: sticky; top: calc(var(--ehz-header-h) + 1.25rem); }
}

.ehz-profile__side { display: grid; gap: 1.5rem; }

/* Phones: name before the booking rail. */
@media (max-width: 999px) {
	.ehz-profile__grid { display: flex; flex-direction: column; padding-top: var(--ehz-space-section); }
	.ehz-profile__side { display: contents; }
	.ehz-profile__photo { order: 1; max-width: 22rem; width: 100%; }
	.ehz-profile__main { order: 2; }
	.ehz-quote { order: 3; }
	.ehz-meta { order: 4; }
	.ehz-booking { order: 5; }
}

.ehz-profile__photo {
	border-radius: 14px;
	overflow: hidden;
	background: var(--ehz-mist);
	aspect-ratio: 1;
	border: 1px solid var(--ehz-line);
}

.ehz-profile__photo img { width: 100%; height: 100%; object-fit: cover; }

/* Intro video: a quiet text button under the portrait; the player takes the portrait's square, whole frame visible. */
.ehz-profile__photo.is-video { background: #0d1a19; }
.ehz-profile__video { display: block; width: 100%; height: 100%; object-fit: contain; background: #0d1a19; }
.ehz-profile__video[hidden], .ehz-profile__photo img[hidden] { display: none; }

.ehz-profile__meet {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	justify-self: start;
	margin-top: -.75rem;
	padding: .35rem .1rem;
	font-size: var(--ehz-size-small, .95rem);
	font-weight: 600;
	color: var(--ehz-sea-strong);
	text-decoration: none;
	border-radius: 6px;
}
.ehz-profile__meet:hover { color: var(--ehz-sea); text-decoration: underline; text-underline-offset: 3px; }
.ehz-profile__meet:focus-visible { outline: 2px solid var(--ehz-sea); outline-offset: 3px; }
.ehz-profile__meet-icon { flex: none; }

@media (max-width: 999px) {
	.ehz-profile__meet { order: 1; align-self: flex-start; margin-top: -1.25rem; }
}

/* The quote is plain display text on the page, set off by a gold rule – no filled box. */
.ehz-quote {
	margin: .5rem 0 0;
	padding: .15rem 0 .15rem 1.1rem;
	border-left: 2px solid var(--ehz-gold-line);
	position: relative;
}

.ehz-quote blockquote,
.ehz-testimonial blockquote,
.ehz-prose blockquote {
	margin: 0 0 .6rem;
	font-family: var(--ehz-font-display);
	font-style: italic;
	font-size: 1.12rem;
	line-height: 1.5;
	color: var(--ehz-sea-strong);
}

.ehz-quote blockquote::before { content: "“"; }
.ehz-quote blockquote::after { content: "”"; }

.ehz-quote blockquote { color: var(--ehz-ink); }
.ehz-quote figcaption { font-size: var(--ehz-size-tiny); color: var(--ehz-muted); }

/* Booking area: no card, it sits on the page like the facts above it. The 10px button radius applies only here. */
.ehz-booking {
	margin-top: .5rem;
	display: grid;
	gap: .85rem;
}

.ehz-booking .ehz-btn { border-radius: 10px; }
.ehz-booking .ehz-btn--large { padding-block: .85rem; font-size: .98rem; }
.ehz-booking .ehz-btn--secondary { border: 1px solid var(--ehz-line-strong); color: var(--ehz-ink); font-weight: 500; }
.ehz-booking .ehz-btn--secondary:hover { border-color: var(--ehz-ink-soft); background: var(--ehz-shell); color: var(--ehz-ink); }

.ehz-booking__price { margin: 0 0 .15rem; display: flex; align-items: baseline; flex-wrap: wrap; gap: .25rem .5rem; }
.ehz-booking .ehz-booking__unit { display: inline; font-size: var(--ehz-size-small); }

/* One session or a monthly plan: a quiet segmented control inside the booking box, radio semantics
   (single-practitioner.php). Deliberately not the colourful chips – it must not compete with the price. */
.ehz-packages {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
	margin: 0 0 .35rem;
	padding: 3px;
	border: 1px solid var(--ehz-line);
	border-radius: 999px;
	background: var(--ehz-line);
	min-width: 0;
}

.ehz-booking .ehz-packages .ehz-packages__option {
	justify-content: center;
	min-height: 36px;
	padding: .35rem .6rem;
	font-size: var(--ehz-size-small);
	font-weight: 500;
	text-align: center;
	white-space: nowrap;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--ehz-muted);
	transition: color .16s ease, background-color .16s ease, box-shadow .16s ease;
}

.ehz-booking .ehz-packages .ehz-packages__option:hover { color: var(--ehz-ink); border-color: transparent; }

.ehz-booking .ehz-packages .ehz-packages__option.is-selected,
.ehz-booking .ehz-packages .ehz-packages__option:has(.ehz-chip__input:checked) {
	background: var(--ehz-shell);
	color: var(--ehz-ink);
	border-color: transparent;
	box-shadow: 0 1px 2px rgba(0, 0, 0, .08), 0 0 0 1px var(--ehz-line);
}

.ehz-booking .ehz-packages .ehz-packages__option:has(.ehz-chip__input:focus-visible) { outline: 2px solid var(--ehz-sea); outline-offset: 2px; }

.ehz-booking__amount {
	font-family: var(--ehz-font-display);
	font-size: 2.3rem;
	line-height: 1.1;
}

.ehz-booking__note {
	margin: .15rem 0 0;
	font-size: var(--ehz-size-tiny);
	color: var(--ehz-muted);
	line-height: 1.5;
}

/* Facts: a two-column list, label in a fixed column, value left-aligned, hairlines between the rows. */
.ehz-meta { margin: .5rem 0 0; border-top: 1px solid var(--ehz-line); }

.ehz-meta__row {
	display: grid;
	grid-template-columns: 120px minmax(0, 1fr);
	align-items: baseline;
	gap: 0 1rem;
	padding-block: .8rem;
	border-bottom: 1px solid var(--ehz-line);
}

.ehz-meta dt {
	color: var(--ehz-muted);
	font-size: var(--ehz-size-tiny);
	line-height: 1.4;
}

.ehz-meta dd {
	margin: 0;
	font-size: var(--ehz-size-small);
	font-weight: 500;
	color: var(--ehz-ink);
	line-height: 1.4;
}

.ehz-profile__head { margin-bottom: 1.6rem; }

.ehz-badge,
.ehz-thanks__demo {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	margin: 0 0 1rem;
	padding: .25rem .7rem;
	border: 1px solid var(--ehz-gold);
	border-radius: 999px;
	color: var(--ehz-gold-ink);
	background: var(--ehz-gold-wash);
	font-size: var(--ehz-size-tiny);
	font-weight: 600;
}

.ehz-profile__name { font-size: var(--ehz-size-h1); margin-bottom: .2em; }

.ehz-profile__role {
	margin: 0 0 .7rem;
	color: var(--ehz-ink);
	font-weight: 400;
	font-size: 1.02rem;
}

.ehz-profile__tagline {
	font-family: var(--ehz-font-display);
	font-style: italic;
	font-weight: 300;
	font-size: clamp(1.35rem, 1.1rem + 1vw, 1.8rem);
	line-height: 1.35;
	color: var(--ehz-coral-ink);
	margin: 0 0 1.4rem;
	max-width: 30ch;
	font-variation-settings: "SOFT" 40, "WONK" 1;
}

.ehz-profile__bio { margin-bottom: var(--ehz-space-block); }
.ehz-profile__block { margin-bottom: var(--ehz-space-block); }
.ehz-profile__block:last-child { margin-bottom: 0; }

/* Each section opens with a full-width gold hairline above its heading. */
.ehz-profile__block { border-top: 1px solid var(--ehz-gold-line); padding-top: 1.6rem; }

.ehz-profile__h2 {
	font-size: clamp(1.4rem, 1.2rem + .8vw, 1.75rem);
	margin-bottom: .7em;
}

/* Focus tags: outline pills on the shell, a small dot in the area's colour, the label in ink. */
.ehz-focus {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: .6rem;
}

/* Same tonal pills as the funnel chips: focus tint, ink text, no icon, no border. */
.ehz-focus__item {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	padding: .5rem 1.1rem;
	background: var(--ehz-f-bg);
	border: 0;
	border-radius: 999px;
	color: var(--ehz-ink);
	font-size: var(--ehz-size-small);
	line-height: 1.4;
}

.ehz-focus__dot { display: none; }
.ehz-focus__label { font-weight: 500; }

.ehz-focus__flag {
	padding-left: .5rem;
	border-left: 1px solid var(--ehz-line);
	font-size: var(--ehz-size-tiny);
	color: var(--ehz-muted);
	white-space: nowrap;
}

/* Ways of working: the same tonal pills as the focus tags, but all in one colour (mist). */
.ehz-profile__block--tags .ehz-tags { gap: .6rem; }
.ehz-profile__block--tags .ehz-tag { padding: .5rem 1.1rem; background: var(--ehz-mist); color: var(--ehz-ink); font-size: var(--ehz-size-small); font-weight: 500; line-height: 1.4; }

/* Testimonials: a shell card with a hairline, like the rest of the profile – no mist tint on the sand (Sebastian 08.10.). */
.ehz-testimonials {
	background: var(--ehz-shell);
	border: 1px solid var(--ehz-line);
	border-radius: var(--ehz-radius-panel);
	padding: clamp(1.4rem, 1rem + 1.5vw, 2.25rem);
	display: grid;
	gap: 1.5rem;
}

.ehz-testimonial { margin: 0; }
.ehz-testimonial + .ehz-testimonial { border-top: 1px solid var(--ehz-line); padding-top: 1.5rem; }

.ehz-testimonial blockquote { font-size: 1.1rem; line-height: 1.6; color: var(--ehz-ink); }

.ehz-testimonial { padding-left: 2.4rem; }
.ehz-testimonial blockquote { position: relative; }

.ehz-testimonial blockquote::before {
	content: "“";
	position: absolute;
	left: -2.4rem;
	top: -.08em;
	font-size: 3rem;
	line-height: 1;
	font-style: normal;
	color: var(--ehz-gold);
	opacity: .6;
}

.ehz-testimonial figcaption { font-size: var(--ehz-size-small); color: var(--ehz-muted); }

.ehz-testimonial figcaption::before { content: "— "; }

/* 9. Funnel, join form, thank you */

/* Tokens the plugin reads (docs/FUNNEL-MARKUP.md §2). */
.ehz-funnel,
body .ehz-join {
	--ehz-surface: var(--ehz-shell);
	--ehz-accent: var(--ehz-sea);
	--ehz-accent-soft: var(--ehz-mist);
	--ehz-radius: 16px;
	--ehz-gap: 1rem;
}

.ehz-funnel-shell { max-width: 45rem; }
.ehz-funnel { max-width: none; margin: 0; }
.ehz-funnel-shell:has([data-ehz-state="results"]) { max-width: none; }

.ehz-funnel,
body .ehz-join--done,
body .ehz-join--invalid {
	background: var(--ehz-shell);
	border: 1px solid var(--ehz-line);
	border-radius: var(--ehz-radius-panel);
	padding: clamp(1.4rem, 1rem + 2vw, 2.5rem);
}

.ehz-funnel.is-loading { opacity: .7; }

/* The page head carries the title; plugin intro and second frame go. */
.ehz-funnel__intro { display: none; }
.ehz-funnel__form { background: none; border: 0; border-radius: 0; padding: 0; }

.ehz-funnel__progress {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .6rem 1rem;
	list-style: none;
	margin: 0 0 1.75rem;
	padding: 0 0 1.25rem;
	border-bottom: 1px solid var(--ehz-gold-line);
}

.ehz-funnel__progress-step {
	display: flex;
	align-items: center;
	gap: .55rem;
	min-height: 1.8rem;
	color: var(--ehz-muted);
	font-size: var(--ehz-size-small);
}

/* Hairline between discs, gold up to the current step. */
.ehz-funnel__progress-step + .ehz-funnel__progress-step::before {
	content: "";
	width: 1.5rem;
	height: 1px;
	margin-right: .4rem;
	background: var(--ehz-line-strong);
}

.ehz-funnel__progress-step.is-done + .ehz-funnel__progress-step::before { background: var(--ehz-gold); height: 2px; }

/* Fixed line box: the bold current label cannot push the disc. */
.ehz-funnel__progress-label { line-height: 1.8rem; }

.ehz-funnel__progress-num {
	display: inline-flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 1.8rem;
	height: 1.8rem;
	border-radius: 50%;
	border: 1px solid var(--ehz-line-strong);
	font-family: var(--ehz-font-display);
	font-size: .95rem;
	line-height: 1;
}

.ehz-funnel__progress-step.is-current { color: var(--ehz-ink); font-weight: 600; }

.ehz-funnel__progress-step.is-current .ehz-funnel__progress-num {
	background: var(--ehz-sea);
	border-color: var(--ehz-sea);
	color: var(--ehz-on-accent);
}

.ehz-funnel__progress-step.is-done .ehz-funnel__progress-num {
	background: var(--ehz-gold-wash);
	border-color: var(--ehz-gold);
	color: var(--ehz-gold-ink);
}

/* Without JS all steps stack. */
.ehz-funnel__step {
	border: 0;
	margin: 0;
	padding: 0;
	min-width: 0;
}

.ehz-funnel__step + .ehz-funnel__step { margin-top: 2.25rem; }
.ehz-funnel__step:focus { outline: none; }

.ehz-funnel__question {
	font-family: var(--ehz-font-display);
	font-weight: 400;
	font-size: clamp(1.25rem, 1.1rem + .7vw, 1.55rem);
	line-height: 1.25;
	color: var(--ehz-ink);
	padding: 0;
	margin: 0 0 .4rem;
}

.ehz-funnel__hint { color: var(--ehz-muted); font-size: var(--ehz-size-small); margin: 0 0 1.1rem; }

.ehz-funnel__chips { display: flex; flex-wrap: wrap; gap: .55rem; }

.ehz-chip {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	position: relative;
	min-height: 44px;
	padding: .55rem 1.1rem;
	border: 1.5px solid var(--ehz-line-strong);
	border-radius: 999px;
	background: var(--ehz-shell);
	color: var(--ehz-ink);
	font: inherit;
	font-size: .95rem;
	line-height: 1.4;
	cursor: pointer;
	transition: background-color .16s ease, border-color .16s ease, color .16s ease;
}

/* Chips: tonal fill everywhere (Sebastian's reference "2B", 07.10.) – soft focus tint behind ink text, no icons, no
   border. Selected = the deep focus tone with light text and the pick order as a small number. */
.ehz-chip { --ehz-accent: var(--ehz-f-ink); --ehz-accent-soft: var(--ehz-f-bg); background: var(--ehz-f-bg); color: var(--ehz-ink); border-color: transparent; font-weight: 500; }
.ehz-chip:hover { border-color: color-mix(in srgb, var(--ehz-f-ink) 45%, transparent); }
.ehz-chip:active { transform: scale(.98); }
.ehz-chip .ehz-chip__icon { display: none; }
.ehz-chip[data-rank]::after { content: attr(data-rank); margin-left: .35rem; font-size: var(--ehz-size-tiny); font-weight: 500; opacity: .8; }

.ehz-chip__input,
.ehz-option__input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	margin: 0;
}

.ehz-chip:focus-within,
.ehz-option:focus-within { outline: 2px solid var(--ehz-sea); outline-offset: 3px; }

.ehz-chip__icon { display: inline-flex; color: var(--ehz-f-ink); }
.ehz-chip__icon svg { width: 18px; height: 18px; }

.ehz-chip.is-selected,
.ehz-chip[aria-pressed="true"],
.ehz-chip:has(.ehz-chip__input:checked) {
	background: var(--ehz-f-ink);
	border-color: var(--ehz-f-ink);
	color: var(--ehz-on-accent);
	font-weight: 600;
}

.ehz-chip.is-selected .ehz-chip__icon,
.ehz-chip:has(.ehz-chip__input:checked) .ehz-chip__icon { color: currentColor; }

.ehz-funnel__options { display: grid; gap: .65rem; }

@media (min-width: 640px) {
	.ehz-funnel__options { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.ehz-option {
	display: flex;
	flex-direction: column;
	gap: .15rem;
	position: relative;
	padding: .9rem 1.1rem;
	border: 1.5px solid var(--ehz-line-strong);
	border-radius: 16px;
	background: var(--ehz-shell);
	cursor: pointer;
	transition: background-color .16s ease, border-color .16s ease;
}

.ehz-option:hover { background: var(--ehz-dawn); border-color: var(--ehz-gold); }

.ehz-option.is-selected,
.ehz-option:has(.ehz-option__input:checked) {
	border-color: var(--ehz-sea);
	background: var(--ehz-mist);
}

.ehz-option__label { font-weight: 600; font-size: .98rem; }
.ehz-option__hint { font-size: var(--ehz-size-tiny); color: var(--ehz-muted); line-height: 1.5; }

.ehz-funnel__options--inline { display: flex; flex-wrap: wrap; gap: .55rem; }

.ehz-funnel__options--inline .ehz-option {
	flex-direction: row;
	align-items: center;
	gap: .5rem;
	padding: .5rem 1.05rem;
	border-radius: 999px;
}

.ehz-funnel__options--inline .ehz-option__label { font-weight: 500; }

.ehz-funnel__nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: .7rem;
	margin-top: 1.9rem;
	padding-top: 1.4rem;
	border-top: 1px solid var(--ehz-line);
}

.ehz-funnel__back { margin-right: auto; }

.ehz-funnel__status {
	margin: 1rem 0 0;
	font-size: var(--ehz-size-small);
	color: var(--ehz-muted);
	min-height: 1.5em;
}

.ehz-funnel__status:empty { margin-top: 0; min-height: 0; }

/* Results: no panel frame, full content width. */
.ehz-funnel[data-ehz-state="results"] { background: none; border: 0; border-radius: 0; padding: 0; }

.ehz-results__grid { grid-template-columns: repeat(auto-fit, minmax(280px, 352px)); justify-content: center; }

.ehz-results__heading,
.ehz-results__count,
.ehz-results__empty { text-align: center; }

.ehz-results__actions { justify-content: center; }

.ehz-results__heading { font-size: var(--ehz-size-h2); margin-bottom: .3em; }

.ehz-results__count,
.ehz-results__empty,
.ehz-funnel__empty {
	color: var(--ehz-muted);
	font-size: var(--ehz-size-lede);
	margin: 0 auto var(--ehz-space-block);
	max-width: 44ch;
}

.ehz-results__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .9rem 1.25rem;
	margin: var(--ehz-space-block) 0 0;
}

.ehz-results__all {
	font-weight: 600;
	color: var(--ehz-sea-strong);
	text-decoration: underline;
	text-decoration-color: var(--ehz-gold);
	text-underline-offset: .3em;
}

.ehz-results--empty .ehz-results__empty { margin-bottom: 1.25rem; }
.ehz-results__all.ehz-btn { color: var(--ehz-on-accent); text-decoration: none; }

.ehz-results--empty::before,
.ehz-thanks--missing::before,
.ehz-join--invalid::before {
	content: "";
	display: block;
	width: 3.5rem;
	height: 3.5rem;
	margin: 0 0 1.2rem;
	background: var(--ehz-sea);
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16 3.4c2.8 3.2 4.2 6.4 4.2 9.7 0 3.3-1.4 6.4-4.2 9.3-2.8-2.9-4.2-6-4.2-9.3 0-3.3 1.4-6.5 4.2-9.7Z'/%3E%3Cpath d='M5.4 10.8c3.6 1 6.2 2.8 7.8 5.3 1.6 2.5 2.2 5.4 1.9 8.8-3.4-.6-6-2.1-7.9-4.5-1.9-2.4-2.5-5.6-1.8-9.6Z' opacity='.5'/%3E%3Cpath d='M26.6 10.8c.7 4 .1 7.2-1.8 9.6-1.9 2.4-4.5 3.9-7.9 4.5-.3-3.4.3-6.3 1.9-8.8 1.6-2.5 4.2-4.3 7.8-5.3Z' opacity='.5'/%3E%3C/svg%3E") center / contain no-repeat;
	opacity: .45;
}

.ehz-results--empty::before,
.ehz-thanks--missing::before { margin-inline: auto; }

/* With the "freqbal" logo the same spots show the pulse mark instead of the lotus (body class from functions.php). */
.ehz-logo-freqbal .ehz-results--empty::before,
.ehz-logo-freqbal .ehz-thanks--missing::before,
.ehz-logo-freqbal .ehz-join--invalid::before {
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='32' cy='32' r='29' stroke-width='2.6'/%3E%3Cpath stroke-width='3.4' d='M14.05 32 L16.3 27.5 Q16.6 26.9 16.9 27.5 L19.8 40.5 Q20.2 41.4 20.6 40.5 L24.3 21.8 Q24.7 20.9 25.1 21.8 L31.9 42.2 Q32.3 43.1 32.7 42.2 L39.5 21.8 Q39.9 20.9 40.3 21.8 L43.8 32 L49.95 32'/%3E%3C/svg%3E") center / contain no-repeat;
	opacity: .8;
}

.ehz-notice,
.ehz-join__errors {
	background: var(--ehz-mist);
	border-left: 3px solid var(--ehz-sea);
	border-radius: 0 14px 14px 0;
	padding: 1rem 1.25rem;
	margin: 0 0 1.25rem;
	color: var(--ehz-ink);
	font-size: var(--ehz-size-small);
	line-height: 1.6;
}

.ehz-notice--warn { border-left-color: var(--ehz-gold); background: var(--ehz-gold-wash); }
.ehz-notice--error,
.ehz-join__errors { border-left-color: var(--ehz-error); background: var(--ehz-error-bg); }

/* WooCommerce notices (classic lists and block banners) in the same voice as .ehz-notice: no icon, a coloured
   left line, success = sea, info = gold, error = error. Buttons inside sit at the right end. */
.ehz-main .woocommerce-notices-wrapper:empty { display: none; }
.ehz-main .woocommerce-error,
.ehz-main .woocommerce-message,
.ehz-main .woocommerce-info,
.ehz-main .wc-block-components-notice-banner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem 1rem;
	list-style: none;
	margin: 0 0 1.5rem;
	padding: .9rem 1.15rem;
	background: var(--ehz-mist);
	border: 0;
	border-left: 3px solid var(--ehz-sea);
	border-radius: 0 14px 14px 0;
	box-shadow: none;
	color: var(--ehz-ink);
	font-size: var(--ehz-size-small);
	line-height: 1.6;
	word-break: normal;
}
.ehz-main .woocommerce-error::before,
.ehz-main .woocommerce-message::before,
.ehz-main .woocommerce-info::before,
.ehz-main .wc-block-components-notice-banner > svg { display: none; content: none; }
.ehz-main .woocommerce-error,
.ehz-main .wc-block-components-notice-banner.is-error { border-left-color: var(--ehz-error); background: var(--ehz-error-bg); }
.ehz-main .woocommerce-info,
.ehz-main .wc-block-components-notice-banner.is-info,
.ehz-main .wc-block-components-notice-banner.is-warning { border-left-color: var(--ehz-gold); background: var(--ehz-gold-wash); }
.ehz-main .woocommerce-error li,
.ehz-main .woocommerce-message li,
.ehz-main .woocommerce-info li { flex: 1 1 100%; margin: 0; padding: 0; list-style: none; }
.ehz-main .woocommerce-error li + li,
.ehz-main .woocommerce-message li + li,
.ehz-main .woocommerce-info li + li { margin-top: .35rem; }
.ehz-main .woocommerce-error li::marker,
.ehz-main .woocommerce-message li::marker,
.ehz-main .woocommerce-info li::marker { content: none; }
.ehz-main .woocommerce-error a,
.ehz-main .woocommerce-message a:not(.button),
.ehz-main .woocommerce-info a:not(.button),
.ehz-main .wc-block-components-notice-banner a { color: inherit; text-decoration: underline; text-underline-offset: .15em; }
.ehz-main .woocommerce-message .button,
.ehz-main .woocommerce-info .button { order: 2; margin-left: auto; }
.ehz-main .wc-block-components-notice-banner__content { flex: 1 1 auto; }
.ehz-main .wc-block-components-notice-banner__dismiss { margin-left: auto; color: var(--ehz-muted); }

@media (max-width: 559px) {
	.ehz-funnel { padding: 1.4rem; }
	.ehz-funnel__chips { gap: .5rem; }
	/* Chips share their row: no ragged right edge when only one or two fit. */
	.ehz-chip { padding: .45rem .9rem; flex: 1 1 auto; }
	.ehz-funnel__options--inline .ehz-option { flex: 1 1 auto; justify-content: center; }
	.ehz-results__grid { grid-template-columns: 1fr; }

	/* Compact progress: discs only, with the current step keeping its name. */
	.ehz-funnel__progress { gap: .5rem .9rem; }
	.ehz-funnel__progress-step:not(.is-current) .ehz-funnel__progress-label { display: none; }

	/* Primary action first, everything full width. */
	.ehz-funnel__nav { flex-direction: column; align-items: stretch; }
	.ehz-funnel__nav .ehz-btn { width: 100%; }
	.ehz-funnel__next,
	.ehz-funnel__submit { order: 1; }
	.ehz-funnel__back { order: 2; margin-right: 0; }
	.ehz-funnel__options { grid-template-columns: 1fr; }
}

/* Join form (§3). join.css prints in the footer, after this file: hence the body prefix. */

body .ehz-join { max-width: 46rem; }
body .ehz-prose .ehz-join { margin-top: 1.5rem; }
body .ehz-join__heading { font-size: var(--ehz-size-h2); margin-bottom: .35em; }
body .ehz-join__lead { color: var(--ehz-muted); font-size: var(--ehz-size-lede); max-width: 44ch; }

body .ehz-join__errors { margin-bottom: 1.5rem; }

body .ehz-join__errors ul { margin: .5rem 0 0; padding-left: 1.2rem; }

body .ehz-join__form { display: grid; gap: 1.75rem; margin-top: 1.75rem; }

body .ehz-join__section {
	display: grid;
	gap: 1.1rem;
	margin: 0;
	padding: 1.6rem 0 0;
	background: none;
	border: 0;
	border-top: 1px solid var(--ehz-line);
	border-radius: 0;
}

body .ehz-join__section:first-child { padding-top: 0; border-top: 0; }
body .ehz-join__section-title { font-size: var(--ehz-size-h3); font-weight: 400; margin: 0; padding: 0 .6rem 0 0; }

body .ehz-join__field { display: grid; gap: .35rem; }

body .ehz-join__label { font-size: var(--ehz-size-small); font-weight: 600; color: var(--ehz-ink); }

body .ehz-join__req { color: var(--ehz-gold-ink); }

body .ehz-join__input,
body .ehz-join__file,
body .ehz-join select,
body .ehz-join textarea {
	width: 100%;
	padding: .75rem 1rem;
	border: 1.5px solid var(--ehz-line-strong);
	border-radius: var(--ehz-radius-field);
	background: var(--ehz-shell);
	color: var(--ehz-ink);
	font: inherit;
	font-size: 1rem;
	line-height: 1.5;
	min-height: 3.125rem;
}

body .ehz-join textarea { min-height: 9rem; resize: vertical; }
body .ehz-join__file { padding: .55rem; background: var(--ehz-mist); }

body .ehz-join__input:focus,
body .ehz-join__file:focus,
body .ehz-join select:focus,
body .ehz-join textarea:focus { border-color: var(--ehz-sea); outline: 0; box-shadow: 0 0 0 4px var(--ehz-ring); }

body .ehz-join__hint {
	font-size: var(--ehz-size-tiny);
	color: var(--ehz-muted);
	margin: .1rem 0 0;
	line-height: 1.5;
}

body .ehz-join__hint.is-limit { color: var(--ehz-gold-ink); font-weight: 600; }

body .ehz-join__row { display: grid; gap: 1.1rem; }

@media (min-width: 640px) {
	.ehz-join__row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

body .ehz-join__checks { display: flex; flex-wrap: wrap; gap: .5rem; }

body .ehz-join__check {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	min-height: 44px;
	padding: .4rem 1rem .4rem .8rem;
	border: 1.5px solid var(--ehz-line-strong);
	border-radius: 999px;
	font-size: var(--ehz-size-small);
	font-weight: 500;
	line-height: 1.4;
	cursor: pointer;
	transition: background-color .16s ease, border-color .16s ease;
}

body .ehz-join__check:hover { background: var(--ehz-dawn); }
body .ehz-join__check:has(input:checked) { background: var(--ehz-mist); border-color: var(--ehz-sea); }
body .ehz-join__check input { margin: 0; accent-color: var(--ehz-sea); flex: none; }

body .ehz-join__field--consent { font-size: var(--ehz-size-small); }

body .ehz-join__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; }

@media (max-width: 559px) {
	.ehz-join__actions .ehz-btn,
	.ehz-join button[type="submit"] { width: 100%; }
}

body .ehz-join button[type="submit"],
body .ehz-join input[type="submit"] {
	padding: 1rem 1.9rem;
	border-radius: 999px;
	border: 0;
	background: var(--ehz-sea);
	color: var(--ehz-on-accent);
	font: inherit;
	font-size: 1.03rem;
	line-height: 1.3;
	font-weight: 600;
	cursor: pointer;
}

body .ehz-join button[type="submit"]:hover,
body .ehz-join input[type="submit"]:hover { background: var(--ehz-sea-strong); }

/* Thank you (plugin/ehz-network/templates/thank-you.php) */

.ehz-thanks {
	max-width: 40rem;
	margin-inline: auto;
	background: linear-gradient(180deg, var(--ehz-dawn), var(--ehz-mist));
	border-radius: var(--ehz-radius-panel);
	padding: clamp(1.75rem, 1.2rem + 2vw, 3rem);
	text-align: center;
}

/* Only the confirmed state (the one with __meta) gets the tick. */
.ehz-thanks:has(.ehz-thanks__meta)::before {
	content: "";
	display: block;
	width: 3.5rem;
	height: 3.5rem;
	margin: 0 auto 1.4rem;
	border-radius: 50%;
	background: var(--ehz-sea) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFCF7' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4.5 12.5 5 5 10-11'/%3E%3C/svg%3E") center / 1.6rem no-repeat;
}

.ehz-thanks--missing { background: var(--ehz-gold-wash); }

.ehz-thanks__title { font-size: var(--ehz-size-h2); margin-bottom: .4em; }

.ehz-thanks__lead {
	color: var(--ehz-ink-soft);
	font-size: var(--ehz-size-lede);
	line-height: 1.6;
	max-width: 32rem;
	margin-inline: auto;
}

.ehz-thanks__order {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	margin: 1.4rem 0 0;
	padding: .35rem .85rem;
	border-radius: 999px;
	background: var(--ehz-shell);
	color: var(--ehz-muted);
	font-size: var(--ehz-size-tiny);
}

.ehz-thanks__order strong {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-weight: 600;
	color: var(--ehz-sea-strong);
	letter-spacing: .02em;
}

.ehz-thanks__demo { padding: .05rem .5rem; }

.ehz-thanks__card {
	display: flex;
	align-items: center;
	gap: 1.1rem;
	text-align: left;
	margin: 1.6rem 0 0;
	padding: 1rem 1.2rem;
	background: var(--ehz-shell);
	border-radius: 20px 20px 20px 6px;
}

.ehz-thanks__photo {
	flex: none;
	width: 96px;
	height: 96px;
	object-fit: cover;
	border-radius: 18px 18px 18px 6px;
	background: var(--ehz-mist);
}

.ehz-thanks__card-body { min-width: 0; }

.ehz-thanks__name {
	font-family: var(--ehz-font-display);
	font-size: 1.25rem;
	line-height: 1.2;
	margin: 0 0 .25rem;
}

.ehz-thanks__name a { color: var(--ehz-ink); text-decoration: none; }
.ehz-thanks__name a:hover { text-decoration: underline; text-decoration-color: var(--ehz-gold); }

.ehz-thanks__tagline,
.ehz-thanks__hint {
	margin: 0;
	color: var(--ehz-muted);
	font-size: var(--ehz-size-small);
	line-height: 1.5;
}

.ehz-thanks__tagline { margin-bottom: .35rem; }

.ehz-thanks__amount {
	margin: 0;
	color: var(--ehz-sea-strong);
	font-size: var(--ehz-size-tiny);
	font-weight: 600;
}

.ehz-thanks__cta { margin: 1.8rem 0 .6rem; }
.ehz-thanks__cta .ehz-btn { min-width: 16rem; }

.ehz-thanks__meta {
	margin-top: 1.6rem;
	padding-top: 1.3rem;
	border-top: 1px solid var(--ehz-line);
	color: var(--ehz-muted);
	font-size: var(--ehz-size-tiny);
	line-height: 1.6;
	overflow-wrap: anywhere;
}

.ehz-thanks__meta p { margin: 0 0 .5rem; }
.ehz-thanks__meta p:last-child { margin-bottom: 0; }
.ehz-thanks__meta a { color: var(--ehz-sea-strong); }

.ehz-thanks--missing p,
.ehz-thanks p > .ehz-btn { margin-top: 1.2rem; }

@media (max-width: 560px) {
	.ehz-thanks__card { flex-direction: column; text-align: center; }
	.ehz-thanks__cta .ehz-btn { min-width: 0; width: 100%; }
}

/* WooCommerce thank-you (plugin/ehz-network/templates/woo-thank-you.php): thanks, practitioner, next
   steps, then the order details as a quiet list. Same panel, card and portrait shapes as .ehz-thanks. */

body.woocommerce-order-received .ehz-prose { max-width: 46rem; }

.ehz-woo-thanks { display: grid; gap: clamp(2rem, 1.6rem + 1.4vw, 2.75rem); }
.ehz-woo-thanks > * { margin: 0; }

.ehz-woo-thanks__lead {
	display: flex;
	align-items: center;
	gap: 1rem;
	font-family: var(--ehz-font-display);
	font-size: clamp(1.3rem, 1.1rem + .8vw, 1.65rem);
	line-height: 1.3;
	color: var(--ehz-ink);
}

.ehz-woo-thanks__lead::before {
	content: "";
	flex: none;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	border: 2px dashed var(--ehz-gold-line);
}

.ehz-woo-thanks__lead.is-paid::before {
	border: 0;
	background: var(--ehz-sea) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFCF7' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4.5 12.5 5 5 10-11'/%3E%3C/svg%3E") center / 1.4rem no-repeat;
	animation: ehz-woo-tick .5s cubic-bezier(.2, 1.4, .4, 1) both;
}

@keyframes ehz-woo-tick {
	from { transform: scale(.4); opacity: 0; }
	to { transform: scale(1); opacity: 1; }
}

.ehz-woo-next {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: clamp(1.25rem, .9rem + 1.4vw, 2rem);
	align-items: start;
	background: linear-gradient(180deg, var(--ehz-dawn), var(--ehz-mist));
	border-radius: var(--ehz-radius-panel);
	padding: clamp(1.5rem, 1.1rem + 1.8vw, 2.5rem);
}

.ehz-prose .ehz-woo-next__photo {
	width: 168px;
	height: 168px;
	object-fit: cover;
	border-radius: 22px 22px 22px 8px;
	background: var(--ehz-mist);
	box-shadow: var(--ehz-shadow-card);
}

.ehz-woo-next__body > * { margin: 0; }

.ehz-woo-next__eyebrow {
	font-size: var(--ehz-size-tiny);
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--ehz-gold-ink);
}

.ehz-prose .ehz-woo-next__name {
	margin: .35rem 0 0;
	font-size: var(--ehz-size-h2);
	line-height: 1.1;
}

.ehz-woo-next__name a { color: var(--ehz-ink); text-decoration: none; }
.ehz-woo-next__name a:hover { text-decoration: underline; text-decoration-color: var(--ehz-gold); }

.ehz-woo-next__tagline { margin-top: .5rem; color: var(--ehz-muted); line-height: 1.5; }

.ehz-woo-next__step {
	margin-top: 1.4rem;
	padding: 1.1rem 1.25rem 1.2rem;
	background: var(--ehz-shell);
	border-radius: 20px 20px 20px 6px;
}

.ehz-woo-next__step > * { margin: 0; }

.ehz-woo-next__label {
	font-size: var(--ehz-size-tiny);
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--ehz-link, var(--ehz-sea-strong));
}

.ehz-woo-next__text { margin-top: .35rem; color: var(--ehz-ink-soft); line-height: 1.55; }
.ehz-woo-next__cta { margin-top: 1rem; }

.ehz-woo-next__hint {
	margin-top: .6rem !important;
	color: var(--ehz-muted);
	font-size: var(--ehz-size-small);
}

.ehz-woo-next__account { margin-top: 1.1rem; font-size: var(--ehz-size-small); }
.ehz-woo-next__account a { color: var(--ehz-link, var(--ehz-sea-strong)); text-decoration-color: var(--ehz-gold); text-underline-offset: .25em; }

.ehz-woo-thanks .ehz-woo-thanks__heading {
	margin: 0 0 .9rem;
	font-size: var(--ehz-size-h3);
}

.ehz-prose .ehz-woo-steps__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: ehz-woo-step;
}

.ehz-prose .ehz-woo-steps__list li {
	margin: 0;
	padding-top: 2.6rem;
	position: relative;
	counter-increment: ehz-woo-step;
	color: var(--ehz-muted);
	font-size: var(--ehz-size-small);
	line-height: 1.5;
}

.ehz-woo-steps__list li::before {
	content: counter(ehz-woo-step);
	position: absolute;
	top: 0;
	left: 0;
	display: grid;
	place-items: center;
	width: 1.9rem;
	height: 1.9rem;
	border-radius: 50%;
	background: var(--ehz-mist);
	color: var(--ehz-link, var(--ehz-sea-strong));
	font-weight: 600;
	font-size: var(--ehz-size-tiny);
}

.ehz-woo-steps__list strong { display: block; color: var(--ehz-ink); font-weight: 600; margin-bottom: .15rem; }

.ehz-woo-details {
	padding-top: 1.6rem;
	border-top: 1px solid var(--ehz-line);
}

.ehz-woo-details .ehz-woo-thanks__heading { font-size: 1.15rem; color: var(--ehz-ink-soft); }

.ehz-woo-details__list { margin: 0; font-size: var(--ehz-size-small); }

.ehz-woo-details__row {
	display: grid;
	grid-template-columns: 10rem minmax(0, 1fr);
	gap: 1rem;
	padding: .6rem 0;
	border-bottom: 1px solid var(--ehz-line);
}

.ehz-woo-details__row:last-child { border-bottom: 0; }
.ehz-woo-details__row dt { color: var(--ehz-muted); font-weight: 400; }
.ehz-woo-details__row dd { margin: 0; color: var(--ehz-ink); overflow-wrap: anywhere; }

@media (max-width: 640px) {
	.ehz-woo-next { grid-template-columns: minmax(0, 1fr); }
	.ehz-prose .ehz-woo-next__photo { width: 112px; height: 112px; }
	.ehz-woo-next__cta .ehz-btn { width: 100%; text-align: center; }
	.ehz-prose .ehz-woo-steps__list { grid-template-columns: minmax(0, 1fr); gap: .9rem; }
	.ehz-prose .ehz-woo-steps__list li { padding: 0 0 0 2.7rem; min-height: 1.9rem; }
	.ehz-woo-details__row { grid-template-columns: minmax(0, 1fr); gap: .1rem; }
}

@media (prefers-reduced-motion: reduce) {
	.ehz-woo-thanks__lead.is-paid::before { animation: none; }
}

/* 10. Prose */

.ehz-prose { max-width: 44rem; }
.ehz-prose--narrow { max-width: 38rem; }

.ehz-prose > * + * { margin-top: 1.15em; }

.ehz-prose h2 {
	font-size: clamp(1.5rem, 1.25rem + 1vw, 1.95rem);
	margin-top: 1.9em;
	margin-bottom: .5em;
}

.ehz-prose h3 { font-size: var(--ehz-size-h3); margin-top: 1.7em; margin-bottom: .45em; }
.ehz-prose h2:first-child, .ehz-prose h3:first-child { margin-top: 0; }
.ehz-prose p { margin-bottom: 0; }

.ehz-prose ul,
.ehz-prose ol { padding-left: 1.25rem; margin-bottom: 0; }
.ehz-prose li + li { margin-top: .45em; }
.ehz-prose li::marker { color: var(--ehz-coral); }

.ehz-prose blockquote {
	margin: 1.8em 0;
	padding: .2rem 0 .2rem 1.4rem;
	border-left: 2px solid var(--ehz-gold);
	font-size: 1.2rem;
}

.ehz-prose img { border-radius: 18px; }

.ehz-prose figure { margin: 1.8em 0; }

.ehz-prose figcaption { font-size: var(--ehz-size-small); color: var(--ehz-muted); margin-top: .6rem; }

.ehz-prose .wp-block-button__link,
.ehz-prose .wp-element-button {
	background: var(--ehz-sea);
	color: var(--ehz-on-accent);
	border-radius: 999px;
	padding: .8rem 1.6rem;
	font-weight: 600;
	text-decoration: none;
}

.ehz-prose .wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--ehz-sea-strong);
	border: 1.5px solid var(--ehz-line-strong);
}

.ehz-prose .alignleft { float: left; margin: .3em 1.5em 1em 0; }
.ehz-prose .alignright { float: right; margin: .3em 0 1em 1.5em; }
.ehz-prose .aligncenter { margin-inline: auto; }

/* 11. Footer, posts, 404, pagination */

.ehz-posts { display: grid; gap: clamp(1.5rem, 3vw, 2.5rem); }

@media (min-width: 760px) {
	.ehz-posts { grid-template-columns: repeat(2, 1fr); }
}

.ehz-post__media img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.ehz-post__body { padding: 1.4rem; }
.ehz-post__title { font-size: var(--ehz-size-h3); margin-bottom: .3em; }
.ehz-post__title a { color: inherit; text-decoration: none; }
.ehz-post__title a:hover { text-decoration: underline; }

.ehz-post__date { font-size: var(--ehz-size-tiny); color: var(--ehz-muted); margin-bottom: .7rem; }

.ehz-post__excerpt { margin: 0; }

.ehz-pagination { margin-top: var(--ehz-space-block); }

.ehz-pagination .nav-links { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }

.ehz-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	padding: .45rem .7rem;
	border: 1px solid var(--ehz-line);
	border-radius: 999px;
	text-decoration: none;
	font-size: var(--ehz-size-small);
	color: var(--ehz-ink);
}

.ehz-pagination .page-numbers.current,
.ehz-pagination .page-numbers:hover {
	background: var(--ehz-sea);
	border-color: var(--ehz-sea);
	color: var(--ehz-on-accent);
}

.ehz-404 { max-width: 40rem; }
.ehz-404__title { font-size: var(--ehz-size-h1); margin-bottom: .35em; }
.ehz-404__text { color: var(--ehz-muted); font-size: var(--ehz-size-lede); margin-bottom: 1.8rem; }
.ehz-404__actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-bottom: 1.5rem; }

.ehz-footer {
	background: var(--ehz-glow-footer), var(--ehz-sea-deep);
	color: var(--ehz-on-dark-muted);
	padding-top: clamp(2.75rem, 2rem + 3vw, 4.5rem);
	margin-top: auto;
}

.ehz-footer a { color: var(--ehz-on-dark); text-decoration: none; }
.ehz-footer a:hover { color: var(--ehz-on-dark-strong); text-decoration: underline; text-decoration-color: var(--ehz-gold-soft); }

.ehz-footer__grid {
	display: grid;
	gap: clamp(2rem, 4vw, 3rem);
	padding-bottom: clamp(2rem, 4vw, 3rem);
}

@media (min-width: 760px) and (max-width: 999px) {
	.ehz-footer__grid { grid-template-columns: 1fr 1fr; }
	.ehz-footer__about { grid-column: 1 / -1; }
}

@media (min-width: 1000px) {
	.ehz-footer__grid { grid-template-columns: 1.5fr 1fr 1.2fr; }
}

.ehz-footer__mark { color: var(--ehz-gold-soft); display: inline-flex; margin-bottom: .8rem; }
.ehz-footer__blurb { max-width: 30ch; line-height: 1.7; margin: 0; }

.ehz-footer__title {
	font-family: var(--ehz-font-body);
	font-size: var(--ehz-size-tiny);
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--ehz-gold-soft);
	margin-bottom: 1rem;
}

.ehz-footer__menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: .5rem;
}

@media (max-width: 899px) {
	.ehz-footer__menu { gap: .1rem; }
	.ehz-footer__menu a { display: inline-block; padding: .6rem 0; line-height: 1.3; }
}

.ehz-footer__line { display: flex; align-items: flex-start; gap: .55rem; margin: 0 0 .7rem; }

.ehz-footer__line .ehz-icon { color: var(--ehz-gold-soft); flex: none; width: 18px; height: 18px; margin-top: .36rem; }
.ehz-footer__line > a:not(.ehz-btn) { padding-block: .45rem; margin-block: -.45rem; }

.ehz-footer__base {
	border-top: 1px solid var(--ehz-on-dark-faint);
	padding-block: 1.5rem calc(2rem + env(safe-area-inset-bottom));
	display: flex;
	flex-wrap: wrap;
	gap: .5rem 2rem;
	justify-content: space-between;
	font-size: var(--ehz-size-tiny);
}

.ehz-footer__copy,
.ehz-footer__note { margin: 0; }

.ehz-footer__legal { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; list-style: none; margin: 0; padding: 0; }
.ehz-footer__note { color: var(--ehz-on-dark-muted); }

/* Motion */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
		scroll-behavior: auto !important;
	}
}

/* Offer card: slides up a moment after the front page loads (theme.js), sheet on phones, card on wider screens. */
.ehz-offer { position: fixed; left: 0; right: 0; bottom: 0; z-index: 31; padding: 1.1rem calc(var(--ehz-gutter) / 2) calc(1.1rem + env(safe-area-inset-bottom)); background: var(--ehz-shell); border-top: 3px solid var(--ehz-gold); border-radius: 18px 18px 0 0; box-shadow: var(--ehz-shadow-bar); transform: translateY(110%); visibility: hidden; transition: transform .45s cubic-bezier(.2,.8,.2,1), visibility .45s; }
.ehz-offer.is-visible { transform: none; visibility: visible; }
.ehz-offer__close { position: absolute; top: .5rem; right: .5rem; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 50%; background: none; color: var(--ehz-muted); cursor: pointer; }
.ehz-offer__close:hover { color: var(--ehz-ink); background: var(--ehz-gold-wash); }
.ehz-offer__eyebrow { margin: 0 2.5rem .35rem 0; color: var(--ehz-gold-ink); font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.ehz-offer__title { margin: 0 2.5rem .3rem 0; font-family: var(--ehz-font-display); font-size: 1.35rem; line-height: 1.15; color: var(--ehz-ink); }
.ehz-offer__text { margin: 0 0 .9rem; color: var(--ehz-muted); font-size: var(--ehz-size-small); line-height: 1.5; }
.ehz-offer .ehz-offer__cta { background: var(--ehz-gold); color: #FFFFFF; min-height: 46px; } /* same as the hero button: white on gold */
.ehz-offer .ehz-offer__cta:hover { background: var(--ehz-gold-soft); color: #FFFFFF; }
@media (min-width: 700px) {
	.ehz-offer { left: auto; right: 1.25rem; bottom: 1.25rem; width: 22rem; padding: 1.25rem 1.35rem 1.35rem; border: 1px solid var(--ehz-gold-line); border-top-width: 3px; border-top-color: var(--ehz-gold); border-radius: 18px; }
}
@media (prefers-reduced-motion: reduce) { .ehz-offer { transition: none; } }
/* Offer page: the code as a big, copyable badge. */
.ehz-offer-code { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; margin: 1.2rem 0 1.6rem; padding: 1rem 1.25rem; border: 1px dashed var(--ehz-gold); border-radius: 14px; background: var(--ehz-gold-wash); }
.ehz-offer-code__label { color: var(--ehz-gold-ink); font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.ehz-offer-code__value { padding: .2rem .6rem; border-radius: 8px; background: var(--ehz-shell); color: var(--ehz-ink); font-family: var(--ehz-font-display); font-size: 1.6rem; letter-spacing: .08em; user-select: all; }

/* Prototype design panel (bottom left). */
.ehz-proto { position: fixed; left: 1rem; bottom: 1rem; z-index: 32; font-family: var(--ehz-font-body); }
.ehz-proto__toggle { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: 0 1rem 0 .8rem; border: 1px solid var(--ehz-gold-line); border-radius: 999px; background: var(--ehz-glass-strong); backdrop-filter: blur(10px); color: var(--ehz-ink); font: inherit; font-size: var(--ehz-size-small); font-weight: 600; box-shadow: var(--ehz-shadow-bar); cursor: pointer; }
.ehz-proto__toggle em { padding: .15rem .5rem; border-radius: 999px; background: var(--ehz-gold-wash); color: var(--ehz-gold-ink); font-size: .62rem; font-style: normal; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.ehz-proto__panel { position: absolute; left: 0; bottom: calc(100% + .6rem); width: min(22rem, calc(100vw - 2rem)); padding: 1rem 1.1rem 1.1rem; border: 1px solid var(--ehz-line); border-radius: 18px; background: var(--ehz-shell); color: var(--ehz-ink); box-shadow: var(--ehz-shadow-bar); }
.ehz-proto__head { display: grid; grid-template-columns: 1fr auto; gap: .1rem .6rem; margin-bottom: .9rem; }
.ehz-proto__head strong { font-family: var(--ehz-font-display); font-size: 1.15rem; }
.ehz-proto__head span { grid-column: 1; color: var(--ehz-muted); font-size: .78rem; line-height: 1.4; }
.ehz-proto__close { grid-column: 2; grid-row: 1 / span 2; align-self: start; width: 32px; height: 32px; border: 0; border-radius: 50%; background: none; color: var(--ehz-muted); font-size: 1.3rem; line-height: 1; cursor: pointer; }
.ehz-proto__grid { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem .8rem; }
.ehz-proto__field { display: grid; gap: .3rem; font-size: .78rem; font-weight: 600; color: var(--ehz-ink-soft); }
.ehz-proto__field--wide { grid-column: 1 / -1; }
.ehz-proto__field input[type=color] { width: 100%; height: 40px; padding: 2px; border: 1px solid var(--ehz-line-strong); border-radius: var(--ehz-radius-field); background: var(--ehz-shell); cursor: pointer; }
.ehz-proto__field select { min-height: 40px; padding: 0 .6rem; border: 1px solid var(--ehz-line-strong); border-radius: var(--ehz-radius-field); background: var(--ehz-shell); color: var(--ehz-ink); font: inherit; font-size: .9rem; }
.ehz-proto__field input[type=range] { width: 100%; accent-color: var(--ehz-sea); }
.ehz-proto__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .7rem; margin-top: 1rem; }
.ehz-proto__link { border: 0; background: none; color: var(--ehz-sea); font: inherit; font-size: .8rem; text-decoration: underline; cursor: pointer; }
.ehz-proto__status { flex-basis: 100%; min-height: 1em; color: var(--ehz-muted); font-size: .75rem; }
@media (max-width: 699px) { .ehz-proto { left: .75rem; bottom: .75rem; } body.ehz-stickycta-on .ehz-proto { bottom: calc(5rem + env(safe-area-inset-bottom)); } .ehz-proto__toggle span { display: none; } .ehz-proto__toggle { padding-inline: .8rem; } }
