/* Hashcore theme styles that theme.json can't express. Tokens come from theme.json. */

:root {
	--hc-hairline: var(--wp--custom--hairline);
	--hc-tracking: var(--wp--custom--label--tracking);
	--hc-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10'%3E%3Cpath d='M0 5h14M10 1l4 4-4 4' fill='none' stroke='black' stroke-width='1.3'/%3E%3C/svg%3E");
}

/* ---- Labels: small, wide-tracked uppercase ------------------------------ */
.is-style-label,
.hc-label {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--label);
	font-weight: 600;
	letter-spacing: var(--hc-tracking);
	line-height: 1.4;
	text-transform: uppercase;
}

/* ---- Buttons ------------------------------------------------------------ */
.wp-element-button,
.wp-block-button__link {
	transition: background-color 0.15s ease, color 0.15s ease;
}

/* Outline styles live here, not in theme.json: WP applies theme.json variations
   via a generated class that render.php markup never gets. */
.wp-block-button.is-style-outline > .wp-block-button__link,
.wp-block-button.is-style-outline-arrow > .wp-block-button__link {
	background: transparent;
	border: 1px solid currentColor;
	color: var(--wp--preset--color--contrast);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover,
.wp-block-button.is-style-outline-arrow > .wp-block-button__link:hover {
	background: var(--wp--preset--color--contrast);
	border-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

/* Arrow icon, drawn in currentColor so it follows hover and dark sections. */
.wp-block-button.is-style-arrow > .wp-block-button__link::after,
.wp-block-button.is-style-outline-arrow > .wp-block-button__link::after,
.hc-arrow::after {
	content: "";
	display: inline-block;
	width: 1.15em;
	height: 0.75em;
	margin-left: 1em;
	vertical-align: -0.05em;
	background-color: currentColor;
	-webkit-mask: var(--hc-arrow) center / contain no-repeat;
	mask: var(--hc-arrow) center / contain no-repeat;
}

/* Outline buttons on black sections invert. */
.has-contrast-background-color .wp-block-button.is-style-outline > .wp-block-button__link,
.has-contrast-background-color .wp-block-button.is-style-outline-arrow > .wp-block-button__link {
	color: var(--wp--preset--color--base);
	border-color: var(--wp--preset--color--base);
}
.has-contrast-background-color .wp-block-button.is-style-outline > .wp-block-button__link:hover,
.has-contrast-background-color .wp-block-button.is-style-outline-arrow > .wp-block-button__link:hover {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
}

/* ---- Logo --------------------------------------------------------------- */
.hc-logo {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	color: var(--wp--preset--color--contrast);
	text-decoration: none !important;
	line-height: 1;
}
.hc-logo__mark { width: 20px; height: 38px; flex: none; }
.hc-logo__text { display: flex; flex-direction: column; gap: 0.3rem; }
.hc-logo__name {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.75rem;
	font-weight: 700;
	letter-spacing: 0.01em;
	text-transform: uppercase;
}
.hc-logo__sub {
	font-size: 0.625rem;
	font-weight: 600;
	letter-spacing: 0.62em;
	text-transform: uppercase;
}

/* ---- Header ------------------------------------------------------------- */
.hc-header__inner { gap: var(--wp--preset--spacing--30); }
.hc-nav .wp-block-navigation-item__content:hover { text-decoration: none; opacity: 0.6; }


/* ---- Footer ------------------------------------------------------------- */
.hc-footer .is-style-label { margin-bottom: 0.9rem; }
.hc-footer__list {
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: var(--wp--preset--font-size--label);
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.9;
	text-transform: uppercase;
}
.hc-footer__links--first {
	border-left: var(--hc-hairline);
	padding-left: var(--wp--preset--spacing--40);
}
.hc-footer__bar p { margin: 0; }

/* ---- Age gate (inc/age-gate.php) ------------------------------------------ */
/* Hidden unless the <head> script found no hc_age_ok cookie (so: no JS = no gate). The page
   underneath stays rendered; html overflow:hidden locks its scroll. */
.hc-age { display: none; }
.hc-age-pending, .hc-age-pending body { overflow: hidden; }
.hc-age-pending .hc-age {
	position: fixed;
	inset: 0;
	z-index: 100001; /* above the mobile menu overlay */
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--wp--preset--spacing--20);
	overflow-y: auto;
	background: var(--wp--preset--color--base);
}
.hc-age__box {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wp--preset--spacing--30);
	width: 100%;
	max-width: 30rem;
	margin: auto; /* centred, and still scrollable when taller than the screen */
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--20);
	border: var(--hc-hairline);
	text-align: center;
}
.hc-age__box:focus { outline: none; }
.hc-age [hidden] { display: none !important; }
.hc-age__text {
	margin: 0;
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.4;
	text-wrap: balance;
}
.hc-age__text:focus { outline: none; }
.hc-age__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem; }
.hc-age__actions .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 7rem;
	min-height: 44px;
	cursor: pointer;
}
.hc-age__actions .wp-block-button__link:focus-visible { outline: 2px solid var(--wp--preset--color--contrast); outline-offset: 3px; }
.hc-age__privacy { margin: 0; font-size: var(--wp--preset--font-size--small); }
.hc-age__privacy a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--wp--preset--color--muted);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

/* ---- Shared ------------------------------------------------------------- */
/* Strain names: a hyphenated word (hashcore_name_html()) moves to the next line whole instead of
   breaking after its hyphen. inline-block, not nowrap: a word wider than the whole line still wraps
   at its hyphens instead of overflowing. Inline-blocks don't receive the link's underline, hence inherit. */
