/**
 * HK International — content components.
 *
 * Loaded only on pages that render the HK blocks using them (functions.php).
 *
 * Signature: wide Archivo for names and grades (the "manifest"); quiet,
 * disciplined surroundings. Surfaces alternate between paper and white
 * bands; one ink band closes a page. Amber is a marker, never a surface.
 */

/* ======================================================================
   Shared pieces
   ====================================================================== */

.hk-breadcrumbs {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--slate);
}

.hk-breadcrumbs__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--10) var(--wp--preset--spacing--20);
	list-style: none;
	margin: 0;
	padding: 0;
}

.hk-breadcrumbs__list li + li::before {
	content: "/" / "";
	margin-inline-end: var(--wp--preset--spacing--20);
	color: var(--wp--preset--color--slate);
}

.hk-breadcrumbs a {
	color: var(--wp--preset--color--slate);
}

.hk-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--30);
	margin-block-start: var(--wp--preset--spacing--60);
}

.hk-section-link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	font-weight: 600;
	color: var(--wp--preset--color--ink);
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--red);
	text-decoration-thickness: 2px;
	text-underline-offset: 0.3em;
}

.hk-section-link:hover {
	color: var(--wp--preset--color--navy);
}

.hk-prose > :first-child {
	margin-block-start: 0;
}

.hk-prose > :last-child {
	margin-block-end: 0;
}

.hk-prose p,
.hk-prose li {
	max-width: var(--wp--custom--measure);
}

.hk-empty {
	padding: var(--wp--preset--spacing--60);
	background: var(--wp--preset--color--white);
	border-radius: var(--wp--custom--radius--control);
}

.hk-empty p {
	margin: 0;
}

.hk-empty p + p {
	margin-block-start: var(--wp--preset--spacing--30);
}

/* Page intro (products, taxonomy pages, generic pages). */
.hk-page-intro {
	display: grid;
	gap: var(--wp--preset--spacing--60);
	align-items: end;
	padding-block: var(--wp--preset--spacing--70) var(--wp--preset--spacing--80);
}

.hk-page-intro__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--heading-1);
	font-stretch: var(--wp--custom--stretch--display);
	font-weight: 700;
	line-height: 1.02;
	letter-spacing: -0.015em;
}

.hk-page-intro__lead {
	margin: var(--wp--preset--spacing--50) 0 0;
	max-width: 52ch;
	font-size: var(--wp--preset--font-size--body-lg);
	color: var(--wp--preset--color--slate);
}

.hk-page-intro__media {
	margin: 0;
}

.hk-page-intro__media img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: var(--wp--custom--radius--media);
}

@media (min-width: 60em) {
	.hk-page-intro--image {
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	}
}

.hk-page-content > :first-child {
	margin-block-start: 0;
}

/* ---------- Lists, tags, ledger ---------- */

.hk-list {
	display: grid;
	gap: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60);
	list-style: none;
	margin: 0;
	padding: 0;
}

@media (min-width: 40em) {
	.hk-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.hk-list__item {
	display: flex;
	gap: var(--wp--preset--spacing--40);
	align-items: flex-start;
	padding-block-start: var(--wp--preset--spacing--40);
	border-block-start: 2px solid var(--wp--preset--color--ink);
}

.hk-list--compact .hk-list__item {
	border-block-start-width: 1px;
	border-block-start-color: var(--wp--preset--color--rule);
}

.hk-list__image {
	flex: none;
	width: 4.5rem;
	height: 4.5rem;
	object-fit: cover;
	border-radius: var(--wp--custom--radius--control);
}

.hk-list__name {
	margin: 0;
	font-weight: 600;
}

.hk-list__desc {
	margin: var(--wp--preset--spacing--10) 0 0;
	color: var(--wp--preset--color--slate);
}

.hk-list--items .hk-list__name {
	font-size: var(--wp--preset--font-size--body-lg);
	font-stretch: var(--wp--custom--stretch--heading);
}

.hk-tags {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
	list-style: none;
	margin: 0;
	padding: 0;
}

.hk-tags li {
	display: inline-flex;
}

.hk-tags li > a,
.hk-tags li:not(:has(a)) {
	display: inline-flex;
	align-items: center;
	min-height: 2.5rem;
	padding: 0.25rem 0.875rem;
	border: 1px solid var(--wp--preset--color--slate);
	border-radius: var(--wp--custom--radius--control);
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	font-size: var(--wp--preset--font-size--small);
	font-variant-numeric: tabular-nums;
}

.hk-tags a {
	text-decoration: none;
	transition: background-color var(--wp--custom--motion--fast) var(--wp--custom--motion--ease), color var(--wp--custom--motion--fast) var(--wp--custom--motion--ease);
}

.hk-tags a:hover {
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--white);
}

.hk-ledger {
	margin: 0;
}

.hk-ledger__row {
	display: grid;
	gap: var(--wp--preset--spacing--20) var(--wp--preset--spacing--60);
	padding-block: var(--wp--preset--spacing--50);
	border-block-start: 1px solid var(--wp--preset--color--rule);
}

.hk-ledger__row:first-child {
	border-block-start: 2px solid var(--wp--preset--color--ink);
}

.hk-ledger dt {
	font-size: var(--wp--preset--font-size--heading-4);
	font-stretch: var(--wp--custom--stretch--display);
	font-weight: 650;
}

.hk-ledger dd {
	margin: 0;
}

.hk-ledger dd > :first-child {
	margin-block-start: 0;
}

.hk-ledger dd > :last-child {
	margin-block-end: 0;
}

@media (min-width: 40em) {
	.hk-ledger__row {
		grid-template-columns: 11rem minmax(0, 1fr);
	}
}

.hk-specs {
	display: grid;
	gap: var(--wp--preset--spacing--50);
}

.hk-specs__body {
	margin: 0 0 var(--wp--preset--spacing--20);
	font-weight: 600;
	color: var(--wp--preset--color--slate);
}

/* ---------- Side-headed sections (activity and product pages) ---------- */

.hk-section {
	display: grid;
	gap: var(--wp--preset--spacing--50);
	padding-block: var(--wp--preset--spacing--80);
	border-block-start: 1px solid var(--wp--preset--color--rule);
}

.hk-section__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--heading-3);
	font-stretch: var(--wp--custom--stretch--heading);
	line-height: 1.15;
}

.hk-section__body > * + * {
	margin-block-start: var(--wp--preset--spacing--70);
}