.hc-nobr { display: inline-block; max-width: 100%; text-decoration: inherit; }
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Gray image placeholder: fills its container. */
.hc-placeholder {
	width: 100%;
	height: 100%;
	min-height: 100%;
	background: var(--wp--preset--color--hairline);
}
.hc-placeholder--dark { background: var(--wp--preset--color--muted); }
.hc-media__img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* Section photos (hero, mission): fill the media panel; gray shows until loaded. */
.hc-hero__media { background: var(--wp--preset--color--hairline); }
.hc-mission__media { background: var(--wp--preset--color--muted); }
.hc-media__photo {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
/* Microscope sits left of center; keep it in frame as the panel narrows. */
.hc-hero__photo { object-position: 35% 40%; }

.hc-label { margin: 0; }
.hc-label.hc-section-label { margin: 0 0 var(--wp--preset--spacing--30); }

/* Header sits flush on the first section. */
.wp-site-blocks > main,
.wp-site-blocks > footer { margin-block-start: 0; }

/* ---- Split sections (hero, mission) --------------------------------------
   Text sits in the left of the wide container; the image panel is absolutely
   positioned on the right. The section itself must NOT be flex/grid: the
   constrained layout gives children `margin: auto !important`, which in a
   flex/grid container shrinks them to content width and centers them. */
.hc-hero, .hc-mission {
	/* Image panel's share of the viewport width. */
	--hc-split: 0.6;
	position: relative;
	overflow: hidden;
}
.hc-mission { --hc-split: 0.56; }
.hc-hero__media, .hc-mission__media {
	position: absolute !important;
	inset: 0 0 0 auto;
	width: calc(var(--hc-split) * 100%);
	max-width: none !important;
	margin: 0 !important;
}
.hc-hero__content, .hc-mission__content { position: relative; z-index: 1; }
/* Text column = image panel's left edge - wide container's left edge - gutter. */
.hc-hero__content > *, .hc-mission__content > * {
	max-width: calc(
		100vw * (1 - var(--hc-split))
		- max(var(--wp--style--root--padding-left), (100vw - 1200px) / 2)
		- var(--wp--preset--spacing--50)
	);
}
.hc-hero__title { margin-top: var(--wp--preset--spacing--20); }
.hc-hero__intro { max-width: min(21rem, 100%) !important; }

.hc-labcard {
	position: absolute;
	top: 16%;
	/* Right edge aligned with the wide content container. */
	right: max(var(--wp--style--root--padding-right), (100vw - 1200px) / 2);
	width: 6.75rem;
	padding: 1.1rem 1rem;
	background: var(--wp--preset--color--base);
	border: var(--hc-hairline);
}
.hc-labcard__title {
	margin: 0 0 0.75rem;
	padding-bottom: 0.75rem;
	border-bottom: var(--hc-hairline);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: var(--hc-tracking);
	line-height: 1.3;
	text-transform: uppercase;
}
.hc-labcard__list { list-style: none; margin: 0; padding: 0; }
.hc-labcard__list li {
	padding: 0.7rem 0;
	border-bottom: var(--hc-hairline);
	color: var(--wp--preset--color--muted);
	font-size: 0.5625rem;
	letter-spacing: 0.1em;
	line-height: 1.4;
	text-transform: uppercase;
}
.hc-labcard__list li::after {
	content: "";
	display: block;
	width: 5px; height: 5px;
	margin-top: 0.5rem;
	border-radius: 50%;
	background: var(--wp--preset--color--contrast);
}
.hc-labcard__barcode {
	display: block;
	height: 1.6rem;
	margin-top: 0.9rem;
	background: repeating-linear-gradient(90deg,
		#000 0 1px, transparent 1px 2px, #000 2px 4px, transparent 4px 5px,
		#000 5px 6px, transparent 6px 8px, #000 8px 9px, transparent 9px 10px);
}

/* ---- Feature strip ------------------------------------------------------ */
.hc-features__grid { gap: 0 !important; }
.hc-feature { gap: 1.1rem; padding: 0.3rem var(--wp--preset--spacing--30); }
.hc-feature + .hc-feature { border-left: 1px solid var(--wp--preset--color--muted); }
.hc-feature:first-child { padding-left: 0; }
.hc-feature__icon { flex: none; width: 1.75rem; height: 1.75rem; }
.hc-feature__title { margin: 0 0 0.5rem; font-size: var(--wp--preset--font-size--label); }
.hc-feature p { margin: 0; line-height: 1.5; opacity: 0.85; }

/* ---- Featured Drop ------------------------------------------------------ */
.hc-drop__radio { position: absolute; opacity: 0; pointer-events: none; }
.hc-drop__slide {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1fr);
}
/* CSS-only slider: show the slide matching the checked radio (max 6). */
.hc-drop:not(.hc-drop--count-1) .hc-drop__slide { display: none; }
.hc-drop__radio:nth-of-type(1):checked ~ .hc-drop__slides .hc-drop__slide:nth-child(1),
.hc-drop__radio:nth-of-type(2):checked ~ .hc-drop__slides .hc-drop__slide:nth-child(2),
.hc-drop__radio:nth-of-type(3):checked ~ .hc-drop__slides .hc-drop__slide:nth-child(3),
.hc-drop__radio:nth-of-type(4):checked ~ .hc-drop__slides .hc-drop__slide:nth-child(4),
.hc-drop__radio:nth-of-type(5):checked ~ .hc-drop__slides .hc-drop__slide:nth-child(5),
.hc-drop__radio:nth-of-type(6):checked ~ .hc-drop__slides .hc-drop__slide:nth-child(6) { display: grid; }

/* Product photos are shot on pure white: white behind them, contained (never cropped). */
.hc-drop__media { position: relative; min-height: 24rem; background: var(--wp--preset--color--base); }
.hc-badge {
	position: absolute;
	top: 1rem;
	left: 1rem;
	max-width: 5.5rem;
	padding: 0.4rem 0.5rem;
	border: 1px solid var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--base);
	font-size: 0.5625rem;
	line-height: 1.3;
}
.hc-drop__panel {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--20);
	padding: var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--panel);
}
.hc-drop__title { margin: 0; font-size: var(--wp--preset--font-size--x-large); }
.hc-drop__title a { text-decoration: none !important; }
.hc-drop__lineage {
	margin: -0.5rem 0 0;
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.hc-drop__meta {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--20);
	margin: var(--wp--preset--spacing--10) 0 0;
}
.hc-drop__meta dd {
	margin: 0.35rem 0 0;
	font-size: var(--wp--preset--font-size--label);
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.hc-drop__meta dt { font-weight: 500; }
.hc-drop__text p { margin: 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.hc-drop__text .hc-label { margin-bottom: 0.3rem; color: var(--wp--preset--color--contrast); font-weight: 500; }
.hc-drop__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--20);
	margin-top: auto;
	padding-top: var(--wp--preset--spacing--20);
}
/* render.php buttons don't get core's layout classes; match the hero's 1rem gap. */
.hc-drop__actions .wp-block-buttons { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--20); }
.hc-drop__nav { display: flex; gap: 0.5rem; }
.hc-drop__arrow {
	display: grid;
	place-items: center;
	width: 2.25rem;
	height: 2.25rem;
	border: 1px solid var(--wp--preset--color--contrast);
	cursor: pointer;
}
.hc-drop__arrow:hover { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.hc-drop__arrow svg { width: 0.45rem; height: 0.75rem; }
.hc-drop__radio:focus-visible ~ .hc-drop__slides .hc-drop__nav { outline: 1px solid var(--wp--preset--color--contrast); outline-offset: 4px; }

/* ---- Genetics Library --------------------------------------------------- */
.hc-library__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: var(--wp--preset--spacing--20);
}
.hc-library__head .hc-label.hc-section-label { margin: 0; }
.hc-library__all { font-weight: 600; text-decoration: none !important; }
.hc-library__all:hover { opacity: 0.6; }
.hc-library__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.625rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.hc-card {
	display: flex;
	flex-direction: column;
	padding: var(--wp--preset--spacing--30);
	border: var(--hc-hairline);
}
/* White image area; the photo (or its gray placeholder) is centered and contained. */
.hc-card__media {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 2.2 / 1;
	margin-bottom: var(--wp--preset--spacing--20);
	background: var(--wp--preset--color--base);
}

/* Strain label (fallback when a product has no image): 4:5 SVG, contained. */
.hc-strain-label { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.hc-strain-label svg { display: block; width: auto; height: 100%; max-width: 100%; }
.hc-card__media:has(.hc-strain-label) { aspect-ratio: 4 / 5; }

/* Grid items hold an <article class="hc-card"> from hashcore/strain-card. */
.hc-library__grid > li { display: flex; min-width: 0; }
.hc-library__grid > li > .hc-card { flex: 1; min-width: 0; }

/* ---- Catalog (shop / tag / category archives) ---------------------------- */
.hc-catalog__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.5rem 1rem; margin-bottom: var(--wp--preset--spacing--30); }
.hc-catalog__title { margin: 0; font-size: var(--wp--preset--font-size--xx-large); }
.hc-catalog__count { color: var(--wp--preset--color--muted); }
.hc-filters { display: flex; flex-direction: column; gap: 0.5rem; margin-bottom: var(--wp--preset--spacing--30); }
.hc-filters__row { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.hc-filters__link {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	min-height: 44px;
	box-sizing: border-box;
	padding: 0 1em;
	border: 1px solid var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--contrast);
	font-size: var(--wp--preset--font-size--label);
	font-weight: 600;
	letter-spacing: var(--hc-tracking);
	text-decoration: none !important;
	text-transform: uppercase;
}
.hc-filters__link:hover { background: var(--wp--preset--color--panel); }
.hc-filters__link.is-active { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.hc-filters__count { font-weight: 500; opacity: 0.6; }
.hc-catalog__empty { padding: var(--wp--preset--spacing--40) 0; color: var(--wp--preset--color--muted); }
.hc-catalog__empty a { margin-left: 0.75rem; color: var(--wp--preset--color--contrast); font-weight: 600; }

/* ---- Contact page + partner inquiry form ------------------------------- */
.hc-contact__intro .hc-catalog__title { margin-bottom: 0.5rem; }
.hc-contact__lede { max-width: 36rem; margin: 0; }
/* The block is alignwide (for the editor); the form itself keeps a readable width. */
.hc-inquiry > * { max-width: 48rem; }
.hc-inquiry__form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--wp--preset--spacing--30) var(--wp--preset--spacing--30); }
.hc-inquiry__field--message, .hc-inquiry__field--strain, .hc-inquiry__actions { grid-column: 1 / -1; }
.hc-inquiry__field label {
	display: block;
	margin-bottom: 0.4rem;
	font-size: var(--wp--preset--font-size--label);
	font-weight: 600;
	letter-spacing: var(--hc-tracking);
	text-transform: uppercase;
}
.hc-inquiry__opt { color: var(--wp--preset--color--muted); font-weight: 500; letter-spacing: 0.04em; text-transform: none; }
.hc-inquiry__field :is(input, select, textarea) {
	display: block;
	width: 100%;
	min-height: 44px;
	box-sizing: border-box;
	padding: 0.65rem 0.8rem;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 0;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
}
.hc-inquiry__field select {
	appearance: none;
	padding-right: 2.5rem;
	background: var(--wp--preset--color--base) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='black' stroke-width='1.3'/%3E%3C/svg%3E") right 0.9rem center / 0.75rem no-repeat;
}
.hc-inquiry__field textarea { resize: vertical; line-height: 1.5; }
.hc-inquiry__field :is(input, select, textarea):focus { outline: 1px solid var(--wp--preset--color--contrast); outline-offset: -1px; border-color: var(--wp--preset--color--contrast); }
.hc-inquiry__field.has-error :is(input, select, textarea) { border-color: var(--wp--preset--color--contrast); border-width: 2px; }
.hc-inquiry__hint, .hc-inquiry__error { margin: 0.4rem 0 0; font-size: var(--wp--preset--font-size--small); }
.hc-inquiry__hint { margin: 0 0 0.5rem; color: var(--wp--preset--color--muted); }
.hc-inquiry__error { font-weight: 600; }
.hc-inquiry__error::before { content: "! "; }
.hc-inquiry__summary {
	margin-bottom: var(--wp--preset--spacing--30);
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	border: 2px solid var(--wp--preset--color--contrast);
	box-sizing: border-box;
	font-weight: 600;
}
.hc-inquiry__summary p { margin: 0; }
.hc-inquiry__summary:focus { outline: none; }
.hc-inquiry__actions button { min-height: 44px; cursor: pointer; border: 0; }
/* Honeypot: off-screen, not display:none (some bots skip hidden fields). */
.hc-inquiry__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.hc-inquiry__sent {
	margin: 0;
	padding: var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--panel);
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 700;
	line-height: 1.1;
	text-transform: uppercase;
}
@media (max-width: 560px) {
	.hc-inquiry__form { grid-template-columns: 1fr; }
}