@media (min-width: 60em) {
	.hk-section {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		gap: var(--wp--preset--spacing--60);
	}

	.hk-section__head {
		grid-column: 1 / span 4;
	}

	/* The side heading stays in view while a long section is read. */
	.hk-section__title {
		position: sticky;
		inset-block-start: calc(var(--hk-header-offset, var(--hk-header-height)) + var(--wp--preset--spacing--50));
		max-width: 14ch;
	}

	.hk-section__body {
		grid-column: 5 / -1;
	}
}

.hk-part__title {
	margin: 0 0 var(--wp--preset--spacing--40);
	font-size: var(--wp--preset--font-size--heading-4);
}

/* Varied rhythm on long pages: some sections sit on full-width white bands. */
.hk-section--supply,
.hk-section--catalogue,
.hk-section--quality,
.hk-section--related,
.hk-section--specs,
.hk-section--packs {
	background: var(--wp--preset--color--white);
	box-shadow: 0 0 0 100vmax var(--wp--preset--color--white);
	clip-path: inset(0 -100vmax);
	border-block-start-color: transparent;
}

.hk-section--overview .hk-prose:first-child > p:first-child {
	font-size: var(--wp--preset--font-size--body-lg);
	line-height: 1.55;
}

/* ======================================================================
   Business activities
   ====================================================================== */

/* ---------- Heroes ---------- */

.hk-activity-hero,
.hk-activities-intro {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--preset--spacing--60);
	align-items: end;
	padding-block: var(--wp--preset--spacing--70) var(--wp--preset--spacing--80);
}

.hk-activity-hero__title,
.hk-activities-intro__title {
	margin: 0;
	overflow-wrap: break-word;
	hyphens: auto;
	font-size: var(--wp--preset--font-size--display);
	font-stretch: var(--wp--custom--stretch--display);
	font-weight: 700;
	line-height: 0.98;
	letter-spacing: -0.02em;
	text-wrap: balance;
}

.hk-activity-hero__lead,
.hk-activities-intro__text p {
	margin-block: var(--wp--preset--spacing--50) 0;
	max-width: 46ch;
	font-size: var(--wp--preset--font-size--body-lg);
	color: var(--wp--preset--color--slate);
}

.hk-activity-hero__media,
.hk-activities-intro__media {
	margin: 0;
}

.hk-activity-hero__media img,
.hk-activities-intro__media img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--wp--custom--radius--media);
}

@media (min-width: 60em) {
	.hk-activity-hero,
	.hk-activities-intro {
		grid-template-columns: repeat(12, minmax(0, 1fr));
	}

	.hk-activity-hero__text,
	.hk-activities-intro__text {
		grid-column: 1 / span 7;
	}

	.hk-activity-hero__media,
	.hk-activities-intro__media {
		grid-column: 8 / -1;
	}

	.hk-activity-hero--text-only .hk-activity-hero__text,
	.hk-activities-intro--text-only .hk-activities-intro__text {
		grid-column: 1 / span 10;
	}
}

/* ---------- The manifest (activity index) ---------- */

.hk-manifest {
	list-style: none;
	margin: 0;
	padding: 0;
	border-block-end: 1px solid var(--wp--preset--color--rule);
}

.hk-manifest__row {
	position: relative;
	display: grid;
	grid-template-columns: 2.5rem minmax(0, 1fr);
	gap: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
	align-items: center;
	padding: var(--wp--preset--spacing--50) 0;
	border-block-start: 1px solid var(--wp--preset--color--rule);
	transition: background-color var(--wp--custom--motion--base) var(--wp--custom--motion--ease);
}

.hk-manifest__icon img {
	display: block;
	width: 2.5rem;
	height: 2.5rem;
	object-fit: contain;
}

.hk-manifest__name {
	margin: 0;
	font-size: var(--wp--preset--font-size--heading-3);
	font-stretch: var(--wp--custom--stretch--display);
	font-weight: 650;
	line-height: 1.05;
	letter-spacing: -0.01em;
}

.hk-manifest__link {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

/* The whole row is the link's hit area. */
.hk-manifest__link::after {
	content: "";
	position: absolute;
	inset: 0;
}

.hk-manifest__link:focus-visible {
	outline: none;
}

.hk-manifest__row:has(.hk-manifest__link:focus-visible) {
	outline: var(--wp--custom--focus--width) solid var(--wp--preset--color--navy);
	outline-offset: -2px;
}

.hk-manifest__intro {
	grid-column: 2 / -1;
	margin: 0;
	max-width: 60ch;
	color: var(--wp--preset--color--slate);
}

.hk-manifest__more {
	display: none;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	white-space: nowrap;
	text-decoration: underline;
	text-decoration-color: transparent;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.3em;
	transition: text-decoration-color var(--wp--custom--motion--base) var(--wp--custom--motion--ease);
}

@media (hover: hover) {
	.hk-manifest__row:hover {
		background: var(--wp--preset--color--white);
	}

	.hk-manifest__row:hover .hk-manifest__more {
		text-decoration-color: var(--wp--preset--color--red);
	}
}

@media (min-width: 60em) {
	.hk-manifest__row {
		grid-template-columns: 3rem minmax(0, 5fr) minmax(0, 6fr) auto;
		gap: var(--wp--preset--spacing--60);
		padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40);
		margin-inline: calc(var(--wp--preset--spacing--40) * -1);
	}

	.hk-manifest__intro {
		grid-column: auto;
	}

	.hk-manifest__more {
		display: inline;
		grid-column: -2;
	}
}

.hk-manifest--compact .hk-manifest__name {
	font-size: var(--wp--preset--font-size--heading-4);
}

.hk-manifest--compact .hk-manifest__row {
	padding-block: var(--wp--preset--spacing--40);
}

@media (min-width: 60em) {
	.hk-manifest--compact .hk-manifest__row {
		grid-template-columns: 2.5rem minmax(0, 1fr) auto;
	}

	.hk-manifest--compact .hk-manifest__intro {
		display: none;
	}
}

/* No icons in a list: drop the icon column so names align with headings. */
.hk-manifest:not(:has(.hk-manifest__icon)) .hk-manifest__icon {
	display: none;
}

.hk-manifest:not(:has(.hk-manifest__icon)) .hk-manifest__row {
	grid-template-columns: minmax(0, 1fr);
}

.hk-manifest:not(:has(.hk-manifest__icon)) .hk-manifest__intro {
	grid-column: auto;
}

@media (min-width: 60em) {
	.hk-manifest:not(:has(.hk-manifest__icon)) .hk-manifest__row {
		grid-template-columns: minmax(0, 5fr) minmax(0, 6fr) auto;
	}

	.hk-manifest--compact:not(:has(.hk-manifest__icon)) .hk-manifest__row {
		grid-template-columns: minmax(0, 1fr) auto;
	}
}

/* ---------- Featured activities ---------- */

.hk-activities__heading {
	margin: 0 0 var(--wp--preset--spacing--60);
	font-size: var(--wp--preset--font-size--heading-2);
	font-stretch: var(--wp--custom--stretch--heading);
}

.hk-activities__featured,
.hk-activities__all {
	padding-block: var(--wp--preset--spacing--80);
}

.hk-activities__featured + .hk-activities__all {
	border-block-start: 1px solid var(--wp--preset--color--rule);
}

.hk-features {
	display: grid;
	gap: var(--wp--preset--spacing--60);
	list-style: none;
	margin: 0;
	padding: 0;
}

.hk-feature {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--40);
}

.hk-feature__media {
	overflow: hidden;
	border-radius: var(--wp--custom--radius--media);
}

.hk-feature__media img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	transition: transform 600ms var(--wp--custom--motion--ease);
}

@media (hover: hover) {
	.hk-feature:hover .hk-feature__media img {
		transform: scale(1.02);
	}
}

.hk-feature__name {
	margin: 0;
	font-size: var(--wp--preset--font-size--heading-2);
	font-stretch: var(--wp--custom--stretch--display);
	font-weight: 700;
	line-height: 1.02;
	letter-spacing: -0.01em;
}

.hk-feature__link {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.hk-feature__link::after {
	content: "";
	position: absolute;
	inset: 0;
}

.hk-feature:hover .hk-feature__link {
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--red);
	text-decoration-thickness: 2px;
	text-underline-offset: 0.12em;
}

.hk-feature__link:focus-visible {
	outline: none;
}

.hk-feature:has(.hk-feature__link:focus-visible) {
	outline: var(--wp--custom--focus--width) solid var(--wp--preset--color--navy);
	outline-offset: var(--wp--custom--focus--offset);
}

.hk-feature__intro {
	margin: var(--wp--preset--spacing--30) 0 0;
	max-width: 52ch;
	color: var(--wp--preset--color--slate);
}

/* Without a photo the panel becomes an ink block so it still reads as featured. */
.hk-feature--no-image {
	justify-content: flex-end;
	min-height: 15rem;
	padding: var(--wp--preset--spacing--60);
	border-radius: var(--wp--custom--radius--media);
	background: var(--wp--preset--color--ink);
}

.hk-feature--no-image .hk-feature__link {
	color: var(--wp--preset--color--white);
}

.hk-feature--no-image .hk-feature__intro {
	color: var(--wp--preset--color--rule);
}

/* Archive: alternating media/text rows. */
@media (min-width: 48em) {
	.hk-activities .hk-feature:not(.hk-feature--no-image) {
		display: grid;
		grid-template-columns: repeat(12, minmax(0, 1fr));
		align-items: center;
		gap: var(--wp--preset--spacing--60);
	}

	.hk-activities .hk-feature:not(.hk-feature--no-image) .hk-feature__media {
		grid-column: 1 / span 7;
	}

	.hk-activities .hk-feature:not(.hk-feature--no-image) .hk-feature__body {
		grid-column: 8 / -1;
	}

	.hk-activities .hk-feature:not(.hk-feature--no-image):nth-child(even) .hk-feature__media {
		grid-column: 6 / -1;
		grid-row: 1;
	}

	.hk-activities .hk-feature:not(.hk-feature--no-image):nth-child(even) .hk-feature__body {
		grid-column: 1 / span 5;
		grid-row: 1;
	}

	.hk-activities .hk-features {
		gap: var(--wp--preset--spacing--80);
	}

	/* Featured activities without photos sit side by side. */
	.hk-activities .hk-features:not(:has(.hk-feature__media)) {
		grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
		gap: var(--wp--preset--spacing--50);
	}
}

/* Homepage: asymmetric panels (7/5, then 5/7). */
@media (min-width: 48em) {
	.hk-features--panels {
		grid-template-columns: repeat(12, minmax(0, 1fr));
	}

	.hk-features--panels .hk-feature:nth-child(4n + 1),
	.hk-features--panels .hk-feature:nth-child(4n + 4) {
		grid-column: span 7;
	}

	.hk-features--panels .hk-feature:nth-child(4n + 2),
	.hk-features--panels .hk-feature:nth-child(4n + 3) {
		grid-column: span 5;
	}

	.hk-features--panels .hk-feature:only-child,
	.hk-features--panels .hk-feature:nth-child(3):last-child {
		grid-column: 1 / -1;
	}
}

.hk-features--panels + .hk-manifest {
	margin-block-start: var(--wp--preset--spacing--80);
}

/* Industries page: an even grid of image-led cards (one, two, then three across).
   The whole card is the link; it lifts, gains a red base and zooms its image. */
.hk-features--grid .hk-feature {
	gap: 0;
	overflow: hidden;
	border: 1px solid var(--wp--preset--color--rule);
	border-radius: var(--wp--custom--radius--card);
	background: var(--wp--preset--color--white);
	box-shadow: var(--wp--custom--shadow--card);
	transition:
		transform var(--wp--custom--motion--base) var(--wp--custom--motion--ease),
		box-shadow var(--wp--custom--motion--base) var(--wp--custom--motion--ease);
}

.hk-features--grid .hk-feature::after {
	content: "";
	position: absolute;
	inset: auto 0 0;
	height: 3px;
	background: var(--wp--preset--color--red);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform var(--wp--custom--motion--slow) var(--wp--custom--motion--ease);
}

.hk-features--grid .hk-feature__media,
.hk-features--grid .hk-feature__media .hk-placeholder,
.hk-features--grid .hk-feature__media img {
	border-radius: 0;
}

.hk-features--grid .hk-feature__body {
	padding: var(--wp--preset--spacing--50);
}

.hk-features--grid .hk-feature__name {
	font-size: var(--wp--preset--font-size--heading-4);
	font-stretch: var(--wp--custom--stretch--heading);
}