/* ---- Apply page (blocks/apply-form; fields reuse .hc-inquiry__*) ---------- */
.hc-apply > * { max-width: 36rem; }
.hc-apply .hc-inquiry__form { grid-template-columns: 1fr; }
.hc-apply__tracks { display: grid; gap: var(--wp--preset--spacing--20); margin: 0; padding: 0; list-style: none; }
.hc-apply__track { display: flex; } /* equal-height cards in the 2-across row */
.hc-apply__track a {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	min-height: 44px;
	padding: var(--wp--preset--spacing--30);
	border: var(--hc-hairline);
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}
.hc-apply__track a:hover { border-color: var(--wp--preset--color--contrast); }
.hc-apply__track a:focus-visible { outline: 2px solid var(--wp--preset--color--contrast); outline-offset: 2px; }
.hc-apply__track-title {
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;
}
.hc-apply__track-title::after { content: " →"; }
.hc-apply__track-text { color: var(--wp--preset--color--muted); }
@media (min-width: 561px) {
	.hc-apply--choose > * { max-width: 48rem; }
	.hc-apply__tracks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.hc-apply__switch { margin: 0 0 var(--wp--preset--spacing--30); font-size: var(--wp--preset--font-size--small); }
.hc-apply__switch a { display: inline-block; padding: 0.6rem 0; color: var(--wp--preset--color--contrast); } /* 44px tap height */
/* Checkboxes: the box + text side by side, normal case (the shared label style is uppercase). */
.hc-apply__check label {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
	min-height: 44px;
	margin: 0;
	padding-top: 0.6rem;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 400;
	letter-spacing: normal;
	line-height: 1.4;
	text-transform: none;
	cursor: pointer;
}
/* Undo the shared text-field styling (.hc-inquiry__field input): a plain checkbox. */
.hc-inquiry__field.hc-apply__check input {
	flex: none;
	width: 1.1rem;
	height: 1.1rem;
	min-height: 0;
	margin: 0.1rem 0 0;
	padding: 0;
	border: 0;
	accent-color: var(--wp--preset--color--contrast);
}
.hc-apply__check a { color: var(--wp--preset--color--contrast); text-decoration: underline; text-underline-offset: 0.2em; }
.hc-apply__check.has-error input { outline: 2px solid var(--wp--preset--color--contrast); outline-offset: 2px; }
.hc-apply__links { margin: 0; padding: 0; border: 0; min-width: 0; }
.hc-apply__links legend { margin-bottom: 0.4rem; padding: 0; font-size: var(--wp--preset--font-size--label); font-weight: 600; letter-spacing: var(--hc-tracking); text-transform: uppercase; } /* same as the field labels */
.hc-apply__links input + label + input, .hc-apply__links input ~ input { margin-top: 0.5rem; }

/* Run submission (blocks/run-form, 0.6.0): shares the Apply form styles. */
.hc-run__reselect { margin-top: 0.5rem !important; font-weight: 400; }
.hc-run__status { margin: 0; align-self: center; font-size: var(--wp--preset--font-size--small); font-weight: 600; }
.hc-inquiry__actions:has(.hc-run__status) { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1rem; }
.hc-inquiry__actions button:disabled { opacity: 0.55; cursor: progress; }
.hc-inquiry__field input[type=file] { padding: 0.55rem 0.6rem; font-size: var(--wp--preset--font-size--small); cursor: pointer; }
.hc-apply__next { margin: var(--wp--preset--spacing--20) 0 0; font-size: var(--wp--preset--font-size--small); }
.hc-apply__next a { display: inline-flex; align-items: center; min-height: 44px; color: var(--wp--preset--color--contrast); text-decoration: underline; text-underline-offset: 0.2em; }
/* Community run credit on a Lab Note (inc/runs.php, after the date). */
.hc-article__credit { margin: 0; }

/* Strain page, In Development: "Want to hunt this line? Apply to test" under the contact link. */
.hc-specs__apply { margin: 0.25rem 0 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.hc-specs__apply a { display: inline-flex; align-items: center; min-height: 44px; color: var(--wp--preset--color--contrast); text-decoration: underline; text-underline-offset: 0.2em; }

/* ---- Wash & Rosin Calculator (blocks/hash-calculator, inc/calculator.php) ---- */
.hc-calc { display: grid; gap: var(--wp--preset--spacing--40); }
.hc-calc > *, .hc-calc__form > *, .hc-calc__grades > * { min-width: 0; } /* grid items may shrink; the results table scrolls in its own box */
@media (min-width: 900px) { .hc-calc { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); align-items: start; } .hc-calc__next { grid-column: 1 / -1; } }
.hc-calc__form { display: grid; gap: var(--wp--preset--spacing--30); }
.hc-calc__set { margin: 0; padding: var(--wp--preset--spacing--20) 0 0; border: 0; border-top: 1px solid var(--wp--preset--color--contrast); min-width: 0; }
.hc-calc__legend { padding: 0; font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--x-large); font-weight: 700; text-transform: uppercase; }
.hc-calc__field label, .hc-calc__choice .hc-label { display: block; margin-bottom: 0.35rem; font-size: var(--wp--preset--font-size--label); font-weight: 600; letter-spacing: var(--hc-tracking); text-transform: uppercase; }
.hc-calc__field { margin-top: var(--wp--preset--spacing--20); }
.hc-calc__unit-wrap { position: relative; display: block; }
.hc-calc__field input, .hc-calc__field select {
	display: block; width: 100%; min-height: 44px; box-sizing: border-box; padding: 0.6rem 2.2rem 0.6rem 0.8rem;
	border: 1px solid var(--wp--preset--color--hairline); border-radius: 0; background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); font: inherit;
}
.hc-calc__field select { padding-right: 0.8rem; }
.hc-calc__field input:focus, .hc-calc__field select:focus { outline: 1px solid var(--wp--preset--color--contrast); outline-offset: -1px; border-color: var(--wp--preset--color--contrast); }
.hc-calc__field input[aria-invalid="true"] { border: 2px solid var(--wp--preset--color--contrast); }
.hc-calc__unit { position: absolute; right: 0.8rem; top: 50%; transform: translateY(-50%); color: var(--wp--preset--color--muted); pointer-events: none; }
.hc-calc__grades { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--wp--preset--spacing--20); }
@media (min-width: 561px) { .hc-calc__grades { grid-template-columns: repeat(4, minmax(0, 1fr)); } .hc-calc__more .hc-calc__grades { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.hc-calc__hint { margin: var(--wp--preset--spacing--20) 0 0; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.hc-calc__more { margin-top: 0.25rem; }
.hc-calc__more summary { display: inline-flex; align-items: center; min-height: 44px; cursor: pointer; font-size: var(--wp--preset--font-size--small); text-decoration: underline; text-underline-offset: 0.2em; }
.hc-calc__choice { display: flex; flex-wrap: wrap; align-items: center; gap: 0 1.25rem; margin-top: var(--wp--preset--spacing--20); }
.hc-calc__choice .hc-label { flex-basis: 100%; }
.hc-calc__choice label { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 44px; cursor: pointer; }
.hc-calc__choice input { width: 1.1rem; height: 1.1rem; margin: 0; accent-color: var(--wp--preset--color--contrast); }
.hc-calc__options { display: grid; gap: 0 var(--wp--preset--spacing--30); }
.hc-calc__actions button { min-height: 44px; cursor: pointer; border: 0; }
.hc-calc__results { padding: var(--wp--preset--spacing--30); background: var(--wp--preset--color--panel); }
@media (min-width: 900px) { .hc-calc__results { position: sticky; top: var(--wp--preset--spacing--30); } }
.hc-calc__results > :first-child { margin-top: 0; }
.hc-calc__empty { margin: 0; color: var(--wp--preset--color--muted); }
.hc-calc__errors ul { margin: 0.5rem 0 0; padding-left: 1.1rem; font-weight: 600; }
.hc-calc__errors { padding: var(--wp--preset--spacing--20); border: 2px solid var(--wp--preset--color--contrast); background: var(--wp--preset--color--base); }
.hc-calc__errors .hc-label { margin: 0; }
.hc-calc__block + .hc-calc__block { margin-top: var(--wp--preset--spacing--30); padding-top: var(--wp--preset--spacing--20); border-top: var(--hc-hairline); }
.hc-calc__block h2 { margin: 0; color: var(--wp--preset--color--muted); }
.hc-calc__big { margin: 0.3rem 0 0; font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--xx-large); font-weight: 700; line-height: 1; }
.hc-calc__sub, .hc-calc__head, .hc-calc__compare p { margin: 0.4rem 0 0; font-size: var(--wp--preset--font-size--small); }
.hc-calc__compare a { display: inline-flex; align-items: center; min-height: 44px; color: var(--wp--preset--color--contrast); text-decoration: underline; text-underline-offset: 0.2em; }
.hc-calc__table-wrap { margin-top: var(--wp--preset--spacing--20); overflow-x: auto; }
/* "µ" uppercased becomes a capital Greek Mu, which reads as "M": grade labels keep their case. */
.hc-calc__grades label { text-transform: none; letter-spacing: 0.04em; }
.hc-calc__table { width: 100%; border-collapse: collapse; font-size: var(--wp--preset--font-size--small); font-variant-numeric: tabular-nums; }
.hc-calc__table th, .hc-calc__table td { padding: 0.45rem 0.5rem; border-bottom: var(--hc-hairline); text-align: right; white-space: nowrap; }
.hc-calc__table th:first-child, .hc-calc__table thead th:first-child { text-align: left; }
.hc-calc__table thead th { font-size: var(--wp--preset--font-size--label); font-weight: 600; letter-spacing: var(--hc-tracking); text-transform: uppercase; vertical-align: bottom; }
.hc-calc__th-note { display: block; font-weight: 400; letter-spacing: normal; text-transform: none; color: var(--wp--preset--color--muted); }
.hc-calc__next { padding-top: var(--wp--preset--spacing--20); border-top: var(--hc-hairline); }
.hc-calc__next p { margin: 0; }
.hc-calc__next a { display: inline-flex; align-items: center; min-height: 44px; color: var(--wp--preset--color--contrast); text-decoration: underline; text-underline-offset: 0.2em; }
@media (max-width: 560px) {
	/* Five columns fit a phone: tighter cells; the column notes may wrap. */
	.hc-calc__results { padding: var(--wp--preset--spacing--20); }
	.hc-calc__table th, .hc-calc__table td { padding: 0.4rem 0.25rem; }
	.hc-calc__table thead th { white-space: normal; letter-spacing: 0.06em; }
}
.hc-calc-copy { max-width: 46rem; }
.hc-calc-copy h2 { margin-top: var(--wp--preset--spacing--40); font-size: var(--wp--preset--font-size--x-large); }
.hc-calc-copy p { line-height: 1.6; }

/* ---- Partners page (blocks/partners) ------------------------------------- */
.hc-partners__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--wp--preset--spacing--30) var(--wp--preset--spacing--20); margin: 0; padding: 0; list-style: none; }
@media (min-width: 782px) { .hc-partners__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1025px) { .hc-partners__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
/* Neutral tile; the logo is shown exactly as uploaded (no filter, blend mode or recolor). */
.hc-partner__tile {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 3 / 2;
	margin-bottom: var(--wp--preset--spacing--20);
	padding: var(--wp--preset--spacing--20);
	background: var(--wp--preset--color--panel);
	box-sizing: border-box;
}
.hc-partner__logo { display: block; width: 100%; height: 100%; object-fit: contain; } /* fills the tile box, logo proportions kept (contain), so srcset picks a sharp size */
.hc-partner__initial { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--xx-large); font-weight: 700; color: var(--wp--preset--color--muted); }
.hc-partner__name { margin: 0 0 0.3rem; font-size: var(--wp--preset--font-size--large); overflow-wrap: anywhere; }
.hc-partner__relationship { margin: 0 0 0.5rem; color: var(--wp--preset--color--muted); }
.hc-partner__description { margin: 0 0 0.25rem; font-size: var(--wp--preset--font-size--small); line-height: 1.5; }
.hc-partner__link { margin: 0; }
.hc-partner__link a { display: inline-block; padding: 0.6rem 0; color: var(--wp--preset--color--contrast); text-decoration: none; }
.hc-partners__disclosure { margin: var(--wp--preset--spacing--40) 0 0; padding-top: var(--wp--preset--spacing--20); border-top: var(--hc-hairline); color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }

/* ---- Tester Program Terms (patterns/tester-terms.php) -------------------- */
.hc-terms__version { margin-top: 0.5rem; font-size: var(--wp--preset--font-size--small); }
.hc-terms-page .hc-terms { margin-top: var(--wp--preset--spacing--30); }
.hc-terms h2 { margin-top: var(--wp--preset--spacing--40); font-size: var(--wp--preset--font-size--x-large); }
.hc-terms p, .hc-terms li { line-height: 1.6; }
/* The table scrolls inside its own box on narrow screens; the page never scrolls sideways. */
.hc-terms__table { margin: var(--wp--preset--spacing--20) 0; overflow-x: auto; }
.hc-terms__table table { min-width: 34rem; border-collapse: collapse; font-size: var(--wp--preset--font-size--small); }
.hc-terms__table th, .hc-terms__table td { padding: 0.6rem 0.75rem; border: 1px solid var(--wp--preset--color--hairline); text-align: left; vertical-align: top; }
.hc-terms__table thead th { background: var(--wp--preset--color--panel); font-weight: 600; border-bottom-color: var(--wp--preset--color--hairline); }

/* ---- Status pages (In Development) ---------------------------------------- */
.hc-status-page__intro .hc-catalog__title { margin-bottom: 0.5rem; }
.hc-status-page__lede { max-width: 36rem; margin: 0; }

/* Label card: name + status only, status pinned to the bottom; whole card is the link. */
.hc-card--label { position: relative; }
.hc-card--label .hc-card__title a::after { content: ""; position: absolute; inset: 0; }
.hc-card--label .hc-card__title { margin-bottom: 0.4rem; }
.hc-card--label .hc-card__status { margin-top: auto; color: var(--wp--preset--color--muted); }
/* Lineage under the name: body text, wraps between words; a single over-long word breaks
   rather than widening the card. The status keeps its gap below via margin-bottom. */
.hc-card__lineage {
	margin: 0 0 0.6rem;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.4;
	overflow-wrap: anywhere;
}
.hc-card--label:has(.hc-card__title a:focus-visible) { outline: 1px solid var(--wp--preset--color--contrast); outline-offset: 2px; }
.hc-card--label:hover .hc-card__title a { text-decoration: underline; }
/* Photo card: status badge over the image. */
.hc-drop__media .hc-strain-label { position: absolute; inset: var(--wp--preset--spacing--30); width: auto; height: auto; }
.hc-drop__media:has(.hc-strain-label) { border: var(--hc-hairline); box-sizing: border-box; }
.hc-drop__badge { align-self: flex-start; }
.hc-card__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--large);
	letter-spacing: 0.01em;
}
.hc-card__title a { text-decoration: none !important; }

/* ---- Lab Notes (blog: home.html, category.html, single.html; inc/lab-notes.php) ---- */
.hc-notes-list__head { margin-bottom: var(--wp--preset--spacing--30); }
.hc-notes-list__head .hc-catalog__title { margin-bottom: 0.5rem; }
.hc-notes-list__intro { max-width: 36rem; margin: 0; color: var(--wp--preset--color--muted); }
.hc-notes-list__rows { border-top: 1px solid var(--wp--preset--color--contrast); }
.hc-notes-list--more .hc-notes-list__rows { border-top-color: var(--wp--preset--color--hairline); }
.hc-note-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
	padding: var(--wp--preset--spacing--30) 0;
	border-bottom: var(--hc-hairline);
}
.hc-note-row.has-image { grid-template-columns: minmax(0, 16rem) minmax(0, 1fr); }
/* Photos contained on white, never cropped (same rule as strain photos). */
.hc-note-row__media { display: block; aspect-ratio: 4 / 3; border: var(--hc-hairline); background: var(--wp--preset--color--base); overflow: hidden; }
.hc-note-row__media img { display: block; width: 100%; height: 100%; object-fit: contain; }
.hc-note-row__body { display: flex; flex-direction: column; gap: 0.6rem; min-width: 0; }
.hc-note-row__meta { color: var(--wp--preset--color--muted); }
.hc-note-row__meta a { color: inherit; text-decoration: none; }
.hc-note-row__meta a:hover { color: var(--wp--preset--color--contrast); }
.hc-note-row__title { margin: 0; font-size: var(--wp--preset--font-size--x-large); line-height: 1.05; text-wrap: balance; }
.hc-notes-list--more .hc-note-row__title { font-size: var(--wp--preset--font-size--large); }
.hc-note-row__title a { text-decoration: none !important; }
.hc-note-row__title a:hover { opacity: 0.6; }
.hc-note-row__excerpt { max-width: 44rem; margin: 0; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); line-height: 1.6; }
.hc-note-row__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 0 1.5rem; margin: 0; }
.hc-note-row__foot a { color: var(--wp--preset--color--contrast); }
.hc-note-row__strain { color: var(--wp--preset--color--muted); }
.hc-note-row__strain a { display: inline-flex; align-items: center; min-height: 44px; text-underline-offset: 0.25em; }
.hc-note-row__read { display: inline-flex; align-items: center; min-height: 44px; margin-left: auto; text-decoration: none; }
.hc-note-row__read:hover { opacity: 0.6; }
.hc-notes-list__pages ul { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: var(--wp--preset--spacing--40) 0 0; padding: 0; list-style: none; }
.hc-notes-list__pages li > .page-numbers { /* the <ul> has the class too */
	display: inline-grid;
	place-items: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 0.9em;
	box-sizing: border-box;
	border: 1px solid var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--contrast);
	font-size: var(--wp--preset--font-size--label);
	font-weight: 600;
	letter-spacing: var(--hc-tracking);
	text-decoration: none;
	text-transform: uppercase;
}
.hc-notes-list__pages li > .page-numbers.current { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.hc-notes-list__pages li > .page-numbers.dots { border-color: transparent; }

/* Article */
.hc-article__head > * { margin-block: 0 !important; }
.hc-article__meta { gap: 0.4rem 1rem; color: var(--wp--preset--color--muted); }
.hc-article__meta > * { margin: 0; }
.hc-article__meta a { color: var(--wp--preset--color--contrast); text-decoration: none; }
.hc-article__meta .wp-block-post-terms__separator { color: var(--wp--preset--color--muted); }
.hc-article__title { max-width: 52rem; margin-top: 0.4rem !important; font-size: clamp(2.25rem, 5vw, 3.75rem); line-height: 0.95; text-wrap: balance; }
.hc-article__image { border: var(--hc-hairline); background: var(--wp--preset--color--base); }
/* Core defaults the featured image to cover; photos are shown whole (contained on white). */
.hc-article__image img { display: block; width: 100%; height: auto !important; max-height: 70vh; object-fit: contain !important; }
.hc-article__split {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 17rem);
	gap: var(--wp--preset--spacing--50);
	align-items: start;
}
.hc-article__split:not(:has(.hc-note-strain)) { grid-template-columns: minmax(0, 1fr); }
.hc-article__split > * { margin-block: 0 !important; }
.hc-note-strain { position: sticky; top: var(--wp--preset--spacing--40); display: flex; flex-direction: column; gap: var(--wp--preset--spacing--20); }
.hc-note-strain__label { margin: 0; }
.hc-note-strain__contact { margin: 0; }
.hc-note-strain__contact a { display: inline-flex; align-items: center; min-height: 44px; color: var(--wp--preset--color--contrast); text-decoration: none; }
.hc-note-strain__contact a:hover { opacity: 0.6; }