@media (hover: hover) {
	.hk-features--grid .hk-feature:hover {
		transform: translateY(-4px);
		box-shadow: var(--wp--custom--shadow--lift);
	}

	.hk-features--grid .hk-feature:hover::after {
		transform: scaleX(1);
	}

	.hk-features--grid .hk-feature:hover .hk-feature__media img {
		transform: scale(1.05);
	}
}

@media (min-width: 40em) {
	.hk-features--grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--wp--preset--spacing--70) var(--wp--preset--spacing--50);
	}
}

@media (min-width: 64em) {
	.hk-features--grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.hk-industries {
	padding-block: var(--wp--preset--spacing--70) var(--wp--preset--spacing--90);
}

/* ======================================================================
   Homepage
   ====================================================================== */

.hk-home {
	padding-block-end: 0;
}

.hk-home-block + .hk-home-block {
	border-block-start: 1px solid var(--wp--preset--color--rule);
}

.hk-home-block--intro,
.hk-home-block--spotlight,
.hk-home-block--markets,
.hk-home-block--partners {
	background: var(--wp--preset--color--white);
}

.hk-home-block--intro,
.hk-home-block--spotlight,
.hk-home-block--markets,
.hk-home-block--partners,
.hk-home-block--cta,
.hk-home-block--intro + .hk-home-block,
.hk-home-block--spotlight + .hk-home-block,
.hk-home-block--markets + .hk-home-block,
.hk-home-block--partners + .hk-home-block {
	border-block-start-color: transparent;
}

.hk-home-section__inner {
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
	padding: var(--wp--preset--spacing--90) var(--wp--preset--spacing--gutter);
}

.hk-home__head {
	display: grid;
	gap: var(--wp--preset--spacing--40);
	margin-block-end: var(--wp--preset--spacing--70);
}

.hk-home__title {
	margin: 0;
	max-width: 20ch;
	font-size: var(--wp--preset--font-size--heading-1);
	font-stretch: var(--wp--custom--stretch--display);
	font-weight: 700;
	line-height: 1.02;
	letter-spacing: -0.015em;
}

.hk-home__intro {
	margin: 0;
	max-width: 52ch;
	font-size: var(--wp--preset--font-size--body-lg);
	color: var(--wp--preset--color--slate);
}

@media (min-width: 60em) {
	.hk-home__head {
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
		align-items: end;
		column-gap: var(--wp--preset--spacing--60);
	}

	.hk-home__head .hk-home__intro,
	.hk-home__head .hk-section-link {
		grid-column: 2;
	}

	.hk-home__head .hk-home__title {
		grid-row: 1 / span 2;
		align-self: end;
	}

	.hk-home__head .hk-section-link {
		justify-self: start;
	}
}

/* ---------- Introduction ---------- */

.hk-intro {
	display: grid;
	gap: var(--wp--preset--spacing--70);
	align-items: start;
}

.hk-intro__text .hk-home__title {
	margin-block-end: var(--wp--preset--spacing--60);
}

.hk-intro .hk-prose {
	font-size: var(--wp--preset--font-size--body-lg);
}

.hk-intro .hk-section-link {
	margin-block-start: var(--wp--preset--spacing--50);
}

.hk-intro__media {
	margin: 0;
}

.hk-intro__media img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: var(--wp--custom--radius--media);
}

@media (min-width: 60em) {
	.hk-intro {
		grid-template-columns: repeat(12, minmax(0, 1fr));
	}

	.hk-intro__text {
		grid-column: 1 / span 7;
	}

	.hk-intro__media {
		grid-column: 9 / -1;
	}

	.hk-intro--text-only .hk-intro__text {
		grid-column: 1 / span 9;
	}
}

.hk-facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr));
	gap: var(--wp--preset--spacing--50);
	margin: var(--wp--preset--spacing--70) 0 0;
}

.hk-facts__item {
	display: flex;
	flex-direction: column-reverse;
	gap: var(--wp--preset--spacing--10);
	padding-block-start: var(--wp--preset--spacing--40);
	border-block-start: 2px solid var(--wp--preset--color--ink);
}

.hk-facts dd {
	margin: 0;
	font-size: var(--wp--preset--font-size--heading-2);
	font-stretch: var(--wp--custom--stretch--display);
	font-weight: 700;
	line-height: 1;
	font-variant-numeric: tabular-nums;
}

.hk-facts dt {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--slate);
}

/* ---------- Specialist activity spotlight ---------- */

.hk-spotlight {
	display: grid;
	gap: var(--wp--preset--spacing--70);
}

.hk-spotlight .hk-home__intro {
	margin-block-start: var(--wp--preset--spacing--50);
}

.hk-spotlight__links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--10) var(--wp--preset--spacing--60);
	margin-block-start: var(--wp--preset--spacing--50);
}

.hk-spotlight__tools > * + * {
	margin-block-start: var(--wp--preset--spacing--60);
}

@media (min-width: 60em) {
	.hk-spotlight {
		grid-template-columns: minmax(0, 6fr) minmax(0, 6fr);
		column-gap: var(--wp--preset--spacing--80);
	}
}

.hk-spotlight + .hk-product-grid {
	margin-block-start: var(--wp--preset--spacing--80);
}

/* ---------- Capabilities ---------- */

.hk-capabilities {
	display: grid;
	gap: 0 var(--wp--preset--spacing--60);
	margin: 0;
}

@media (min-width: 48em) {
	.hk-capabilities {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 80em) {
	.hk-capabilities {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.hk-capability {
	padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60);
	border-block-start: 2px solid var(--wp--preset--color--ink);
}

.hk-capability dt {
	margin-block-end: var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--heading-3);
	font-stretch: var(--wp--custom--stretch--display);
	font-weight: 650;
	line-height: 1.1;
}

.hk-capability dd {
	margin: 0;
	max-width: 46ch;
	color: var(--wp--preset--color--slate);
}

/* ---------- Markets ---------- */

.hk-markets {
	display: grid;
	gap: var(--wp--preset--spacing--60);
}

@media (min-width: 48em) {
	.hk-markets:has(.hk-markets__region) {
		grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
	}
}

.hk-markets__region {
	margin: 0 0 var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--heading-4);
}

/* ---------- Quality & documents ---------- */

.hk-quality {
	display: grid;
	gap: var(--wp--preset--spacing--70);
}

.hk-certs {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr));
	gap: var(--wp--preset--spacing--50);
	margin: 0;
	padding: 0;
	list-style: none;
}

.hk-cert {
	padding: var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--white);
	border-block-start: 2px solid var(--wp--preset--color--ink);
}

.hk-cert p {
	margin: 0;
}

.hk-cert__standard {
	font-size: var(--wp--preset--font-size--heading-4);
	font-stretch: var(--wp--custom--stretch--display);
	font-weight: 700;
}

.hk-cert__name,
.hk-cert__issuer {
	margin-block-start: var(--wp--preset--spacing--10) !important;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--slate);
}

/* ---------- Split (partners) ---------- */

.hk-split {
	display: grid;
	gap: var(--wp--preset--spacing--70);
	align-items: center;
}

.hk-split__media {
	margin: 0;
}

.hk-split__media img {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border-radius: var(--wp--custom--radius--media);
}

.hk-split .hk-home__intro {
	margin-block-start: var(--wp--preset--spacing--50);
}

@media (min-width: 60em) {
	.hk-split {
		grid-template-columns: repeat(12, minmax(0, 1fr));
	}

	.hk-split__media {
		grid-column: 1 / span 6;
	}

	.hk-split__text {
		grid-column: 8 / -1;
	}

	.hk-split--text-only .hk-split__text {
		grid-column: 1 / span 9;
	}
}

/* ---------- News ---------- */

.hk-news {
	display: grid;
	gap: var(--wp--preset--spacing--60);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 48em) {
	.hk-news {
		grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
	}
}

.hk-news__item {
	position: relative;
	padding-block-start: var(--wp--preset--spacing--40);
	border-block-start: 1px solid var(--wp--preset--color--ink);
}

.hk-news__item time {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--slate);
}

.hk-news__title {
	margin: var(--wp--preset--spacing--20) 0;
	font-size: var(--wp--preset--font-size--heading-4);
}

.hk-news__title a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.hk-news__title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.hk-news__item:hover .hk-news__title a {
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--red);
}

.hk-news__item p {
	margin: 0;
	color: var(--wp--preset--color--slate);
}

/* ======================================================================
   Enquiry band (ends activity pages, the archive and the homepage)
   ====================================================================== */

/* The logo gradient, used here as the site's main conversion band. */
.hk-cta {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding: var(--wp--preset--spacing--90) var(--wp--preset--spacing--gutter);
	/* A soft light that follows the pointer on desktop (interactions.js). */
	background:
		radial-gradient(circle 460px at var(--hk-mx, 78%) var(--hk-my, 30%), rgb(255 255 255 / 0.14), transparent 70%),
		var(--wp--custom--gradient--brand);
	color: var(--wp--preset--color--white);
}

/* Contrast: the gradient keeps a navy wash behind the text column. */
.hk-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(90deg, rgb(13 41 66 / 0.55) 0, rgb(13 41 66 / 0.2) 60%, rgb(13 41 66 / 0) 100%);
}

.hk-cta::after {
	content: "";
	position: absolute;
	inset-block: -30% -40%;
	inset-inline: 55% -10%;
	z-index: -1;
	background: #fff;
	opacity: 0.08;
	mask: url("../brand/hk-motif.svg") no-repeat right center / contain;
}

.hk-cta .wp-element-button.hk-button--primary {
	background: var(--wp--preset--color--white);
	box-shadow: 0 10px 24px -12px rgb(5 18 32 / 0.5);
	color: var(--wp--preset--color--ink);
}

.hk-cta .wp-element-button.hk-button--primary:hover {
	background: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--red-text);
}

.hk-cta :focus-visible {
	outline-color: var(--wp--preset--color--white);
}

.hk-cta__inner {
	display: grid;
	gap: var(--wp--preset--spacing--50);
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
}

.hk-cta__title {
	margin: 0;
	max-width: 18ch;
	color: var(--wp--preset--color--white);
	font-size: var(--wp--preset--font-size--heading-1);
	font-stretch: var(--wp--custom--stretch--display);
	font-weight: 700;
	line-height: 1.02;
	letter-spacing: -0.015em;
}

.hk-cta__text {
	margin: 0;
	max-width: 52ch;
	font-size: var(--wp--preset--font-size--body-lg);
	color: var(--wp--preset--color--white);
}

.hk-cta .hk-actions {
	margin-block-start: var(--wp--preset--spacing--30);
}

@media (min-width: 60em) {
	.hk-cta__inner {
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
		align-items: end;
		column-gap: var(--wp--preset--spacing--60);
	}

	.hk-cta__title {
		grid-row: 1 / span 2;
	}

	.hk-cta__text,
	.hk-cta .hk-actions {
		grid-column: 2;
	}
}

/* Bands run edge to edge inside the wide page frame. */
.hk-main--wide > .hk-enquiry-cta,
.hk-main--wide > .hk-activity-block:has(> .hk-cta) {
	max-width: none;
	margin-block-start: var(--wp--preset--spacing--80);
	padding-inline: 0;
}

.hk-main:has(> :last-child .hk-cta) {
	padding-block-end: 0;
}

/* ======================================================================
   Products
   ====================================================================== */

.hk-product-grid {
	display: grid;
	gap: var(--wp--preset--spacing--50);
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr));
}

@media (min-width: 64em) {
	.hk-product-grid--four {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* Product card: image on a light panel, then category, name, summary and two
   actions. The name links the whole card; the quote link sits above that. */
.hk-product-card {
	position: relative;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--wp--preset--color--rule);
	border-radius: var(--wp--custom--radius--card);
	background: var(--wp--preset--color--white);
	box-shadow: var(--wp--custom--shadow--card);
	transition:
		transform var(--wp--custom--motion--base) var(--wp--custom--motion--ease),
		box-shadow var(--wp--custom--motion--base) var(--wp--custom--motion--ease);
}

.hk-product-card::after {
	content: "";
	position: absolute;
	inset: auto 0 0;
	height: 3px;
	background: var(--wp--preset--color--red);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform var(--wp--custom--motion--slow) var(--wp--custom--motion--ease);
}

@media (hover: hover) {
	.hk-product-card:hover {
		transform: translateY(-4px);
		box-shadow: var(--wp--custom--shadow--lift);
	}

	.hk-product-card:hover::after {
		transform: scaleX(1);
	}

	.hk-product-card:hover .hk-product-card__media img {
		transform: scale(1.04);
	}
}

/* The product photo fills the top of the card. */
.hk-product-card__media {
	display: grid;
	place-items: center;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: var(--wp--preset--color--paper);
}

.hk-product-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 600ms var(--wp--custom--motion--ease);
}