/* Strain page: Lab Notes linked to the strain (same label-left layout as Strain Notes). */
.hc-strain-notes { max-width: 44rem; margin: 0; padding: 0; list-style: none; border-top: var(--hc-hairline); }
.hc-strain-notes li { border-bottom: var(--hc-hairline); }
.hc-strain-notes a {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.25rem 1rem;
	min-height: 44px;
	padding: 0.85rem 0;
	box-sizing: border-box;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}
.hc-strain-notes__title { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--large); font-weight: 700; line-height: 1.1; text-transform: uppercase; }
.hc-strain-notes__meta { color: var(--wp--preset--color--muted); }
.hc-strain-notes a:hover .hc-strain-notes__title { opacity: 0.6; }

@media (max-width: 781px) {
	.hc-article__split { grid-template-columns: minmax(0, 1fr); }
	.hc-note-strain { position: static; max-width: 20rem; }
	.hc-note-row.has-image { grid-template-columns: minmax(0, 7rem) minmax(0, 1fr); }
	.hc-note-row__title { font-size: var(--wp--preset--font-size--large); }
}

/* ---- Strain waitlist (blocks/waitlist-form; strain page panel) ------------------------------
   Mobile-first: email and button stacked, side by side from 561px. 44px tap targets; the whole
   consent label is the tap target. */
.hc-waitlist { margin: 0; padding-top: var(--wp--preset--spacing--20); border-top: var(--hc-hairline); }
.hc-waitlist__heading { margin: 0 0 0.4rem; font-size: var(--wp--preset--font-size--label); }
.hc-waitlist__text { margin: 0 0 var(--wp--preset--spacing--20); color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); line-height: 1.5; }
.hc-waitlist__form { margin: 0; }
.hc-waitlist__row { display: flex; flex-direction: column; gap: 0.5rem; }
.hc-waitlist__row input[type="email"] {
	min-width: 0;
	min-height: 44px;
	box-sizing: border-box;
	padding: 0.65rem 0.8rem;
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: 0;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
}
.hc-waitlist__row input[type="email"]:focus { outline: 1px solid var(--wp--preset--color--contrast); outline-offset: -1px; border-color: var(--wp--preset--color--contrast); }
.hc-waitlist__row input[aria-invalid="true"] { border: 2px solid var(--wp--preset--color--contrast); }
.hc-waitlist__submit {
	min-height: 44px;
	padding: 0 1.25rem;
	border: 1px solid var(--wp--preset--color--contrast);
	border-radius: 0;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--label);
	font-weight: 600;
	letter-spacing: var(--hc-tracking);
	text-transform: uppercase;
	cursor: pointer;
}
.hc-waitlist__submit:hover, .hc-waitlist__submit:focus-visible { background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); }
.hc-waitlist__consent {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	min-height: 44px;
	margin-top: 0.25rem;
	font-size: var(--wp--preset--font-size--small);
	cursor: pointer;
}
.hc-waitlist__consent input { flex: none; width: 1.1rem; height: 1.1rem; margin: 0; accent-color: var(--wp--preset--color--contrast); }
.hc-waitlist__note { margin: 0.5rem 0 0; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); line-height: 1.5; }
.hc-waitlist__note a { display: inline-block; padding: 0.6rem 0; color: var(--wp--preset--color--contrast); } /* taller tap area without shifting the text */
.hc-waitlist__error { margin: 0.4rem 0 0; font-size: var(--wp--preset--font-size--small); font-weight: 600; }
.hc-waitlist__error::before { content: "! "; }
.hc-waitlist__error--form { margin: 0 0 var(--wp--preset--spacing--20); padding: 0.6rem 0.8rem; border: 2px solid var(--wp--preset--color--contrast); }
.hc-waitlist__done { margin: 0; font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--large); font-weight: 700; line-height: 1.1; text-transform: uppercase; }
@media (min-width: 561px) {
	.hc-waitlist__row { flex-direction: row; gap: 0; }
	.hc-waitlist__row input[type="email"] { flex: 1; border-right: 0; }
}


/* ---- Mission (split layout shared with hero, above) --------------------- */
/* Keeps "Science. Selection." on one line in the ~44% text column, as in the concept. */
.hc-mission__content h2 { font-size: clamp(2.25rem, 3.3vw, 2.875rem); }
/* Frame = the photo at 3:2, scaled to cover the panel (container units), so
   positions inside it are photo coordinates at every width. */
.hc-mission__media { container-type: size; overflow: hidden; }
.hc-mission__frame {
	position: absolute;
	top: 50%;
	left: 50%;
	width: max(100cqw, 150cqh);
	height: max(100cqh, 66.6667cqw);
	transform: translate(-50%, -50%);
}
/* Helix sits in the photo's one empty seed spot (~50.6% across, ~43.5% down),
   sized to that spot so it doesn't touch neighboring seeds. */
.hc-mission__mark {
	position: absolute;
	top: 43.5%;
	left: 50.6%;
	height: 12%;
	width: auto;
	aspect-ratio: 24 / 44;
	transform: translate(-50%, -50%);
	color: var(--wp--preset--color--base);
}

/* ---- Badges (shared) ------------------------------------------------------ */
.hc-badge--inline { position: static; display: inline-block; max-width: none; }
.hc-badge--solid { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }

/* ---- Strain detail (single product) -------------------------------------- */
.hc-breadcrumbs, .hc-breadcrumbs * {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--label) !important; /* Woo sizes the last crumb separately */
	font-weight: 500;
	letter-spacing: var(--hc-tracking);
	text-transform: uppercase;
}
.hc-pdp__split {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	align-items: stretch;
}
.hc-pdp__split > * { margin-block: 0 !important; }

/* Gallery: Woo's own block. With no photo, a gray block in place of Woo's placeholder image. */
.hc-pdp__gallery, .hc-pdp__gallery .woocommerce-product-gallery {
	height: 100%;
	width: 100% !important;
	max-width: none !important; /* Woo caps the block at 512px */
	margin: 0 !important;
	float: none !important;
}
.hc-pdp__gallery .woocommerce-product-gallery__wrapper { height: 100%; margin: 0; }
.hc-pdp__gallery .woocommerce-product-gallery__image--placeholder {
	height: 100%;
	min-height: 30rem;
	background: var(--wp--preset--color--hairline);
}
.hc-pdp__gallery .woocommerce-product-gallery__image--placeholder img { display: none !important; }
/* Strain label in the gallery (no product image): white, label centered and contained. */
.hc-pdp__gallery .hc-pdp__label {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	padding: var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--base);
	border: var(--hc-hairline);
}
.hc-pdp__gallery .hc-pdp__label svg { display: block; width: 100%; max-width: 26rem; height: auto; }
.hc-pdp__gallery img { display: block; width: 100%; height: auto; }
/* With photos: white behind them. Every slide is the same square, photo contained (never
   cropped), so the slider doesn't jump between photos of different shapes. The strain
   label follows the photos as the last slide (inc/gallery.php). */