.hk-product-card__media--empty {
	color: var(--wp--preset--color--rule);
}

.hk-product-card__media--empty .hk-icon {
	width: 3.5rem;
	height: 3.5rem;
}

.hk-product-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: var(--wp--preset--spacing--20);
	padding: var(--wp--preset--spacing--50);
}

.hk-product-card__body > * {
	margin: 0;
}

.hk-product-card__meta {
	color: var(--wp--preset--color--red-text);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}

.hk-product-card__title {
	font-size: var(--wp--preset--font-size--body-lg);
	font-stretch: var(--wp--custom--stretch--heading);
	line-height: 1.3;
}

.hk-product-card__title a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.hk-product-card__title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.hk-product-card__title a:focus-visible {
	outline: none;
}

.hk-product-card:has(.hk-product-card__title a:focus-visible) {
	outline: var(--wp--custom--focus--width) solid var(--wp--preset--color--navy);
	outline-offset: var(--wp--custom--focus--offset);
}

.hk-product-card__summary {
	color: var(--wp--preset--color--slate);
	font-size: var(--wp--preset--font-size--small);
}

.hk-product-card__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
	margin-block-start: auto;
	padding-block-start: var(--wp--preset--spacing--40);
}

.hk-product-card__more {
	color: var(--wp--preset--color--navy);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--red);
	text-decoration-thickness: 2px;
	text-underline-offset: 0.3em;
}

/* Above the card-wide link, so it stays its own target. */
.hk-product-card__quote {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding-inline: var(--wp--preset--spacing--40);
	border: 1px solid var(--wp--preset--color--red);
	border-radius: var(--wp--custom--radius--control);
	color: var(--wp--preset--color--red-text);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	text-decoration: none;
	transition: background-color var(--wp--custom--motion--fast) var(--wp--custom--motion--ease), color var(--wp--custom--motion--fast) var(--wp--custom--motion--ease);
}

.hk-product-card__quote:hover {
	background: var(--wp--preset--color--red);
	color: var(--wp--preset--color--white);
}

/* Product page: landscape photos fill a 4:3 frame edge to edge. */
.hk-product-media.is-landscape {
	padding: 0;
	overflow: hidden;
}

.hk-product-media.is-landscape .hk-product-media__main {
	max-height: none;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.hk-product-media.is-landscape .hk-product-media__thumbs {
	padding: 0 var(--wp--preset--spacing--40) var(--wp--preset--spacing--40);
}

/* Product page images: main image with a row of thumbnails. */
.hk-product-media__thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
	margin: var(--wp--preset--spacing--40) 0 0;
	padding: 0;
	list-style: none;
}

.hk-product-media__thumb {
	display: block;
	width: 4.5rem;
	height: 4.5rem;
	overflow: hidden;
	border: 1px solid var(--wp--preset--color--rule);
	border-radius: var(--wp--custom--radius--control);
	background: var(--wp--preset--color--paper);
}

.hk-product-media__thumb[aria-current="true"] {
	border: 2px solid var(--wp--preset--color--red);
}

.hk-product-hero__media .hk-product-media__thumb img {
	width: 100%;
	height: 100%;
	max-height: none;
	aspect-ratio: auto;
	object-fit: cover;
}

/* ---------- Listing: filter + results ---------- */

.hk-listing {
	display: grid;
	gap: var(--wp--preset--spacing--60);
	align-items: start;
}

@media (min-width: 64em) {
	.hk-listing:not(.hk-listing--no-filter) {
		grid-template-columns: 17rem minmax(0, 1fr);
		gap: var(--wp--preset--spacing--70);
	}

	.hk-filter {
		position: sticky;
		inset-block-start: calc(var(--hk-header-offset, var(--hk-header-height)) + var(--wp--preset--spacing--50));
	}
}

.hk-filter {
	background: var(--wp--preset--color--white);
	border-block-start: 2px solid var(--wp--preset--color--ink);
}

.hk-filter__summary {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--20);
	min-height: 3.25rem;
	padding-inline: var(--wp--preset--spacing--50);
	font-weight: 650;
	cursor: pointer;
}

.hk-filter__count {
	color: var(--wp--preset--color--slate);
	font-weight: 500;
}

.hk-filter__form {
	padding: 0 var(--wp--preset--spacing--50) var(--wp--preset--spacing--50);
}

.hk-filter__search {
	display: grid;
	gap: var(--wp--preset--spacing--20);
	margin: 0 0 var(--wp--preset--spacing--50);
}

.hk-filter__search label {
	font-weight: 600;
}

.hk-filter__search input {
	width: 100%;
}

.hk-filter__group {
	margin: 0;
	padding: var(--wp--preset--spacing--40) 0;
	border: 0;
	border-block-start: 1px solid var(--wp--preset--color--rule);
}

.hk-filter__group legend {
	float: inline-start;
	width: 100%;
	margin-block-end: var(--wp--preset--spacing--20);
	padding: 0;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 650;
	color: var(--wp--preset--color--slate);
}

.hk-filter__group ul {
	clear: both;
	display: grid;
	margin: 0;
	padding: 0;
	list-style: none;
}

.hk-filter__group li {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--30);
	min-height: 2.75rem;
}

.hk-filter__group input[type="checkbox"] {
	flex: none;
	width: 1.125rem;
	height: 1.125rem;
	margin: 0;
	accent-color: var(--wp--preset--color--ink);
}

.hk-filter__group label {
	flex: 1;
	cursor: pointer;
}

.hk-filter__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wp--preset--spacing--40);
	margin: var(--wp--preset--spacing--40) 0 0;
}

.hk-filter__clear {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--wp--preset--color--ink);
	font-weight: 600;
}

.hk-results__count {
	margin: 0 0 var(--wp--preset--spacing--50);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	color: var(--wp--preset--color--slate);
}

.hk-pagination {
	margin-block-start: var(--wp--preset--spacing--70);
}

.hk-pagination ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
	margin: 0;
	padding: 0;
	list-style: none;
}

.hk-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding-inline: var(--wp--preset--spacing--30);
	border: 1px solid var(--wp--preset--color--rule);
	border-radius: var(--wp--custom--radius--control);
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.hk-pagination .page-numbers.current {
	background: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--white);
}

/* ---------- Product page ---------- */

.hk-product-hero {
	display: grid;
	gap: var(--wp--preset--spacing--70);
	align-items: center;
	padding-block: var(--wp--preset--spacing--70) var(--wp--preset--spacing--80);
}