.hc-pdp__gallery .woocommerce-product-gallery--with-images { height: auto; background: var(--wp--preset--color--base); }
.hc-pdp__gallery .woocommerce-product-gallery--with-images .woocommerce-product-gallery__wrapper { height: auto; }
.hc-pdp__gallery .woocommerce-product-gallery__image:not(.woocommerce-product-gallery__image--placeholder) {
	position: relative;
	aspect-ratio: 1;
	background: var(--wp--preset--color--base);
}
/* Woo's CSS forces height:auto on gallery images; pin link + image to the square instead. */
.hc-pdp__gallery .woocommerce-product-gallery__image > a { position: absolute; inset: 0; }
.hc-pdp__gallery .woocommerce-product-gallery__image > a > img { width: 100% !important; height: 100% !important; object-fit: contain; }
/* Hairline on the frame (slider viewport, or the single image), not on the slides it clips. */
.hc-pdp__gallery .flex-viewport,
.hc-pdp__gallery .woocommerce-product-gallery--with-images .woocommerce-product-gallery__wrapper:not(.slides) { border: var(--hc-hairline); box-sizing: border-box; }
.hc-pdp__gallery .hc-pdp__label-slide > a > img { padding: var(--wp--preset--spacing--40); box-sizing: border-box; }

/* Thumbnails (FlexSlider control nav): square hairline cells, photo contained. */
.hc-pdp__gallery .flex-control-thumbs {
	display: grid !important;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 0.5rem;
	margin: 0.5rem 0 0 !important;
	padding: 0 !important;
	list-style: none;
}
.hc-pdp__gallery .flex-control-thumbs li {
	position: relative;
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	aspect-ratio: 1;
	align-self: start; /* square even next to the portrait label thumb */
	overflow: hidden;
	border: var(--hc-hairline);
	box-sizing: border-box;
	background: var(--wp--preset--color--base);
}
.hc-pdp__gallery .flex-control-thumbs li:has(.flex-active) { border-color: var(--wp--preset--color--contrast); }
/* Pinned inside the square cell (Woo's CSS sets height:auto), photo contained, never cropped. */
.hc-pdp__gallery .flex-control-thumbs img {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	object-fit: contain;
	opacity: 0.5;
	cursor: pointer;
	transition: opacity 0.15s ease;
}
.hc-pdp__gallery .flex-control-thumbs img:hover,
.hc-pdp__gallery .flex-control-thumbs img.flex-active { opacity: 1; }
/* Woo's zoom trigger: square hairline icon instead of an emoji in a circle. */
.hc-pdp__gallery .woocommerce-product-gallery__trigger {
	top: 1rem !important;
	right: 1rem !important;
	width: 2.25rem !important;
	height: 2.25rem !important;
	border: var(--hc-hairline) !important;
	border-radius: 0 !important;
	background: var(--wp--preset--color--base) !important;
	font-size: 0 !important;
	box-sizing: border-box;
}
.hc-pdp__gallery .woocommerce-product-gallery__trigger > * { display: none; }
.hc-pdp__gallery .woocommerce-product-gallery__trigger::before {
	content: "" !important;
	position: absolute;
	inset: 0;
	margin: auto;
	width: 1rem !important;
	height: 1rem !important;
	top: 0 !important;
	left: 0 !important;
	transform: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	background-color: var(--wp--preset--color--contrast);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='6.5' cy='6.5' r='5' fill='none' stroke='black' stroke-width='1.4'/%3E%3Cpath d='M10.3 10.3 15 15' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='6.5' cy='6.5' r='5' fill='none' stroke='black' stroke-width='1.4'/%3E%3Cpath d='M10.3 10.3 15 15' stroke='black' stroke-width='1.4'/%3E%3C/svg%3E") center / contain no-repeat;
}
.hc-pdp__gallery .woocommerce-product-gallery__trigger::after { display: none !important; }

.hc-pdp__panel {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--30);
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40) !important;
}
.hc-pdp__panel > * { margin-block: 0 !important; }

.hc-specs__badges { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: var(--wp--preset--spacing--20); }
.hc-specs__title { margin: 0; font-size: var(--wp--preset--font-size--xx-large); }
.hc-specs__lineage {
	margin: 0.6rem 0 0;
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
/* Short description under the title: body text (Inter, regular, the page's text colour). */
.hc-specs__summary { max-width: 36rem; margin-top: var(--wp--preset--spacing--20); line-height: 1.6; }
.hc-specs__summary > * { margin: 0 0 0.75rem; }
.hc-specs__summary > :last-child { margin-bottom: 0; }
.hc-specs__summary img { display: block; max-width: 100%; height: auto; }
.hc-specs__summary a { color: var(--wp--preset--color--contrast); text-decoration: underline; text-underline-offset: 0.2em; }
.hc-specs--details { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--20); }
.hc-specs__meta {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--20);
	margin: 0;
	padding: var(--wp--preset--spacing--20) 0;
	border-top: var(--hc-hairline);
	border-bottom: var(--hc-hairline);
}
/* Nothing after the Type / Flower Time / Use row (no Terp Profile, no Hash Potential): drop its
   bottom rule. The next block ("Contact about this strain") draws its own top rule, so two
   rules with an empty band between them would show otherwise. */
.hc-specs__meta:last-child { border-bottom: 0; padding-bottom: 0; }
.hc-specs__meta dt { font-weight: 500; }
.hc-specs__meta dd {
	margin: 0.35rem 0 0;
	font-size: var(--wp--preset--font-size--label);
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
/* Hash Performance (strain-specs "performance", inc/performance.php): Runs first, then the numbers. */
.hc-specs--performance { margin: 0; padding: var(--wp--preset--spacing--20) 0 0; border-top: var(--hc-hairline); }
.hc-perf__heading { margin: 0 0 var(--wp--preset--spacing--20); color: var(--wp--preset--color--contrast); font-weight: 600; }
.hc-perf__stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--wp--preset--spacing--20); margin: 0; }
@media (min-width: 1025px) { .hc-perf__stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.hc-perf__stats dt { color: var(--wp--preset--color--muted); font-weight: 500; }
.hc-perf__stats dd { margin: 0.25rem 0 0; font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--x-large); font-weight: 700; line-height: 1; }
.hc-perf__note { margin: var(--wp--preset--spacing--20) 0 var(--wp--preset--spacing--20); color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.hc-specs__text p { margin: 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.hc-specs__text .hc-label { margin-bottom: 0.3rem; color: var(--wp--preset--color--contrast); font-weight: 500; }

/* "Contact about this strain": a link, not a button (no buy-box look). */
.hc-specs--contact { margin: 0; padding-top: var(--wp--preset--spacing--20); border-top: var(--hc-hairline); }
.hc-specs--contact a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--wp--preset--color--contrast);
	text-decoration: none !important;
}
.hc-specs--contact a:hover { opacity: 0.6; }

/* ---- Strain Notes (product description, long-form) ------------------------ */
.hc-notes {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 3fr);
	gap: var(--wp--preset--spacing--30) var(--wp--preset--spacing--50);
	padding-top: var(--wp--preset--spacing--40);
	border-top: 1px solid var(--wp--preset--color--contrast);
}
.hc-notes__heading { margin: 0; font-size: var(--wp--preset--font-size--label); }
.hc-notes__body { max-width: 44rem; line-height: 1.65; }
.hc-notes__body::after { content: ""; display: table; clear: both; }
.hc-notes__body > * { margin-block: 0 1.1rem; }
.hc-notes__body > :first-child { margin-top: 0; }
.hc-notes__body > :last-child { margin-bottom: 0; }
.hc-notes__body :is(h2, h3, h4) {
	margin: var(--wp--preset--spacing--40) 0 0.75rem;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	line-height: 1.05;
	text-transform: uppercase;
}
.hc-notes__body h2 { font-size: var(--wp--preset--font-size--x-large); }
.hc-notes__body h3 { font-size: var(--wp--preset--font-size--large); }
.hc-notes__body h4 { font-size: var(--wp--preset--font-size--medium); }
.hc-notes__body a { color: var(--wp--preset--color--contrast); }
.hc-notes__body :is(ul, ol) { padding-left: 1.25rem; }
.hc-notes__body blockquote { margin-inline: 0; padding-left: var(--wp--preset--spacing--30); border-left: 1px solid var(--wp--preset--color--contrast); }
.hc-notes__body img { display: block; max-width: 100%; height: auto; }
.hc-notes__body :is(figure, .wp-caption) { max-width: 100%; margin-inline: 0; }
.hc-notes__body :is(figcaption, .wp-caption-text) { margin-top: 0.5rem; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.hc-notes__body .aligncenter { margin-inline: auto; }
.hc-notes__body .alignleft { float: left; max-width: 50%; margin: 0.3rem var(--wp--preset--spacing--30) 1rem 0; }
.hc-notes__body .alignright { float: right; max-width: 50%; margin: 0.3rem 0 1rem var(--wp--preset--spacing--30); }
.hc-notes__body hr { border: 0; border-top: var(--hc-hairline); }

/* ---- Lightbox (Woo's PhotoSwipe) -------------------------------------------
   White like the photo backdrop, black controls (the default skin's white icon
   sprite, inverted), hairline top bar, no translucent black bars. */
.pswp__bg { background: var(--wp--preset--color--base) !important; }
.pswp__top-bar, .pswp__caption { background: var(--wp--preset--color--base) !important; }
.pswp__top-bar { border-bottom: var(--hc-hairline); }
.pswp__button { filter: invert(1); opacity: 1 !important; border-radius: 0 !important; }
.pswp__button:hover, .pswp__button:focus-visible { opacity: 0.6 !important; }
.pswp__button--arrow--left::before, .pswp__button--arrow--right::before { background-color: transparent !important; border-radius: 0; }
.pswp__counter, .pswp__caption__center {
	color: var(--wp--preset--color--contrast) !important;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--label) !important;
	font-weight: 600;
	letter-spacing: var(--hc-tracking);
	text-transform: uppercase;
	opacity: 1 !important;
}
.pswp__caption__center { text-align: center; }