.hk-product-hero__grade {
	display: inline-block;
	margin: 0 0 var(--wp--preset--spacing--40);
	padding-block-start: var(--wp--preset--spacing--40);
	border-block-start: 4px solid var(--wp--preset--color--red);
	font-size: var(--wp--preset--font-size--display);
	font-stretch: var(--wp--custom--stretch--display);
	font-weight: 700;
	line-height: 0.95;
	letter-spacing: -0.02em;
	font-variant-numeric: tabular-nums;
}

.hk-product-hero__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--heading-2);
	font-stretch: var(--wp--custom--stretch--heading);
	line-height: 1.1;
}

.hk-product-hero__lead {
	margin: var(--wp--preset--spacing--40) 0 0;
	max-width: 50ch;
	font-size: var(--wp--preset--font-size--body-lg);
	color: var(--wp--preset--color--slate);
}

.hk-product-facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
	gap: var(--wp--preset--spacing--40);
	margin: var(--wp--preset--spacing--60) 0 0;
}

.hk-product-facts > div {
	padding-block-start: var(--wp--preset--spacing--30);
	border-block-start: 1px solid var(--wp--preset--color--rule);
}

.hk-product-facts dt {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--slate);
}

.hk-product-facts dd {
	margin: var(--wp--preset--spacing--10) 0 0;
	font-weight: 600;
}

.hk-product-hero__media {
	margin: 0;
	padding: var(--wp--preset--spacing--60);
	background: var(--wp--preset--color--white);
	border-radius: var(--wp--custom--radius--media);
}

.hk-product-hero__media img {
	display: block;
	width: 100%;
	max-height: 34rem;
	aspect-ratio: 4 / 5;
	object-fit: contain;
}

@media (min-width: 60em) {
	.hk-product-hero {
		grid-template-columns: repeat(12, minmax(0, 1fr));
	}

	.hk-product-hero__text {
		grid-column: 1 / span 7;
	}

	.hk-product-hero__media {
		grid-column: 8 / -1;
	}

	.hk-product-hero--no-image .hk-product-hero__text {
		grid-column: 1 / span 10;
	}
}

/* Tables: precise, quiet, numbers aligned. */
.hk-table-wrap {
	overflow-x: auto;
}

.hk-table {
	width: 100%;
	border-collapse: collapse;
}

.hk-table th,
.hk-table td {
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40) var(--wp--preset--spacing--30) 0;
	border-block-end: 1px solid var(--wp--preset--color--rule);
	text-align: start;
	vertical-align: top;
}

.hk-table thead th {
	border-block-end: 2px solid var(--wp--preset--color--ink);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 650;
	color: var(--wp--preset--color--slate);
	white-space: nowrap;
}

.hk-table tbody th {
	font-weight: 600;
}

.hk-table--dense {
	font-stretch: var(--wp--custom--stretch--dense);
}

.hk-table .hk-table__num {
	text-align: end;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.hk-table__note {
	margin: var(--wp--preset--spacing--40) 0 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--slate);
}

.hk-status {
	white-space: nowrap;
}

.hk-status--approved,
.hk-status--licensed {
	font-weight: 650;
	color: var(--wp--preset--color--navy);
}

.hk-packs {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 10rem), 1fr));
	gap: var(--wp--preset--spacing--40);
	margin: 0;
	padding: 0;
	list-style: none;
}

.hk-pack {
	padding: var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--paper);
	border-block-start: 2px solid var(--wp--preset--color--ink);
}

.hk-pack p {
	margin: 0;
}

.hk-pack__image img {
	display: block;
	width: 4rem;
	height: 4rem;
	margin-block-end: var(--wp--preset--spacing--30);
	object-fit: contain;
}

.hk-pack__size {
	font-size: var(--wp--preset--font-size--heading-2);
	font-stretch: var(--wp--custom--stretch--display);
	font-weight: 700;
	line-height: 1;
	font-variant-numeric: tabular-nums;
}

.hk-pack__size span {
	font-size: var(--wp--preset--font-size--body);
	font-weight: 600;
}

.hk-pack .hk-pack__container,
.hk-pack .hk-pack__sku {
	margin-block-start: var(--wp--preset--spacing--20);
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--slate);
}

/* Quote bar: pinned to the bottom of small screens while reading a product. */
.hk-quote-bar {
	display: none;
}

@media (max-width: 59.99em) {
	.hk-main--wide > .hk-product-block--quote-bar {
		position: sticky;
		inset-block-end: 0;
		z-index: 50;
		max-width: none;
		padding: 0;
	}

	.hk-quote-bar {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: var(--wp--preset--spacing--40);
		padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--gutter) calc(var(--wp--preset--spacing--30) + env(safe-area-inset-bottom, 0px));
		background: var(--wp--preset--color--white);
		box-shadow: 0 -1px 0 var(--wp--preset--color--rule), 0 -8px 24px rgb(13 41 66 / 0.08);
	}

	.hk-quote-bar__name {
		margin: 0;
		overflow: hidden;
		font-weight: 600;
		white-space: nowrap;
		text-overflow: ellipsis;
	}

	.hk-quote-bar .hk-button {
		flex: none;
	}
}

/* ---------- Documents ---------- */

.hk-docs {
	list-style: none;
	margin: 0;
	padding: 0;
	border-block-end: 1px solid var(--wp--preset--color--rule);
}

.hk-doc {
	display: grid;
	gap: var(--wp--preset--spacing--10) var(--wp--preset--spacing--50);
	padding-block: var(--wp--preset--spacing--40);
	border-block-start: 1px solid var(--wp--preset--color--rule);
}

.hk-doc p {
	margin: 0;
}

.hk-doc__title {
	font-weight: 600;
}

.hk-doc__meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--40);
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--slate);
}

.hk-doc__download {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	font-weight: 600;
	color: var(--wp--preset--color--ink);
	text-decoration-color: var(--wp--preset--color--red);
	text-decoration-thickness: 2px;
}

.hk-doc__note {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--slate);
}

@media (min-width: 48em) {
	.hk-doc {
		grid-template-columns: minmax(0, 1fr) auto minmax(7rem, auto);
		align-items: center;
	}

	.hk-doc__download,
	.hk-doc__note {
		justify-self: end;
	}
}

/* ---------- Finder and library forms ---------- */

.hk-finder {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--40);
	align-items: flex-end;
	padding: var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--paper);
	border-block-start: 2px solid var(--wp--preset--color--ink);
}