/* ---- Header nav, 600-781px ------------------------------------------------
   WP's navigation switches to the hamburger only below 600px, but the compact
   header starts at 781px. Without this the full link row wraps under the header
   on tablets. Keep the hamburger for the whole compact range. */
@media (min-width: 600px) and (max-width: 781px) {
	.hc-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.hc-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
/* 782-959px: the full desktop header doesn't fit on one line (the links wrap). The nav's
   own "Genetics" link is visible here, so drop the duplicate Explore Genetics button and tighten
   the link spacing. */
@media (min-width: 782px) and (max-width: 959px) {
	.wp-block-buttons.hc-header__cta { display: none; }
	.hc-nav .wp-block-navigation__container { gap: 1.25rem !important; }
}

/* ---- Mobile menu overlay (core Navigation overlay, restyled) ---------------
   Logo row at the top (inc/nav.php), large left-aligned uppercase links in the
   display face. The overlay only opens at <=781px. */
.hc-nav__overlay-head { display: none; }

.hc-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: 0 !important;
	background: var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--contrast) !important;
}
.hc-nav .is-menu-open .wp-block-navigation__responsive-close { max-width: none; width: 100%; }
.hc-nav .is-menu-open .wp-block-navigation__responsive-dialog {
	min-height: 100%;
	margin: 0 !important;
	padding: 0 var(--wp--style--root--padding-right) var(--wp--preset--spacing--40) var(--wp--style--root--padding-left);
	box-sizing: border-box;
}
/* Close button: 44x44, sits where the hamburger was. */
.hc-nav .is-menu-open .wp-block-navigation__responsive-container-close {
	top: 10px !important;
	right: calc(var(--wp--style--root--padding-right) - 10px) !important;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
}
.hc-nav .is-menu-open .wp-block-navigation__responsive-container-close svg { width: 26px; height: 26px; }
.hc-nav .is-menu-open .wp-block-navigation__responsive-container-content {
	align-items: stretch !important;
	gap: 0 !important;
	padding-top: 0 !important;
}
.hc-nav .is-menu-open .hc-nav__overlay-head {
	display: flex;
	align-items: center;
	height: 64px; /* same as the compact header */
	margin-bottom: var(--wp--preset--spacing--30);
	border-bottom: var(--hc-hairline);
}
.hc-nav .is-menu-open .hc-nav__overlay-head .hc-logo__mark { width: 14px; height: 27px; }
.hc-nav .is-menu-open .hc-nav__overlay-head .hc-logo__name { font-size: 1.2rem; }
.hc-nav .is-menu-open .hc-nav__overlay-head .hc-logo__sub { font-size: 0.46rem; letter-spacing: 0.48em; }

.hc-nav .is-menu-open .wp-block-navigation__container {
	align-items: stretch !important;
	gap: 0 !important;
	width: 100%;
}
.hc-nav .is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: var(--hc-hairline); }
.hc-nav .is-menu-open .wp-block-navigation-item__content {
	display: flex !important;
	align-items: center;
	gap: 0.5rem;
	width: 100%;
	padding: 0.85rem 0 !important;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2rem, 9vw, 2.75rem) !important;
	font-weight: 700;
	letter-spacing: 0.01em;
	line-height: 1;
	text-transform: uppercase;
}
.hc-nav .is-menu-open .wp-block-navigation-item__content:hover { opacity: 0.6; }
/* Current page: a small square after the label. */
.hc-nav .is-menu-open .wp-block-navigation-item__content[aria-current="page"]::after {
	content: "";
	width: 0.28em;
	height: 0.28em;
	margin-left: 0.15em;
	background: currentColor;
}

/* ---- About page (templates/page-about.html, patterns/about.php) ----------
   Hero reuses the mission split component. Everything else is type + hairlines. */
.hc-about-intro, .hc-about-question, .hc-about-values, .hc-about-batch, .hc-about-closing {
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--60);
}
.hc-about-values { padding-bottom: var(--wp--preset--spacing--50); }
.hc-about .wp-block-columns { gap: var(--wp--preset--spacing--30) var(--wp--preset--spacing--50); margin: 0; }
.hc-about .wp-block-column > p { margin: 0 0 1rem; }
.hc-about .wp-block-column > p:last-child { margin-bottom: 0; }

.hc-about-hero__title {
	margin: var(--wp--preset--spacing--20) 0 var(--wp--preset--spacing--30);
	font-size: clamp(2.75rem, 4vw, 3.75rem);
}
.hc-about-hero__lede { margin: 0; font-size: var(--wp--preset--font-size--large); line-height: 1.45; }

.hc-about-lede { font-size: var(--wp--preset--font-size--large); line-height: 1.5; }

/* Intro column heading "Slow on purpose.": quiet display statement between rules. */
.hc-about-statement {
	padding: var(--wp--preset--spacing--20) 0;
	border-top: 1px solid var(--wp--preset--color--contrast);
	border-bottom: var(--hc-hairline);
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;
	margin-bottom: var(--wp--preset--spacing--30) !important;
}

.hc-about-question__body { max-width: 40rem; margin: 0 !important; }
.hc-about-question__title {
	max-width: 14ch;
	margin: var(--wp--preset--spacing--20) 0 var(--wp--preset--spacing--40);
	font-size: clamp(2.5rem, 6vw, 5rem);
	line-height: 0.95;
}

/* Five values: numbered rows between hairlines; 05 is the inverted culmination. */
.hc-values__heading { margin: 0 0 var(--wp--preset--spacing--20); }
.hc-value {
	display: grid;
	grid-template-columns: 7rem minmax(0, 4fr) minmax(0, 6fr);
	gap: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
	align-items: start;
	margin: 0 !important;
	padding: var(--wp--preset--spacing--40) 0;
	border-top: var(--hc-hairline);
}
.hc-value > * { margin: 0 !important; }
.hc-value__num {
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 700;
	line-height: 0.9;
	color: var(--wp--preset--color--muted);
}
.hc-value__title { margin: 0; font-size: clamp(2.25rem, 4vw, 3.25rem); line-height: 0.95; }
.hc-value__tagline {
	margin: 0.75rem 0 0;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	letter-spacing: var(--hc-tracking);
	line-height: 1.4;
	text-transform: uppercase;
}
/* Readable measure: cap value copy at ~680px (it can otherwise run ~130 chars/line). */
.hc-value__body { max-width: 680px; }
.hc-value__body > * { margin: 0 0 0.9rem !important; }
.hc-value__body > :last-child { margin-bottom: 0 !important; }
.hc-value__lead { font-size: var(--wp--preset--font-size--large); font-weight: 600; line-height: 1.4; }
.hc-value__kicker {
	padding-top: 0.25rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;
}
.hc-value--culmination {
	margin-top: var(--wp--preset--spacing--30) !important;
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
	border-top: 0;
}
.hc-value--culmination .hc-value__num { color: var(--wp--preset--color--hairline); }
.hc-value--culmination .hc-value__title { font-size: clamp(2.75rem, 5vw, 4.25rem); }

/* Small batch by design: the strongest section. */
.hc-about-batch__title {
	margin: var(--wp--preset--spacing--20) 0 var(--wp--preset--spacing--50);
	font-size: clamp(3rem, 8vw, 6.5rem);
	line-height: 0.92;
}
/* One body column (55%), kept on the right where it sat beside the old lede. */
.hc-about-batch__cols { justify-content: flex-end; }
.hc-about-callout {
	margin-top: var(--wp--preset--spacing--30) !important;
	padding: var(--wp--preset--spacing--30);
	border: 1px solid var(--wp--preset--color--base);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	line-height: 1.4;
}
/* One closing statement, full width under a white rule. */
.hc-about-statements {
	margin: var(--wp--preset--spacing--60) 0 var(--wp--preset--spacing--40) !important;
}
.hc-about-statements > * { margin: 0 !important; }
.hc-about-statements__item {
	padding-top: var(--wp--preset--spacing--30);
	border-top: 1px solid var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2rem, 4vw, 3.25rem);
	font-weight: 700;
	line-height: 0.95;
	text-transform: uppercase;
}

/* Even line lengths for the big display lines (no lone last word). */
.hc-about-hero__title, .hc-about-question__title, .hc-about-batch__title, .hc-about-statement,
.hc-about-statements__item, .hc-value__kicker, .hc-lockup__values, .hc-about-callout { text-wrap: balance; }

/* Closing lockup. */
.hc-lockup {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--wp--preset--spacing--30);
	padding: var(--wp--preset--spacing--50) 0;
	border-top: 1px solid var(--wp--preset--color--contrast);
	border-bottom: 1px solid var(--wp--preset--color--contrast);
	text-align: center;
}
.hc-lockup > * { margin: 0 !important; }
.hc-lockup__values { letter-spacing: 0.22em; }
.hc-lockup .hc-logo { gap: 0.9rem; }
.hc-lockup .hc-logo__mark { width: 30px; height: 56px; }
.hc-lockup .hc-logo__name { font-size: clamp(2.25rem, 5vw, 3.25rem); }
.hc-lockup .hc-logo__sub { font-size: 0.8rem; }

@media (max-width: 1024px) {
	.hc-value { grid-template-columns: 4.5rem minmax(0, 1fr); }
	.hc-value__body { grid-column: 2; }
}
@media (max-width: 781px) {
	.hc-about-question__title { max-width: none; }
	.hc-value--culmination { padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30); }
	.hc-about-statements { margin-top: var(--wp--preset--spacing--50) !important; }
}
@media (max-width: 560px) {
	.hc-value { grid-template-columns: 3rem minmax(0, 1fr); gap: 0.75rem 1rem; }
	.hc-value__num { font-size: var(--wp--preset--font-size--x-large); }
	.hc-lockup .hc-logo__sub { letter-spacing: 0.45em; }
	.hc-lockup__values { letter-spacing: 0.14em; }
}

/* ---- Small screens (basic stacking; full mobile pass is step 4) --------- */
@media (max-width: 1024px) {
	.hc-library__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.hc-features__grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; row-gap: var(--wp--preset--spacing--30) !important; }
	.hc-feature:nth-child(3) { border-left: 0; padding-left: 0; }
}
@media (max-width: 781px) {
	/* Header: compact logo + compact Explore Genetics CTA + menu.
	   Every tap target is at least 44x44px. */
	.hc-header { padding-top: 0.6rem !important; padding-bottom: 0.6rem !important; }
	.hc-header__inner { gap: 0.5rem; }
	.hc-logo { gap: 0.4rem; }
	.hc-logo__mark { width: 14px; height: 27px; }
	.hc-logo__name { font-size: 1.2rem; }
	.hc-logo__sub { font-size: 0.46rem; letter-spacing: 0.48em; }
	.hc-header__actions { order: 2; margin-left: auto; gap: 0; }
	.hc-header__cta { margin-right: 0.25rem; }
	.hc-header__cta .wp-block-button__link {
		display: flex;
		align-items: center;
		min-height: 44px;
		box-sizing: border-box;
		padding: 0 0.7em;
		font-size: 0.625rem;
		/* Wraps to two lines ("Explore / Genetics", still 44px tall) only when the row is too
		   narrow (below ~360px), so logo + CTA + menu never exceed the viewport. */
		line-height: 1.2;
		text-align: center;
	}
	.hc-header__inner > .hc-logo, .hc-header__inner > .hc-nav { flex-shrink: 0; }
	.hc-header__actions, .hc-header__cta, .hc-header__cta .wp-block-button { min-width: 0; }
	.hc-header__cta .wp-block-button.is-style-outline-arrow > .wp-block-button__link::after { display: none; }
	.hc-nav .wp-block-navigation__responsive-container-open {
		width: 44px;
		height: 44px;
		display: grid;
		place-items: center;
		padding: 0;
	}
	.hc-nav { order: 3; margin-right: -10px; } /* hamburger at the far right; icon aligns to the edge */
	.hc-footer__links--first { border-left: 0; padding-left: 0; }
	/* Quick Links + Follow side by side (core stacks every column at this width). */
	.hc-footer__cols > .wp-block-column.hc-footer__links {
		flex-basis: calc(50% - var(--wp--preset--spacing--40) / 2) !important;
		flex-grow: 0;
	}
	.hc-footer__bar { flex-direction: column; align-items: flex-start; gap: 0.5rem; }

	/* Split sections stack: full-bleed image on top, text below. */
	.hc-hero, .hc-mission { padding-top: 0 !important; }
	.hc-hero__media, .hc-mission__media {
		position: relative !important;
		inset: auto;
		width: auto;
		height: 16rem;
		margin: 0 calc(var(--wp--style--root--padding-right) * -1) var(--wp--preset--spacing--40) calc(var(--wp--style--root--padding-left) * -1) !important;
	}
	.hc-hero__content > *, .hc-mission__content > * { max-width: none; }
	/* Hero: 200px image, scaled-down Selection Criteria card, tighter rhythm so the
	   headline and buttons sit above a ~660px fold. */
	.hc-hero__media { height: 12.5rem; margin-bottom: var(--wp--preset--spacing--30) !important; }
	/* Anchor to the top so the eyepieces aren't clipped in the 200px panel. */
	.hc-hero__photo { object-position: 40% 0%; }
	.hc-labcard {
		top: 0.75rem;
		right: 0.75rem;
		width: 5rem;
		padding: 0.7rem;
		transform: scale(0.7);
		transform-origin: top right;
	}
	.hc-labcard__title { margin-bottom: 0.4rem; padding-bottom: 0.4rem; font-size: 0.625rem; }
	.hc-labcard__list li { padding: 0.4rem 0; }
	.hc-labcard__barcode { height: 1.1rem; margin-top: 0.6rem; }
	.hc-hero__content > .is-style-label { margin-bottom: 0; }
	.hc-hero__title { margin-top: 0.6rem; margin-bottom: 0.8rem; }
	.hc-hero__intro { margin-top: 0; font-size: 0.9375rem; line-height: 1.5; }
	.hc-hero .wp-block-buttons { margin-top: var(--wp--preset--spacing--20) !important; }
	.hc-drop__slide { grid-template-columns: 1fr; }
	.hc-drop__media { min-height: 16rem; }
	/* Label in the Featured Drop: sized like the mobile detail page (~80% of the frame). */
	.hc-drop__media:has(.hc-strain-label) { min-height: 0; padding: var(--wp--preset--spacing--30); }
	.hc-drop__media .hc-strain-label { position: static; height: auto; }
	.hc-drop__media .hc-strain-label svg { width: 100%; max-width: 18rem; height: auto; }
	.hc-drop__panel { padding: var(--wp--preset--spacing--30); }

	/* Strain detail: image, then the panel. */
	.hc-pdp__split { grid-template-columns: minmax(0, 1fr); } /* minmax: the thumbnail strip scrolls instead of widening the column */
	.hc-pdp__gallery .woocommerce-product-gallery__image--placeholder { min-height: 0; aspect-ratio: 4 / 3; }
	.hc-pdp__gallery .hc-pdp__label { aspect-ratio: auto; padding: var(--wp--preset--spacing--30); }
	.hc-pdp__gallery .hc-pdp__label svg { max-width: 18rem; }
	.hc-pdp__panel { padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--20) !important; }
	/* Thumbnails: one swipeable row instead of a grid. */
	.hc-pdp__gallery .flex-control-thumbs {
		display: flex !important;
		overflow-x: auto;
		scroll-snap-type: x proximity;
		scrollbar-width: thin;
		padding-bottom: 0.25rem !important;
	}
	.hc-pdp__gallery .flex-control-thumbs li { flex: 0 0 4rem; scroll-snap-align: start; }
	.hc-notes { grid-template-columns: 1fr; }
	.hc-notes__body :is(.alignleft, .alignright) { float: none; max-width: 100%; margin-inline: 0; }
	.hc-specs__meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
	.hc-features__grid { grid-template-columns: 1fr !important; }
	/* Even number of cards on phones (More Genetics): hide a lone last card. */
	.hc-library--even .hc-library__grid > li:last-child:nth-child(odd) { display: none; }
	/* Decorative card would cover the hero photo on phones; the helix reads as a speck. */
	.hc-labcard, .hc-mission__mark { display: none; }

	/* Library: compact 2-across; the whole card is the link, no button. */
	.hc-library__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; }
	.hc-card { position: relative; padding: 0.75rem; }
	.hc-card__media { aspect-ratio: 1.4 / 1; margin-bottom: 0.6rem; }
	.hc-card__title { font-size: 1.0625rem; }
	.hc-card__title a::after { content: ""; position: absolute; inset: 0; } /* stretched link */
	.hc-card:has(.hc-card__title a:focus-visible) { outline: 1px solid var(--wp--preset--color--contrast); outline-offset: 2px; }
	.hc-card__title a:focus-visible { outline: none; }
	.hc-feature + .hc-feature { border-left: 0; padding-left: 0; }
	.hc-feature { padding-left: 0; }
	.hc-drop__meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