.hk-library .hk-finder {
	background: var(--wp--preset--color--white);
}

.hk-finder p {
	margin: 0;
}

.hk-finder__field {
	display: grid;
	gap: var(--wp--preset--spacing--10);
	flex: 1 1 12rem;
}

.hk-finder label {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}

.hk-library {
	display: grid;
	gap: var(--wp--preset--spacing--60);
}

.hk-catalogue__all {
	margin: 0;
}

.hk-gallery {
	display: grid;
	gap: var(--wp--preset--spacing--40);
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr));
}

.hk-gallery__item {
	margin: 0;
}

.hk-gallery__item img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--wp--custom--radius--media);
}

.hk-gallery--packshots .hk-gallery__item {
	padding: var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--white);
}

/* ---------- Contact page ---------- */

.hk-contact-layout {
	display: grid;
	gap: var(--wp--preset--spacing--70);
	align-items: start;
}

@media (min-width: 60em) {
	.hk-contact-layout {
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	}
}

.hk-contact--panel {
	padding: var(--wp--preset--spacing--60);
	border: 1px solid var(--wp--preset--color--rule);
	border-radius: var(--wp--custom--radius--card);
	background: var(--wp--preset--color--white);
	box-shadow: var(--wp--custom--shadow--card);
}

@media (min-width: 60em) {
	.hk-contact--panel {
		position: sticky;
		inset-block-start: calc(var(--hk-header-offset, var(--hk-header-height)) + var(--wp--preset--spacing--50));
	}
}

.hk-contact-layout__main > * + * {
	margin-block-start: var(--wp--preset--spacing--60);
}

/* ======================================================================
   Enquiry form
   ====================================================================== */

.hk-form {
	padding: var(--wp--preset--spacing--60);
	border: 1px solid var(--wp--preset--color--rule);
	border-radius: var(--wp--custom--radius--card);
	background: var(--wp--preset--color--white);
	box-shadow: var(--wp--custom--shadow--card);
}

.hk-form__required-note {
	margin: 0 0 var(--wp--preset--spacing--50);
	color: var(--wp--preset--color--slate);
	font-size: var(--wp--preset--font-size--small);
}

.hk-form__grid {
	display: grid;
	gap: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
}

@media (min-width: 40em) {
	.hk-form__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.hk-form__field--full {
		grid-column: 1 / -1;
	}
}

.hk-form__field {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--20);
	min-width: 0;
}

.hk-form__field > * {
	margin: 0;
}

.hk-form__field > label {
	font-weight: 600;
}

.hk-form__req {
	color: var(--wp--preset--color--red-text);
}

.hk-form__hint {
	color: var(--wp--preset--color--slate);
	font-size: var(--wp--preset--font-size--small);
}

.hk-form input[type="date"],
.hk-form input[type="number"],
.hk-form input[type="file"] {
	min-height: 48px;
	padding: 0.625rem 0.75rem;
	border: 1px solid var(--wp--preset--color--slate);
	border-radius: var(--wp--custom--radius--control);
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	font: inherit;
}

.hk-form input,
.hk-form select,
.hk-form textarea {
	width: 100%;
}

.hk-form textarea {
	resize: vertical;
}

.hk-form :is(input, select, textarea):focus-visible {
	border-color: var(--wp--preset--color--navy);
	outline: 2px solid var(--wp--preset--color--navy);
	outline-offset: 0;
}

/* Errors: red border, an icon-free message in words (never colour alone). */
.hk-form__field.has-error :is(input, select, textarea) {
	border: 2px solid var(--wp--preset--color--red-text);
}

.hk-form__error {
	color: var(--wp--preset--color--red-text);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}

.hk-form__consent {
	flex-direction: row;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: var(--wp--preset--spacing--30);
}

.hk-form__consent input[type="checkbox"] {
	flex: none;
	width: 1.375rem;
	height: 1.375rem;
	margin-block-start: 0.15rem;
	accent-color: var(--wp--preset--color--navy);
}

.hk-form__consent label {
	flex: 1;
	font-weight: 400;
}

.hk-form__consent .hk-form__error {
	flex-basis: 100%;
}

.hk-form__actions {
	margin: var(--wp--preset--spacing--60) 0 0;
}

.hk-form__summary {
	margin-block-end: var(--wp--preset--spacing--50);
	padding: var(--wp--preset--spacing--50);
	border: 2px solid var(--wp--preset--color--red-text);
	border-radius: var(--wp--custom--radius--media);
}

.hk-form__summary-title {
	margin: 0 0 var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--body-lg);
}

.hk-form__summary ul {
	margin: 0;
	padding-inline-start: 1.25rem;
}

.hk-form__summary a {
	color: var(--wp--preset--color--red-text);
}

/* The honeypot: invisible to people, still in the form for bots. */
.hk-form__trap {
	position: absolute;
	inset-inline-start: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.hk-form-done {
	padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--60);
	border: 1px solid var(--wp--preset--color--rule);
	border-radius: var(--wp--custom--radius--card);
	border-block-start: 4px solid var(--wp--preset--color--navy);
	background: var(--wp--preset--color--white);
	box-shadow: var(--wp--custom--shadow--card);
}

.hk-form-done > * {
	margin: 0;
}

.hk-form-done > * + * {
	margin-block-start: var(--wp--preset--spacing--40);
}

.hk-form-done__title {
	font-size: var(--wp--preset--font-size--heading-3);
}

.hk-form-done__ref strong {
	display: block;
	margin-block-start: var(--wp--preset--spacing--20);
	font-size: var(--wp--preset--font-size--heading-3);
	font-stretch: var(--wp--custom--stretch--heading);
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.02em;
}

.hk-contact--panel > * + * {
	margin-block-start: var(--wp--preset--spacing--50);
}

.hk-contact--panel .hk-contact__label {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}

/* Enquiry band: same edge alignment as page content. */
.hk-cta {
	padding-inline: 0;
}

.hk-cta__inner {
	padding-inline: var(--wp--preset--spacing--gutter);
}

/* Stacked layouts (below 60em): portrait images become landscape so they don't dominate. */
@media (max-width: 59.99em) {
	.hk-intro__media img {
		aspect-ratio: 3 / 2;
	}
}

/* Buttons in section headers keep their natural width. */
.hk-home__head .hk-button,
.hk-profile-section__head .hk-button {
	justify-self: start;
}
