:root {
	--hb-ink: #07151d;
	--hb-blue-black: #07151d;
	--hb-deep-lake: #062b3b;
	--hb-azure: #27b7e6;
	--hb-sky: #79d5f3;
	--hb-ice: #e8f8fc;
	--hb-ivory: #f4efe5;
	--hb-red: #d71920;
	--hb-paper: #f4efe5;
	--hb-muted: #8bb8c5;
	--hb-header-height: 5.25rem;
	--hb-radius: 1.2rem;
	--hb-ease: cubic-bezier(0.23, 1, 0.32, 1);
}

html {
	scroll-behavior: smooth;
	overflow-x: clip;
}

body {
	overflow-x: clip;
}

.wp-site-blocks {
	max-width: 100%;
	overflow-x: clip;
}

body.admin-bar .hb-site-header {
	top: var(--wp-admin--admin-bar--height, 32px);
}

.hb-site-header {
	position: fixed;
	inset: 0 0 auto;
	z-index: 100;
	visibility: visible;
	color: var(--hb-deep-lake);
	background: linear-gradient(to bottom, rgb(232 248 252 / 78%), transparent);
	transition: color 300ms ease, background-color 300ms ease, transform 500ms var(--hb-ease), visibility 0s linear 0s;
}

.hb-site-header.is-scrolled {
	color: var(--hb-blue-black);
	background: rgb(232 248 252 / 92%);
	box-shadow: 0 1px 0 rgb(6 43 59 / 16%);
	backdrop-filter: blur(14px);
}

.hb-site-header.is-on-dark,
.hb-site-header.is-scrolled.is-on-dark {
	color: var(--hb-ice);
	background: linear-gradient(to bottom, rgb(7 21 29 / 78%), rgb(7 21 29 / 10%) 72%, transparent);
	box-shadow: none;
	backdrop-filter: none;
}

.hb-site-header.is-hidden {
	visibility: hidden;
	transform: translateY(-110%);
	transition: color 300ms ease, background-color 300ms ease, transform 500ms var(--hb-ease), visibility 0s linear 500ms;
}

.hb-site-header__inner {
	min-height: var(--hb-header-height);
	padding-block: 0.7rem;
}

.hb-site-header__inner > * {
	flex: 1 1 0;
}

.hb-site-brand {
	gap: 0.1rem !important;
	text-align: center;
}

.hb-site-brand .wp-block-site-logo,
.hb-site-brand .wp-block-site-title {
	margin: 0;
}

.hb-site-brand .wp-block-site-logo img {
	max-height: 3.65rem;
	object-fit: contain;
}

.hb-site-header__actions {
	gap: 0.7rem;
}

.hb-site-header__actions .wp-block-search {
	width: auto;
}

.hb-site-header__actions .wp-block-search__inside-wrapper {
	padding: 0;
	border: 0;
}

.hb-site-header__actions .wp-block-search__input {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
}

.hb-site-header__actions .wp-block-search__button {
	margin: 0;
	padding: 0.55rem;
	color: inherit;
	background: transparent;
	border: 1px solid currentColor;
	border-radius: 999px;
}

.hb-main {
	margin-top: 0;
}

.hb-section {
	padding-block: clamp(5rem, 10vw, 11rem);
}

.hb-eyebrow,
.hb-step {
	font-size: 0.72rem;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.hb-hero {
	position: relative;
	display: grid;
	min-height: max(720px, 100svh);
	place-items: end stretch;
	padding-top: calc(var(--hb-header-height) + 4rem);
	padding-bottom: clamp(3rem, 7vw, 7rem);
	color: var(--hb-paper);
	isolation: isolate;
	background-color: var(--hb-ink);
	background-image: url("../images/hero-hookbaits-lago-tramonto-v2.png");
	background-position: center calc(50% + var(--hb-hero-shift, 0px));
	background-size: cover;
}

.hb-hero::before {
	position: absolute;
	inset: 0;
	z-index: -1;
	content: "";
	background:
		linear-gradient(90deg, rgb(11 13 12 / 82%) 0%, rgb(11 13 12 / 30%) 52%, rgb(11 13 12 / 10%) 100%),
		linear-gradient(0deg, rgb(11 13 12 / 72%) 0%, transparent 52%);
}

.hb-hero__content {
	position: relative;
	z-index: 2;
	width: 100%;
	margin-inline: auto;
	transform: translate3d(0, var(--hb-content-shift, 0px), 0);
	will-change: transform;
}

.hb-hero__content > * {
	max-width: 920px;
	margin-left: 0 !important;
}

.hb-hero__title {
	margin-block: 0.2em 0.1em;
	color: inherit;
	text-wrap: balance;
}

.hb-hero__lead {
	max-width: 660px !important;
	margin-bottom: 2rem;
}

.hb-hero__actions .is-style-outline .wp-block-button__link {
	color: var(--hb-paper);
	background: transparent;
}

.hb-hero__scroll {
	position: absolute;
	right: clamp(1rem, 2.5vw, 2.5rem);
	bottom: 2rem;
	margin: 0;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	transform: rotate(-90deg) translateX(100%);
	transform-origin: right bottom;
}

.hb-hero__birds {
	position: absolute;
	top: clamp(5.5rem, 12vh, 9rem);
	right: clamp(-2rem, 2vw, 2rem);
	z-index: 1;
	width: min(48vw, 720px);
	aspect-ratio: 720 / 280;
	pointer-events: none;
	background: url("../images/hookbaits-birds.svg") center / contain no-repeat;
	filter: drop-shadow(0 0.4rem 1.2rem rgb(11 13 12 / 28%));
	transform: translate3d(var(--hb-birds-x, 0px), var(--hb-birds-y, 0px), 0);
	transform-origin: center;
	animation: hb-birds-drift 11s ease-in-out infinite alternate;
	will-change: transform;
}

@keyframes hb-birds-drift {
	from { margin-right: 0; }
	to { margin-right: 1.8rem; }
}

.hb-ticker {
	overflow: hidden;
	padding-block: 0.85rem;
}

.hb-ticker p {
	width: max-content;
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2rem, 4vw, 4.5rem);
	font-weight: 800;
	line-height: 0.88;
	letter-spacing: -0.03em;
	white-space: nowrap;
	animation: hb-ticker 28s linear infinite;
}

@keyframes hb-ticker {
	to { transform: translateX(-50%); }
}

.hb-manifesto {
	min-height: 80svh;
	display: grid;
	align-items: center;
}

.hb-manifesto__title {
	max-width: 1260px;
	text-wrap: balance;
}

.hb-manifesto__copy {
	max-width: 720px;
	margin-left: auto;
}

.hb-section-heading {
	gap: 2rem;
	margin-bottom: clamp(2.5rem, 6vw, 5rem);
}

.hb-section-heading h2,
.hb-section-heading p {
	margin-block: 0;
}

.hb-section-heading p {
	max-width: 28rem;
}

.hb-collection-grid {
	gap: clamp(1rem, 2.5vw, 2.5rem);
}

.hb-collection-card {
	position: relative;
	display: flex;
	min-height: min(75svh, 760px);
	overflow: hidden;
	align-items: end;
	padding: clamp(1.5rem, 4vw, 4rem);
	border-radius: var(--hb-radius);
	isolation: isolate;
	background-position: center;
	background-size: cover;
}

.hb-collection-card::before {
	position: absolute;
	inset: 0;
	z-index: -1;
	content: "";
	background: linear-gradient(0deg, rgb(11 13 12 / 88%), rgb(11 13 12 / 6%) 70%);
	transition: background-color 500ms ease, transform 900ms var(--hb-ease);
}

.hb-collection-card:hover::before {
	background-color: rgb(215 25 32 / 16%);
	transform: scale(1.015);
}

.hb-collection-card--hook {
	background-image: url("../images/prodotti-hookbaits-showroom.jpg");
}

.hb-collection-card--other {
	background-image: url("../images/hookbaits-carpfishing-lago.jpg");
}

.hb-collection-card__content {
	width: 100%;
	margin: 0;
}

.hb-collection-card__content h3 {
	margin-block: 0.15em;
}

.hb-collection-card .is-style-outline .wp-block-button__link {
	color: var(--hb-paper);
	background: transparent;
}

.hb-story {
	position: relative;
}

.hb-story::before {
	position: absolute;
	top: 9rem;
	bottom: 9rem;
	left: 50%;
	width: 1px;
	content: "";
	background: linear-gradient(var(--hb-red), rgb(215 25 32 / 12%));
}

.hb-story__row {
	min-height: 70svh;
	gap: clamp(2rem, 8vw, 9rem);
	padding-block: clamp(2rem, 6vw, 6rem);
}

.hb-story__row > .wp-block-column:not(.hb-story__media) {
	padding-inline: clamp(0rem, 4vw, 4rem);
}

.hb-story__media {
	min-height: min(70svh, 760px);
	border-radius: var(--hb-radius);
	background-position: center;
	background-size: cover;
}

.hb-story__media--lake {
	background-image: url("../images/hookbaits-carpfishing-lago.jpg");
}

.hb-story__media--range {
	background-image: url("../images/prodotti-hookbaits-showroom.jpg");
}

.hb-step {
	color: var(--hb-red);
}

.hb-products .wc-block-product-template {
	gap: clamp(1rem, 2.5vw, 2.5rem);
}

.hb-products .wc-block-components-product-image {
	overflow: hidden;
	border-radius: calc(var(--hb-radius) * 0.7);
	background: var(--hb-ivory);
}

.hb-products .wc-block-components-product-image img,
.hb-shop .wc-block-components-product-image img {
	transition: transform 700ms var(--hb-ease);
}

.hb-products .wc-block-product:hover .wc-block-components-product-image img,
.hb-shop .wc-block-product:hover .wc-block-components-product-image img {
	transform: scale(1.035);
}

.hb-products .wp-block-button__link,
.hb-shop .wp-block-button__link,
.single_add_to_cart_button,
.checkout-button {
	border-radius: 999px !important;
}

.woocommerce ul.products li.product .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.wc-block-components-product-button__button,
.single_add_to_cart_button {
	min-height: 3.15rem;
	padding: 0.85rem 1.25rem !important;
	border: 1px solid var(--hb-deep-lake) !important;
	border-radius: 999px !important;
	color: var(--hb-ice) !important;
	background: var(--hb-deep-lake) !important;
	font-size: 0.68rem !important;
	font-weight: 800 !important;
	letter-spacing: 0.09em;
	line-height: 1.2 !important;
	text-align: center;
	text-transform: uppercase;
	transition: color 240ms ease, background-color 240ms ease, border-color 240ms ease, transform 240ms var(--hb-ease);
}

.woocommerce ul.products li.product .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.wc-block-components-product-button__button:hover,
.single_add_to_cart_button:hover {
	border-color: var(--hb-azure) !important;
	color: var(--hb-blue-black) !important;
	background: var(--hb-azure) !important;
	transform: translateY(-2px);
}

.woocommerce ul.products li.product .button:focus-visible,
.woocommerce a.button:focus-visible,
.woocommerce button.button:focus-visible,
.woocommerce input.button:focus-visible,
.wc-block-components-product-button__button:focus-visible,
.single_add_to_cart_button:focus-visible {
	outline: 3px solid var(--hb-azure) !important;
	outline-offset: 3px;
}

.woocommerce .quantity .qty {
	min-height: 3.15rem;
	padding: 0.65rem;
	border: 1px solid rgb(6 43 59 / 32%);
	border-radius: 999px;
	color: var(--hb-blue-black);
	background: var(--hb-ice);
}

/* Keep WooCommerce variable-product controls visible and native. The theme
 * styles the real aroma/size attributes without replacing their behaviour. */
.hb-product form.variations_form table.variations {
	width: 100%;
	margin: 1.5rem 0;
	border-collapse: collapse;
}

.hb-product form.variations_form table.variations th,
.hb-product form.variations_form table.variations td {
	padding: 0.55rem 0;
	text-align: left;
}

.hb-product form.variations_form table.variations label {
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.hb-product form.variations_form table.variations select {
	width: min(100%, 28rem);
	min-height: 3.15rem;
	padding: 0.7rem 2.6rem 0.7rem 1rem;
	border: 1px solid rgb(6 43 59 / 30%);
	border-radius: 999px;
	color: var(--hb-blue-black);
	background-color: var(--hb-ice);
}

.hb-product form.variations_form .reset_variations {
	display: inline-flex;
	margin: 0.65rem 0 0 0.65rem;
	padding-bottom: 0.2rem;
	border-bottom: 1px solid currentColor;
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.hb-product .woocommerce-variation-description,
.hb-product .woocommerce-variation-price,
.hb-product .woocommerce-variation-availability {
	margin-block: 0.75rem;
}

.woocommerce a.button.disabled,
.woocommerce button.button.disabled,
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled] {
	opacity: 0.48;
	transform: none;
}

.hb-community {
	position: relative;
	display: grid;
	min-height: 100svh;
	place-items: end stretch;
	padding-bottom: clamp(4rem, 10vw, 10rem);
	color: var(--hb-paper);
	isolation: isolate;
	background-color: var(--hb-ink);
	background-image: url("../images/community-hook-italian-challenge.jpg");
	background-position: center;
	background-size: cover;
}

.hb-community::before {
	position: absolute;
	inset: 0;
	z-index: -1;
	content: "";
	background: linear-gradient(0deg, rgb(11 13 12 / 88%) 0%, rgb(11 13 12 / 12%) 72%);
}

.hb-community__content {
	width: 100%;
}

.hb-community__content > * {
	max-width: 1000px;
	margin-left: 0 !important;
}

.hb-site-footer {
	padding-block: clamp(5rem, 10vw, 10rem) 2rem;
}

.hb-site-footer__top {
	gap: clamp(3rem, 8vw, 9rem);
	align-items: flex-start !important;
}

.hb-site-footer__wordmark {
	margin: 0;
	font-size: clamp(5rem, 16vw, 16rem);
	line-height: 0.72;
	letter-spacing: -0.07em;
}

.hb-site-footer__nav {
	align-items: flex-start;
}

.hb-site-footer__legal {
	gap: 1rem;
	margin-top: clamp(4rem, 9vw, 9rem);
	padding-top: 1.25rem;
	border-top: 1px solid rgb(243 238 227 / 24%);
}

.hb-content,
.hb-shop,
.hb-product,
.hb-error {
	padding-top: calc(var(--hb-header-height) + clamp(5rem, 10vw, 10rem));
}

.hb-content .wp-block-post-template {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(2rem, 5vw, 5rem);
}

.hb-post-card {
	padding-bottom: 2rem;
	border-bottom: 1px solid rgb(11 13 12 / 18%);
}

.hb-shop .woocommerce-result-count,
.hb-shop .woocommerce-ordering {
	display: inline-block;
}

.woocommerce div.product div.images img,
.woocommerce ul.products li.product img {
	border-radius: calc(var(--hb-radius) * 0.7);
}

.woocommerce span.onsale {
	background: var(--hb-red);
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-top-color: var(--hb-red);
	background: var(--hb-paper);
}

.woocommerce-message::before,
.woocommerce-info::before {
	color: var(--hb-red);
}

.wp-element-button,
.wp-block-button__link {
	transition: color 220ms ease, background-color 220ms ease, border-color 220ms ease, transform 220ms ease;
}

.wp-element-button:hover,
.wp-block-button__link:hover {
	transform: translateY(-2px);
}

.has-js .hb-reveal {
	opacity: 0;
	transform: translateY(3rem);
	transition: opacity 900ms var(--hb-ease), transform 900ms var(--hb-ease);
}

.has-js .hb-reveal.is-visible {
	opacity: 1;
	transform: none;
}

@media (max-width: 960px) {
	:root { --hb-header-height: 4.6rem; }

	.hb-site-header__inner > * { flex: 0 0 auto; }
	.hb-site-header__inner { justify-content: space-between !important; }
	.hb-site-brand { flex: 1 1 auto !important; }
	.hb-site-header__actions .wp-block-search { display: none; }

	.hb-hero {
		background-position: 56% calc(50% + var(--hb-hero-shift, 0px));
	}

	.hb-hero::before {
		background: linear-gradient(0deg, rgb(11 13 12 / 88%) 0%, rgb(11 13 12 / 12%) 78%);
	}

	.hb-hero__scroll { display: none; }
	.hb-hero__birds {
		top: 7rem;
		right: -8rem;
		width: 90vw;
		opacity: 0.7;
	}

	.hb-collection-grid,
	.hb-story__row {
		flex-direction: column;
	}

	.hb-story__row--reverse {
		flex-direction: column-reverse;
	}

	.hb-collection-card,
	.hb-story__media {
		min-height: 62svh;
	}

	.hb-story::before { display: none; }

	.hb-content .wp-block-post-template {
		grid-template-columns: 1fr;
	}

	.hb-site-footer__top {
		display: grid !important;
		grid-template-columns: 1fr 1fr;
	}

	.hb-site-footer__top > :first-child {
		grid-column: 1 / -1;
	}
}

@media (max-width: 600px) {
	body.admin-bar .hb-site-header { top: 0; }

	.hb-site-brand .wp-block-site-logo img { max-height: 2.8rem; }
	.hb-site-brand .wp-block-site-title { display: none; }
	.hb-site-header__actions { gap: 0.25rem; }

	.hb-hero {
		min-height: 100svh;
		padding-bottom: 2.5rem;
	}

	.hb-hero__title {
		font-size: clamp(4rem, 20vw, 7rem) !important;
	}

	.hb-hero__actions {
		align-items: stretch;
		flex-direction: column;
	}

	.hb-hero__actions .wp-block-button,
	.hb-hero__actions .wp-block-button__link {
		width: 100%;
	}

	.hb-section {
		padding-block: 4.5rem;
	}

	.hb-collection-card,
	.hb-story__media {
		min-height: 66svh;
	}

	.hb-section-heading {
		align-items: flex-start !important;
		flex-direction: column;
	}

	.hb-site-footer__top {
		grid-template-columns: 1fr;
	}

	.hb-site-footer__top > :first-child {
		grid-column: auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
	.has-js .hb-reveal {
		opacity: 1;
		transform: none;
	}
	.hb-hero {
		--hb-hero-shift: 0px !important;
		--hb-content-shift: 0px !important;
		--hb-birds-x: 0px !important;
		--hb-birds-y: 0px !important;
	}
}

/* Cinematic homepage v0.2 — scroll scenes, original HOOK implementation. */
.hb-main--cinematic {
	background: var(--hb-ice);
}

.hb-cinema-kicker {
	margin: 0;
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	line-height: 1.2;
	text-transform: uppercase;
}

.hb-hero-cinema {
	position: relative;
	height: 215svh;
	color: var(--hb-deep-lake);
	background: var(--hb-ice);
}

.hb-hero-cinema__stage {
	position: sticky;
	top: 0;
	height: 100svh;
	min-height: 680px;
	overflow: hidden;
	isolation: isolate;
	background:
		radial-gradient(circle at 72% 18%, rgb(121 213 243 / 42%), transparent 28%),
		linear-gradient(160deg, var(--hb-ice), #d4f2fa 62%, #b9eafa);
}

.hb-hero-cinema__wash {
	position: absolute;
	inset: 0;
	z-index: -2;
	opacity: var(--hb-sky-opacity, 0);
	background: linear-gradient(180deg, var(--hb-sky), var(--hb-azure));
}

.hb-hero-cinema__copy {
	position: absolute;
	z-index: 5;
	top: 50%;
	left: 50%;
	width: min(96rem, calc(100% - 3rem));
	text-align: center;
	transform: translate3d(-50%, calc(-50% + var(--hb-copy-y, 0px)), 0);
	opacity: var(--hb-copy-opacity, 1);
	will-change: transform, opacity;
}

.hb-hero-cinema__copy h1 {
	margin: 0.12em 0 0;
	color: var(--hb-deep-lake);
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(5.5rem, 15.4vw, 14.5rem);
	font-weight: 900;
	letter-spacing: -0.065em;
	line-height: 0.72;
	text-transform: uppercase;
}

.hb-hero-cinema__intro {
	width: min(42rem, 86%);
	margin: 2rem auto 0;
	font-size: clamp(1rem, 1.35vw, 1.3rem);
	line-height: 1.45;
}

.hb-hero-cinema__scene {
	position: absolute;
	z-index: 2;
	inset: 0;
	overflow: hidden;
	pointer-events: none;
}

.hb-hero-cinema__photo,
.hb-hero-cinema__azure,
.hb-hero-cinema__mist,
.hb-hero-cinema__feather {
	position: absolute;
	inset: -4%;
	will-change: transform, opacity;
}

.hb-hero-cinema__photo {
	z-index: 0;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	background-image: url("../images/hero-hookbaits-lago-azzurro-cinematic.jpg");
	-webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 7%, #000 100%);
	mask-image: linear-gradient(to bottom, transparent 0, #000 7%, #000 100%);
	transform: translate3d(0, var(--hb-back-y, 108vh), 0) scale(var(--hb-photo-scale, 1.07));
	filter: saturate(0.92) contrast(0.96);
}

.hb-hero-cinema__azure {
	z-index: 1;
	opacity: var(--hb-azure-opacity, 0);
	background:
		linear-gradient(105deg, rgb(39 183 230 / 48%), transparent 46%),
		linear-gradient(0deg, rgb(6 43 59 / 32%), transparent 55%);
	-webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 7%, #000 100%);
	mask-image: linear-gradient(to bottom, transparent 0, #000 7%, #000 100%);
	mix-blend-mode: color;
	transform: translate3d(0, var(--hb-back-y, 108vh), 0);
}

.hb-hero-cinema__mist {
	z-index: 2;
	inset: 0;
	opacity: var(--hb-atmosphere-opacity, 0);
	background:
		radial-gradient(ellipse at 66% 66%, rgb(232 248 252 / 38%) 0 8%, transparent 34%),
		linear-gradient(180deg, transparent 34%, rgb(121 213 243 / 12%) 58%, rgb(7 21 29 / 14%) 100%);
	transform: translate3d(0, var(--hb-mist-y, 22vh), 0) scale(1.08);
	filter: blur(10px);
}

.hb-hero-cinema__feather {
	z-index: 3;
	inset: 0;
	opacity: var(--hb-atmosphere-opacity, 0);
	background:
		radial-gradient(ellipse at 72% 92%, rgb(7 21 29 / 34%) 0, transparent 38%),
		linear-gradient(0deg, rgb(7 21 29 / 50%) 0, rgb(7 21 29 / 14%) 18%, transparent 52%);
	transform: translate3d(0, var(--hb-feather-y, 15vh), 0);
}

.hb-hero-flock {
	position: absolute;
	z-index: 4;
	top: 15%;
	left: -38vw;
	width: min(55rem, 66vw);
	height: auto;
	overflow: visible;
	opacity: var(--hb-flock-opacity, 0);
	transform: translate3d(var(--hb-flock-x, 0), var(--hb-flock-y, 8vh), 0) scale(var(--hb-flock-scale, 0.76));
	will-change: transform, opacity;
}

.hb-bird {
	fill: none;
	stroke: var(--hb-blue-black);
	stroke-linecap: round;
	stroke-width: 3.1;
	transform-box: fill-box;
	transform-origin: center;
	animation: hb-cinema-wing 3.4s ease-in-out infinite;
}

.hb-bird--2 { animation-delay: -1.4s; animation-duration: 4.2s; }
.hb-bird--3 { animation-delay: -0.7s; animation-duration: 2.9s; }
.hb-bird--4 { animation-delay: -2.1s; animation-duration: 3.8s; }
.hb-bird--5 { animation-delay: -1.1s; animation-duration: 3.1s; }

.hb-bird-group--far {
	opacity: 0.58;
	transform: scale(0.7);
	transform-origin: center;
}

@keyframes hb-cinema-wing {
	0%, 100% { transform: scaleY(0.62) translateY(0); }
	50% { transform: scaleY(1.12) translateY(-5px); }
}

.hb-hero-cinema__late {
	position: absolute;
	z-index: 6;
	inset: 0;
	color: var(--hb-ice);
	visibility: hidden;
	opacity: var(--hb-late-opacity, 0);
	transform: translate3d(0, var(--hb-late-y, 4rem), 0);
	pointer-events: none;
	will-change: transform, opacity;
}

.hb-hero-cinema__late.is-active {
	visibility: visible;
}

.hb-hero-cinema__late-kicker {
	position: absolute;
	right: clamp(1rem, 3vw, 3rem);
	bottom: 1.35rem;
	margin: 0;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-shadow: 0 0.2rem 1rem rgb(7 21 29 / 70%);
}

.hb-hero-portals {
	position: absolute;
	inset: 0;
}

.hb-hero-portal {
	position: absolute;
	display: block;
	width: clamp(16.5rem, 24vw, 25rem);
	color: var(--hb-ice);
	pointer-events: none;
	text-decoration: none;
	filter: drop-shadow(0 0.75rem 1.6rem rgb(7 21 29 / 38%));
}

.hb-hero-cinema__late.is-active .hb-hero-portal {
	pointer-events: auto;
}

.hb-hero-portal::before {
	position: absolute;
	z-index: -1;
	height: 1px;
	content: "";
	background: linear-gradient(90deg, rgb(232 248 252 / 95%), rgb(39 183 230 / 90%));
	opacity: var(--hb-portal-progress, 0);
	will-change: transform, opacity;
}

.hb-hero-portal--hook {
	left: clamp(1rem, 4vw, 4.5rem);
	bottom: clamp(4.8rem, 13vh, 8rem);
	transform: translate3d(var(--hb-portal-hook-x, 9vw), 0, 0);
}

.hb-hero-portal--hook::before {
	top: 54%;
	left: 100%;
	width: 25vw;
	transform: rotate(-11deg) scaleX(var(--hb-portal-progress, 0));
	transform-origin: left;
}

.hb-hero-portal--gear {
	top: clamp(9rem, 28vh, 18rem);
	right: clamp(1rem, 3vw, 3.5rem);
	transform: translate3d(var(--hb-portal-gear-x, -9vw), 0, 0);
}

.hb-hero-portal--gear::before {
	top: 52%;
	right: 100%;
	width: 18vw;
	background: linear-gradient(270deg, rgb(232 248 252 / 95%), rgb(39 183 230 / 90%));
	transform: rotate(-14deg) scaleX(var(--hb-portal-progress, 0));
	transform-origin: right;
}

.hb-hero-portal__pin {
	position: absolute;
	display: grid;
	width: 1.1rem;
	height: 1.1rem;
	border: 1px solid var(--hb-ice);
	border-radius: 50%;
	place-items: center;
	background: var(--hb-azure);
	box-shadow: 0 0 0 0.45rem rgb(39 183 230 / 22%);
	opacity: var(--hb-portal-progress, 0);
	transform: scale(var(--hb-portal-progress, 0));
}

.hb-hero-portal--hook .hb-hero-portal__pin {
	top: calc(54% - 2.45vw);
	left: calc(100% + 24.45vw);
}

.hb-hero-portal--gear .hb-hero-portal__pin {
	top: calc(52% + 4.05vw);
	right: calc(100% + 17.45vw);
}

.hb-hero-portal__label {
	position: relative;
	display: grid;
	min-height: 7.35rem;
	padding: 1rem 4.2rem 1rem 1.15rem;
	border: 1px solid rgb(232 248 252 / 72%);
	align-content: center;
	background: linear-gradient(135deg, rgb(7 21 29 / 86%), rgb(6 43 59 / 62%));
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	clip-path: polygon(0 0, calc(100% - 1.2rem) 0, 100% 1.2rem, 100% 100%, 0 100%);
	transition: border-color 260ms ease, background-color 260ms ease, transform 260ms var(--hb-ease);
}

.hb-hero-portal__label small,
.hb-hero-portal__label em {
	font-size: 0.6rem;
	font-style: normal;
	font-weight: 800;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.hb-hero-portal__label small {
	color: var(--hb-sky);
}

.hb-hero-portal__label strong {
	margin: 0.18rem 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2rem, 3vw, 3.1rem);
	letter-spacing: -0.045em;
	line-height: 0.9;
}

.hb-hero-portal__label b {
	position: absolute;
	right: 0.9rem;
	bottom: 0.9rem;
	display: grid;
	width: 2.45rem;
	height: 2.45rem;
	border-radius: 50%;
	place-items: center;
	color: var(--hb-blue-black);
	background: var(--hb-azure);
	font-size: 1rem;
	transition: transform 260ms var(--hb-ease);
}

.hb-hero-portal:hover .hb-hero-portal__label {
	border-color: var(--hb-azure);
	background: linear-gradient(135deg, rgb(7 21 29 / 94%), rgb(6 43 59 / 76%));
	transform: translateY(-0.3rem);
}

.hb-hero-portal:hover .hb-hero-portal__label b {
	transform: rotate(45deg);
}

.hb-hero-portal:focus-visible,
.hb-gate:focus-visible {
	outline: 3px solid var(--hb-azure);
	outline-offset: 5px;
}

.hb-hero-cinema__scroll {
	position: absolute;
	z-index: 7;
	right: 2rem;
	bottom: 1.5rem;
	display: flex;
	margin: 0;
	align-items: center;
	gap: 0.8rem;
	color: var(--hb-deep-lake);
	font-size: 0.62rem;
	font-weight: 800;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	opacity: var(--hb-scroll-opacity, 1);
}

.hb-hero-cinema__scroll span {
	display: block;
	width: 4rem;
	height: 1px;
	background: currentColor;
}

.hb-manifesto-cinema {
	position: relative;
	height: 242svh;
	color: var(--hb-ice);
	background: var(--hb-deep-lake);
}

.hb-manifesto-cinema__stage {
	position: sticky;
	top: 0;
	height: 100svh;
	min-height: 680px;
	overflow: hidden;
}

.hb-manifesto-cinema__copy {
	position: absolute;
	z-index: 2;
	inset: 0;
	display: grid;
	padding: clamp(5.5rem, 10vh, 8rem) clamp(1.2rem, 6vw, 6.5rem) clamp(3rem, 6vh, 5rem);
	align-content: center;
	opacity: var(--hb-manifesto-copy-opacity, 1);
	will-change: opacity;
}

.hb-manifesto-cinema__copy .hb-cinema-kicker {
	position: absolute;
	top: clamp(5.5rem, 10vh, 8rem);
	left: clamp(1.2rem, 6vw, 6.5rem);
	color: var(--hb-sky);
}

.hb-manifesto-cinema__copy h2 {
	max-width: 1380px;
	margin: 0;
	color: #0a465b;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(3.8rem, 8.3vw, 9rem);
	font-weight: 900;
	letter-spacing: -0.045em;
	line-height: 0.8;
	text-transform: uppercase;
}

.hb-manifesto-cinema__copy h2 span {
	transition: color 180ms linear;
}

.hb-manifesto-cinema__copy h2 span.is-active {
	color: var(--hb-ice);
}

.hb-manifesto-cinema__note {
	width: min(29rem, 80%);
	margin: 2.5rem 0 0 auto;
	color: var(--hb-sky);
	line-height: 1.5;
}

.hb-manifesto-cinema__media {
	position: absolute;
	z-index: 4;
	inset: 0;
	background:
		linear-gradient(0deg, rgb(7 21 29 / 42%), transparent 55%),
		url("https://www.hookbaits.it/wp-content/uploads/2026/10/WhatsApp-Image-2026-10-22-at-22.08.10-4.jpeg") center / cover no-repeat;
	transform: translate3d(0, var(--hb-manifesto-media-y, 106vh), 0) scale(var(--hb-manifesto-media-scale, 1.11));
	will-change: transform;
}

.hb-manifesto-cinema__media-label {
	position: absolute;
	right: 2rem;
	bottom: 2rem;
	padding: 0.65rem 0.9rem;
	border: 1px solid rgb(232 248 252 / 60%);
	color: var(--hb-ice);
	font-size: 0.66rem;
	font-weight: 800;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.hb-gates {
	padding: clamp(6rem, 11vw, 11rem) clamp(1rem, 3vw, 3rem);
	color: var(--hb-blue-black);
	background: var(--hb-ice);
}

.hb-gates__head {
	display: grid;
	grid-template-columns: 0.75fr 2fr 1fr;
	max-width: 1500px;
	margin: 0 auto clamp(3rem, 7vw, 7rem);
	align-items: end;
	gap: 2rem;
}

.hb-gates__head h2 {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(4rem, 9vw, 9rem);
	letter-spacing: -0.05em;
	line-height: 0.78;
}

.hb-gates__head > p:last-child {
	margin: 0;
	line-height: 1.5;
}

.hb-gates__grid {
	display: grid;
	max-width: 1500px;
	margin: auto;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}

/* The Shortcode block can pass the output through wpautop(), which injects
 * presentation-only <br> nodes.  A direct <br> becomes a third grid item and
 * pushes the CarpHook card onto a new row on desktop, so keep those nodes out
 * of layout while preserving the intentional line breaks inside headings. */
.hb-gates__grid > br,
.hb-gate > br:first-child,
.hb-gate > br:last-child {
	display: none;
}

.hb-gate {
	position: relative;
	display: flex;
	min-height: 0;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	padding: clamp(1.25rem, 3vw, 3rem);
	flex-direction: column;
	align-items: flex-end;
	justify-content: flex-end;
	color: var(--hb-ice);
	isolation: isolate;
	background-position: center;
	background-size: cover;
}

.hb-gate::before {
	position: absolute;
	inset: 0;
	z-index: -1;
	content: "";
	background: linear-gradient(0deg, rgb(7 21 29 / 88%), rgb(6 43 59 / 4%) 72%);
	transition: background-color 500ms ease, transform 900ms var(--hb-ease);
}

.hb-gate::after {
	position: absolute;
	inset: 0;
	z-index: -2;
	content: "";
	background: inherit;
	transition: transform 1000ms var(--hb-ease);
}

.hb-gate:hover::after {
	transform: scale(1.045);
}

.hb-gate--hook {
	background-image: url("../images/hook-carp-baits-golden-hour.jpg");
}

.hb-gate--other {
	background-color: var(--hb-blue-black);
	background-image:
		linear-gradient(180deg, rgb(7 21 29 / 8%), rgb(7 21 29 / 66%)),
		url("../images/carphook-pro-logo.jpeg"),
		url("../images/carphook-pro-cinematic-bg.jpg");
	background-position: center, center 34%, center;
	background-repeat: no-repeat;
	background-size: cover, min(54%, 25rem) auto, cover;
}

.hb-gate--other::before {
	background: linear-gradient(0deg, rgb(7 21 29 / 96%) 0%, rgb(7 21 29 / 28%) 45%, rgb(7 21 29 / 4%) 78%);
}

.hb-gate span {
	position: absolute;
	top: 1.5rem;
	left: 1.5rem;
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.hb-gate strong {
	width: 100%;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(4rem, 8vw, 8rem);
	letter-spacing: -0.05em;
	line-height: 0.72;
}

.hb-gate small {
	width: min(27rem, 72%);
	margin: 1.5rem auto 0 0;
	font-size: clamp(0.92rem, 1.2vw, 1.08rem);
	line-height: 1.5;
}

.hb-gate i {
	position: absolute;
	right: 1.5rem;
	bottom: 1.5rem;
	display: grid;
	width: 4rem;
	height: 4rem;
	border-radius: 50%;
	place-items: center;
	color: var(--hb-blue-black);
	background: var(--hb-azure);
	font-size: 1.25rem;
	font-style: normal;
	transition: transform 300ms var(--hb-ease);
}

.hb-gate:hover i {
	transform: rotate(45deg) scale(1.08);
}

.hb-story-cinema {
	--hb-story-bg: var(--hb-deep-lake);
	position: relative;
	overflow: clip;
	color: var(--hb-ice);
	background: var(--hb-story-bg);
	transition: color 700ms var(--hb-ease), background-color 700ms var(--hb-ease);
}

.hb-story-cinema.is-phase-2 {
	--hb-story-bg: var(--hb-ice);
	color: var(--hb-deep-lake);
}

.hb-story-cinema.is-phase-3 {
	--hb-story-bg: var(--hb-azure);
	color: var(--hb-blue-black);
}

.hb-story-cinema.is-phase-3 .hb-story-cinema__path-live {
	stroke: var(--hb-blue-black);
}

.hb-story-cinema__intro {
	display: grid;
	min-height: 96svh;
	padding: clamp(6rem, 12vh, 10rem) clamp(1rem, 4vw, 4rem);
	text-align: center;
	place-content: center;
}

.hb-story-cinema__intro h2 {
	margin: 0.1em 0 0.25em;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(5rem, 12vw, 12rem);
	font-weight: 900;
	letter-spacing: -0.06em;
	line-height: 0.72;
}

.hb-story-cinema__intro > p:last-child {
	max-width: 42rem;
	margin-inline: auto;
}

.hb-story-cinema__path {
	position: absolute;
	z-index: 1;
	top: 80svh;
	left: 0;
	width: 100%;
	height: calc(100% - 80svh);
	overflow: visible;
	pointer-events: none;
}

.hb-story-cinema__path path {
	fill: none;
	vector-effect: non-scaling-stroke;
}

.hb-story-cinema__path-base {
	stroke: currentColor;
	stroke-dasharray: 4 7;
	stroke-width: 1.3;
	opacity: 0.35;
}

.hb-story-cinema__path-live {
	stroke: var(--hb-azure);
	stroke-dasharray: 1;
	stroke-dashoffset: calc(1 - var(--hb-story-progress, 0));
	stroke-width: 2.4;
}

.hb-story-map-node circle {
	fill: var(--hb-story-bg);
	stroke: currentColor;
	stroke-width: 2;
	vector-effect: non-scaling-stroke;
}

.hb-story-map-node text {
	fill: currentColor;
	font-family: var(--wp--preset--font-family--display);
	font-size: 28px;
	font-weight: 900;
	text-anchor: middle;
}

.hb-story-map-node {
	opacity: 0.4;
	transition: opacity 400ms ease;
}

.hb-story-map-node--1,
.hb-story-cinema.is-phase-2 .hb-story-map-node--2,
.hb-story-cinema.is-phase-3 .hb-story-map-node--3 {
	opacity: 1;
}

.hb-story-step {
	position: relative;
	z-index: 2;
	min-height: 165svh;
}

.hb-story-step--two {
	min-height: 155svh;
}

.hb-story-step--three {
	min-height: 200svh;
}

.hb-story-step__sticky {
	position: sticky;
	top: 0;
	display: grid;
	height: 100svh;
	min-height: 680px;
	padding: clamp(5rem, 10vh, 8rem) clamp(1rem, 4vw, 4rem) clamp(3rem, 7vh, 6rem);
	align-items: center;
}

.hb-story-step__image {
	position: absolute;
	z-index: -1;
	top: 50%;
	left: 50%;
	width: min(36rem, 44vw);
	aspect-ratio: 4 / 5;
	background-position: center;
	background-size: cover;
	box-shadow: 0 2rem 6rem rgb(7 21 29 / 28%);
	transform: translate3d(-50%, -50%, 0) rotate(var(--hb-step-rotate, -4deg)) scale(var(--hb-step-scale, 0.64));
	will-change: transform;
}

.hb-story-step--one .hb-story-step__image {
	width: min(64rem, 72vw);
	aspect-ratio: 16 / 9;
	background-image: url("../images/hook-carp-baits-golden-hour.jpg");
}

.hb-story-step--two .hb-story-step__image {
	background-image: url("../images/prodotti-hookbaits-showroom.jpg");
	--hb-step-rotate: 3deg;
}

.hb-story-step--three .hb-story-step__image {
	width: min(62rem, 70vw);
	aspect-ratio: 16 / 10;
	background-image: url("../images/community-hook-italian-challenge.jpg");
	--hb-step-rotate: -2deg;
}

.hb-story-step__title {
	align-self: center;
	opacity: var(--hb-step-content-opacity, 0);
	transform: translate3d(0, var(--hb-step-title-y, 5.75rem), 0);
	will-change: transform, opacity;
}

.hb-story-step__title span {
	display: block;
	margin-bottom: 0.8rem;
	font-size: 0.7rem;
	font-weight: 900;
	letter-spacing: 0.2em;
}

.hb-story-step__title h3 {
	max-width: 54rem;
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(4.5rem, 9vw, 9rem);
	letter-spacing: -0.05em;
	line-height: 0.74;
}

.hb-story-step__sticky > p {
	width: min(25rem, 34vw);
	margin: 0 0 0 auto;
	align-self: end;
	line-height: 1.55;
	opacity: var(--hb-step-content-opacity, 0);
	transform: translate3d(0, var(--hb-step-copy-y, 3.625rem), 0);
	will-change: transform, opacity;
}

.hb-story-step--two .hb-story-step__title {
	margin-left: auto;
	text-align: right;
}

.hb-story-step--two .hb-story-step__sticky > p {
	margin-left: 0;
}

.hb-community-orbit {
	position: relative;
	height: 165svh;
	color: var(--hb-ice);
	background: var(--hb-blue-black);
}

.hb-community-orbit__stage {
	position: sticky;
	top: 0;
	height: 100svh;
	min-height: 680px;
	overflow: hidden;
	perspective: 1100px;
}

.hb-community-orbit__copy {
	position: absolute;
	z-index: 8;
	top: 50%;
	left: 50%;
	width: min(80rem, calc(100% - 2rem));
	text-align: center;
	transform: translate(-50%, -50%);
	pointer-events: none;
}

.hb-community-orbit__copy h2 {
	margin: 0.1em 0 0.2em;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(6rem, 16vw, 16rem);
	letter-spacing: -0.06em;
	line-height: 0.68;
}

.hb-community-orbit__copy > p:not(.hb-cinema-kicker) {
	width: min(34rem, 78%);
	margin-inline: auto;
	color: var(--hb-sky);
}

.hb-orbit-link {
	position: relative;
	display: inline-flex;
	margin-top: 1.5rem;
	padding: 0.9rem 1.3rem;
	border: 1px solid rgb(232 248 252 / 60%);
	border-radius: 999px;
	gap: 1rem;
	align-items: center;
	color: var(--hb-ice);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	pointer-events: auto;
}

.hb-orbit-link span,
.hb-arrow-link span,
.hb-shop-cta > a span {
	transition: transform 280ms var(--hb-ease);
}

.hb-orbit-link:hover span,
.hb-arrow-link:hover span,
.hb-shop-cta > a:hover span {
	transform: translate(0.2rem, -0.2rem);
}

.hb-community-orbit__scene {
	position: absolute;
	inset: 0;
	transform-style: preserve-3d;
	transform: rotateX(calc(var(--hb-pointer-y, 0) * 1deg)) rotateY(calc(var(--hb-pointer-x, 0) * 1deg)) rotateZ(var(--hb-orbit-rotation, 0deg));
	will-change: transform;
}

.hb-community-orbit__orb {
	position: absolute;
	top: 50%;
	left: 50%;
	width: min(56vw, 44rem);
	aspect-ratio: 1;
	border-radius: 50%;
	overflow: hidden;
	opacity: 0.94;
	background: radial-gradient(circle at 34% 28%, #c9f5ff 0 2%, var(--hb-azure) 28%, var(--hb-deep-lake) 70%, var(--hb-blue-black));
	box-shadow: 0 0 8rem rgb(39 183 230 / 45%);
	transform: translate3d(-50%, -50%, -120px) scale(var(--hb-orb-scale, 0.72));
}

.hb-community-map {
	display: block;
	width: 100%;
	height: 100%;
}

.hb-community-map__ocean {
	fill: rgb(6 43 59 / 34%);
	stroke: rgb(232 248 252 / 55%);
	stroke-width: 2;
}

.hb-community-map__grid {
	fill: none;
	stroke: rgb(232 248 252 / 18%);
	stroke-width: 1.25;
}

.hb-community-map__land {
	fill: rgb(232 248 252 / 20%);
	stroke: rgb(232 248 252 / 54%);
	stroke-linejoin: round;
	stroke-width: 1.8;
}

.hb-community-map__land--africa {
	fill: rgb(232 248 252 / 13%);
}

.hb-community-map__route {
	fill: none;
	stroke: var(--hb-ice);
	stroke-dasharray: 1;
	stroke-dashoffset: calc(1 - var(--hb-map-progress, 0));
	stroke-linecap: round;
	stroke-width: 3;
}

.hb-community-map__pin {
	color: var(--hb-ice);
	opacity: max(0.35, var(--hb-map-progress, 0));
}

.hb-community-map__pin > circle:first-child {
	fill: var(--hb-ice);
	stroke: var(--hb-azure);
	stroke-width: 6;
}

.hb-community-map__pulse {
	fill: none;
	stroke: var(--hb-ice);
	stroke-width: 1.5;
	transform-box: fill-box;
	transform-origin: center;
	animation: hb-map-pulse 2.2s ease-out infinite;
}

.hb-community-map__pin--romania .hb-community-map__pulse {
	animation-delay: -1.1s;
}

.hb-community-map__pin text {
	fill: currentColor;
	font-size: 17px;
	font-weight: 900;
	letter-spacing: 0.12em;
}

@keyframes hb-map-pulse {
	0% { opacity: 0.85; transform: scale(0.5); }
	70%, 100% { opacity: 0; transform: scale(1.35); }
}

.hb-orbit-card {
	position: absolute;
	width: clamp(9rem, 17vw, 17rem);
	aspect-ratio: 4 / 5;
	border: 2px solid rgb(232 248 252 / 55%);
	background-position: center;
	background-size: cover;
	box-shadow: 0 1.2rem 3.5rem rgb(0 0 0 / 35%);
	will-change: transform;
}

.hb-orbit-card--1 {
	top: 7%;
	left: 11%;
	background-image: url("../images/community-hook-italian-challenge.jpg");
	transform: translate3d(var(--hb-orbit-x1, 0), var(--hb-orbit-y1, 0), 140px) rotate(-8deg);
}

.hb-orbit-card--2 {
	top: 12%;
	right: 8%;
	background-image: url("../images/prodotti-hookbaits-showroom.jpg");
	transform: translate3d(var(--hb-orbit-x2, 0), var(--hb-orbit-y2, 0), 80px) rotate(7deg);
}

.hb-orbit-card--3 {
	right: 15%;
	bottom: 4%;
	background-image: url("../images/hookbaits-carpfishing-lago.jpg");
	transform: translate3d(var(--hb-orbit-x3, 0), var(--hb-orbit-y3, 0), 170px) rotate(-4deg);
}

.hb-orbit-card--4 {
	bottom: 3%;
	left: 12%;
	background-image: url("../images/hookbaits-trofei-danube.jpg");
	transform: translate3d(var(--hb-orbit-x4, 0), var(--hb-orbit-y4, 0), 105px) rotate(9deg);
}

.hb-orbit-card--5 {
	top: 52%;
	left: 4%;
	width: clamp(7rem, 13vw, 13rem);
	background-image: url("../images/boilies-hook-danube.jpeg");
	transform: translate3d(var(--hb-orbit-x5, 0), var(--hb-orbit-y5, 0), 210px) rotate(-12deg);
}

.hb-products {
	position: relative;
	z-index: 4;
}

.hb-products .wc-block-components-product-image {
	background: #d8f2f8;
}

.woocommerce span.onsale {
	color: var(--hb-blue-black);
	background: var(--hb-azure);
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-top-color: var(--hb-azure);
	background: var(--hb-ice);
}

.woocommerce-message::before,
.woocommerce-info::before {
	color: var(--hb-azure);
}

/* Production commerce shelves: populated from the existing WooCommerce catalog. */
.hb-product-shelf {
	position: relative;
	z-index: 5;
	padding: clamp(6rem, 10vw, 10rem) clamp(1rem, 3vw, 3rem);
	color: var(--hb-blue-black);
	background: var(--hb-ice);
}

.hb-product-shelf--carphook {
	background: var(--hb-ivory);
}

.hb-product-shelf__head {
	display: grid;
	max-width: 1500px;
	margin: 0 auto clamp(3rem, 6vw, 6rem);
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 2rem;
	align-items: end;
}

.hb-product-shelf__head > div {
	max-width: 74rem;
}

.hb-product-shelf__head h2 {
	margin: 0.18em 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(4rem, 8vw, 8.5rem);
	letter-spacing: -0.055em;
	line-height: 0.78;
}

.hb-product-shelf__head > div > p:last-child {
	max-width: 46rem;
	font-size: clamp(1rem, 1.4vw, 1.2rem);
}

.hb-arrow-link {
	display: inline-flex;
	padding-bottom: 0.55rem;
	border-bottom: 1px solid currentColor;
	gap: 1rem;
	align-items: center;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.hb-product-shelf__grid {
	max-width: 1500px;
	margin-inline: auto;
}

.hb-product-shelf__empty {
	display: grid;
	min-height: 28rem;
	padding: clamp(2rem, 5vw, 5rem);
	place-content: center;
	text-align: center;
	color: var(--hb-ice);
	background:
		linear-gradient(180deg, rgb(7 21 29 / 34%), rgb(7 21 29 / 94%)),
		url("../images/carphook-pro-logo.jpeg") center / min(74%, 42rem) auto no-repeat,
		#050505;
}

.hb-product-shelf__empty h3 {
	max-width: 60rem;
	margin: 0.2em auto;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(3.2rem, 7vw, 7rem);
	letter-spacing: -0.05em;
	line-height: 0.8;
}

.hb-product-shelf__empty > p:not(.hb-cinema-kicker) {
	max-width: 42rem;
	margin: 1rem auto 1.75rem;
	line-height: 1.55;
}

.hb-product-shelf__empty .hb-arrow-link {
	justify-self: center;
	color: var(--hb-ice);
}

.hb-site-footer__company {
	max-width: 24rem;
}

.hb-site-footer__company p {
	margin: 0 0 0.9rem;
	line-height: 1.45;
}

.hb-site-footer__company a {
	color: inherit;
	text-decoration-color: var(--hb-azure);
	text-underline-offset: 0.2em;
}

.hb-site-footer__socials {
	display: flex;
	gap: 0.65rem;
	margin-top: 1.25rem;
}

.hb-site-footer__company .hb-site-footer__social {
	display: inline-grid;
	width: 2.75rem;
	height: 2.75rem;
	place-items: center;
	border: 1px solid rgb(232 248 252 / 45%);
	border-radius: 50%;
	color: var(--hb-ice);
	background: rgb(232 248 252 / 8%);
	text-decoration: none;
	transition: color 220ms ease, background-color 220ms ease, border-color 220ms ease, transform 220ms ease;
}

.hb-site-footer__social svg {
	width: 1.05rem;
	height: 1.05rem;
	fill: currentColor;
}

.hb-site-footer__company .hb-site-footer__social:hover,
.hb-site-footer__company .hb-site-footer__social:focus-visible {
	border-color: var(--hb-azure);
	color: var(--hb-blue-black);
	background: var(--hb-azure);
	transform: translateY(-2px);
}

.hb-site-footer__company .hb-site-footer__social:focus-visible {
	outline: 3px solid var(--hb-azure);
	outline-offset: 3px;
}

.hb-product-shelf .woocommerce ul.products {
	display: grid;
	margin: 0;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1px;
	background: rgb(6 43 59 / 20%);
}

.hb-product-shelf .woocommerce ul.products::before,
.hb-product-shelf .woocommerce ul.products::after {
	display: none;
}

.hb-product-shelf .woocommerce ul.products li.product {
	float: none;
	width: auto;
	margin: 0;
	padding: clamp(1rem, 2vw, 1.6rem);
	background: var(--hb-ice);
}

.hb-product-shelf--carphook .woocommerce ul.products li.product {
	background: var(--hb-ivory);
}

.hb-product-shelf .woocommerce ul.products li.product a img {
	aspect-ratio: 1;
	margin: 0 0 1.2rem;
	object-fit: contain;
	background: rgb(121 213 243 / 18%);
	transition: transform 650ms var(--hb-ease);
}

.hb-product-shelf .woocommerce ul.products li.product:hover a img {
	transform: scale(1.035);
}

.hb-product-shelf .woocommerce-loop-product__title {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.35rem, 2vw, 2.1rem) !important;
	line-height: 0.94;
}

.hb-product-shelf .price {
	color: var(--hb-deep-lake) !important;
	font-weight: 800 !important;
}

.hb-product-shelf .button {
	width: 100%;
	margin-top: 1rem !important;
	border-radius: 999px;
	text-align: center;
}

/* Event listing shared by the homepage and /eventi/. */
.hb-latest-events {
	display: grid;
	padding: clamp(6rem, 10vw, 10rem) clamp(1rem, 3vw, 3rem) clamp(2.5rem, 5vw, 5rem);
	color: var(--hb-blue-black);
	background: var(--hb-ice);
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 2rem;
	align-items: end;
}

.hb-latest-events header {
	display: contents;
}

.hb-latest-events h2 {
	margin: 0.15em 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(5rem, 11vw, 11rem);
	letter-spacing: -0.06em;
	line-height: 0.72;
}

.hb-latest-events header > p:last-of-type {
	max-width: 38rem;
}

.hb-event-grid {
	display: grid;
	padding: 0 clamp(1rem, 3vw, 3rem) clamp(6rem, 10vw, 10rem);
	color: var(--hb-blue-black);
	background: var(--hb-ice);
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
}

.hb-event-grid--archive {
	padding: 0;
	background: transparent;
}

.hb-event-card {
	display: grid;
	min-width: 0;
	background: var(--hb-ivory);
}

.hb-event-card__media {
	position: relative;
	display: grid;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	place-items: center;
	color: var(--hb-ice);
	background: var(--hb-deep-lake);
}

.hb-event-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 800ms var(--hb-ease);
}

.hb-event-card:hover .hb-event-card__media img {
	transform: scale(1.045);
}

.hb-event-card__media > span {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(4rem, 9vw, 8rem);
	font-weight: 900;
	opacity: 0.22;
}

.hb-event-card__body {
	display: flex;
	min-height: 17rem;
	padding: clamp(1.25rem, 2.5vw, 2.5rem);
	flex-direction: column;
}

.hb-event-card time {
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.12em;
}

.hb-event-card h3 {
	margin: 0.8rem 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2rem, 3.6vw, 4.2rem);
	letter-spacing: -0.045em;
	line-height: 0.82;
}

.hb-event-card__excerpt {
	line-height: 1.5;
}

.hb-event-card__link {
	margin-top: auto;
	padding-top: 1.5rem;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.hb-event-grid__empty {
	padding: clamp(3rem, 8vw, 8rem);
	grid-column: 1 / -1;
	text-align: center;
	background: var(--hb-deep-lake);
	color: var(--hb-ice);
}

.hb-event-grid__empty h3 {
	margin: 0.3em auto;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(3.5rem, 8vw, 8rem);
	letter-spacing: -0.05em;
	line-height: 0.78;
}

.hb-shop-cta {
	position: relative;
	display: grid;
	min-height: 92svh;
	overflow: hidden;
	padding: clamp(5rem, 10vw, 10rem) clamp(1rem, 4vw, 4rem);
	place-content: center;
	text-align: center;
	color: var(--hb-blue-black);
	background: var(--hb-azure);
	isolation: isolate;
}

.hb-shop-cta::before,
.hb-shop-cta::after {
	position: absolute;
	inset: 10% auto auto 50%;
	z-index: -1;
	width: min(80vw, 70rem);
	aspect-ratio: 1;
	border: 1px solid rgb(232 248 252 / 45%);
	border-radius: 50%;
	content: "";
	transform: translateX(-50%);
}

.hb-shop-cta::after {
	inset: 25% auto auto 50%;
	width: min(52vw, 44rem);
}

.hb-shop-cta h2 {
	margin: 0.1em 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(6rem, 16vw, 16rem);
	letter-spacing: -0.06em;
	line-height: 0.68;
}

.hb-shop-cta > p:not(.hb-cinema-kicker) {
	max-width: 38rem;
	margin: 1rem auto 2rem;
}

.hb-shop-cta > a {
	display: inline-flex;
	width: fit-content;
	margin-inline: auto;
	padding: 1rem 1.35rem;
	border-radius: 999px;
	gap: 1rem;
	align-items: center;
	color: var(--hb-ice);
	background: var(--hb-blue-black);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.hb-shop-switcher {
	display: flex;
	margin: 2rem 0 4rem;
	flex-wrap: wrap;
	gap: 0.7rem;
}

.hb-shop-switcher a {
	display: inline-flex;
	padding: 0.8rem 1rem;
	border: 1px solid rgb(6 43 59 / 25%);
	border-radius: 999px;
	gap: 0.75rem;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.hb-shop-switcher a:hover {
	color: var(--hb-ice);
	background: var(--hb-deep-lake);
}

/* Events page and editorial event detail. */
.hb-events-page__hero,
.hb-event-single__hero {
	padding: calc(var(--hb-header-height) + clamp(5rem, 10vw, 10rem)) clamp(1rem, 3vw, 3rem) clamp(5rem, 9vw, 9rem);
	color: var(--hb-ice);
	background: var(--hb-deep-lake);
}

.hb-events-page__title,
.hb-event-single__title {
	max-width: 82rem;
	margin: 0.15em 0;
	font-size: clamp(5.5rem, 14vw, 14rem);
	letter-spacing: -0.06em;
	line-height: 0.7;
}

.hb-events-page__lead {
	max-width: 44rem;
	color: var(--hb-sky);
	font-size: clamp(1.05rem, 1.5vw, 1.3rem);
}

.hb-events-page__listing {
	padding-block: clamp(5rem, 9vw, 9rem);
}

.hb-events-page__cta {
	padding: clamp(6rem, 10vw, 10rem) clamp(1rem, 3vw, 3rem);
	color: var(--hb-blue-black);
	background: var(--hb-azure);
	text-align: center;
}

.hb-events-page__cta h2 {
	margin: 0 auto 0.3em;
	font-size: clamp(4.5rem, 11vw, 11rem);
	letter-spacing: -0.055em;
	line-height: 0.75;
}

.hb-events-page__cta .wp-block-buttons {
	justify-content: center;
}

.hb-event-single__meta {
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.hb-event-single__cover {
	margin: 0;
}

.hb-event-single__cover img {
	width: 100%;
	max-height: 90svh;
	object-fit: cover;
}

.hb-event-single__content {
	padding-block: clamp(4rem, 8vw, 8rem);
	font-size: clamp(1.05rem, 1.4vw, 1.2rem);
}

.hb-event-single__content .wp-block-gallery {
	margin-block: clamp(3rem, 7vw, 7rem);
}

.hb-event-single__nav {
	padding-block: 2rem 5rem;
	border-top: 1px solid rgb(6 43 59 / 18%);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

html:not(.has-js) .hb-hero-cinema {
	height: auto;
}

html:not(.has-js) .hb-hero-cinema__stage {
	position: relative;
}

html:not(.has-js) .hb-hero-cinema__photo {
	transform: none;
}

html:not(.has-js) .hb-hero-cinema__copy {
	top: 30%;
	color: var(--hb-ice);
	text-shadow: 0 1px 2rem rgb(7 21 29 / 80%);
}

html:not(.has-js) .hb-hero-cinema__copy h1 {
	color: var(--hb-ice);
}

html:not(.has-js) .hb-hero-cinema__late {
	--hb-portal-progress: 1;
	--hb-portal-hook-x: 0px;
	--hb-portal-gear-x: 0px;
	visibility: visible;
	opacity: 1;
	transform: none;
	pointer-events: auto;
}

html:not(.has-js) .hb-manifesto-cinema {
	height: auto;
}

html:not(.has-js) .hb-manifesto-cinema__stage {
	position: relative;
	min-height: 100svh;
}

html:not(.has-js) .hb-manifesto-cinema__copy h2 span {
	color: var(--hb-ice);
}

html:not(.has-js) .hb-story-step__title,
html:not(.has-js) .hb-story-step__sticky > p {
	opacity: 1;
	transform: none;
}

@media (max-width: 900px) {
	.hb-hero-cinema__copy {
		width: calc(100% - 1.4rem);
	}

	.hb-hero-cinema__copy h1 {
		font-size: clamp(5rem, 19vw, 9rem);
	}

	.hb-hero-cinema__scene {
		left: -55vw;
		width: 200vw;
	}

	.hb-hero-cinema__photo {
		background-position: 62% center;
	}

	.hb-hero-flock {
		left: -82vw;
		width: 120vw;
	}

	.hb-hero-portals {
		top: auto;
		right: 0.8rem;
		bottom: 4.4rem;
		left: 0.8rem;
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 0.65rem;
	}

	.hb-hero-portal--hook,
	.hb-hero-portal--gear {
		position: relative;
		top: auto;
		right: auto;
		bottom: auto;
		left: auto;
		width: auto;
		transform: none;
	}

	.hb-hero-portal::before,
	.hb-hero-portal__pin,
	.hb-hero-cinema__late-kicker {
		display: none;
	}

	.hb-hero-portal__label {
		min-height: 6.5rem;
		padding: 0.85rem 3.3rem 0.85rem 0.9rem;
	}

	.hb-hero-portal__label strong {
		font-size: clamp(1.65rem, 4vw, 2.25rem);
	}

	.hb-gates__head {
		grid-template-columns: 1fr;
	}

	.hb-gates__grid {
		grid-template-columns: 1fr;
	}

	.hb-gate {
		min-height: 65svh;
	}

	.hb-story-step__image {
		width: min(70vw, 32rem);
	}

	.hb-story-step__title h3 {
		font-size: clamp(4rem, 13vw, 7rem);
	}

	.hb-community-orbit__orb {
		width: 78vw;
	}

	.hb-orbit-card--5 {
		display: none;
	}

	.hb-product-shelf__head,
	.hb-latest-events {
		grid-template-columns: 1fr;
	}

	.hb-product-shelf .woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.hb-event-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.hb-event-grid .hb-event-card:last-child:nth-child(odd) {
		grid-column: 1 / -1;
	}
}

@media (max-width: 600px) {
	.hb-hero-cinema__stage,
	.hb-manifesto-cinema__stage,
	.hb-story-step__sticky,
	.hb-community-orbit__stage {
		min-height: 100svh;
	}

	.hb-hero-cinema__copy {
		top: 43%;
	}

	.hb-hero-cinema__copy h1 {
		font-size: 20.5vw;
		line-height: 0.75;
	}

	.hb-hero-cinema__intro {
		width: 92%;
		margin-top: 1.3rem;
		font-size: 0.95rem;
	}

	.hb-hero-portals {
		grid-template-columns: 1fr;
	}

	.hb-hero-portal__label {
		min-height: 5.25rem;
	}

	.hb-hero-portal__label strong {
		font-size: 1.7rem;
	}

	.hb-hero-portal__label em {
		display: none;
	}

	.hb-hero-cinema__scroll {
		right: auto;
		left: 1rem;
	}

	.hb-manifesto-cinema__copy {
		padding-inline: 1rem;
	}

	.hb-manifesto-cinema__copy h2 {
		font-size: clamp(3.4rem, 15vw, 6.4rem);
	}

	.hb-manifesto-cinema__note {
		width: 82%;
		margin-left: 0;
	}

	.hb-gates {
		padding-inline: 0.7rem;
	}

	.hb-gate {
		min-height: 70svh;
		aspect-ratio: auto;
	}

	.hb-gate strong {
		font-size: 17vw;
	}

	.hb-gate small {
		width: 82%;
	}

	.hb-story-cinema__path {
		left: -15%;
		width: 130%;
	}

	.hb-story-step__sticky {
		padding-inline: 1rem;
	}

	.hb-story-step__image,
	.hb-story-step--three .hb-story-step__image {
		width: 78vw;
	}

	.hb-story-step__title h3 {
		font-size: 14.5vw;
	}

	.hb-story-step__sticky > p {
		width: 72%;
		margin-left: auto;
		font-size: 0.92rem;
	}

	.hb-community-orbit__copy h2 {
		font-size: 22vw;
	}

	.hb-orbit-card {
		width: 31vw;
	}

	.hb-orbit-card--1 { left: 3%; }
	.hb-orbit-card--2 { right: 1%; }
	.hb-orbit-card--3 { right: 2%; }
	.hb-orbit-card--4 { left: 2%; }

	.hb-product-shelf,
	.hb-latest-events {
		padding-inline: 0.8rem;
	}

	.hb-product-shelf__head h2 {
		font-size: 14.5vw;
	}

	.hb-product-shelf .woocommerce ul.products {
		grid-template-columns: 1fr;
	}

	.hb-product-shelf .woocommerce ul.products li.product {
		padding: 0.75rem;
	}

	.hb-product-shelf .woocommerce-loop-product__title {
		font-size: 1.15rem !important;
	}

	.hb-event-grid {
		padding-inline: 0.8rem;
		grid-template-columns: 1fr;
	}

	.hb-event-grid .hb-event-card:last-child:nth-child(odd) {
		grid-column: auto;
	}

	.hb-event-card__body {
		min-height: 14rem;
	}

	.hb-latest-events h2 {
		font-size: 20vw;
	}

	.hb-shop-cta h2 {
		font-size: 22vw;
	}

	.hb-events-page__title,
	.hb-event-single__title {
		font-size: 18vw;
	}

	.hb-event-single__nav {
		align-items: flex-start;
		flex-direction: column;
	}
}

@media (prefers-reduced-motion: reduce) {
	.hb-hero-cinema,
	.hb-manifesto-cinema,
	.hb-community-orbit {
		height: 100svh;
	}

	.hb-story-step,
	.hb-story-step--two,
	.hb-story-step--three {
		min-height: 100svh;
	}

	.hb-hero-cinema__stage,
	.hb-manifesto-cinema__stage,
	.hb-community-orbit__stage,
	.hb-story-step__sticky {
		position: relative;
	}

	.hb-hero-cinema__photo,
	.hb-hero-cinema__azure,
	.hb-hero-flock,
	.hb-hero-cinema__late,
	.hb-manifesto-cinema__media,
	.hb-story-step__title,
	.hb-story-step__sticky > p,
	.hb-community-orbit__scene {
		transform: none !important;
	}

	.hb-story-step__image {
		transform: translate3d(-50%, -50%, 0) !important;
	}

	.hb-hero-cinema__photo {
		opacity: 0.72;
	}

	.hb-hero-cinema__copy {
		top: 32%;
		color: var(--hb-ice);
		text-shadow: 0 1rem 3rem rgb(7 21 29 / 70%);
	}

	.hb-hero-cinema__copy h1,
	.hb-manifesto-cinema__copy h2 span {
		color: var(--hb-ice);
	}

	.hb-hero-cinema__late,
	.hb-hero-flock {
		--hb-portal-progress: 1;
		--hb-portal-hook-x: 0px;
		--hb-portal-gear-x: 0px;
		visibility: visible;
		opacity: 1;
		pointer-events: auto;
	}

	.hb-manifesto-cinema__media {
		opacity: 0.24;
	}

	.hb-story-step__title,
	.hb-story-step__sticky > p {
		opacity: 1;
	}
}

/* --------------------------------------------------------------------------
 * Commerce and editorial polish — v0.5
 * ----------------------------------------------------------------------- */

/* Header: deterministic three-column alignment and usable commerce tools. */
.hb-site-header__inner {
	display: grid !important;
	width: min(100%, 1440px);
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	gap: clamp(0.65rem, 2vw, 2rem);
	align-items: center;
}

.hb-site-header__inner > * {
	min-width: 0;
	flex: none;
}

.hb-site-header__menu {
	grid-column: 1;
	justify-self: start;
}

.hb-site-brand {
	grid-column: 2;
	justify-self: center;
}

.hb-site-header__actions {
	display: flex !important;
	grid-column: 3;
	justify-self: end;
	gap: 0.45rem !important;
	align-items: center;
}

.hb-site-header__inner > .wp-block-woocommerce-customer-account {
	grid-column: 3;
	justify-self: end;
}

.hb-site-header__actions .wp-block-search,
.hb-site-header__actions .wp-block-search__inside-wrapper {
	position: relative;
}

.hb-site-header__actions .wp-block-search__inside-wrapper {
	display: flex;
	align-items: center;
}

.hb-site-header__actions .wp-block-search__input {
	position: absolute;
	top: 50%;
	right: calc(100% + 0.55rem);
	z-index: 6;
	width: 0;
	height: 3rem;
	padding: 0;
	overflow: hidden;
	clip: auto;
	clip-path: none;
	border: 1px solid rgb(6 43 59 / 20%);
	border-radius: 999px;
	color: var(--hb-blue-black);
	background: rgb(232 248 252 / 98%);
	box-shadow: 0 1rem 3rem rgb(7 21 29 / 16%);
	opacity: 0;
	transform: translate3d(0.75rem, -50%, 0);
	visibility: hidden;
	pointer-events: none;
	transition: width 420ms var(--hb-ease), padding 420ms var(--hb-ease), opacity 220ms ease, transform 420ms var(--hb-ease), visibility 0s linear 420ms;
}

.hb-site-header__actions .wp-block-search.is-search-open .wp-block-search__input {
	width: min(25rem, 42vw);
	padding: 0 1.1rem;
	opacity: 1;
	transform: translate3d(0, -50%, 0);
	visibility: visible;
	pointer-events: auto;
	transition-delay: 0s;
}

.hb-site-header__actions .wp-block-search__button,
.hb-site-header__actions .wc-block-mini-cart__button,
.hb-site-header__actions .wp-block-woocommerce-customer-account a {
	display: grid !important;
	width: 3rem;
	height: 3rem;
	min-width: 3rem;
	min-height: 3rem;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid currentColor !important;
	border-radius: 50% !important;
	place-items: center;
	color: inherit !important;
	background: transparent !important;
	box-shadow: none !important;
	transition: color 220ms ease, background-color 220ms ease, border-color 220ms ease, transform 220ms var(--hb-ease) !important;
}

.hb-site-header__actions .wp-block-search__button:hover,
.hb-site-header__actions .wc-block-mini-cart__button:hover,
.hb-site-header__actions .wp-block-woocommerce-customer-account a:hover {
	border-color: var(--hb-azure) !important;
	color: var(--hb-blue-black) !important;
	background: var(--hb-azure) !important;
	transform: translateY(-2px);
}

.hb-site-header__actions .wp-block-search__button svg,
.hb-site-header__actions .wc-block-mini-cart__button svg,
.hb-site-header__actions .wp-block-woocommerce-customer-account svg {
	width: 1.15rem;
	height: 1.15rem;
}

.hb-site-header__actions .wc-block-mini-cart__badge {
	top: -0.25rem;
	right: -0.25rem;
	min-width: 1.25rem;
	height: 1.25rem;
	border: 2px solid var(--hb-ice);
	color: var(--hb-ice);
	background: var(--hb-red);
	font-size: 0.62rem;
	font-weight: 800;
}

.hb-site-header.has-open-search {
	visibility: visible;
	transform: none;
}

/* Taxonomy-aware burger menu. The details element remains usable without a
 * custom click handler and exposes its state correctly to assistive software. */
.hb-site-header__menu .wp-block-navigation__responsive-container.is-menu-open {
	padding: clamp(1rem, 3vw, 3rem);
	color: var(--hb-ice) !important;
	background: var(--hb-blue-black) !important;
}

.hb-site-header__menu .wp-block-navigation__responsive-container-close {
	top: clamp(1rem, 3vw, 3rem);
	right: clamp(1rem, 3vw, 3rem);
	color: inherit;
}

.hb-site-header__menu .wp-block-navigation__responsive-container-content {
	width: min(100%, 1080px);
	margin-inline: auto;
	padding-top: clamp(4.5rem, 10vh, 8rem) !important;
	align-items: stretch !important;
}

.hb-site-header__menu .wp-block-navigation__responsive-container-content > .wp-block-navigation__container {
	width: 100%;
	gap: 0 !important;
	align-items: stretch !important;
}

.hb-site-header__menu .wp-block-navigation__responsive-container-content > .wp-block-navigation__container > .wp-block-navigation-item {
	width: 100%;
	border-top: 1px solid rgb(232 248 252 / 18%);
}

.hb-site-header__menu .wp-block-navigation__responsive-container-content > .wp-block-navigation__container > .wp-block-navigation-item:last-child {
	border-bottom: 1px solid rgb(232 248 252 / 18%);
}

.hb-site-header__menu .wp-block-navigation__responsive-container-content > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	display: flex;
	width: 100%;
	padding: 0.65rem 0;
	color: inherit;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2.4rem, 6vw, 5.8rem);
	font-weight: 800;
	letter-spacing: -0.045em;
	line-height: 0.9;
	text-transform: uppercase;
}

.hb-catalog-menu__root,
.hb-catalog-menu,
.hb-catalog-menu summary {
	width: 100%;
}

.hb-catalog-menu summary {
	display: flex;
	padding: 0.65rem 0;
	justify-content: space-between;
	align-items: center;
	cursor: pointer;
	list-style: none;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2.4rem, 6vw, 5.8rem);
	font-weight: 800;
	letter-spacing: -0.045em;
	line-height: 0.9;
	text-transform: uppercase;
}

.hb-catalog-menu summary::-webkit-details-marker {
	display: none;
}

.hb-catalog-menu summary i {
	display: grid;
	width: clamp(2.4rem, 5vw, 4.3rem);
	aspect-ratio: 1;
	border: 1px solid currentColor;
	border-radius: 50%;
	place-items: center;
	font-family: sans-serif;
	font-size: 0.45em;
	font-style: normal;
	font-weight: 400;
	transition: color 220ms ease, background-color 220ms ease, transform 360ms var(--hb-ease);
}

.hb-catalog-menu[open] summary i {
	color: var(--hb-blue-black);
	background: var(--hb-azure);
	transform: rotate(45deg);
}

.hb-catalog-menu summary:focus-visible,
.hb-catalog-menu__panel a:focus-visible {
	outline: 3px solid var(--hb-azure);
	outline-offset: 4px;
}

.hb-catalog-menu__panel {
	display: grid;
	padding: clamp(1rem, 2.6vw, 2.25rem) 0 clamp(1.5rem, 4vw, 3.5rem);
	grid-template-columns: minmax(12rem, 0.55fr) minmax(0, 1.45fr) minmax(12rem, 0.75fr);
	gap: clamp(1rem, 3vw, 3rem);
	align-items: start;
}

.hb-catalog-menu__panel a {
	color: inherit;
	text-decoration: none;
}

.hb-catalog-menu__all,
.hb-catalog-menu__parent,
.hb-catalog-menu__branch--carphook {
	display: flex;
	min-height: 4rem;
	padding: 1rem 0;
	border-bottom: 1px solid rgb(232 248 252 / 24%);
	gap: 1rem;
	justify-content: space-between;
	align-items: center;
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.hb-catalog-menu__tree {
	display: grid;
	margin: 0.75rem 0 0;
	padding: 0;
	gap: 0;
	list-style: none;
}

.hb-catalog-menu__tree--depth-0 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.hb-catalog-menu__tree .hb-catalog-menu__tree {
	margin: 0 0 0.55rem 2.35rem;
	grid-template-columns: 1fr;
	border-left: 1px solid rgb(232 248 252 / 14%);
}

.hb-catalog-menu__tree li {
	border-bottom: 1px solid rgb(232 248 252 / 13%);
}

.hb-catalog-menu__tree li li {
	border-bottom: 0;
}

.hb-catalog-menu__tree li a {
	display: grid;
	padding: 0.8rem 0;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: 0.65rem;
	align-items: center;
	font-size: 0.82rem;
	font-weight: 700;
}

.hb-catalog-menu__tree li li a {
	padding: 0.5rem 0.65rem;
	font-size: 0.72rem;
}

.hb-catalog-menu__icon {
	display: inline-grid;
	width: 1.75rem;
	aspect-ratio: 1;
	border: 1px solid rgb(232 248 252 / 24%);
	border-radius: 50%;
	place-items: center;
	color: var(--hb-azure);
}

.hb-catalog-menu__tree li li .hb-catalog-menu__icon {
	width: 1.35rem;
	font-size: 0.7rem;
}

.hb-catalog-menu__tree small {
	font-size: 0.62rem;
	opacity: 0.62;
}

.hb-catalog-menu__tree a[aria-current="page"],
.hb-catalog-menu__tree a[aria-current="location"] {
	color: var(--hb-azure);
}

.hb-catalog-menu__panel a:hover {
	color: var(--hb-azure);
}

/* Hierarchical shop landing. */
.hb-shop {
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	color: var(--hb-blue-black);
	background: var(--hb-ice);
}

.hb-shop.is-enhanced > .hb-cinema-kicker,
.hb-shop.is-enhanced > .wp-block-query-title,
.hb-shop.is-enhanced > .wp-block-term-description,
.hb-shop.is-enhanced > .hb-shop-switcher {
	display: none;
}

.hb-shop-navigation {
	padding: calc(var(--hb-header-height) + clamp(3.5rem, 8vw, 7rem)) clamp(1rem, 4vw, 4rem) clamp(4.5rem, 8vw, 8rem);
	background: var(--hb-ice);
}

.hb-shop-navigation__inner {
	width: min(100%, 1440px);
	margin-inline: auto;
}

.hb-shop-navigation__intro {
	display: grid;
	margin-bottom: clamp(2.5rem, 6vw, 5.5rem);
	grid-template-columns: minmax(0, 1.45fr) minmax(18rem, 0.55fr);
	gap: clamp(2rem, 7vw, 8rem);
	align-items: end;
}

.hb-shop-navigation__intro h1 {
	max-width: 68rem;
	margin: 0.12em 0 0;
	font-size: clamp(4.8rem, 10.5vw, 10rem);
	letter-spacing: -0.065em;
	line-height: 0.72;
	text-wrap: balance;
}

.hb-shop-navigation__intro > p,
.hb-shop-navigation__description {
	max-width: 34rem;
	margin: 0;
	color: rgb(7 21 29 / 72%);
	font-size: clamp(1rem, 1.3vw, 1.18rem);
}

.hb-shop-navigation__description > :first-child {
	margin-top: 0;
}

.hb-shop-navigation__description > :last-child {
	margin-bottom: 0;
}

.hb-shop-breadcrumbs {
	display: flex;
	margin-bottom: clamp(2rem, 4vw, 4rem);
	gap: 0.6rem;
	align-items: center;
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.hb-shop-breadcrumbs a {
	padding-bottom: 0.2rem;
	border-bottom: 1px solid currentColor;
}

.hb-shop-catalogs {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(0.75rem, 1.5vw, 1.5rem);
}

/* wpautop may insert line breaks around shortcode-generated anchors. They are
 * not content and must not become anonymous grid items. */
.hb-shop-catalogs > br {
	display: none;
}

.hb-shop-catalog {
	position: relative;
	display: flex;
	min-height: clamp(25rem, 38vw, 38rem);
	padding: clamp(1.4rem, 3vw, 3rem);
	overflow: hidden;
	flex-direction: column;
	color: var(--hb-ice);
	background-color: var(--hb-blue-black);
	isolation: isolate;
	text-decoration: none;
}

.hb-shop-catalog::before,
.hb-shop-catalog::after {
	position: absolute;
	inset: 0;
	z-index: -2;
	content: "";
}

.hb-shop-catalog::before {
	background-position: center;
	background-size: cover;
	transition: transform 900ms var(--hb-ease), filter 900ms var(--hb-ease);
}

.hb-shop-catalog::after {
	z-index: -1;
	background: linear-gradient(0deg, rgb(7 21 29 / 94%) 0%, rgb(7 21 29 / 20%) 72%);
}

.hb-shop-catalog--hook::before {
	background-image: url("../images/hook-carp-baits-golden-hour.jpg");
	background-position: 53% center;
}

.hb-shop-catalog--carphook::before {
	background-image: url("../images/carphook-pro-cinematic-bg.jpg");
}

.hb-shop-catalog:hover::before,
.hb-shop-catalog:focus-visible::before {
	filter: saturate(1.08);
	transform: scale(1.035);
}

.hb-shop-catalog:focus-visible,
.hb-hook-family__primary:focus-visible,
.hb-hook-family__children a:focus-visible {
	outline: 4px solid var(--hb-azure);
	outline-offset: 4px;
}

.hb-shop-catalog__index {
	font-size: 0.66rem;
	font-weight: 800;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}

.hb-shop-catalog__copy {
	display: flex;
	margin-top: auto;
	flex-direction: column;
}

.hb-shop-catalog__copy strong {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(4.5rem, 7.6vw, 8rem);
	letter-spacing: -0.06em;
	line-height: 0.7;
}

.hb-shop-catalog__copy small {
	max-width: 30rem;
	margin-top: 1.25rem;
	font-size: clamp(0.9rem, 1.2vw, 1.08rem);
	line-height: 1.45;
}

.hb-shop-catalog > i {
	position: absolute;
	right: clamp(1.4rem, 3vw, 3rem);
	bottom: clamp(1.4rem, 3vw, 3rem);
	display: grid;
	width: 3.3rem;
	aspect-ratio: 1;
	border: 1px solid currentColor;
	border-radius: 50%;
	place-items: center;
	font-style: normal;
}

.hb-hook-families {
	margin-top: clamp(4rem, 8vw, 8rem);
	padding-top: clamp(3rem, 6vw, 6rem);
	border-top: 1px solid rgb(6 43 59 / 18%);
}

.hb-hook-families__head {
	display: grid;
	margin-bottom: clamp(2rem, 4vw, 4rem);
	grid-template-columns: minmax(0, 1.4fr) minmax(18rem, 0.6fr);
	gap: clamp(2rem, 7vw, 8rem);
	align-items: end;
}

.hb-hook-families__head h2 {
	margin: 0.16em 0 0;
	font-size: clamp(3.5rem, 7.2vw, 7rem);
	letter-spacing: -0.06em;
	line-height: 0.76;
}

.hb-hook-families__head > p {
	max-width: 30rem;
	margin: 0;
	color: rgb(7 21 29 / 68%);
}

.hb-hook-families__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1px;
	background: rgb(6 43 59 / 16%);
}

.hb-empty-catalog {
	display: grid;
	margin-top: clamp(3rem, 6vw, 6rem);
	padding: clamp(2rem, 5vw, 5rem);
	border: 1px solid rgb(6 43 59 / 16%);
	background: var(--hb-ivory);
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 2rem;
	align-items: end;
}

.hb-empty-catalog h2 {
	max-width: 56rem;
	margin: 0.15em 0 0;
	font-size: clamp(3rem, 7vw, 7rem);
	letter-spacing: -0.055em;
	line-height: 0.76;
}

.hb-empty-catalog > p {
	max-width: 28rem;
	margin: 0;
	color: rgb(7 21 29 / 70%);
}

.hb-hook-family {
	position: relative;
	display: flex;
	min-height: 10.5rem;
	min-width: 0;
	flex-direction: column;
	color: var(--hb-blue-black);
	background: var(--hb-ivory);
}

.hb-hook-family__primary {
	display: grid;
	min-height: 10.5rem;
	padding: 1.25rem;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: 1rem;
	align-items: end;
	color: var(--hb-blue-black);
	text-decoration: none;
	transition: color 280ms ease, background-color 280ms ease, transform 280ms var(--hb-ease);
}

.hb-hook-family:hover > .hb-hook-family__primary,
.hb-hook-family.is-current > .hb-hook-family__primary {
	color: var(--hb-ice);
	background: var(--hb-deep-lake);
}

.hb-hook-family__icon {
	display: grid;
	width: 3.4rem;
	aspect-ratio: 1;
	border: 1px solid currentColor;
	border-radius: 50%;
	place-items: center;
	color: var(--hb-azure);
	font-size: 1.35rem;
}

.hb-hook-family__copy {
	display: flex;
	min-width: 0;
	flex-direction: column;
}

.hb-hook-family__copy strong {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.55rem, 2.4vw, 2.5rem);
	letter-spacing: -0.04em;
	line-height: 0.9;
	text-transform: uppercase;
}

.hb-hook-family__copy small {
	margin-top: 0.55rem;
	font-size: 0.62rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	opacity: 0.62;
	text-transform: uppercase;
}

.hb-hook-family__primary > i {
	align-self: start;
	font-size: 1.1rem;
	font-style: normal;
}

.hb-hook-family__children {
	display: grid;
	margin: 0;
	padding: 0.45rem 1.25rem 1.15rem;
	border-top: 1px solid rgb(6 43 59 / 12%);
	gap: 0;
	list-style: none;
}

.hb-hook-family__children .hb-hook-family__children {
	padding: 0 0 0 1rem;
	border-top: 0;
	border-left: 1px solid rgb(6 43 59 / 15%);
}

.hb-hook-family__children li {
	min-width: 0;
}

.hb-hook-family__children a {
	display: flex;
	min-height: 2.7rem;
	padding: 0.6rem 0;
	border-bottom: 1px solid rgb(6 43 59 / 10%);
	gap: 0.75rem;
	justify-content: space-between;
	align-items: center;
	color: inherit;
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.035em;
	text-decoration: none;
	text-transform: uppercase;
}

.hb-hook-family__children a:hover,
.hb-hook-family__children a[aria-current="page"],
.hb-hook-family__children a[aria-current="location"] {
	color: var(--hb-deep-lake);
	background: rgb(39 183 230 / 10%);
}

.hb-hook-family__children small {
	font-size: 0.62rem;
	opacity: 0.62;
}

/* Product catalog, toolbar and cards. */
.hb-shop__catalog {
	width: min(calc(100% - 2rem), 1440px) !important;
	max-width: 1440px !important;
	margin-inline: auto !important;
	padding: clamp(4rem, 7vw, 7rem) 0 clamp(6rem, 10vw, 10rem);
}

.hb-shop__catalog-head {
	display: flex;
	margin-bottom: clamp(2.5rem, 5vw, 5rem);
	gap: 2rem;
	justify-content: space-between;
	align-items: end;
}

.hb-shop__catalog-head h2 {
	margin: 0.15em 0 0;
	font-size: clamp(4rem, 8vw, 8rem);
	letter-spacing: -0.055em;
	line-height: 0.75;
}

.hb-shop__catalog-head > p {
	max-width: 31rem;
	margin: 0;
	color: rgb(7 21 29 / 68%);
}

.hb-shop-toolbar {
	display: flex !important;
	width: 100%;
	margin: 0 0 2rem !important;
	padding: 0.85rem 0;
	border-block: 1px solid rgb(6 43 59 / 16%);
	gap: 1rem;
	justify-content: space-between;
	align-items: center;
}

.hb-shop-toolbar .wc-block-product-results-count,
.hb-shop-toolbar .wc-block-catalog-sorting,
.hb-shop-toolbar .woocommerce-result-count,
.hb-shop-toolbar .woocommerce-ordering {
	margin: 0 !important;
}

.hb-shop-toolbar .woocommerce-result-count {
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.hb-shop-toolbar .woocommerce-ordering select,
.hb-shop-toolbar select.orderby {
	min-height: 2.8rem;
	padding: 0.55rem 2.5rem 0.55rem 1rem;
	border: 1px solid rgb(6 43 59 / 20%);
	border-radius: 999px;
	color: var(--hb-blue-black);
	background-color: transparent;
	font-size: 0.74rem;
	font-weight: 700;
}

.hb-shop .wc-block-product-template {
	gap: clamp(1rem, 2vw, 2rem) !important;
	counter-reset: hb-product;
}

.hb-shop .wc-block-product {
	position: relative;
	display: flex;
	min-width: 0;
	padding: 0 0 1.35rem;
	flex-direction: column;
	border-bottom: 1px solid rgb(6 43 59 / 18%);
	counter-increment: hb-product;
}

.hb-shop .wc-block-product::before {
	position: absolute;
	top: 0.9rem;
	left: 0.9rem;
	z-index: 3;
	content: counter(hb-product, decimal-leading-zero);
	font-size: 0.62rem;
	font-weight: 800;
	letter-spacing: 0.12em;
}

.hb-shop .wc-block-components-product-image {
	position: relative;
	width: 100%;
	margin-bottom: 1.25rem;
	overflow: visible;
	border-radius: 0;
	background: transparent;
}

.hb-shop .wc-block-components-product-image a {
	display: grid;
	aspect-ratio: 2 / 3;
	overflow: visible;
	place-items: center;
}

.hb-shop .wc-block-components-product-image img {
	width: 100% !important;
	height: auto !important;
	max-height: 100%;
	padding: 0;
	border: 0;
	border-radius: 0 !important;
	object-fit: contain !important;
	aspect-ratio: auto !important;
	background: transparent;
	box-shadow: none;
	transition: transform 700ms var(--hb-ease), filter 700ms var(--hb-ease);
}

.hb-shop .woocommerce ul.products li.product img {
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

.hb-shop .wc-block-product:hover .wc-block-components-product-image img {
	filter: saturate(1.08);
	transform: scale(1.025);
}

.hb-shop .wc-block-product .wp-block-post-title {
	min-height: 2.8em;
	margin: 0 0 0.7rem !important;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.5rem, 2.1vw, 2.25rem) !important;
	letter-spacing: -0.04em;
	line-height: 0.93;
	text-transform: uppercase;
}

.hb-shop .wc-block-product .wp-block-post-title a {
	text-decoration: none;
}

.hb-shop .wc-block-product .wp-block-woocommerce-product-price {
	margin-top: auto;
	font-size: 1.05rem;
	font-weight: 800;
}

.hb-shop .wc-block-product .wp-block-woocommerce-product-button {
	width: 100%;
	margin-top: 1rem;
}

.hb-shop .wc-block-components-product-button__button {
	width: 100%;
	min-height: 3.35rem;
}

.hb-shop .added_to_cart {
	display: inline-flex;
	margin-top: 0.65rem;
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.hb-shop .wp-block-query-pagination {
	width: 100%;
	margin-top: clamp(4rem, 8vw, 8rem);
	padding-top: 2rem;
	border-top: 1px solid rgb(6 43 59 / 18%);
	gap: 0.5rem;
	align-items: center;
}

.hb-shop .wp-block-query-pagination-numbers {
	display: flex;
	margin: 0 !important;
	gap: 0.4rem;
	align-items: center;
}

.hb-shop .wp-block-query-pagination a,
.hb-shop .wp-block-query-pagination .current,
.hb-shop .wp-block-query-pagination .dots {
	display: inline-grid;
	min-width: 2.85rem;
	height: 2.85rem;
	margin: 0;
	padding-inline: 0.75rem;
	border: 1px solid rgb(6 43 59 / 22%);
	border-radius: 999px;
	place-items: center;
	font-size: 0.72rem;
	font-weight: 800;
	text-decoration: none;
}

.hb-shop .wp-block-query-pagination .current,
.hb-shop .wp-block-query-pagination a:hover,
.hb-shop .wp-block-query-pagination a:focus-visible {
	border-color: var(--hb-deep-lake);
	color: var(--hb-ice);
	background: var(--hb-deep-lake);
}

.hb-shop .wp-block-query-pagination-previous,
.hb-shop .wp-block-query-pagination-next {
	padding-inline: 1.1rem !important;
}

/* Mini-cart drawer. */
.wc-block-mini-cart__drawer .components-modal__content {
	color: var(--hb-blue-black);
	background: var(--hb-ice);
}

.wc-block-mini-cart__drawer .wc-block-mini-cart__title {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2.6rem, 5vw, 4.5rem);
	letter-spacing: -0.05em;
	line-height: 0.82;
	text-transform: uppercase;
}

.wc-block-mini-cart__drawer .wc-block-mini-cart__items {
	padding-inline: clamp(1rem, 3vw, 2rem);
}

.wc-block-mini-cart__drawer .wc-block-cart-items__row {
	padding-block: 1.15rem !important;
	border-bottom: 1px solid rgb(6 43 59 / 14%);
}

.wc-block-mini-cart__drawer .wc-block-cart-item__image img {
	border-radius: 0.75rem;
	background: var(--hb-ivory);
}

.wc-block-mini-cart__drawer .wc-block-mini-cart__footer {
	padding: 1.25rem clamp(1rem, 3vw, 2rem) !important;
	border-top: 1px solid rgb(6 43 59 / 15%);
	background: var(--hb-ivory);
}

.wc-block-mini-cart__drawer .wc-block-components-button {
	min-height: 3.35rem;
	border-radius: 999px !important;
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* Cart and checkout — readable, structured, and consistent with the shop. */
body.woocommerce-cart main,
body.woocommerce-checkout main,
body.page-id-8 main,
body.page-id-9 main {
	min-height: 70svh;
	padding-top: calc(var(--hb-header-height) + clamp(4rem, 8vw, 7rem));
	padding-bottom: clamp(5rem, 9vw, 9rem);
}

body.woocommerce-cart main > h1,
body.woocommerce-checkout main > h1 {
	width: min(100%, 1440px);
	margin: 0 auto clamp(2.5rem, 5vw, 5rem);
	font-size: clamp(4.5rem, 9vw, 9rem);
	letter-spacing: -0.06em;
	line-height: 0.75;
	text-transform: uppercase;
}

.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
	width: min(100%, 1380px);
	max-width: 1380px !important;
	margin-inline: auto !important;
}

.wc-block-cart .wc-block-components-sidebar-layout,
.wc-block-checkout .wc-block-components-sidebar-layout {
	gap: clamp(2rem, 5vw, 5rem);
}

.wc-block-cart .wc-block-components-main,
.wc-block-checkout .wc-block-components-main {
	padding-right: 0 !important;
}

.wc-block-cart__main table,
.wc-block-cart__main .wc-block-cart-items {
	border-collapse: collapse;
}

.wc-block-cart-items__header th,
.wc-block-cart-items__row td {
	border-color: rgb(6 43 59 / 16%) !important;
}

.wc-block-cart-items__row {
	position: relative;
}

.wc-block-cart-item__image {
	width: clamp(6rem, 10vw, 9rem) !important;
}

.wc-block-cart-item__image img {
	width: 100% !important;
	padding: 0.55rem;
	border-radius: 0.9rem;
	background: #f8f7f3;
	object-fit: contain;
}

.wc-block-cart-item__wrap {
	padding-left: clamp(0.8rem, 2vw, 1.5rem) !important;
}

.wc-block-components-product-name {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.2rem, 2vw, 1.75rem) !important;
	font-weight: 800;
	letter-spacing: -0.035em;
	line-height: 0.95;
	text-decoration: none !important;
	text-transform: uppercase;
}

.wc-block-components-quantity-selector {
	border: 1px solid rgb(6 43 59 / 22%) !important;
	border-radius: 999px !important;
	background: transparent;
}

.wc-block-cart__sidebar,
.wc-block-checkout__sidebar {
	position: sticky;
	top: calc(var(--hb-header-height) + 2rem);
	padding: clamp(1.25rem, 3vw, 2rem) !important;
	border: 1px solid rgb(6 43 59 / 16%) !important;
	border-radius: 1.25rem;
	background: var(--hb-ivory);
	box-shadow: 0 1.5rem 4rem rgb(7 21 29 / 7%);
}

.wc-block-cart__totals-title,
.wc-block-components-checkout-order-summary__title-text {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.6rem !important;
	letter-spacing: -0.03em;
	text-transform: uppercase;
}

.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	min-height: 3.65rem !important;
	border: 1px solid var(--hb-blue-black) !important;
	border-radius: 999px !important;
	color: var(--hb-blue-black) !important;
	background: var(--hb-azure) !important;
	font-size: 0.72rem !important;
	font-weight: 800 !important;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
	color: var(--hb-ice) !important;
	background: var(--hb-deep-lake) !important;
}

.wc-block-components-checkout-step {
	margin-bottom: 1rem !important;
	padding: clamp(1.15rem, 2.5vw, 2rem) !important;
	border: 1px solid rgb(6 43 59 / 14%);
	border-radius: 1.1rem;
	background: rgb(244 239 229 / 58%);
}

.wc-block-components-checkout-step__heading {
	margin-bottom: 1.1rem !important;
}

.wc-block-components-checkout-step__title {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.7rem, 3vw, 2.6rem) !important;
	letter-spacing: -0.04em;
	line-height: 0.9;
	text-transform: uppercase;
}

.wc-block-components-text-input input,
.wc-block-components-combobox .components-combobox-control__input,
.wc-block-components-address-form select {
	min-height: 3.3rem !important;
	border-color: rgb(6 43 59 / 26%) !important;
	border-radius: 0.7rem !important;
	color: var(--hb-blue-black) !important;
	background: #fff !important;
}

.wc-block-components-notice-banner {
	border: 1px solid currentColor !important;
	border-radius: 0.9rem !important;
}

.wc-block-cart__empty-cart__title,
.wc-block-checkout__no-payment-methods-notice {
	font-family: var(--wp--preset--font-family--display);
}

.wc-block-must-login-prompt {
	width: 100%;
	padding: clamp(2rem, 6vw, 5rem);
	border: 1px solid rgb(6 43 59 / 16%);
	border-radius: 1.25rem;
	color: var(--hb-blue-black);
	background: var(--hb-ivory);
	font-size: clamp(1.15rem, 2vw, 1.5rem);
	text-align: center;
}

.wc-block-must-login-prompt a {
	display: inline-flex;
	margin-left: 0.5rem;
	padding: 0.85rem 1.2rem;
	border-radius: 999px;
	color: var(--hb-ice);
	background: var(--hb-deep-lake);
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

body.woocommerce-checkout .wp-site-blocks > header > .wp-block-group {
	border-bottom: 1px solid rgb(6 43 59 / 14%);
	background: rgb(232 248 252 / 94%);
}

body.woocommerce-checkout .wp-site-blocks > header .alignwide {
	width: min(calc(100% - 2rem), 1380px);
	margin-inline: auto;
}

/* Editorial event archive. */
.hb-events-page {
	color: var(--hb-blue-black);
	background: var(--hb-ice);
}

.hb-events-page__hero {
	position: relative;
	display: grid;
	min-height: min(900px, 94svh);
	overflow: hidden;
	padding: calc(var(--hb-header-height) + clamp(3.5rem, 8vw, 7rem)) clamp(1rem, 4vw, 4rem) clamp(3.5rem, 7vw, 6rem);
	align-items: end;
	color: var(--hb-ice);
	background-color: var(--hb-blue-black);
	background-image:
		linear-gradient(90deg, rgb(7 21 29 / 92%) 0%, rgb(7 21 29 / 45%) 58%, rgb(7 21 29 / 18%)),
		linear-gradient(0deg, rgb(7 21 29 / 94%) 0%, transparent 63%),
		url("../images/hookbaits-carpfishing-lago.jpg");
	background-position: center;
	background-size: cover;
	isolation: isolate;
}

.hb-events-page__hero::after {
	position: absolute;
	inset: 0;
	z-index: -1;
	content: "";
	background: radial-gradient(circle at 76% 34%, rgb(39 183 230 / 24%), transparent 27%);
}

.hb-events-page__hero-inner {
	position: relative;
	z-index: 2;
	width: min(100%, 1440px) !important;
	max-width: 1440px !important;
	margin-inline: auto !important;
}

.hb-events-page__hero .hb-cinema-kicker {
	color: var(--hb-sky);
}

.hb-events-page__title {
	max-width: 1260px;
	margin: 0.1em 0 0.24em;
	color: inherit;
	font-size: clamp(5.4rem, 12.6vw, 12.5rem);
	letter-spacing: -0.07em;
	line-height: 0.69;
}

.hb-events-page__hero-foot {
	display: flex;
	width: min(100%, 920px);
	gap: 2rem;
	justify-content: space-between;
	align-items: end;
}

.hb-events-page__lead {
	max-width: 43rem;
	margin: 0;
	color: rgb(232 248 252 / 84%);
	font-size: clamp(1rem, 1.5vw, 1.3rem);
}

.hb-events-page__scroll {
	display: inline-flex;
	min-width: max-content;
	padding: 0.9rem 1.1rem;
	border: 1px solid rgb(232 248 252 / 60%);
	border-radius: 999px;
	gap: 1rem;
	align-items: center;
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.hb-events-page__rings {
	position: absolute;
	top: 15%;
	right: 8%;
	width: min(38rem, 44vw);
	aspect-ratio: 1;
	pointer-events: none;
}

.hb-events-page__rings i {
	position: absolute;
	inset: 0;
	border: 1px solid rgb(121 213 243 / 24%);
	border-radius: 50%;
}

.hb-events-page__rings i:nth-child(2) {
	inset: 17%;
}

.hb-events-page__rings i:nth-child(3) {
	inset: 34%;
	background: rgb(39 183 230 / 8%);
}

.hb-events-page__stamp {
	position: absolute;
	right: clamp(1rem, 4vw, 4rem);
	top: calc(var(--hb-header-height) + 2.3rem);
	z-index: 2;
	display: grid;
	width: 7.2rem;
	aspect-ratio: 1;
	border: 1px solid rgb(232 248 252 / 45%);
	border-radius: 50%;
	place-content: center;
	text-align: center;
	transform: rotate(8deg);
}

.hb-events-page__stamp strong {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.65rem;
	line-height: 0.8;
}

.hb-events-page__stamp span {
	margin-top: 0.45rem;
	font-size: 0.5rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.hb-events-page__signal {
	overflow: hidden;
	color: var(--hb-blue-black);
	background: var(--hb-azure);
}

.hb-events-page__signal p {
	display: flex;
	width: max-content;
	min-width: 100%;
	margin: 0;
	padding: 0.95rem clamp(1rem, 3vw, 3rem);
	gap: clamp(1.5rem, 4vw, 5rem);
	justify-content: space-around;
	align-items: center;
	font-size: 0.68rem;
	font-weight: 900;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.hb-events-page__signal i {
	width: 0.35rem;
	aspect-ratio: 1;
	border-radius: 50%;
	background: currentColor;
}

.hb-events-page__listing {
	width: min(calc(100% - 2rem), 1440px) !important;
	max-width: 1440px !important;
	padding: clamp(5rem, 9vw, 9rem) 0 clamp(6rem, 10vw, 10rem);
}

.hb-events-page__listing-head {
	display: flex;
	margin-bottom: clamp(3rem, 6vw, 6rem);
	gap: 2rem;
	justify-content: space-between;
	align-items: end;
}

.hb-events-page__listing-head h2 {
	margin: 0.12em 0 0;
	font-size: clamp(4.5rem, 10vw, 10rem);
	letter-spacing: -0.06em;
	line-height: 0.7;
}

.hb-events-page__listing-head > p {
	max-width: 33rem;
	margin: 0;
	color: rgb(7 21 29 / 68%);
}

.hb-event-grid--archive {
	display: grid;
	width: 100% !important;
	max-width: none !important;
	padding: 0;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1rem, 2.5vw, 2.5rem);
	background: transparent;
}

/*
 * The archive grid is emitted by a shortcode inside a constrained block.
 * Override the content-width cap so the cards inherit the full 1440px listing
 * width instead of collapsing to WordPress' narrow paragraph measure.
 */
.hb-events-page__listing > .hb-event-grid--archive {
	width: 100% !important;
	max-width: none !important;
}

.hb-event-grid--archive .hb-event-card {
	position: relative;
	min-height: 0;
	border: 1px solid rgb(6 43 59 / 14%);
	background: var(--hb-ivory);
	transition: transform 380ms var(--hb-ease), box-shadow 380ms var(--hb-ease);
}

.hb-event-grid--archive .hb-event-card:hover {
	box-shadow: 0 2rem 5rem rgb(7 21 29 / 10%);
	transform: translateY(-0.45rem);
}

.hb-event-grid--archive .hb-event-card__media {
	aspect-ratio: 16 / 10;
}

.hb-event-grid--archive .hb-event-card__media::after {
	position: absolute;
	inset: 0;
	content: "";
	background: linear-gradient(0deg, rgb(7 21 29 / 28%), transparent 48%);
}

.hb-event-grid--archive .hb-event-card__body {
	min-height: 21rem;
	padding: clamp(1.25rem, 3vw, 2.5rem);
}

.hb-event-card__index {
	display: inline-block;
	margin-bottom: 0.7rem;
	color: var(--hb-azure);
	font-size: 0.66rem;
	font-weight: 900;
	letter-spacing: 0.13em;
}

.hb-event-grid--archive .hb-event-card h3 {
	font-size: clamp(2.4rem, 4.5vw, 5.2rem);
	line-height: 0.82;
}

.hb-event-grid--archive .hb-event-card__link span {
	display: inline-block;
	transition: transform 260ms var(--hb-ease);
}

.hb-event-grid--archive .hb-event-card:hover .hb-event-card__link span {
	transform: translate(0.25rem, -0.25rem);
}

.hb-event-grid--archive .hb-event-card--featured {
	display: grid;
	min-height: clamp(34rem, 52vw, 48rem);
	grid-column: 1 / -1;
	grid-template-columns: minmax(0, 7fr) minmax(24rem, 5fr);
	color: var(--hb-ice);
	background: var(--hb-deep-lake);
}

.hb-event-grid--archive .hb-event-card--featured .hb-event-card__media {
	height: 100%;
	aspect-ratio: auto;
}

.hb-event-grid--archive .hb-event-card--featured .hb-event-card__body {
	min-height: 100%;
	padding: clamp(2rem, 5vw, 4.5rem);
}

.hb-event-grid--archive .hb-event-card--featured h3 {
	font-size: clamp(3rem, 4.2vw, 5.5rem);
}

.hb-event-grid--archive .hb-event-card--featured .hb-event-card__excerpt {
	color: rgb(232 248 252 / 72%);
}

@media (min-width: 961px) {
	/*
	 * The first archive item spans both columns. When the total post count is
	 * even, the remaining count is odd; turn that final orphan into a deliberate
	 * full-width editorial card rather than leaving an empty right column.
	 */
	.hb-event-grid--archive > .hb-event-card:last-child:nth-child(even) {
		min-height: clamp(25rem, 36vw, 34rem);
		grid-column: 1 / -1;
		grid-template-columns: minmax(0, 1.25fr) minmax(22rem, 0.75fr);
	}

	.hb-event-grid--archive > .hb-event-card:last-child:nth-child(even) .hb-event-card__media {
		height: 100%;
		aspect-ratio: auto;
	}

	.hb-event-grid--archive > .hb-event-card:last-child:nth-child(even) .hb-event-card__body {
		min-height: 100%;
	}
}

.hb-events-page__cta {
	position: relative;
	display: grid;
	min-height: 43rem;
	padding: clamp(4rem, 8vw, 8rem) clamp(1rem, 4vw, 4rem);
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	grid-template-rows: auto auto auto 1fr;
	gap: 0 0;
	align-content: center;
	color: var(--hb-blue-black);
	background: var(--hb-azure);
	text-align: left;
}

.hb-events-page__cta::after {
	min-height: 31rem;
	grid-column: 2;
	grid-row: 1 / 5;
	content: "";
	background-image:
		linear-gradient(90deg, rgb(39 183 230 / 30%), transparent 35%),
		url("../images/hook-carp-baits-golden-hour.jpg");
	background-position: center;
	background-size: cover;
}

.hb-events-page__cta > .hb-cinema-kicker,
.hb-events-page__cta > h2,
.hb-events-page__cta > p,
.hb-events-page__cta > .wp-block-buttons {
	width: min(90%, 42rem);
	margin-left: 0;
	grid-column: 1;
}

.hb-events-page__cta h2 {
	margin: 0.12em 0 0.25em;
	font-size: clamp(4.5rem, 8vw, 8.5rem);
	letter-spacing: -0.06em;
	line-height: 0.7;
}

.hb-events-page__cta > p:not(.hb-cinema-kicker) {
	margin-bottom: 1.5rem;
}

.hb-events-page__cta .wp-block-buttons {
	justify-content: flex-start;
}

.hb-events-page__cta .wp-block-button__link {
	border: 1px solid var(--hb-blue-black);
	color: var(--hb-ice);
	background: var(--hb-blue-black);
}

@media (max-width: 960px) {
	.hb-site-header__inner {
		grid-template-columns: auto minmax(0, 1fr) auto;
		gap: 0.45rem;
	}

	.hb-site-header__menu {
		grid-column: 1;
	}

	.hb-site-brand {
		grid-column: 2;
	}

	.hb-site-header__actions {
		display: flex !important;
		grid-column: 3;
	}

	.hb-site-header__actions .wp-block-search {
		display: block;
	}

	.hb-site-header__actions .wp-block-search.is-search-open .wp-block-search__input {
		position: fixed;
		top: calc(var(--hb-header-height) + 0.65rem);
		right: 0.75rem;
		left: 0.75rem;
		width: auto;
		max-width: none;
		transform: none;
	}

	body.admin-bar .hb-site-header__actions .wp-block-search.is-search-open .wp-block-search__input {
		top: calc(var(--wp-admin--admin-bar--height, 32px) + var(--hb-header-height) + 0.65rem);
	}

	.hb-site-brand .wp-block-site-title {
		display: none;
	}

	.hb-site-brand .wp-block-site-logo img {
		max-width: 4.7rem;
		max-height: 2.8rem;
	}

	.hb-site-header__actions .wp-block-search__button,
	.hb-site-header__actions .wc-block-mini-cart__button,
	.hb-site-header__actions .wp-block-woocommerce-customer-account a {
		width: 2.75rem;
		height: 2.75rem;
		min-width: 2.75rem;
		min-height: 2.75rem;
	}

	.hb-shop-navigation__intro,
	.hb-hook-families__head {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}

	.hb-hook-families__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.hb-empty-catalog {
		grid-template-columns: 1fr;
		align-items: start;
	}

	.hb-catalog-menu__panel {
		grid-template-columns: minmax(10rem, 0.55fr) minmax(0, 1.45fr);
	}

	.hb-catalog-menu__branch--carphook {
		grid-column: 1;
	}

	.hb-shop__catalog-head,
	.hb-events-page__listing-head {
		align-items: flex-start;
		flex-direction: column;
	}

	.hb-shop .wc-block-product-template {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.wc-block-cart .wc-block-components-sidebar-layout,
	.wc-block-checkout .wc-block-components-sidebar-layout {
		display: block;
	}

	.wc-block-cart__sidebar,
	.wc-block-checkout__sidebar {
		position: static;
		width: 100% !important;
		margin-top: 2rem;
	}

	.hb-event-grid--archive .hb-event-card--featured {
		min-height: 0;
		grid-template-columns: 1fr;
	}

	.hb-event-grid--archive .hb-event-card--featured .hb-event-card__media {
		min-height: 30rem;
		aspect-ratio: 16 / 10;
	}

	.hb-events-page__cta {
		min-height: 0;
		grid-template-columns: 1fr;
	}

	.hb-events-page__cta::after {
		min-height: 28rem;
		margin-top: 3rem;
		grid-column: 1;
		grid-row: 5;
	}

	.hb-events-page__cta > .hb-cinema-kicker,
	.hb-events-page__cta > h2,
	.hb-events-page__cta > p,
	.hb-events-page__cta > .wp-block-buttons {
		width: min(100%, 42rem);
	}
}

@media (max-width: 600px) {
	/* Chaty's desktop hover label otherwise sits over product and category
	 * controls on touch screens. Keep the WhatsApp button, hide only the label. */
	.chaty-widget .on-hover-text {
		display: none !important;
	}

	.hb-site-header__inner {
		position: relative;
		padding-inline: 0.4rem;
	}

	/* The navigation modal shares this header with the commerce controls. Give
	 * the close control the full top-right target and prevent the cart beneath
	 * it from intercepting the tap. */
	.hb-site-header:has(.wp-block-navigation__responsive-container.is-menu-open) .hb-site-header__actions,
	.hb-site-header:has(.wp-block-navigation__responsive-container.is-menu-open) .hb-site-brand {
		opacity: 0;
		pointer-events: none;
	}

	.hb-site-header__menu .wp-block-navigation__responsive-container-close {
		z-index: 20;
		display: grid;
		width: 2.75rem;
		height: 2.75rem;
		padding: 0;
		place-items: center;
	}

	/* Keep the wordmark optically centred while the utility controls stay
	 * balanced on either side: menu + search on the left, account + cart on
	 * the right. All interactive targets remain at least 44px. */
	.hb-site-brand {
		position: absolute;
		top: 50%;
		left: 50%;
		z-index: 2;
		grid-column: auto;
		transform: translate(-50%, -50%);
	}

	.hb-site-header__menu {
		position: relative;
		z-index: 4;
	}

	.hb-site-header__actions {
		position: static;
		z-index: 4;
	}

	.hb-site-header__menu .wp-block-navigation__responsive-container-open {
		display: grid;
		width: 2.75rem;
		height: 2.75rem;
		min-width: 2.75rem;
		min-height: 2.75rem;
		padding: 0;
		place-items: center;
	}

	.hb-site-header__actions .wp-block-search {
		position: absolute;
		top: 50%;
		right: auto;
		left: calc(0.4rem + 2.75rem + 0.22rem);
		transform: translateY(-50%);
	}

	/* Expand search into a real full-width field instead of retaining the
	 * compact icon wrapper. */
	.hb-site-header__actions .wp-block-search.is-search-open {
		top: 0.45rem;
		right: 0.65rem;
		left: 0.65rem;
		z-index: 30;
		width: auto;
		height: 3rem;
		transform: none;
	}

	.hb-site-header__actions .wp-block-search.is-search-open .wp-block-search__inside-wrapper {
		width: 100%;
		height: 100%;
	}

	.hb-site-header__actions .wp-block-search.is-search-open .wp-block-search__input {
		position: static;
		width: 100%;
		height: 100%;
		padding: 0 3.75rem 0 1rem;
		transform: none;
	}

	.hb-site-header__actions .wp-block-search.is-search-open .wp-block-search__button {
		position: absolute;
		top: 50%;
		right: 0.15rem;
		transform: translateY(-50%);
	}

	.hb-site-header.has-open-search .hb-site-header__menu,
	.hb-site-header.has-open-search .hb-site-brand,
	.hb-site-header.has-open-search .wp-block-woocommerce-customer-account,
	.hb-site-header.has-open-search .wp-block-woocommerce-mini-cart {
		opacity: 0;
		pointer-events: none;
	}

	.hb-site-header__actions {
		gap: 0.22rem !important;
	}

	.hb-site-header__actions .wp-block-search__button,
	.hb-site-header__actions .wc-block-mini-cart__button,
	.hb-site-header__actions .wp-block-woocommerce-customer-account a {
		width: 2.75rem;
		height: 2.75rem;
		min-width: 2.75rem;
		min-height: 2.75rem;
	}

	.hb-shop-navigation {
		padding-inline: 1rem;
	}

	.hb-shop-navigation__intro h1,
	.hb-hook-families__head h2 {
		font-size: 17vw;
	}

	.hb-shop-catalogs {
		grid-template-columns: 1fr;
	}

	.hb-shop-catalog {
		min-height: 27rem;
	}

	.hb-shop-catalog__copy strong {
		font-size: 18vw;
	}

	.hb-hook-families__grid {
		grid-template-columns: 1fr;
	}

	.hb-hook-family {
		min-height: 8.5rem;
	}

	.hb-hook-family__primary {
		min-height: 8.5rem;
	}

	.hb-catalog-menu__panel,
	.hb-catalog-menu__branch--hook ul {
		grid-template-columns: 1fr;
	}

	.hb-catalog-menu__branch--carphook {
		grid-column: auto;
	}

	.hb-events-page__hero {
		padding-inline: 0.8rem;
	}

	.hb-shop__catalog-head h2,
	.hb-events-page__listing-head h2 {
		font-size: 17vw;
	}

	.hb-shop__catalog,
	.hb-events-page__listing {
		width: calc(100% - 1.6rem) !important;
	}

	.hb-shop-toolbar {
		align-items: stretch;
		flex-direction: column;
	}

	.hb-shop-toolbar .woocommerce-ordering,
	.hb-shop-toolbar select.orderby {
		width: 100%;
	}

	.hb-shop .wc-block-product-template {
		grid-template-columns: 1fr !important;
	}

	.hb-shop .wc-block-product .wp-block-post-title {
		font-size: 1.65rem !important;
	}

	.hb-shop .wp-block-query-pagination {
		gap: 0.35rem;
		justify-content: flex-start !important;
	}

	.hb-shop .wp-block-query-pagination a,
	.hb-shop .wp-block-query-pagination .current,
	.hb-shop .wp-block-query-pagination .dots {
		min-width: 2.5rem;
		height: 2.5rem;
		padding-inline: 0.55rem;
	}

	.hb-shop .wp-block-query-pagination-previous,
	.hb-shop .wp-block-query-pagination-next {
		font-size: 0;
	}

	.hb-shop .wp-block-query-pagination-previous::before {
		content: "←";
		font-size: 0.85rem;
	}

	.hb-shop .wp-block-query-pagination-next::before {
		content: "→";
		font-size: 0.85rem;
	}

	.hb-site-footer__nav .wp-block-navigation-item__content,
	.hb-site-footer__company a,
	.hb-product > .hb-cinema-kicker a,
	.hb-events-page__scroll,
	.hb-event-card__link,
	.hb-events-page__cta .wp-block-button__link,
	.hb-arrow-link {
		display: inline-flex;
		min-height: 2.75rem;
		align-items: center;
	}

	.wc-block-components-quantity-selector {
		min-height: 2.75rem;
	}

	.wc-block-components-quantity-selector__button {
		min-width: 2.75rem !important;
		min-height: 2.75rem !important;
	}

	.wc-block-must-login-prompt {
		box-sizing: border-box;
		width: 100%;
		max-width: 100%;
		margin-inline: auto;
		overflow-wrap: anywhere;
	}

	body.woocommerce-cart main,
	body.woocommerce-checkout main,
	body.page-id-8 main,
	body.page-id-9 main {
		padding-inline: 0.75rem;
	}

	.wc-block-cart-item__image {
		width: 5.25rem !important;
	}

	.wc-block-cart__sidebar,
	.wc-block-checkout__sidebar,
	.wc-block-components-checkout-step {
		padding: 1rem !important;
	}

	.hb-events-page__hero {
		min-height: 90svh;
		background-position: 57% center;
	}

	.hb-events-page__title {
		font-size: 17vw;
		line-height: 0.72;
	}

	.hb-events-page__hero-foot {
		align-items: flex-start;
		flex-direction: column;
	}

	.hb-events-page__stamp {
		display: none;
	}

	.hb-events-page__signal p {
		justify-content: flex-start;
	}

	.hb-event-grid--archive {
		grid-template-columns: 1fr;
	}

	.hb-event-grid--archive .hb-event-card--featured {
		grid-column: auto;
	}

	.hb-event-grid--archive .hb-event-card--featured .hb-event-card__media {
		min-height: 0;
		aspect-ratio: 4 / 3;
	}

	.hb-event-grid--archive .hb-event-card__body,
	.hb-event-grid--archive .hb-event-card--featured .hb-event-card__body {
		min-height: 18rem;
		padding: 1.25rem;
	}

	.hb-event-grid--archive .hb-event-card h3,
	.hb-event-grid--archive .hb-event-card--featured h3 {
		font-size: 2.65rem;
	}

	.hb-events-page__cta {
		padding-inline: 0.8rem;
	}

	.hb-events-page__cta h2 {
		font-size: 17vw;
	}

	.hb-events-page__cta::after {
		min-height: 21rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.hb-shop-catalog::before,
	.hb-hook-family__primary,
	.hb-shop .wc-block-components-product-image img,
	.hb-event-grid--archive .hb-event-card {
		transition: none !important;
		transform: none !important;
	}
}

/* --------------------------------------------------------------------------
 * Compact commerce, editorial cards and responsive story — v0.5.5
 * ----------------------------------------------------------------------- */

/* The native WordPress navigation must stay viewport-bound even when the
 * auto-hiding header had been transformed before the burger was opened. */
html.hb-navigation-open,
html.hb-navigation-open body {
	overflow: hidden !important;
	overscroll-behavior: none;
}

.hb-site-header.has-open-menu {
	visibility: visible !important;
	transform: none !important;
	transition: none !important;
}

.hb-site-header.has-open-menu .hb-site-brand,
.hb-site-header.has-open-menu .hb-site-header__actions {
	opacity: 0;
	pointer-events: none;
}

.hb-site-header__menu .wp-block-navigation__responsive-container.is-menu-open {
	position: fixed !important;
	inset: 0 !important;
	z-index: 1000 !important;
	box-sizing: border-box !important;
	width: 100vw !important;
	max-width: 100vw !important;
	height: 100dvh !important;
	min-height: 100dvh !important;
	max-height: 100dvh !important;
	padding:
		max(1rem, env(safe-area-inset-top))
		max(1rem, env(safe-area-inset-right))
		max(1rem, env(safe-area-inset-bottom))
		max(1rem, env(safe-area-inset-left)) !important;
	overflow-x: hidden !important;
	overflow-y: auto !important;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
}

body.admin-bar .hb-site-header__menu .wp-block-navigation__responsive-container.is-menu-open {
	top: var(--wp-admin--admin-bar--height, 32px) !important;
	height: calc(100dvh - var(--wp-admin--admin-bar--height, 32px)) !important;
	min-height: calc(100dvh - var(--wp-admin--admin-bar--height, 32px)) !important;
}

.hb-site-header__menu .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	min-height: 100%;
	padding-top: max(4.5rem, calc(env(safe-area-inset-top) + 4rem)) !important;
}

.hb-site-header__menu .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	position: fixed;
	top: max(1rem, env(safe-area-inset-top));
	right: max(1rem, env(safe-area-inset-right));
	z-index: 1010;
	display: grid;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 1px solid currentColor;
	border-radius: 50%;
	place-items: center;
	color: inherit;
	background: transparent;
}

body.admin-bar .hb-site-header__menu .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	top: calc(var(--wp-admin--admin-bar--height, 32px) + max(1rem, env(safe-area-inset-top)));
}

.hb-site-header__menu .wp-block-navigation__responsive-container-close:focus-visible {
	outline: 3px solid var(--hb-azure);
	outline-offset: 4px;
}

/* Shop navigation and taxonomy cards: same hierarchy, much denser rhythm. */
.hb-shop-navigation {
	padding: calc(var(--hb-header-height) + clamp(2.5rem, 5vw, 4.5rem)) clamp(1rem, 4vw, 4rem) clamp(3rem, 5vw, 5rem);
}

.hb-shop-navigation__intro {
	margin-bottom: clamp(1.75rem, 3.5vw, 3.25rem);
}

.hb-shop-navigation__intro h1 {
	font-size: clamp(3.6rem, 7.5vw, 7.2rem);
	line-height: 0.76;
}

.hb-shop-breadcrumbs {
	margin-bottom: clamp(1.25rem, 2.5vw, 2.25rem);
}

.hb-shop-catalog {
	min-height: clamp(19rem, 28vw, 27rem);
	padding: clamp(1.15rem, 2.2vw, 2rem);
}

.hb-shop-catalog__copy strong {
	font-size: clamp(3.4rem, 5.8vw, 5.8rem);
}

.hb-hook-families {
	margin-top: clamp(2.5rem, 4vw, 4rem);
	padding-top: clamp(2rem, 3.5vw, 3.5rem);
}

.hb-hook-families__head {
	margin-bottom: clamp(1.5rem, 2.75vw, 2.75rem);
}

.hb-hook-families__head h2 {
	font-size: clamp(3rem, 5vw, 4.8rem);
	line-height: 0.8;
}

.hb-hook-families__grid {
	gap: 0.75rem;
	background: transparent;
}

.hb-hook-family,
.hb-hook-family__primary {
	min-height: 7.25rem;
}

.hb-hook-family {
	border: 1px solid rgb(6 43 59 / 14%);
	border-radius: 0.9rem;
	overflow: hidden;
}

.hb-hook-family__primary {
	padding: 1rem;
	gap: 0.75rem;
}

.hb-hook-family__icon {
	width: 2.5rem;
	font-size: 1rem;
}

.hb-hook-family__copy strong {
	font-size: clamp(1.15rem, 1.6vw, 1.55rem);
	line-height: 0.94;
}

.hb-hook-family__copy small {
	margin-top: 0.35rem;
	font-size: 0.56rem;
}

.hb-hook-family__children,
.hb-hook-family__children .hb-hook-family__children {
	display: flex;
	padding: 0.3rem 0.75rem 0.8rem;
	border-top: 1px solid rgb(6 43 59 / 10%);
	border-left: 0;
	gap: 0.35rem;
	flex-wrap: wrap;
}

.hb-hook-family__children li {
	flex: 0 0 auto;
}

.hb-hook-family__children li.has-children {
	flex: 1 1 100%;
	width: 100%;
}

.hb-hook-family__children a {
	min-height: 2.1rem;
	padding: 0.4rem 0.62rem;
	border: 1px solid rgb(6 43 59 / 14%);
	border-radius: 999px;
	gap: 0.45rem;
	font-size: 0.62rem;
}

/* Product grid: a compact retail catalogue rather than full-page posters. */
.hb-shop__catalog {
	width: min(calc(100% - 2rem), 1320px) !important;
	max-width: 1320px !important;
	padding: clamp(2.75rem, 4vw, 4rem) 0 clamp(4rem, 6vw, 6rem);
}

.hb-shop__catalog-head {
	margin-bottom: clamp(1.5rem, 2.5vw, 2.5rem);
}

.hb-shop__catalog-head h2 {
	font-size: clamp(3rem, 5.5vw, 5.5rem);
	line-height: 0.78;
}

.hb-shop .wc-block-product-template,
.hb-shop .wp-block-woocommerce-product-template,
.hb-shop .woocommerce ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: clamp(0.85rem, 1.4vw, 1.4rem) !important;
}

.hb-shop .wc-block-product,
.hb-shop .woocommerce ul.products li.product {
	min-width: 0;
	width: auto !important;
	margin: 0 !important;
	padding: 0 0 1rem;
	float: none !important;
}

.hb-shop .wc-block-components-product-image {
	margin-bottom: 0.8rem;
	overflow: hidden;
}

.hb-shop .wc-block-components-product-image > a {
	position: relative !important;
	display: block !important;
	width: 100% !important;
	aspect-ratio: 1 / 1 !important;
	overflow: hidden !important;
}

.hb-shop .wc-block-components-product-image > a > img {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: 100% !important;
	max-height: 100% !important;
	margin: 0 !important;
	padding: 0.35rem !important;
	box-sizing: border-box !important;
	object-fit: contain !important;
	object-position: center !important;
	aspect-ratio: auto !important;
	background: transparent;
}

.hb-shop .woocommerce ul.products li.product a.woocommerce-loop-product__link {
	display: block;
	aspect-ratio: auto;
	overflow: visible;
}

.hb-shop .woocommerce ul.products li.product a.woocommerce-loop-product__link > img {
	display: block;
	width: 100% !important;
	height: auto !important;
	padding: 0.35rem;
	aspect-ratio: 1 / 1 !important;
	object-fit: contain !important;
	background: transparent;
}

.hb-shop .wc-block-product .wp-block-post-title,
.hb-shop .woocommerce-loop-product__title,
.hb-shop .wc-block-components-product-title {
	display: -webkit-box;
	min-height: 3em;
	margin: 0 0 0.5rem !important;
	overflow: hidden;
	font-size: clamp(1.05rem, 1.25vw, 1.35rem) !important;
	line-height: 1;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.hb-shop .wp-block-woocommerce-product-price,
.hb-shop .wc-block-components-product-price,
.hb-shop .woocommerce ul.products li.product .price {
	font-size: 0.9rem !important;
}

.hb-shop .wc-block-product .wp-block-woocommerce-product-button,
.hb-shop .woocommerce ul.products li.product .button {
	width: auto;
	margin-top: 0.65rem;
	align-self: flex-start;
}

.hb-shop .wc-block-components-product-button__button,
.hb-shop .woocommerce ul.products li.product .button,
.hb-shop .add_to_cart_button,
.hb-shop .ajax_add_to_cart,
.hb-shop .product_type_simple,
.hb-shop .product_type_variable {
	width: fit-content !important;
	max-width: 100%;
	min-height: 2.5rem !important;
	padding: 0.58rem 0.85rem !important;
	font-size: 0.6rem !important;
	line-height: 1.15;
	white-space: normal;
}

.hb-shop .added_to_cart.wc-forward {
	width: fit-content;
	min-height: 2.5rem;
	padding: 0.62rem 0.85rem;
	align-items: center;
}

.hb-shop .wp-block-query-pagination {
	margin-top: clamp(2.5rem, 4vw, 4rem);
}

/* The homepage shelves use the same compact action language. */
.hb-product-shelf .button {
	width: fit-content;
	max-width: 100%;
	min-height: 2.5rem;
	padding: 0.6rem 0.85rem !important;
	font-size: 0.6rem !important;
}

/* The path still tells a story, but every viewport now contains real content. */
.hb-story-cinema__intro {
	box-sizing: border-box;
	min-height: 68svh;
	padding: clamp(4.5rem, 8vh, 7rem) clamp(1rem, 4vw, 4rem);
}

.hb-story-cinema__intro h2 {
	font-size: clamp(4.2rem, 9vw, 8.75rem);
	line-height: 0.75;
}

.hb-story-cinema__path {
	top: 58svh;
	height: calc(100% - 58svh);
}

.hb-story-step,
.hb-story-step--two {
	min-height: 112svh;
}

.hb-story-step--three {
	min-height: 120svh;
}

.hb-story-step__sticky {
	box-sizing: border-box;
	min-height: 0;
	padding: clamp(4rem, 7vh, 6rem) clamp(1rem, 4vw, 4rem) clamp(2.5rem, 5vh, 4rem);
	grid-template-rows: auto 1fr auto;
	align-items: start;
}

.hb-story-step__image {
	width: min(30rem, 32vw);
}

.hb-story-step--one .hb-story-step__image,
.hb-story-step--three .hb-story-step__image {
	width: min(48rem, 48vw);
	aspect-ratio: 4 / 3;
}

.hb-story-step__title h3 {
	font-size: clamp(3.5rem, 6.5vw, 7rem);
	line-height: 0.78;
}

.hb-story-step__title,
.hb-story-step--two .hb-story-step__title {
	position: relative;
	z-index: 2;
	margin: 0;
	grid-row: 1;
	align-self: start;
}

.hb-story-step__sticky > p {
	width: min(23rem, 30vw);
	grid-row: 3;
	align-self: end;
}

/* Events: uniform, compact story cards with a stable page frame. */
.hb-events-page__hero {
	min-height: min(46rem, 76svh);
	padding: calc(var(--hb-header-height) + clamp(2.5rem, 5vw, 4.5rem)) clamp(1rem, 4vw, 4rem) clamp(2.75rem, 5vw, 4.5rem);
}

.hb-events-page__title {
	max-width: 960px;
	font-size: clamp(4rem, 8.4vw, 8rem);
	line-height: 0.72;
}

.hb-events-page__listing {
	width: min(calc(100% - clamp(1.5rem, 5vw, 5rem)), 1320px) !important;
	max-width: 1320px !important;
	margin-inline: auto !important;
	padding: clamp(3.5rem, 6vw, 6rem) 0 clamp(5rem, 8vw, 8rem);
}

.hb-events-page__listing-head {
	display: grid;
	margin-bottom: clamp(2rem, 4vw, 3.5rem);
	grid-template-columns: minmax(0, 1fr) minmax(18rem, 28rem);
	gap: 2rem;
	align-items: end;
}

.hb-events-page__listing-head h2 {
	font-size: clamp(3.25rem, 6vw, 6rem);
	line-height: 0.76;
}

.hb-event-grid--archive {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1rem, 1.5vw, 1.5rem);
}

.hb-event-grid--archive .hb-event-card,
.hb-event-grid--archive .hb-event-card--featured,
.hb-event-grid--archive > .hb-event-card:last-child:nth-child(even) {
	display: flex;
	min-height: 0;
	overflow: hidden;
	grid-column: auto;
	grid-template-columns: none;
	flex-direction: column;
	color: var(--hb-blue-black);
	background: var(--hb-ivory);
	border: 1px solid rgb(6 43 59 / 14%);
	border-radius: 1rem;
}

.hb-event-grid--archive .hb-event-card__media,
.hb-event-grid--archive .hb-event-card--featured .hb-event-card__media,
.hb-event-grid--archive > .hb-event-card:last-child:nth-child(even) .hb-event-card__media {
	height: auto;
	min-height: 0;
	aspect-ratio: 16 / 10;
}

.hb-event-grid--archive .hb-event-card__body,
.hb-event-grid--archive .hb-event-card--featured .hb-event-card__body,
.hb-event-grid--archive > .hb-event-card:last-child:nth-child(even) .hb-event-card__body {
	display: grid;
	min-height: 0;
	padding: 1.15rem 1.2rem 1.3rem;
	grid-template-columns: 1fr auto;
	flex: 1;
}

.hb-event-grid--archive .hb-event-card__index {
	margin: 0;
	grid-column: 1;
}

.hb-event-grid--archive .hb-event-card time {
	grid-column: 2;
	grid-row: 1;
	justify-self: end;
}

.hb-event-grid--archive .hb-event-card h3,
.hb-event-grid--archive .hb-event-card--featured h3,
.hb-event-grid--archive .hb-event-card__excerpt,
.hb-event-grid--archive .hb-event-card__link {
	grid-column: 1 / -1;
}

.hb-event-grid--archive .hb-event-card h3,
.hb-event-grid--archive .hb-event-card--featured h3 {
	display: -webkit-box;
	margin: 0.65rem 0 0.75rem;
	overflow: hidden;
	font-size: clamp(1.45rem, 1.8vw, 2.05rem);
	line-height: 0.95;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.hb-event-grid--archive .hb-event-card__excerpt {
	display: -webkit-box;
	margin: 0;
	overflow: hidden;
	font-size: 0.9rem;
	line-height: 1.45;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.hb-event-grid--archive .hb-event-card__excerpt > :first-child {
	margin-top: 0;
}

.hb-event-grid--archive .hb-event-card__excerpt > :last-child {
	margin-bottom: 0;
}

.hb-event-grid--archive .hb-event-card__link {
	margin-top: 1rem;
	padding-top: 0.75rem;
	align-self: end;
}

@media (max-width: 1279px) {
	.hb-shop .wc-block-product-template,
	.hb-shop .wp-block-woocommerce-product-template,
	.hb-shop .woocommerce ul.products {
		grid-template-columns: repeat(3, minmax(0, 340px)) !important;
		justify-content: center;
	}
}

@media (max-width: 1179px) {
	.hb-event-grid--archive {
		grid-template-columns: repeat(2, minmax(0, 420px));
		justify-content: center;
	}
}

@media (max-width: 899px) {
	.hb-shop .wc-block-product-template,
	.hb-shop .wp-block-woocommerce-product-template,
	.hb-shop .woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 340px)) !important;
		justify-content: center;
	}

	.hb-product-shelf .woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.hb-shop-navigation__intro,
	.hb-hook-families__head,
	.hb-events-page__listing-head {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 700px) {
	.hb-story-cinema__intro {
		min-height: 64svh;
		padding: calc(var(--hb-header-height) + 3rem) 1rem 3rem;
	}

	.hb-story-cinema__intro h2 {
		font-size: clamp(3.4rem, 15vw, 5.4rem);
	}

	.hb-story-cinema__path {
		top: 54svh;
		left: -30%;
		width: 160%;
		height: calc(100% - 54svh);
	}

	.hb-story-step,
	.hb-story-step--two {
		min-height: 92svh;
	}

	.hb-story-step--three {
		min-height: 100svh;
	}

	.hb-story-step__sticky {
		position: relative;
		top: auto;
		display: grid;
		height: auto;
		min-height: inherit;
		padding: 4.75rem 1rem 3.5rem;
		grid-template-rows: auto auto auto;
		gap: 1.4rem;
		align-content: center;
	}

	.hb-story-step__image,
	.hb-story-step--one .hb-story-step__image,
	.hb-story-step--three .hb-story-step__image {
		position: relative;
		top: auto;
		left: auto;
		z-index: 0;
		width: min(76vw, 21rem);
		margin: 0 auto;
		grid-row: 2;
		aspect-ratio: 4 / 3;
		transform: rotate(var(--hb-step-rotate, -3deg)) scale(var(--hb-step-scale, 0.94));
	}

	.hb-story-step--two .hb-story-step__image {
		width: min(64vw, 18rem);
		aspect-ratio: 4 / 5;
	}

	.hb-story-step__title,
	.hb-story-step--two .hb-story-step__title {
		position: relative;
		z-index: 2;
		margin: 0;
		grid-row: 1;
		text-align: left;
	}

	.hb-story-step__title h3 {
		font-size: clamp(2.8rem, 12vw, 4.35rem);
		line-height: 0.78;
	}

	.hb-story-step__sticky > p,
	.hb-story-step--two .hb-story-step__sticky > p {
		position: relative;
		z-index: 2;
		width: min(100%, 20rem);
		margin: 0 0 0 auto;
		grid-row: 3;
		font-size: 0.9rem;
	}

	.hb-events-page__hero {
		min-height: 72svh;
		padding-inline: 1rem;
		background-position: 57% center;
	}

	.hb-events-page__title {
		font-size: clamp(3.5rem, 14vw, 5.2rem);
	}

	.hb-events-page__hero-foot {
		gap: 1.25rem;
	}

	.hb-events-page__listing {
		width: calc(100% - 1.5rem) !important;
		padding-block: 3.5rem 5rem;
	}

	.hb-events-page__listing-head {
		margin-bottom: 2rem;
	}

	.hb-events-page__listing-head h2 {
		font-size: clamp(3.25rem, 15vw, 4.7rem);
	}

	.hb-events-page__signal p {
		box-sizing: border-box;
		width: 100%;
		min-width: 0;
		padding: 0.8rem 0.75rem;
		gap: 0.5rem;
		justify-content: space-between;
		font-size: 0.54rem;
		letter-spacing: 0.06em;
	}

	.hb-event-grid--archive {
		grid-template-columns: minmax(0, 460px);
		justify-content: center;
	}

	.hb-event-grid--archive .hb-event-card h3,
	.hb-event-grid--archive .hb-event-card--featured h3 {
		font-size: 1.65rem;
	}

	.hb-event-grid--archive .hb-event-card__body,
	.hb-event-grid--archive .hb-event-card--featured .hb-event-card__body {
		padding: 1rem;
	}
}

@media (max-width: 600px) {
	.hb-shop-navigation__intro h1,
	.hb-hook-families__head h2 {
		font-size: clamp(2.8rem, 13vw, 4rem);
	}

	.hb-shop-catalog {
		min-height: 21rem;
	}

	.hb-hook-families__grid {
		grid-template-columns: 1fr;
	}

	.hb-hook-family,
	.hb-hook-family__primary {
		min-height: 6.75rem;
	}

	.hb-shop__catalog {
		width: calc(100% - 1.25rem) !important;
	}

	.hb-shop__catalog-head h2 {
		font-size: clamp(2.8rem, 13vw, 4rem);
	}

	.hb-shop .wc-block-product-template,
	.hb-shop .wp-block-woocommerce-product-template,
	.hb-shop .woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 340px)) !important;
		gap: 0.75rem !important;
		justify-content: center;
	}

	.hb-shop .wc-block-product::before {
		top: 0.45rem;
		left: 0.45rem;
		font-size: 0.54rem;
	}

	.hb-shop .wc-block-product .wp-block-post-title,
	.hb-shop .woocommerce-loop-product__title,
	.hb-shop .wc-block-components-product-title {
		min-height: 3.1em;
		font-size: 1rem !important;
	}

	.hb-shop .wc-block-components-product-button__button,
	.hb-shop .woocommerce ul.products li.product .button,
	.hb-shop .add_to_cart_button,
	.hb-shop .product_type_simple,
	.hb-shop .product_type_variable {
		min-height: 2.75rem !important;
		padding: 0.5rem 0.58rem !important;
		font-size: 0.54rem !important;
	}

	.hb-product-shelf .woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.75rem !important;
	}

	.hb-product-shelf .woocommerce ul.products li.product {
		padding: 0.55rem;
	}
}

@media (max-width: 359px) {
	.hb-shop .wc-block-product-template,
	.hb-shop .wp-block-woocommerce-product-template,
	.hb-shop .woocommerce ul.products {
		grid-template-columns: minmax(0, 340px) !important;
		justify-content: center;
	}
}

/* --------------------------------------------------------------------------
 * Cross-platform composition and supplied brand artwork — v0.5.16
 * ----------------------------------------------------------------------- */

/* The saved Site Editor header can outlive the file template.  The script
 * refreshes its image source; these rules turn both variants into one compact
 * dark "island", so the white transparent logo stays legible everywhere. */
.hb-site-brand .wp-block-site-title {
	display: none;
}

.hb-site-brand .wp-block-site-logo {
	position: relative;
	display: block;
	width: clamp(9.75rem, 10.5vw, 11.5rem);
	height: 4.8rem;
	overflow: hidden;
	border: 1px solid rgb(102 210 240 / 32%);
	border-radius: 1.65rem;
	background:
		radial-gradient(circle at 50% 112%, rgb(39 183 230 / 20%), transparent 45%),
		linear-gradient(145deg, #061c27, #031016 78%);
	box-shadow: 0 0.75rem 2.25rem rgb(3 18 24 / 18%), inset 0 1px 0 rgb(232 248 252 / 14%);
	isolation: isolate;
}

.hb-site-brand .wp-block-site-logo::after {
	position: absolute;
	right: 36%;
	bottom: -0.24rem;
	left: 36%;
	height: 0.46rem;
	border-radius: 999px 999px 0 0;
	content: "";
	background: #031016;
}

.hb-site-brand .wp-block-site-logo a {
	position: absolute;
	inset: 0;
	display: block;
}

.hb-site-brand .wp-block-site-logo img {
	position: absolute;
	top: -3.28rem;
	left: 50%;
	width: 10.55rem;
	height: 10.65rem;
	max-width: none;
	max-height: none;
	margin: 0;
	object-fit: contain;
	transform: translateX(-50%);
}

/* The supplied hero cut-out is portrait.  Constraining it by both axes keeps
 * the entire rod pod and both product bags visible instead of zooming them. */
.hb-hero-cinema__products {
	bottom: 0;
	width: min(56vw, 52rem);
	height: min(85svh, 55rem);
}

.hb-hero-cinema__products img {
	object-fit: contain;
	object-position: 50% 100%;
}

/* Real transparent marks replace the two oversized typographic stand-ins. */
.hb-gate--other {
	background-color: var(--hb-blue-black);
	background-image:
		linear-gradient(180deg, rgb(7 21 29 / 10%), rgb(7 21 29 / 72%)),
		url("../images/carphook-pro-cinematic-bg.jpg");
	background-position: center, center;
	background-repeat: no-repeat;
	background-size: cover, cover;
}

.hb-gate__logo {
	position: absolute;
	z-index: 2;
	top: 12%;
	left: 50%;
	display: block;
	width: min(52%, 25rem);
	height: 48%;
	margin: 0;
	object-fit: contain;
	transform: translateX(-50%);
	filter: drop-shadow(0 0.9rem 1.5rem rgb(3 18 24 / 48%));
}

.hb-gate__logo--hook {
	top: 7%;
	width: min(48%, 22rem);
	height: 58%;
}

.hb-gate__logo--carphook {
	top: 13%;
	width: min(58%, 27rem);
	height: 48%;
}

.hb-gate small {
	position: relative;
	z-index: 3;
}

/* CarpHook uses one cinematic scene in the selector and in route step 2. */
.hb-story-step--two .hb-story-step__image {
	left: 63%;
	width: min(40rem, 44vw);
	aspect-ratio: 16 / 10;
	background-image: linear-gradient(rgb(244 239 229 / 2%), rgb(7 21 29 / 16%)), url("../images/carphook-pro-cinematic-bg.jpg");
	background-position: center;
	background-size: cover;
}

.hb-story-step--two .hb-story-step__title {
	right: auto;
	left: clamp(1.25rem, 5vw, 5rem);
	max-width: 38vw;
	text-align: left;
}

.hb-story-step--two .hb-story-step__title h3 {
	font-size: clamp(3.8rem, min(6vw, 12.5vh), 6.25rem);
}

.hb-story-step--two .hb-story-step__copy {
	bottom: clamp(2.25rem, 5.5vh, 4.5rem);
}

/* WooCommerce can keep serving pre-generated square crops even when CSS uses
 * contain.  The PHP/JS image source fix restores the original ratio; these
 * dimensions provide a calm, uniform frame for every source photograph. */
.hb-product-shelf .woocommerce ul.products li.product a img,
.hb-shop .wc-block-components-product-image img,
.hb-shop .wc-block-grid__product-image img,
.woocommerce.archive ul.products li.product a img {
	width: 100%;
	height: auto;
	max-height: min(28rem, 44vw);
	aspect-ratio: 1 / 1;
	object-fit: contain !important;
	object-position: center !important;
	background: transparent;
}

/* A 1600×800/900 Windows viewport is wide but physically short.  Tie the
 * editorial type to viewport height too, preventing the titles and CTA from
 * falling outside their one-screen stages while leaving the approved large
 * Mac composition unchanged. */
@media (min-width: 901px) and (max-width: 1800px),
	(min-width: 901px) and (max-height: 900px) {
	.hb-manifesto-cinema__copy {
		padding: clamp(4.75rem, 8vh, 6rem) clamp(2rem, 5vw, 5rem) clamp(2rem, 4vh, 3rem);
	}

	.hb-manifesto-cinema__copy .hb-cinema-kicker {
		top: clamp(4.75rem, 8vh, 6rem);
		left: clamp(2rem, 5vw, 5rem);
	}

	.hb-manifesto-cinema__copy h2 {
		max-width: min(86rem, 100%);
		font-size: clamp(3.45rem, min(6.2vw, 12.5vh), 7.3rem);
		line-height: 0.83;
	}

	.hb-manifesto-cinema__note {
		margin-top: clamp(1rem, 2.5vh, 1.8rem);
	}

	.hb-story-step__title h3 {
		font-size: clamp(3.65rem, min(5.8vw, 12vh), 6rem);
	}

	.hb-story-step__copy {
		bottom: clamp(1.75rem, 4.5vh, 3.25rem);
	}

	.hb-community-orbit__copy h2 {
		font-size: clamp(4.75rem, min(10.4vw, 18vh), 10.5rem);
		line-height: 0.73;
	}

	.hb-community-orbit__copy > p:not(.hb-cinema-kicker) {
		margin-top: clamp(0.85rem, 2vh, 1.35rem);
	}

	.hb-orbit-link {
		margin-top: clamp(0.8rem, 2vh, 1.5rem);
	}
}

@media (max-width: 960px) {
	.hb-site-brand .wp-block-site-logo {
		width: 7rem;
		height: 3.55rem;
		border-radius: 1.3rem;
	}

	.hb-site-brand .wp-block-site-logo img {
		top: -2rem;
		width: 6.85rem;
		height: 6.95rem;
		max-width: none;
		max-height: none;
	}

	.hb-hero-cinema__products {
		bottom: 5svh;
		width: min(90vw, 33rem);
		height: 69svh;
	}
}

@media (max-width: 767px) {
	.hb-gate__logo {
		top: 10%;
		width: 58%;
		height: 50%;
	}

	.hb-gate__logo--hook {
		top: 5%;
		height: 62%;
	}

	.hb-gate__logo--carphook {
		top: 12%;
		width: 66%;
	}

	.hb-story-step--two .hb-story-step__image {
		top: 48%;
		left: 50%;
		width: min(78vw, 18rem);
		aspect-ratio: 16 / 10;
	}

	.hb-story-step--two .hb-story-step__title {
		left: 1.25rem;
		max-width: calc(100% - 2.5rem);
	}

	.hb-story-step--two .hb-story-step__title h3 {
		font-size: clamp(2.9rem, 12vw, 4rem);
	}

	.hb-story-step--two .hb-story-step__copy {
		bottom: max(1.35rem, calc(env(safe-area-inset-bottom) + 0.8rem));
	}
}

/* --------------------------------------------------------------------------
 * Compact Contact hero and Events titles — v0.5.28
 * ----------------------------------------------------------------------- */

.hb-events-page {
	overflow-x: clip;
}

.has-js .hb-events-page .hb-event-heading-zoom {
	opacity: 0.94;
	transform: scale(1.35) translate3d(0, 3vh, 0);
	transform-origin: 50% 8%;
	transition: none;
	will-change: transform, opacity;
}

.has-js .hb-events-page .hb-event-heading-zoom.is-visible {
	animation: hb-contact-title-intro 1500ms cubic-bezier(0.18, 0.84, 0.25, 1) 100ms both;
}

@media (prefers-reduced-motion: reduce) {
	.has-js .hb-events-page .hb-event-heading-zoom {
		opacity: 1;
		animation: none;
		transform: none;
		will-change: auto;
	}
}

/* Contact v0.5.24 — isolated Carnilove-inspired architecture in HOOK colours. */
.hb-contact,
.hb-contact + .hb-site-footer {
	margin-block-start: 0 !important;
}

.hb-contact {
	--hb-contact-card: #f4efe5;
	--hb-contact-hero: #082f3e;
	--hb-contact-copy: #e8f8fc;
	position: relative;
	color: var(--hb-ink);
	background: var(--hb-contact-card);
}

.hb-contact,
.hb-contact *,
.hb-contact *::before,
.hb-contact *::after {
	box-sizing: border-box;
}

.has-js .hb-contact::before {
	position: fixed;
	inset: 0;
	z-index: 1000;
	content: "";
	pointer-events: none;
	visibility: visible;
	opacity: 1;
	background: var(--hb-contact-card);
	transition: opacity 440ms ease 100ms, visibility 0s linear 560ms;
}

.has-js .hb-contact.is-ready::before {
	visibility: hidden;
	opacity: 0;
}

.hb-contact-hero {
	position: relative;
	display: grid;
	min-height: max(43rem, 100svh);
	margin: 0;
	padding: calc(var(--hb-header-height) + clamp(3.5rem, 8vh, 7rem)) clamp(1rem, 3vw, 3rem) clamp(4.5rem, 9vh, 8rem);
	place-items: center;
	overflow: hidden;
	color: var(--hb-contact-copy);
	background:
		radial-gradient(circle at 50% 82%, rgb(39 183 230 / 14%), transparent 34%),
		var(--hb-contact-hero);
	transition: color 700ms ease;
}

.hb-contact-hero::after {
	position: absolute;
	inset: auto 0 0;
	height: 1px;
	content: "";
	background: rgb(232 248 252 / 25%);
}

.hb-contact-hero__inner {
	position: relative;
	z-index: 1;
	display: flex;
	width: min(100%, 96rem);
	align-items: center;
	flex-direction: column;
	text-align: center;
}

.hb-contact-pill {
	display: inline-flex;
	min-height: 2.55rem;
	margin: 0 0 clamp(2rem, 4.4vh, 3.6rem);
	padding: 0.7rem 1rem 0.62rem;
	align-items: center;
	justify-content: center;
	font-size: 0.69rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	border: 1px solid currentColor;
}

.hb-contact-title {
	display: flex;
	width: 100%;
	margin: 0;
	align-items: stretch;
	flex-direction: column;
	justify-content: center;
	color: inherit;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(7.2rem, 16vw, 14.5rem);
	font-weight: 900;
	font-stretch: condensed;
	line-height: 0.73;
	letter-spacing: -0.068em;
	text-transform: uppercase;
	transform: translateZ(0);
	transform-origin: 50% 8%;
	will-change: transform;
}

/* WordPress may inject presentational line breaks around shortcode markup. */
.hb-contact-title > br {
	display: none;
}

.hb-contact-title__line {
	display: flex;
	align-items: baseline;
	justify-content: center;
	line-height: inherit;
	white-space: nowrap;
}

.hb-contact-title__char {
	display: inline-block;
	transform-origin: 50% 0;
	will-change: transform, opacity;
}

.hb-contact-hero__lead {
	width: min(100%, 39rem);
	margin: clamp(2.6rem, 5vh, 4rem) auto 0;
	font-size: clamp(1rem, 1.25vw, 1.3rem);
	line-height: 1.5;
	text-wrap: balance;
}

.has-js .hb-contact:not(.is-ready) .hb-contact-title {
	opacity: 0.94;
	transform: scale(1.35) translate3d(0, 3vh, 0);
}

.has-js .hb-contact:not(.is-ready) .hb-contact-title__char {
	opacity: 0.4;
	transform: translate3d(0, 0.16em, 0) scaleY(0.88);
}

.has-js .hb-contact:not(.is-ready) .hb-contact-pill,
.has-js .hb-contact:not(.is-ready) .hb-contact-hero__lead {
	opacity: 0;
	transform: translate3d(0, 1.5rem, 0) scale(0.98);
}

.has-js .hb-contact.is-ready .hb-contact-title {
	animation: hb-contact-title-intro 1500ms cubic-bezier(0.18, 0.84, 0.25, 1) 100ms both;
}

.has-js .hb-contact.is-ready .hb-contact-title__char {
	animation: hb-contact-char-intro 960ms cubic-bezier(0.18, 0.84, 0.25, 1.08) calc(180ms + (var(--hb-contact-char) * 18ms)) both;
}

.has-js .hb-contact.is-ready .hb-contact-pill,
.has-js .hb-contact.is-ready .hb-contact-hero__lead {
	opacity: 1;
	transform: none;
	transition: opacity 700ms var(--hb-ease), transform 900ms cubic-bezier(0.18, 0.84, 0.25, 1.08);
}

.has-js .hb-contact.is-ready .hb-contact-pill {
	transition-delay: 520ms;
}

.has-js .hb-contact.is-ready .hb-contact-hero__lead {
	transition-delay: 650ms;
}

@keyframes hb-contact-title-intro {
	0% { opacity: 0.94; transform: scale(1.35) translate3d(0, 3vh, 0); }
	66% { opacity: 1; transform: scale(0.965) translate3d(0, -0.012em, 0); }
	83% { transform: scale(1.018) translate3d(0, 0.005em, 0); }
	100% { opacity: 1; transform: scale(1) translate3d(0, 0, 0); }
}

@keyframes hb-contact-char-intro {
	0% { opacity: 0.4; transform: translate3d(0, 0.16em, 0) scaleY(0.88); }
	70% { opacity: 1; transform: translate3d(0, -0.018em, 0) scaleY(1.015); }
	100% { opacity: 1; transform: translate3d(0, 0, 0) scaleY(1); }
}

.hb-contact-details {
	position: relative;
	min-height: max(48rem, 62vw);
	margin: 0;
	overflow: hidden;
	background: var(--hb-deep-lake);
}

.hb-contact-details__media {
	position: absolute;
	inset: 0;
	display: block;
	overflow: hidden;
	background: var(--hb-deep-lake);
}

.hb-contact-details__media::after {
	position: absolute;
	inset: 0;
	content: "";
	pointer-events: none;
	background: linear-gradient(90deg, rgb(7 21 29 / 20%), transparent 58%);
}

.hb-contact-details__media img {
	position: absolute;
	inset: -5% 0;
	display: block;
	width: 100%;
	height: 110%;
	max-width: none;
	object-fit: cover;
	object-position: center 48%;
	transform: translate3d(0, var(--hb-contact-media-y, 0), 0) scale(1.025);
	will-change: transform;
}

.hb-contact-card {
	position: absolute;
	top: 1rem;
	left: 1rem;
	z-index: 2;
	width: min(32.2vw, 32rem);
	max-height: calc(100% - 2rem);
	margin: 0;
	padding: clamp(1.5rem, 2vw, 2rem);
	overflow: auto;
	color: var(--hb-ink);
	background: var(--hb-contact-card);
	scrollbar-color: var(--hb-muted) transparent;
	scrollbar-width: thin;
}

.hb-contact-card__eyebrow,
.hb-contact-card h3 {
	margin: 0;
	font-size: 0.68rem;
	font-weight: 900;
	line-height: 1.2;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.hb-contact-card h2 {
	margin: clamp(1.3rem, 2.5vw, 2.3rem) 0 1.5rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(3.4rem, 4vw, 4.2rem);
	font-weight: 900;
	line-height: 0.78;
	letter-spacing: -0.055em;
	text-transform: uppercase;
}

.hb-contact-card__intro {
	max-width: 29rem;
	margin: 0;
	font-size: clamp(0.96rem, 1.1vw, 1.08rem);
	line-height: 1.55;
}

.hb-contact-card__group {
	margin-top: clamp(1.6rem, 3vw, 2.5rem);
	padding-top: clamp(1.35rem, 2.4vw, 2rem);
	border-top: 1px solid rgb(7 21 29 / 22%);
}

.hb-contact-card__group h3 {
	margin-bottom: 0.85rem;
}

.hb-contact-card__group--links {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
}

.hb-contact-card__address {
	margin: 0;
	font-style: normal;
}

.hb-contact-card__address a {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	gap: 0.15rem;
	text-decoration: none;
}

.hb-contact-card__address strong {
	margin-top: 1rem;
	font-size: 0.72rem;
	letter-spacing: 0.1em;
	text-decoration: underline;
	text-underline-offset: 0.28rem;
	text-transform: uppercase;
}

.hb-contact-card__address strong span {
	display: inline;
}

.hb-contact-card__group--links a {
	display: inline-block;
	margin-bottom: 0.28rem;
	font-size: clamp(1.08rem, 1.5vw, 1.35rem);
	font-weight: 700;
	line-height: 1.3;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.24rem;
}

.hb-contact-card__company p,
.hb-contact-card__social p {
	margin: 0;
	font-size: 0.84rem;
	line-height: 1.55;
}

.hb-contact-card__social {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.25rem;
}

.hb-contact-socials {
	display: flex;
	flex: 0 0 auto;
	gap: 0.65rem;
}

.hb-contact-social {
	display: inline-grid;
	width: 3rem;
	height: 3rem;
	place-items: center;
	color: var(--hb-contact-card);
	background: var(--hb-ink);
	border-radius: 50%;
	text-decoration: none;
	transition: color 220ms ease, background-color 220ms ease, transform 220ms ease;
}

.hb-contact-social svg {
	width: 1.1rem;
	height: 1.1rem;
	fill: currentColor;
}

.hb-contact-social:hover,
.hb-contact-social:focus-visible {
	color: var(--hb-blue-black);
	background: var(--hb-azure);
	transform: translateY(-2px);
}

.hb-contact-social:focus-visible {
	outline: 3px solid var(--hb-azure);
	outline-offset: 3px;
}

.hb-social--facebook {
	background: #1877f2 !important;
	color: #fff !important;
}

.hb-social--tiktok {
	background: #0b0b0c !important;
	color: #fff !important;
}

.hb-social--tiktok svg {
	filter: drop-shadow(-0.6px 0 #25f4ee) drop-shadow(0.6px 0 #fe2c55);
}

/* v0.5.29 — keep the classic WooCommerce add-to-cart notice CTA legible. */
.woocommerce-message {
	display: flex;
	align-items: center;
	gap: 1rem;
}

.woocommerce-message .button.wc-forward {
	display: inline-flex !important;
	box-sizing: border-box;
	min-width: 10.5rem;
	min-height: 3.15rem;
	margin-left: auto;
	padding: 0.7rem 1rem !important;
	align-items: center;
	justify-content: center;
	order: 2;
	float: none !important;
	line-height: 1.15 !important;
	text-align: center;
	white-space: nowrap;
}

/* v0.5.30 — align the WooCommerce Blocks success-notice CTA used on products. */
.woocommerce-notices-wrapper .wc-block-components-notice-banner.is-success > .wc-block-components-notice-banner__content {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto;
	min-width: 0;
	align-items: center;
	gap: 1rem;
}

.woocommerce-notices-wrapper .wc-block-components-notice-banner.is-success > .wc-block-components-notice-banner__content > .button.wc-forward {
	display: inline-flex !important;
	box-sizing: border-box;
	width: auto !important;
	min-width: 10.5rem;
	min-height: 3.15rem;
	margin: 0 !important;
	padding: 0.7rem 1rem !important;
	align-self: center;
	align-items: center;
	justify-content: center;
	justify-self: end;
	float: none !important;
	line-height: 1.15 !important;
	text-align: center;
	white-space: nowrap;
}

@media (max-width: 640px) {
	.woocommerce-message {
		align-items: flex-start;
		flex-wrap: wrap;
		gap: 0.65rem;
	}

	.woocommerce-message .button.wc-forward {
		width: 100%;
		min-width: 0;
		margin: 0.35rem 0 0;
		white-space: normal;
	}

	.woocommerce-notices-wrapper .wc-block-components-notice-banner.is-success > .wc-block-components-notice-banner__content {
		grid-template-columns: minmax(0, 1fr);
		gap: 0.65rem;
	}

	.woocommerce-notices-wrapper .wc-block-components-notice-banner.is-success > .wc-block-components-notice-banner__content > .button.wc-forward {
		width: 100% !important;
		min-width: 0;
		justify-self: stretch;
		white-space: normal;
	}
}

@media (min-width: 768px) and (max-width: 1120px) {
	.hb-contact-card {
		width: min(39rem, 50vw);
	}

	.hb-contact-card h2 {
		font-size: clamp(3.4rem, 6vw, 4.8rem);
	}
}

@media (max-width: 767px) {
	.hb-contact-hero {
		min-height: max(39rem, 100svh);
		padding: calc(var(--hb-header-height) + 4.25rem) 0.75rem clamp(4.5rem, 10vh, 6.5rem);
	}

	.hb-contact-pill {
		margin-bottom: 2.7rem;
	}

	.hb-contact-title {
		font-size: clamp(4.25rem, 19.5vw, 6.25rem);
		line-height: 0.78;
		letter-spacing: -0.064em;
	}

	.hb-contact-hero__lead {
		width: min(89%, 28rem);
		margin-top: 2.5rem;
		font-size: 1rem;
		line-height: 1.48;
	}

	.has-js .hb-contact:not(.is-ready) .hb-contact-title {
		transform: scale(1.35) translate3d(0, 2.5vh, 0);
	}

	@keyframes hb-contact-title-intro {
		0% { opacity: 0.94; transform: scale(1.35) translate3d(0, 2.5vh, 0); }
		66% { opacity: 1; transform: scale(0.965) translate3d(0, -0.012em, 0); }
		83% { transform: scale(1.018) translate3d(0, 0.005em, 0); }
		100% { opacity: 1; transform: scale(1) translate3d(0, 0, 0); }
	}

	.hb-contact-details {
		display: flex;
		min-height: 0;
		align-items: stretch;
		flex-direction: column;
		overflow: visible;
		background: var(--hb-contact-card);
	}

	.hb-contact-details__media {
		position: relative;
		inset: auto;
		order: 2;
		width: 100%;
		aspect-ratio: 3 / 5;
	}

	.hb-contact-details__media::after {
		background: linear-gradient(0deg, rgb(7 21 29 / 18%), transparent 45%);
	}

	.hb-contact-details__media img {
		inset: -4% 0;
		height: 108%;
		object-position: center 47%;
		transform: translate3d(0, var(--hb-contact-media-y, 0), 0) scale(1.015);
	}

	.hb-contact-card {
		position: relative;
		inset: auto;
		order: 1;
		width: calc(100% - 1.25rem);
		max-height: none;
		margin: -1px 0.625rem 0.625rem;
		padding: clamp(1.5rem, 7vw, 2.2rem);
		overflow: visible;
	}

	.hb-contact-card h2 {
		font-size: clamp(4.2rem, 20vw, 6.2rem);
	}

	.hb-contact-card__social {
		align-items: flex-start;
		flex-direction: column;
	}
}

/* Contact desktop cascade guard — intentionally last so the compact first
 * screen wins over the base Contact architecture while mobile keeps its own
 * full-height composition. */
@media (min-width: 768px) {
	.hb-contact-hero {
		min-height: max(42rem, 90svh);
		padding: calc(var(--hb-header-height) + clamp(2.5rem, 5vh, 4.25rem)) clamp(1rem, 3vw, 3rem) clamp(3.25rem, 6vh, 5rem);
	}

	.hb-contact-pill {
		margin-bottom: clamp(1.6rem, 3vh, 2.5rem);
	}

	.hb-contact-hero__lead {
		margin-top: clamp(1.9rem, 3.4vh, 2.8rem);
	}
}

@media (max-width: 359px) {
	.hb-contact-title {
		font-size: clamp(3.65rem, 19vw, 4.25rem);
	}

	.hb-contact-card h2 {
		font-size: 3.75rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.has-js .hb-contact::before {
		display: none;
	}

	.has-js .hb-contact .hb-contact-title,
	.has-js .hb-contact .hb-contact-title__char,
	.has-js .hb-contact .hb-contact-pill,
	.has-js .hb-contact .hb-contact-hero__lead {
		opacity: 1;
		animation: none;
		transform: none;
	}

	.hb-contact-details__media img {
		transform: scale(1.025);
		will-change: auto;
	}
}

@media (max-width: 600px) {
	.hb-site-brand .wp-block-site-logo {
		width: 6.45rem;
		height: 3.25rem;
	}

	.hb-site-brand .wp-block-site-logo img {
		top: -1.83rem;
		width: 6.3rem;
		height: 6.4rem;
	}

	.hb-hero-cinema__products {
		bottom: 12.5svh;
		width: min(88vw, 25rem);
		height: 60svh;
	}

	.hb-product-shelf .woocommerce ul.products li.product a img,
	.hb-shop .wc-block-components-product-image img,
	.hb-shop .wc-block-grid__product-image img {
		max-height: 15.5rem;
	}
}

/* --------------------------------------------------------------------------
 * Layered, immediately visible homepage hero — v0.5.15
 * ----------------------------------------------------------------------- */

.hb-hero-cinema {
	--hb-horizon-y: -2.5vh;
	--hb-horizon-scale: 1;
	--hb-horizon-tilt: 0deg;
	--hb-horizon-opacity: 1;
	--hb-products-y: -1.5vh;
	--hb-products-scale: 1;
	--hb-products-tilt: 0deg;
	--hb-products-opacity: 1;
	--hb-shadow-opacity: 0.72;
	--hb-shadow-scale: 1;
	--hb-trees-y: 3.5vh;
	--hb-trees-scale: 1.015;
	--hb-trees-opacity: 1;
	--hb-azure-opacity: 0.42;
	--hb-atmosphere-opacity: 0.74;
	--hb-feather-opacity: 0.54;
	--hb-mist-y: -2vh;
	--hb-feather-y: 0px;
	--hb-late-opacity: 1;
	--hb-late-y: 0px;
	--hb-portal-progress: 1;
	--hb-portal-label-y: 0px;
	--hb-portal-label-scale: 1;
	--hb-portal-hook-x: 0px;
	--hb-portal-gear-x: 0px;
	height: 100svh;
	min-height: 620px;
	background: #dff5fa;
}

.hb-hero-cinema__stage {
	position: relative;
	top: auto;
	height: 100svh;
	min-height: 620px;
	background:
		radial-gradient(circle at 50% 62%, rgb(255 218 160 / 26%), transparent 30%),
		radial-gradient(circle at 74% 14%, rgb(121 213 243 / 34%), transparent 30%),
		linear-gradient(160deg, #eefbfe 0%, var(--hb-ice) 48%, #c1ebf3 100%);
}

.hb-hero-cinema__copy,
.hb-hero-cinema__scroll,
.hb-hero-cinema__wash {
	display: none;
}

.hb-hero-cinema__scene {
	inset: 0;
	width: auto;
	overflow: hidden;
	perspective: 1350px;
	perspective-origin: 50% 86%;
	transform-style: preserve-3d;
}

.hb-hero-cinema__horizon {
	position: absolute;
	z-index: 0;
	inset: -6svh -4vw -7svh;
	overflow: hidden;
	opacity: var(--hb-horizon-opacity, 0);
	transform: translate3d(0, var(--hb-horizon-y, 74vh), -40px) rotateX(var(--hb-horizon-tilt, 7deg)) scale(var(--hb-horizon-scale, 1.085));
	transform-origin: 50% 82%;
	backface-visibility: hidden;
	-webkit-mask-image: linear-gradient(to bottom, transparent 0, rgb(0 0 0 / 76%) 7%, #000 17%, #000 100%);
	mask-image: linear-gradient(to bottom, transparent 0, rgb(0 0 0 / 76%) 7%, #000 17%, #000 100%);
	will-change: transform, opacity;
}

.hb-hero-cinema__horizon::after {
	position: absolute;
	inset: 0;
	content: "";
	background:
		radial-gradient(circle at 50% 37%, rgb(255 219 159 / 12%), transparent 30%),
		linear-gradient(180deg, rgb(7 21 29 / 4%) 0%, transparent 42%, rgb(7 21 29 / 12%) 76%, rgb(7 21 29 / 34%) 100%);
	pointer-events: none;
}

.hb-hero-cinema__horizon img,
.hb-hero-cinema__products img,
.hb-hero-cinema__trees img {
	display: block;
	max-width: none;
	-webkit-user-select: none;
	user-select: none;
}

.hb-hero-cinema__horizon img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 42%;
	filter: saturate(1.04) contrast(1.025) brightness(0.94);
	transform: scale(1.02);
}

.hb-hero-cinema__azure {
	z-index: 1;
	inset: 0;
	background:
		linear-gradient(110deg, rgb(39 183 230 / 28%), transparent 42%),
		linear-gradient(0deg, rgb(6 43 59 / 21%), transparent 62%);
	mix-blend-mode: color;
	transform: none;
}

.hb-hero-cinema__mist {
	z-index: 2;
	background:
		radial-gradient(ellipse at 51% 62%, rgb(255 244 219 / 38%) 0 7%, transparent 34%),
		linear-gradient(180deg, transparent 28%, rgb(220 246 251 / 14%) 55%, rgb(7 21 29 / 12%) 100%);
}

.hb-hero-cinema__product-shadow {
	position: absolute;
	z-index: 3;
	left: 50%;
	bottom: 3.5svh;
	width: min(48vw, 44rem);
	height: clamp(3.8rem, 9svh, 7rem);
	border-radius: 50%;
	opacity: var(--hb-shadow-opacity, 0);
	background: radial-gradient(ellipse, rgb(3 18 24 / 72%) 0%, rgb(3 18 24 / 38%) 34%, transparent 72%);
	filter: blur(12px);
	transform: translate3d(-50%, 0, 40px) scaleX(var(--hb-shadow-scale, 0.68));
	transform-origin: center;
	will-change: transform, opacity;
}

.hb-hero-cinema__products {
	position: absolute;
	z-index: 4;
	left: 50%;
	bottom: -7svh;
	width: min(78vw, 74rem);
	height: 96svh;
	opacity: var(--hb-products-opacity, 0);
	transform: translate3d(-50%, var(--hb-products-y, 58vh), 160px) rotateX(var(--hb-products-tilt, 5deg)) scale(var(--hb-products-scale, 0.82));
	transform-origin: 50% 100%;
	backface-visibility: hidden;
	will-change: transform, opacity;
}

.hb-hero-cinema__products img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: 50% 100%;
	filter: drop-shadow(0 1.2rem 1.25rem rgb(3 18 24 / 27%)) drop-shadow(0 3rem 3.5rem rgb(3 18 24 / 21%));
}

.hb-hero-cinema__trees {
	position: absolute;
	z-index: 5;
	top: -3%;
	bottom: -4%;
	overflow: hidden;
	pointer-events: none;
	transform: translate3d(0, var(--hb-trees-y, 22vh), 240px) scale(var(--hb-trees-scale, 1.09));
	backface-visibility: hidden;
	will-change: transform, opacity;
}

.hb-hero-cinema__trees--foundation {
	left: -2%;
	width: 104%;
	opacity: 0.1;
	transform-origin: 50% 100%;
}

.hb-hero-cinema__trees--foundation img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 100%;
}

.hb-hero-cinema__trees--left,
.hb-hero-cinema__trees--right {
	z-index: 6;
	width: 59%;
	opacity: var(--hb-trees-opacity, 0.46);
}

.hb-hero-cinema__trees--left {
	left: -1%;
	transform-origin: 0 100%;
}

.hb-hero-cinema__trees--right {
	right: -1%;
	transform-origin: 100% 100%;
}

.hb-hero-cinema__trees--left img,
.hb-hero-cinema__trees--right img {
	position: absolute;
	top: -3%;
	width: auto;
	height: 106%;
	filter: saturate(0.98) contrast(1.01) drop-shadow(0 1rem 2rem rgb(3 18 24 / 18%));
	will-change: transform;
}

.hb-hero-cinema__trees--left img {
	left: 0;
	transform-origin: 10% 100%;
	animation: hb-hero-tree-left 7.4s ease-in-out infinite alternate;
}

.hb-hero-cinema__trees--right img {
	right: 0;
	transform-origin: 90% 100%;
	animation: hb-hero-tree-right 6.2s ease-in-out -2.3s infinite alternate;
}

.hb-hero-cinema__leaves {
	position: absolute;
	z-index: 7;
	inset: 0;
	overflow: hidden;
	opacity: var(--hb-trees-opacity, 0.46);
	pointer-events: none;
}

.hb-hero-cinema__leaves i {
	position: absolute;
	display: block;
	width: clamp(0.42rem, 0.72vw, 0.9rem);
	height: clamp(0.25rem, 0.42vw, 0.55rem);
	border-radius: 100% 0 100% 0;
	background: linear-gradient(135deg, #2c5b2a, #b6872e 78%);
	box-shadow: 0 0.25rem 0.5rem rgb(3 18 24 / 24%);
	opacity: 0;
	animation: hb-hero-leaf-flight 7.2s linear infinite;
}

.hb-hero-cinema__leaves i:nth-child(1) { top: 18%; left: 8%; animation-delay: -1.2s; animation-duration: 7.8s; }
.hb-hero-cinema__leaves i:nth-child(2) { top: 29%; left: 17%; animation-delay: -5.4s; animation-duration: 9.2s; }
.hb-hero-cinema__leaves i:nth-child(3) { top: 42%; left: 4%; animation-delay: -3.1s; animation-duration: 6.7s; }
.hb-hero-cinema__leaves i:nth-child(4) { top: 13%; left: 26%; animation-delay: -7.2s; animation-duration: 10.4s; }
.hb-hero-cinema__leaves i:nth-child(5) { top: 24%; right: 9%; animation-delay: -2.2s; animation-duration: 8.7s; }
.hb-hero-cinema__leaves i:nth-child(6) { top: 38%; right: 17%; animation-delay: -6.4s; animation-duration: 9.8s; }
.hb-hero-cinema__leaves i:nth-child(7) { top: 15%; right: 28%; animation-delay: -4.8s; animation-duration: 7.5s; }
.hb-hero-cinema__leaves i:nth-child(8) { top: 48%; right: 5%; animation-delay: -1.8s; animation-duration: 10.1s; }
.hb-hero-cinema__leaves i:nth-child(9) { top: 32%; left: 30%; animation-delay: -8.5s; animation-duration: 11.2s; }
.hb-hero-cinema__leaves i:nth-child(10) { top: 46%; right: 31%; animation-delay: -3.7s; animation-duration: 8.2s; }

.hb-hero-cinema__feather {
	z-index: 8;
	opacity: var(--hb-feather-opacity, 0);
	background:
		radial-gradient(ellipse at 50% 112%, rgb(7 21 29 / 36%) 0, transparent 48%),
		linear-gradient(0deg, rgb(7 21 29 / 35%) 0, rgb(7 21 29 / 8%) 24%, transparent 56%);
}

.hb-hero-flock {
	z-index: 3;
	top: 13%;
	left: 0;
	width: min(58rem, 68vw);
	opacity: 0;
	transform: translate3d(-78vw, 7vh, 0) scale(0.74);
	animation: hb-hero-flock-flight 18s linear -5s infinite;
	pointer-events: none;
}

.hb-hero-cinema__late {
	visibility: visible;
	pointer-events: auto;
}

.hb-hero-portal {
	pointer-events: auto;
}

.hb-bird-group--mid {
	opacity: 0.78;
	transform: scale(0.86);
	transform-origin: center;
}

.hb-bird-group--near {
	opacity: 0.92;
}

.hb-bird--6 { animation-delay: -2.8s; animation-duration: 4.8s; }
.hb-bird--7 { animation-delay: -0.35s; animation-duration: 3.6s; }
.hb-bird--8 { animation-delay: -1.75s; animation-duration: 4.1s; }
.hb-bird--9 { animation-delay: -2.45s; animation-duration: 3.25s; }

.hb-hero-portal__label {
	opacity: var(--hb-portal-progress, 0);
	transform: translate3d(0, var(--hb-portal-label-y, 1rem), 0) scaleX(var(--hb-portal-label-scale, 0.86));
}

.hb-hero-portal--hook .hb-hero-portal__label {
	transform-origin: left center;
}

.hb-hero-portal--gear .hb-hero-portal__label {
	transform-origin: right center;
}

@keyframes hb-hero-tree-left {
	0% { transform: translate3d(-3px, 1px, 0) rotate(-0.32deg) scale(1.003); }
	55% { transform: translate3d(2px, -2px, 0) rotate(0.24deg) scale(1); }
	100% { transform: translate3d(6px, 1px, 0) rotate(0.46deg) scale(1.004); }
}

@keyframes hb-hero-tree-right {
	0% { transform: translate3d(4px, -1px, 0) rotate(0.38deg) scale(1.002); }
	48% { transform: translate3d(-1px, 2px, 0) rotate(-0.18deg) scale(1); }
	100% { transform: translate3d(-6px, 0, 0) rotate(-0.5deg) scale(1.004); }
}

@keyframes hb-hero-leaf-flight {
	0%, 12% { opacity: 0; transform: translate3d(0, -2vh, 0) rotate(0deg) scale(0.72); }
	20% { opacity: 0.72; }
	64% { opacity: 0.58; }
	100% { opacity: 0; transform: translate3d(9vw, 38vh, 0) rotate(520deg) scale(1.08); }
}

@keyframes hb-hero-flock-flight {
	0% {
		opacity: 0;
		transform: translate3d(-78vw, 7vh, 0) scale(0.74);
	}

	8%, 82% {
		opacity: 0.68;
	}

	92% {
		opacity: 0.35;
	}

	100% {
		opacity: 0;
		transform: translate3d(112vw, -4vh, 0) scale(1.08);
	}
}

@media (max-width: 900px) {
	.hb-hero-cinema {
		height: 100svh;
	}

	.hb-hero-cinema__scene {
		inset: 0;
		width: auto;
		perspective: 1050px;
	}

	.hb-hero-cinema__horizon {
		inset: -3svh -4vw -4svh;
	}

	.hb-hero-cinema__horizon img {
		object-position: 66% 50%;
	}

	.hb-hero-cinema__products {
		bottom: 2svh;
		width: min(118vw, 54rem);
		height: 83svh;
	}

	.hb-hero-cinema__product-shadow {
		bottom: 10svh;
		width: min(64vw, 34rem);
	}

	.hb-hero-cinema__trees--left,
	.hb-hero-cinema__trees--right {
		width: 64%;
	}

	.hb-hero-flock {
		top: 16%;
		left: 0;
		width: 114vw;
	}

	.hb-hero-portal__label {
		transform-origin: center;
	}
}

@media (max-width: 600px) {
	.hb-hero-cinema {
		height: 100svh;
		min-height: 100svh;
	}

	.hb-hero-cinema__stage {
		min-height: 100svh;
	}

	.hb-hero-cinema__copy {
		top: 42%;
		width: calc(100% - 1.25rem);
	}

	.hb-hero-cinema__copy h1 {
		font-size: clamp(3.65rem, 19.2vw, 5.5rem);
		line-height: 0.76;
	}

	.hb-hero-cinema__intro {
		width: min(31rem, 92%);
		margin-top: 1.15rem;
		font-size: clamp(0.82rem, 3.7vw, 0.98rem);
		line-height: 1.38;
	}

	.hb-hero-cinema__horizon {
		inset: -2svh -2vw -3svh;
	}

	.hb-hero-cinema__horizon img {
		object-position: 80% 50%;
		transform: scale(1.035);
	}

	.hb-hero-cinema__products {
		bottom: 9.5svh;
		width: min(118vw, 32rem);
		height: 72svh;
	}

	.hb-hero-cinema__product-shadow {
		bottom: 15svh;
		width: 74vw;
		height: 3.8rem;
		filter: blur(9px);
	}

	.hb-hero-cinema__trees,
	.hb-hero-cinema__leaves {
		display: none;
	}

	.hb-hero-flock {
		top: 19%;
		left: 0;
		width: 132vw;
	}
}

@media (max-width: 380px) {
	.hb-hero-cinema__horizon img {
		object-position: 82% 50%;
	}
}

html:not(.has-js) .hb-hero-cinema {
	--hb-horizon-y: -2vh;
	--hb-horizon-scale: 1;
	--hb-horizon-tilt: 0deg;
	--hb-horizon-opacity: 1;
	--hb-products-y: -1vh;
	--hb-products-scale: 1;
	--hb-products-tilt: 0deg;
	--hb-products-opacity: 1;
	--hb-shadow-opacity: 0.72;
	--hb-shadow-scale: 1;
	--hb-trees-y: 3.5vh;
	--hb-trees-scale: 1.015;
	--hb-trees-opacity: 1;
	--hb-portal-label-y: 0px;
	--hb-portal-label-scale: 1;
	height: 100svh;
	min-height: 100svh;
}

html:not(.has-js) .hb-hero-cinema__horizon,
html:not(.has-js) .hb-hero-cinema__products,
html:not(.has-js) .hb-hero-cinema__trees,
html:not(.has-js) .hb-hero-cinema__product-shadow {
	opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
	.hb-hero-cinema {
		--hb-horizon-y: -2vh;
		--hb-horizon-scale: 1;
		--hb-horizon-tilt: 0deg;
		--hb-horizon-opacity: 1;
		--hb-products-y: -1vh;
		--hb-products-scale: 1;
		--hb-products-tilt: 0deg;
		--hb-products-opacity: 1;
		--hb-shadow-opacity: 0.72;
		--hb-shadow-scale: 1;
		--hb-trees-y: 3.5vh;
		--hb-trees-scale: 1.015;
		--hb-trees-opacity: 1;
		--hb-portal-label-y: 0px;
		--hb-portal-label-scale: 1;
	}

	.hb-hero-cinema__horizon,
	.hb-hero-cinema__trees {
		opacity: 1;
		transform: none !important;
	}

	.hb-hero-cinema__products {
		opacity: 1;
		transform: translate3d(-50%, -1vh, 160px) scale(1) !important;
	}

	.hb-hero-cinema__product-shadow {
		opacity: 0.72;
		transform: translate3d(-50%, 0, 40px) scaleX(1) !important;
	}

	.hb-hero-cinema__trees img,
	.hb-hero-cinema__leaves i,
	.hb-bird {
		animation: none !important;
	}

	.hb-hero-cinema__leaves {
		display: none;
	}

	.hb-hero-flock {
		top: 16%;
		left: 8vw;
		width: 48vw;
		opacity: 0.72;
		animation: none !important;
		transform: none !important;
	}
}

@media (max-width: 700px) and (prefers-reduced-motion: reduce) {
	.hb-story-step__image,
	.hb-story-step--one .hb-story-step__image,
	.hb-story-step--three .hb-story-step__image {
		transform: none !important;
	}
}

/* --------------------------------------------------------------------------
 * Product-family artwork and progressive catalogue navigation — v0.5.8
 * ----------------------------------------------------------------------- */

.hb-hook-family__primary {
	display: flex;
	min-height: 0;
	padding: 0;
	gap: 0;
	align-items: stretch;
	flex-direction: column;
}

.hb-hook-family__visual {
	display: grid;
	min-height: 7.5rem;
	padding: 0.75rem 1rem;
	place-items: center;
	overflow: hidden;
	background: #eff6cd;
}

.hb-hook-family__visual img {
	display: block;
	width: 100%;
	max-width: 15rem;
	height: auto;
	max-height: 6rem;
	object-fit: contain;
}

.hb-hook-family__visual .hb-hook-family__icon {
	width: 3.2rem;
}

.hb-hook-family__meta {
	display: grid;
	min-height: 5.75rem;
	padding: 1rem;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0.75rem;
	align-items: end;
}

.hb-hook-family__meta > i {
	align-self: start;
	font-size: 1.1rem;
	font-style: normal;
	transition: transform 260ms var(--hb-ease);
}

.hb-hook-family:hover .hb-hook-family__meta > i,
.hb-hook-family__primary:focus-visible .hb-hook-family__meta > i {
	transform: translate3d(0.2rem, -0.2rem, 0);
}

.hb-catalog-menu__row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0.35rem;
	align-items: center;
}

.hb-catalog-menu__row > a {
	min-width: 0;
}

.hb-catalog-menu__toggle {
	display: grid;
	width: 2rem;
	height: 2rem;
	padding: 0;
	border: 1px solid rgb(232 248 252 / 28%);
	border-radius: 50%;
	place-items: center;
	color: inherit;
	background: transparent;
	cursor: pointer;
}

.hb-catalog-menu__toggle > span[aria-hidden="true"] {
	font-size: 1rem;
	line-height: 1;
	transition: transform 240ms var(--hb-ease), color 240ms ease, background-color 240ms ease;
}

.hb-catalog-menu__toggle[aria-expanded="true"] {
	color: var(--hb-blue-black);
	background: var(--hb-azure);
}

.hb-catalog-menu__toggle[aria-expanded="true"] > span[aria-hidden="true"] {
	transform: rotate(45deg);
}

.hb-catalog-menu__toggle:hover,
.hb-catalog-menu__toggle:focus-visible {
	border-color: var(--hb-azure);
	color: var(--hb-blue-black);
	background: var(--hb-azure);
}

.hb-catalog-menu__toggle:focus-visible {
	outline: 3px solid var(--hb-azure);
	outline-offset: 3px;
}

.hb-catalog-menu__submenu[hidden] {
	display: none !important;
}

.hb-catalog-menu__submenu > .hb-catalog-menu__tree {
	margin-top: 0;
}

@media (max-width: 600px) {
	.hb-hook-family__visual {
		min-height: 6.5rem;
		padding: 0.55rem 0.75rem;
	}

	.hb-hook-family__visual img {
		max-width: 13rem;
		max-height: 5.2rem;
	}

	.hb-hook-family__meta {
		min-height: 5rem;
		padding: 0.85rem;
	}

	.hb-catalog-menu__toggle {
		width: 2.25rem;
		height: 2.25rem;
	}
}

/* --------------------------------------------------------------------------
 * Scroll-drawn HookBaits route — v0.5.8
 * ----------------------------------------------------------------------- */

.hb-story-cinema {
	position: relative;
	isolation: isolate;
	overflow-x: clip;
	overflow-y: visible;
	color: var(--hb-ice);
	background: var(--hb-deep-lake);
}

.hb-story-cinema__intro {
	position: relative;
	z-index: 4;
	display: grid;
	box-sizing: border-box;
	min-height: 100svh;
	padding: clamp(7rem, 13vh, 10rem) clamp(1.25rem, 5vw, 5rem) clamp(9rem, 17vh, 13rem);
	place-content: center;
	justify-items: center;
	text-align: center;
	background: var(--hb-deep-lake);
}

.hb-story-cinema__eyebrow {
	margin: 0 0 clamp(2rem, 4vh, 3.5rem);
	padding: 0.72rem 1rem 0.64rem;
	border: 1px solid rgb(232 248 252 / 72%);
	font-size: 0.66rem;
	font-weight: 900;
	letter-spacing: 0.2em;
	line-height: 1;
	text-transform: uppercase;
}

.hb-story-cinema__intro h2 {
	max-width: 12ch;
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(5.4rem, 12.6vw, 12.75rem);
	font-weight: 900;
	letter-spacing: -0.065em;
	line-height: 0.78;
}

.hb-story-cinema__intro > p:last-of-type {
	width: min(100%, 40rem);
	margin: clamp(2.3rem, 5vh, 4rem) auto 0;
	font-size: clamp(1rem, 1.25vw, 1.24rem);
	line-height: 1.55;
}

.hb-story-cinema__start {
	position: absolute;
	z-index: 5;
	bottom: 8.5svh;
	left: 50%;
	display: grid;
	width: clamp(3.65rem, 5vw, 4.5rem);
	height: clamp(3.65rem, 5vw, 4.5rem);
	border-radius: 50%;
	place-items: center;
	color: var(--hb-blue-black);
	background: var(--hb-azure);
	text-decoration: none;
	transform: translateX(-50%);
	transition: transform 260ms var(--hb-ease), background-color 260ms ease;
}

.hb-story-cinema__start::after {
	position: absolute;
	top: 100%;
	left: 50%;
	width: 0;
	height: 17svh;
	border-left: 1.5px dashed var(--hb-azure);
	content: "";
	opacity: 0.7;
}

.hb-story-cinema__start span {
	font-size: 1.25rem;
	line-height: 1;
}

.hb-story-cinema__start:hover,
.hb-story-cinema__start:focus-visible {
	background: var(--hb-ice);
	transform: translateX(-50%) scale(1.08);
}

.hb-story-cinema__start:focus-visible {
	outline: 3px solid var(--hb-ice);
	outline-offset: 5px;
}

.hb-story-step {
	--hb-story-panel-bg: var(--hb-deep-lake);
	--hb-story-panel-color: var(--hb-ice);
	--hb-story-route-base: var(--hb-ice);
	--hb-story-route-live: var(--hb-azure);
	position: relative;
	z-index: 2;
	box-sizing: border-box;
	min-height: 115svh;
	color: var(--hb-story-panel-color);
	background: var(--hb-story-panel-bg);
}

.hb-story-step--one {
	margin-top: -15svh;
	padding-top: 15svh;
}

.hb-story-step--two {
	--hb-story-panel-bg: var(--hb-ivory);
	--hb-story-panel-color: var(--hb-blue-black);
	--hb-story-route-base: var(--hb-blue-black);
	--hb-story-route-live: var(--hb-red);
	min-height: 100svh;
}

.hb-story-step--three {
	--hb-story-panel-bg: var(--hb-azure);
	--hb-story-panel-color: var(--hb-blue-black);
	--hb-story-route-base: var(--hb-blue-black);
	--hb-story-route-live: var(--hb-ice);
	height: 200svh;
	min-height: 200svh;
}

.hb-story-step__sticky {
	position: sticky;
	z-index: 0;
	top: 0;
	display: block;
	box-sizing: border-box;
	height: 100svh;
	min-height: 42rem;
	padding: 0;
	overflow: hidden;
	background: var(--hb-story-panel-bg);
}

.hb-story-step__route {
	position: absolute;
	z-index: 2;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	overflow: visible;
	pointer-events: none;
}

.hb-story-step__route path {
	fill: none;
	vector-effect: non-scaling-stroke;
}

.hb-story-step__route-base {
	stroke: var(--hb-story-route-base);
	stroke-dasharray: 10 14;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.35;
	opacity: 0.46;
}

.hb-story-step__route-live {
	stroke: var(--hb-story-route-live);
	stroke-dasharray: 1 9999;
	stroke-dashoffset: 0;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2.4;
}

.hb-story-step__node {
	position: absolute;
	z-index: 3;
	top: var(--hb-node-y);
	left: var(--hb-node-x);
	display: grid;
	width: 2.9rem;
	height: 2.9rem;
	border: 2px solid var(--hb-story-route-live);
	border-radius: 50%;
	place-items: center;
	color: var(--hb-story-panel-color);
	background: var(--hb-story-panel-bg);
	opacity: 0.46;
	transform: translate(-50%, -50%);
	transition: color 260ms ease, background-color 260ms ease, opacity 260ms ease;
}

.hb-story-step__node b {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1rem;
	font-weight: 900;
	line-height: 1;
}

.hb-story-step__node.is-reached {
	color: var(--hb-blue-black);
	background: var(--hb-story-route-live);
	opacity: 1;
}

.hb-story-step__image {
	position: absolute;
	z-index: 1;
	top: 50%;
	left: 50%;
	width: min(34rem, 38vw);
	aspect-ratio: 1;
	background-position: center;
	background-size: cover;
	box-shadow: 0 2.5rem 7rem rgb(7 21 29 / 30%);
	opacity: var(--hb-step-image-opacity, 0);
	transform: translate3d(-50%, calc(-50% + var(--hb-step-image-y, 4.5rem)), 0) rotate(var(--hb-step-rotate, -4deg)) scale(var(--hb-step-scale, 0.82));
	will-change: transform, opacity, clip-path;
}

.hb-story-step--one .hb-story-step__image {
	background-image: linear-gradient(rgb(7 21 29 / 8%), rgb(7 21 29 / 18%)), url("../images/hook-carp-baits-golden-hour.jpg");
}

.hb-story-step--two .hb-story-step__image {
	background-image: linear-gradient(rgb(244 239 229 / 4%), rgb(7 21 29 / 12%)), url("../images/prodotti-hookbaits-showroom.jpg");
}

.hb-story-step--three .hb-story-step__image {
	z-index: 1;
	inset: 0;
	width: 100%;
	height: 100%;
	aspect-ratio: auto;
	background-image: linear-gradient(rgb(7 21 29 / 10%), rgb(7 21 29 / 34%)), url("../images/community-hook-italian-challenge.jpg");
	box-shadow: none;
	clip-path: inset(var(--hb-step-clip-y, 18%) var(--hb-step-clip-x, 28%));
	opacity: var(--hb-step-image-opacity, 0);
	transform: rotate(var(--hb-step-rotate, -2deg)) scale(var(--hb-step-full-scale, 0.64));
	transform-origin: center;
}

.hb-story-step__title {
	position: absolute;
	z-index: 4;
	top: clamp(6rem, 11vh, 8.5rem);
	left: clamp(1.25rem, 5vw, 5rem);
	max-width: 58rem;
	opacity: var(--hb-step-content-opacity, 0);
	transform: translate3d(0, var(--hb-step-title-y, 3.5rem), 0);
	will-change: transform, opacity;
}

.hb-story-step--two .hb-story-step__title {
	right: clamp(1.25rem, 5vw, 5rem);
	left: auto;
	text-align: right;
}

.hb-story-step__title span {
	display: block;
	margin-bottom: clamp(0.9rem, 2vh, 1.5rem);
	font-size: 0.7rem;
	font-weight: 900;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.hb-story-step__title h3 {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(4.5rem, 7.2vw, 7.4rem);
	font-weight: 900;
	letter-spacing: -0.055em;
	line-height: 0.8;
}

.hb-story-step__copy {
	position: absolute;
	z-index: 4;
	right: clamp(1.25rem, 5vw, 5rem);
	bottom: clamp(4rem, 9vh, 7rem);
	width: min(24rem, 31vw);
	opacity: var(--hb-step-content-opacity, 0);
	transform: translate3d(0, var(--hb-step-copy-y, 2.5rem), 0);
	will-change: transform, opacity;
}

.hb-story-step--two .hb-story-step__copy {
	right: auto;
	left: clamp(1.25rem, 5vw, 5rem);
}

.hb-story-step__copy strong {
	display: block;
	margin-bottom: 0.85rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.5rem, 2vw, 2.2rem);
	letter-spacing: -0.02em;
	line-height: 0.92;
}

.hb-story-step__copy p {
	margin: 0;
	font-size: clamp(0.95rem, 1vw, 1.06rem);
	line-height: 1.55;
}

@media (max-width: 767px) {
	.hb-story-cinema__intro {
		min-height: 100svh;
		min-height: 100dvh;
		padding: calc(var(--hb-header-height) + 4rem) 1.25rem 10rem;
	}

	.hb-story-cinema__eyebrow {
		margin-bottom: 2rem;
		font-size: 0.58rem;
	}

	.hb-story-cinema__intro h2 {
		font-size: clamp(4.4rem, 19.2vw, 6.1rem);
		line-height: 0.8;
	}

	.hb-story-cinema__intro > p:last-of-type {
		margin-top: 2rem;
		font-size: 0.95rem;
	}

	.hb-story-cinema__start {
		bottom: 8svh;
		width: 3.8rem;
		height: 3.8rem;
	}

	.hb-story-cinema__start::after {
		height: 19svh;
	}

	.hb-story-step,
	.hb-story-step--one {
		min-height: 115svh;
		min-height: 115dvh;
	}

	.hb-story-step--one,
	.hb-story-step--two {
		overflow: hidden;
	}

	.hb-story-step--two {
		min-height: 100svh;
		min-height: 100dvh;
	}

	.hb-story-step--three {
		height: 200svh;
		height: 200dvh;
		min-height: 200svh;
		min-height: 200dvh;
		overflow: clip;
	}

	.hb-story-step__sticky {
		position: relative;
		top: auto;
		display: block;
		height: 100svh;
		height: var(--hb-visual-vh, 100dvh);
		min-height: 0;
		padding: 0;
		grid-template-rows: none;
		gap: 0;
		align-content: normal;
	}

	.hb-story-step--three .hb-story-step__sticky {
		position: sticky;
		top: 0;
	}

	.hb-story-step__route {
		left: -6%;
		width: 112%;
	}

	.hb-story-step__image,
	.hb-story-step--one .hb-story-step__image,
	.hb-story-step--two .hb-story-step__image {
		position: absolute;
		top: 48%;
		left: 50%;
		width: min(58.6vw, 14.3rem);
		margin: 0;
		aspect-ratio: 1;
		transform: translate3d(-50%, calc(-50% + var(--hb-step-image-y, 2.75rem)), 0) rotate(var(--hb-step-rotate, -4deg)) scale(var(--hb-step-scale, 0.9));
	}

	.hb-story-step--three .hb-story-step__image {
		inset: 0;
		width: 100%;
		height: 100%;
		clip-path: inset(var(--hb-step-clip-y, 29%) var(--hb-step-clip-x, 8%));
		transform: rotate(var(--hb-step-rotate, -2deg)) scale(var(--hb-step-full-scale, 0.64));
	}

	.hb-story-step__title,
	.hb-story-step--two .hb-story-step__title {
		position: absolute;
		z-index: 4;
		top: max(calc(var(--hb-header-height) + 1.15rem), calc(env(safe-area-inset-top) + 4.75rem));
		right: auto;
		left: 1.25rem;
		max-width: calc(100% - 2.5rem);
		margin: 0;
		grid-row: auto;
		align-self: auto;
		text-align: left;
	}

	.hb-story-step__title span {
		margin-bottom: 0.8rem;
		font-size: 0.6rem;
	}

	.hb-story-step__title h3 {
		font-size: clamp(3rem, 13.1vw, 4.35rem);
		line-height: 0.81;
	}

	.hb-story-step__sticky > .hb-story-step__copy,
	.hb-story-step--two .hb-story-step__sticky > .hb-story-step__copy {
		position: absolute;
		z-index: 4;
		right: auto;
		bottom: max(1.35rem, calc(env(safe-area-inset-bottom) + 0.8rem));
		left: 1.25rem;
		width: min(calc(100% - 2.5rem), 20.25rem);
		margin: 0;
		grid-row: auto;
		align-self: auto;
	}

	.hb-story-step__copy strong {
		font-size: clamp(1.45rem, 7vw, 2rem);
	}

	.hb-story-step__copy p {
		font-size: 0.88rem;
		line-height: 1.44;
	}
}

@media (max-width: 767px) and (max-height: 700px) {
	.hb-story-step__title,
	.hb-story-step--two .hb-story-step__title {
		top: max(calc(var(--hb-header-height) + 0.55rem), calc(env(safe-area-inset-top) + 4rem));
	}

	.hb-story-step__title span {
		margin-bottom: 0.45rem;
	}

	.hb-story-step__title h3 {
		font-size: clamp(2.7rem, 11.8vw, 3.5rem);
	}

	.hb-story-step__image,
	.hb-story-step--one .hb-story-step__image,
	.hb-story-step--two .hb-story-step__image {
		top: calc(47.5% + 2rem);
		width: min(50vw, 11.5rem);
	}

	.hb-story-step__copy strong {
		margin-bottom: 0.5rem;
		font-size: 1.2rem;
	}

	.hb-story-step__copy p {
		font-size: 0.78rem;
		line-height: 1.38;
	}
}

@media (prefers-reduced-motion: reduce) {
	.hb-story-cinema__start,
	.hb-story-step__node,
	.hb-story-step__image {
		transition: none !important;
	}

	.hb-story-step__image,
	.hb-story-step--one .hb-story-step__image,
	.hb-story-step--two .hb-story-step__image {
		opacity: 1;
		transform: translate3d(-50%, -50%, 0) !important;
	}

	.hb-story-step--three .hb-story-step__image {
		clip-path: inset(0);
		transform: none !important;
	}

	.hb-story-step__title,
	.hb-story-step__copy {
		opacity: 1;
		transform: none;
	}
}

html:not(.has-js) .hb-story-step__image,
html:not(.has-js) .hb-story-step__title,
html:not(.has-js) .hb-story-step__copy {
	opacity: 1;
}

html:not(.has-js) .hb-story-step__title,
html:not(.has-js) .hb-story-step__copy {
	transform: none;
}

html:not(.has-js) .hb-story-step__route-live {
	stroke-dasharray: none;
	stroke-dashoffset: 0;
}

html:not(.has-js) .hb-story-step__node {
	color: var(--hb-blue-black);
	background: var(--hb-story-route-live);
	opacity: 1;
}

/* --------------------------------------------------------------------------
 * Mobile catalogue polish — v0.5.9
 * ----------------------------------------------------------------------- */

@media (max-width: 600px) {
	/* Match the clean shop grid: the grid gap must not expose a grey backdrop. */
	.hb-product-shelf .woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.75rem !important;
		background: transparent;
		align-items: stretch;
	}

	.hb-product-shelf .woocommerce ul.products li.product,
	.hb-product-shelf--carphook .woocommerce ul.products li.product {
		display: flex;
		min-width: 0;
		margin: 0 !important;
		padding: 0 0 1rem;
		border: 0;
		border-bottom: 1px solid rgb(6 43 59 / 16%);
		background: transparent;
		flex-direction: column;
	}

	.hb-product-shelf .woocommerce ul.products li.product a img {
		display: block;
		width: 100%;
		height: auto;
		margin: 0 0 0.75rem;
		padding: 0.3rem;
		box-sizing: border-box;
		aspect-ratio: 1;
		object-fit: contain;
		background: transparent;
	}

	.hb-product-shelf .woocommerce-loop-product__link,
	.hb-product-shelf .woocommerce-loop-product__link:hover,
	.hb-product-shelf .woocommerce-loop-product__link:focus-visible {
		color: inherit;
		text-decoration: none;
	}

	.hb-product-shelf .woocommerce-loop-product__title {
		display: -webkit-box;
		min-height: 3.1em;
		margin: 0 0 0.5rem !important;
		overflow: hidden;
		font-size: 1rem !important;
		line-height: 1;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 3;
	}

	.hb-product-shelf .price {
		margin-bottom: 0.2rem;
		font-size: 0.9rem !important;
	}

	.hb-product-shelf .button {
		width: fit-content !important;
		max-width: 100%;
		min-height: 2.5rem;
		margin-top: auto !important;
		padding: 0.5rem 0.62rem !important;
		font-size: 0.54rem !important;
		line-height: 1.15;
		white-space: normal;
	}

	/* Keep the desktop family language on phones, including every descendant. */
	.hb-hook-families__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.65rem;
		align-items: start;
	}

	.hb-hook-family,
	.hb-hook-family__primary {
		min-width: 0;
		min-height: 0;
	}

	.hb-hook-family__visual {
		display: grid !important;
		min-height: 5.5rem;
		padding: 0.5rem;
		visibility: visible;
		opacity: 1;
	}

	.hb-hook-family__visual img {
		display: block !important;
		width: 100%;
		max-width: 100%;
		height: 4.4rem;
		max-height: 4.4rem;
		visibility: visible;
		opacity: 1;
		object-fit: contain;
	}

	.hb-hook-family__meta {
		min-height: 4.6rem;
		padding: 0.7rem;
		gap: 0.35rem;
	}

	.hb-hook-family__copy strong {
		font-size: 1rem;
		line-height: 0.98;
	}

	.hb-hook-family__copy small {
		font-size: 0.5rem;
	}

	.hb-hook-family__children,
	.hb-hook-family__children .hb-hook-family__children {
		padding: 0.3rem 0.5rem 0.65rem;
		gap: 0.3rem;
	}

	.hb-hook-family__children a {
		min-height: 1.95rem;
		padding: 0.36rem 0.5rem;
		font-size: 0.54rem;
	}
}

@media (max-width: 359px) {
	.hb-product-shelf .woocommerce ul.products,
	.hb-hook-families__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.hb-hook-family__visual {
		min-height: 6.25rem;
	}

	.hb-hook-family__visual img {
		height: 5rem;
		max-height: 5rem;
	}
}

/* --------------------------------------------------------------------------
 * Compact mobile portals and artwork-first family cards — v0.5.10
 * ----------------------------------------------------------------------- */

/* The uploaded artwork already names the family, so keep the repeated copy
 * accessible without dedicating a second visible row to it. */
.hb-hook-family__primary.has-artwork {
	position: relative;
}

.hb-hook-family__primary.has-artwork .hb-hook-family__meta {
	position: absolute;
	z-index: 2;
	inset: 0;
	display: block;
	min-height: 0;
	padding: 0;
	pointer-events: none;
}

.hb-hook-family__primary.has-artwork .hb-hook-family__copy {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	border: 0;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.hb-hook-family__primary.has-artwork .hb-hook-family__meta > i {
	position: absolute;
	right: 0.75rem;
	bottom: 0.75rem;
	display: grid;
	width: 2.2rem;
	height: 2.2rem;
	border: 1px solid rgb(6 43 59 / 22%);
	border-radius: 50%;
	place-items: center;
	color: var(--hb-blue-black);
	background: rgb(244 239 229 / 92%);
	box-shadow: 0 0.5rem 1.25rem rgb(7 21 29 / 14%);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}

.hb-hook-family:hover .hb-hook-family__primary.has-artwork .hb-hook-family__meta > i,
.hb-hook-family__primary.has-artwork:focus-visible .hb-hook-family__meta > i {
	background: var(--hb-azure);
	transform: translate3d(0.18rem, -0.18rem, 0);
}

.hb-hook-family.is-current .hb-hook-family__primary.has-artwork .hb-hook-family__visual {
	box-shadow: inset 0 0 0 2px var(--hb-azure);
}

@media (min-width: 360px) and (max-width: 600px) {
	.hb-hero-portals {
		right: 0.7rem;
		bottom: max(5.75rem, calc(env(safe-area-inset-bottom) + 5.15rem));
		left: 0.7rem;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.5rem;
	}

	.hb-hero-portal {
		min-width: 0;
		filter: drop-shadow(0 0.55rem 1.15rem rgb(7 21 29 / 34%));
	}

	.hb-hero-portal__label {
		min-height: 4.75rem;
		padding: 0.62rem 2.55rem 0.62rem 0.65rem;
		clip-path: polygon(0 0, calc(100% - 0.75rem) 0, 100% 0.75rem, 100% 100%, 0 100%);
	}

	.hb-hero-portal__label small {
		font-size: 0.44rem;
		letter-spacing: 0.1em;
		line-height: 1.2;
	}

	.hb-hero-portal__label strong {
		margin: 0.12rem 0 0;
		font-size: clamp(1.05rem, 4.6vw, 1.22rem);
		line-height: 0.9;
	}

	.hb-hero-portal__label b {
		right: 0.55rem;
		bottom: 0.55rem;
		width: 1.9rem;
		height: 1.9rem;
		font-size: 0.76rem;
	}

	.hb-hook-family__primary.has-artwork .hb-hook-family__meta > i {
		right: 0.5rem;
		bottom: 0.5rem;
		width: 1.75rem;
		height: 1.75rem;
		font-size: 0.76rem;
	}
}

@media (max-width: 359px) {
	.hb-hero-portals {
		right: 0.7rem;
		bottom: max(4.75rem, calc(env(safe-area-inset-bottom) + 4.25rem));
		left: 0.7rem;
		gap: 0.4rem;
	}

	.hb-hero-portal__label {
		min-height: 4.15rem;
		padding: 0.52rem 2.45rem 0.52rem 0.65rem;
	}

	.hb-hero-portal__label small {
		font-size: 0.43rem;
		line-height: 1.16;
	}

	.hb-hero-portal__label strong {
		font-size: 1.12rem;
	}

	.hb-hero-portal__label b {
		right: 0.5rem;
		bottom: 0.5rem;
		width: 1.85rem;
		height: 1.85rem;
		font-size: 0.72rem;
	}
}

/* v0.5.16 final cascade guard: later legacy/mobile release blocks intentionally
 * remain in the file, so the approved geometry is restated at the true end. */
.hb-hero-cinema__products {
	bottom: 0;
	width: min(56vw, 52rem);
	height: min(85svh, 55rem);
}

.hb-hero-cinema__products img {
	object-fit: contain;
	object-position: 50% 100%;
}

.hb-story-step--two .hb-story-step__image {
	left: 63%;
	width: min(40rem, 44vw);
	aspect-ratio: 16 / 10;
	background-image: linear-gradient(rgb(244 239 229 / 2%), rgb(7 21 29 / 16%)), url("../images/carphook-pro-cinematic-bg.jpg");
	background-position: center;
	background-size: cover;
}

.hb-story-step--two .hb-story-step__title {
	position: absolute;
	right: auto;
	left: clamp(1.25rem, 5vw, 5rem);
	max-width: 38vw;
	text-align: left;
}

.hb-story-step--two .hb-story-step__title h3 {
	font-size: clamp(3.8rem, min(6vw, 12.5vh), 6.25rem);
}

.hb-story-step--two .hb-story-step__copy {
	bottom: clamp(2.25rem, 5.5vh, 4.5rem);
}

@media (min-width: 768px) and (max-height: 900px) {
	.hb-manifesto-cinema__copy {
		padding-block: clamp(4.5rem, 7vh, 5.75rem) clamp(2rem, 4vh, 3rem);
	}

	.hb-manifesto-cinema__copy .hb-cinema-kicker {
		top: clamp(4.5rem, 7vh, 5.75rem);
	}

	.hb-manifesto-cinema__copy h2 {
		max-width: min(74rem, 92vw);
		font-size: clamp(3.25rem, min(6.4vw, 12vh), 6.5rem);
		line-height: 0.82;
	}

	.hb-manifesto-cinema__note {
		margin-top: 1.25rem;
	}

	.hb-story-step__title h3 {
		font-size: clamp(3.2rem, min(5.3vw, 10vh), 5.6rem);
	}

	.hb-story-step--two .hb-story-step__image {
		left: 66%;
		width: min(36rem, 36vw);
	}

	.hb-story-step__copy,
	.hb-story-step--two .hb-story-step__copy {
		bottom: clamp(2rem, 5vh, 4rem);
	}

	.hb-community-orbit__copy h2 {
		font-size: clamp(4.75rem, min(10.5vw, 18vh), 9rem);
		line-height: 0.72;
	}

	.hb-community-orbit__copy > p:not(.hb-cinema-kicker) {
		margin-block: 0.75rem;
	}

	.hb-orbit-link {
		margin-top: 1rem;
	}
}

@media (max-width: 960px) {
	.hb-hero-cinema__products {
		bottom: 5svh;
		width: min(90vw, 33rem);
		height: 69svh;
	}
}

@media (max-width: 767px) {
	.hb-story-step--two .hb-story-step__image {
		top: 48%;
		left: 50%;
		width: min(78vw, 18rem);
		aspect-ratio: 16 / 10;
	}

	.hb-story-step--two .hb-story-step__title {
		left: 1.25rem;
		max-width: calc(100% - 2.5rem);
	}

	.hb-story-step--two .hb-story-step__title h3 {
		font-size: clamp(2.9rem, 12vw, 4rem);
	}

	.hb-story-step--two .hb-story-step__copy {
		bottom: max(1.35rem, calc(env(safe-area-inset-bottom) + 0.8rem));
	}
}

@media (max-width: 600px) {
	.hb-hero-cinema__products {
		bottom: 12.5svh;
		width: min(88vw, 25rem);
		height: 60svh;
	}
}

/* v0.5.18: keep the CarpHook Pro mark locked to the second route image. */
.hb-story-step--two .hb-story-step__brand {
	position: absolute;
	z-index: 2;
	top: 50%;
	left: 50%;
	display: block;
	width: min(68%, 27rem);
	height: 64%;
	margin: 0;
	object-fit: contain;
	transform: translate(-50%, -50%);
	filter: drop-shadow(0 0.9rem 1.5rem rgb(3 18 24 / 48%));
	pointer-events: none;
}

@media (max-width: 767px) {
	.hb-story-step--two .hb-story-step__brand {
		width: 72%;
		height: 68%;
	}
}

/* v0.5.18: editorial masonry for the approved event photography. */
.hb-event-media {
	position: relative;
	left: 50%;
	width: min(84rem, calc(100vw - 2rem));
	max-width: none;
	margin: clamp(4rem, 8vw, 8rem) 0 0 !important;
	transform: translateX(-50%);
}

.hb-event-media__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1.25rem;
	padding-bottom: 0.9rem;
	border-bottom: 1px solid rgb(6 43 59 / 22%);
}

.hb-event-media__head p {
	margin: 0;
}

.hb-event-media__head > p:last-child {
	color: rgb(6 43 59 / 64%);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.hb-event-media__grid {
	columns: 3 18rem;
	column-gap: clamp(0.6rem, 1.2vw, 1rem);
}

.hb-event-media__item {
	position: relative;
	display: inline-block;
	width: 100%;
	margin: 0 0 clamp(0.6rem, 1.2vw, 1rem);
	overflow: hidden;
	break-inside: avoid;
	background: var(--hb-deep-lake);
}

.hb-event-media__item a,
.hb-event-media__item img {
	display: block;
	width: 100%;
}

.hb-event-media__item img {
	height: auto;
	transition: transform 420ms cubic-bezier(0.22, 1, 0.36, 1), opacity 300ms ease;
}

.hb-event-media__item a:hover img,
.hb-event-media__item a:focus-visible img {
	transform: scale(1.025);
	opacity: 0.92;
}

.hb-event-media__video {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(15rem, 26rem);
	align-items: end;
	gap: clamp(1.5rem, 4vw, 4rem);
	margin: clamp(3rem, 7vw, 6rem) 0 0;
	padding: clamp(1.25rem, 3vw, 2.5rem);
	color: var(--hb-ice);
	background: var(--hb-deep-lake);
}

.hb-event-media__video figcaption {
	display: grid;
	gap: 0.45rem;
	align-self: start;
	text-transform: uppercase;
}

.hb-event-media__video figcaption span {
	color: var(--hb-azure);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.14em;
}

.hb-event-media__video figcaption strong {
	max-width: 9ch;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2.8rem, 6vw, 6rem);
	font-weight: 700;
	letter-spacing: -0.055em;
	line-height: 0.82;
}

.hb-event-media__video video {
	display: block;
	width: 100%;
	max-height: 72svh;
	margin: 0 auto;
	background: #000;
	object-fit: contain;
}

@media (max-width: 767px) {
	.hb-event-media {
		width: min(calc(100% - 1.5rem), 34rem);
		margin-top: 3rem;
	}

	.hb-event-media__grid {
		columns: 2 9rem;
		column-gap: 0.55rem;
	}

	.hb-event-media__item {
		margin-bottom: 0.55rem;
	}

	.hb-event-media__video {
		grid-template-columns: 1fr;
		padding: 1rem;
	}

	.hb-event-media__video figcaption strong {
		max-width: 12ch;
		font-size: clamp(2.5rem, 13vw, 4rem);
	}

	.hb-event-media__video video {
		max-width: 21rem;
	}
}

/* v0.5.20: in-article photo lightbox and long event-title safeguards. */
.hb-event-media__item a {
	position: relative;
	cursor: zoom-in;
}

.hb-event-media__item a::after {
	position: absolute;
	top: 0.7rem;
	right: 0.7rem;
	display: grid;
	width: 2.55rem;
	height: 2.55rem;
	border: 1px solid rgb(232 248 252 / 64%);
	border-radius: 50%;
	place-items: center;
	color: var(--hb-ice);
	content: "+";
	font-size: 1.25rem;
	font-weight: 400;
	background: rgb(3 18 24 / 68%);
	box-shadow: 0 0.7rem 1.8rem rgb(3 18 24 / 22%);
	opacity: 0;
	transform: translateY(-0.3rem);
	transition: opacity 220ms ease, transform 220ms ease;
	pointer-events: none;
}

.hb-event-media__item a:hover::after,
.hb-event-media__item a:focus-visible::after {
	opacity: 1;
	transform: translateY(0);
}

.hb-event-media__item a:focus-visible {
	outline: 3px solid var(--hb-azure);
	outline-offset: 3px;
}

html.hb-lightbox-open {
	overflow: hidden;
}

.hb-lightbox {
	box-sizing: border-box;
	width: 100vw;
	max-width: none;
	height: 100dvh;
	max-height: none;
	margin: 0;
	padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
	overflow: hidden;
	border: 0;
	color: var(--hb-ice);
	background: rgb(3 18 24 / 97%);
}

.hb-lightbox:not([open]) {
	display: none;
}

.hb-lightbox[open] {
	display: grid;
	place-items: stretch;
}

.hb-lightbox::backdrop {
	background: rgb(3 18 24 / 96%);
	backdrop-filter: blur(10px);
}

.hb-lightbox__stage {
	position: relative;
	display: grid;
	min-width: 0;
	min-height: 0;
	place-items: stretch;
}

.hb-lightbox__figure {
	display: grid;
	min-width: 0;
	min-height: 0;
	height: 100%;
	margin: 0;
	grid-template-rows: minmax(0, 1fr) auto;
}

.hb-lightbox__viewer {
	display: grid;
	min-width: 0;
	min-height: 0;
	padding: 0.75rem 5.5rem 1rem;
	place-items: center;
	touch-action: pan-y;
}

.hb-lightbox__image {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: calc(100dvh - 7.25rem);
	object-fit: contain;
	box-shadow: 0 2rem 6rem rgb(0 0 0 / 38%);
	opacity: 1;
	transform: scale(1);
	transition: opacity 180ms ease, transform 260ms cubic-bezier(0.22, 1, 0.36, 1);
}

.hb-lightbox.is-loading .hb-lightbox__image {
	opacity: 0.25;
	transform: scale(0.985);
}

.hb-lightbox__footer {
	display: grid;
	min-height: 3.6rem;
	padding: 0.75rem clamp(4rem, 8vw, 7rem) 0.2rem;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 1rem;
	align-items: center;
}

.hb-lightbox__counter {
	display: inline-flex;
	min-width: 4.25rem;
	min-height: 2.4rem;
	padding: 0.45rem 0.75rem;
	border: 1px solid rgb(232 248 252 / 30%);
	border-radius: 999px;
	align-items: center;
	justify-content: center;
	color: var(--hb-sky);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.09em;
}

.hb-lightbox__caption {
	min-width: 0;
	color: rgb(232 248 252 / 78%);
	font-size: clamp(0.72rem, 1vw, 0.88rem);
	line-height: 1.35;
	overflow-wrap: anywhere;
}

.hb-lightbox__close,
.hb-lightbox__nav {
	position: absolute;
	z-index: 4;
	display: grid;
	width: 3rem;
	height: 3rem;
	min-width: 3rem;
	min-height: 3rem;
	padding: 0;
	border: 1px solid rgb(232 248 252 / 38%);
	border-radius: 50%;
	place-items: center;
	color: var(--hb-ice);
	background: rgb(3 18 24 / 72%);
	box-shadow: 0 0.8rem 2.5rem rgb(0 0 0 / 22%);
	cursor: pointer;
	transition: color 180ms ease, background-color 180ms ease, transform 180ms ease;
}

.hb-lightbox__close:hover,
.hb-lightbox__nav:hover {
	color: var(--hb-blue-black);
	background: var(--hb-azure);
	transform: scale(1.05);
}

.hb-lightbox__close:focus-visible,
.hb-lightbox__nav:focus-visible {
	outline: 3px solid var(--hb-azure);
	outline-offset: 3px;
}

.hb-lightbox__close {
	top: 0;
	right: 0;
	font-size: 1.7rem;
	line-height: 1;
}

.hb-lightbox__nav {
	top: 50%;
	font-size: 1.15rem;
	transform: translateY(-50%);
}

.hb-lightbox__nav:hover {
	transform: translateY(-50%) scale(1.05);
}

.hb-lightbox__prev {
	left: 0;
}

.hb-lightbox__next {
	right: 0;
}

.hb-event-single__title {
	max-width: 24ch;
	font-size: clamp(3.25rem, 8.2vw, 8.75rem);
	line-height: 0.78;
	overflow-wrap: anywhere;
	text-wrap: balance;
}

.hb-event-card h3,
.hb-event-card h3 a {
	overflow-wrap: anywhere;
	text-wrap: balance;
}

.hb-event-grid--archive .hb-event-card h3 {
	font-size: clamp(2rem, 3.4vw, 4.35rem);
}

.hb-event-grid--archive .hb-event-card--featured h3 {
	font-size: clamp(2.25rem, 3.6vw, 4.6rem);
}

@media (max-width: 767px) {
	.hb-event-media__item a::after {
		top: 0.45rem;
		right: 0.45rem;
		width: 2rem;
		height: 2rem;
		font-size: 1rem;
		opacity: 0.82;
		transform: none;
	}

	.hb-lightbox {
		padding: max(0.55rem, env(safe-area-inset-top)) max(0.55rem, env(safe-area-inset-right)) max(0.55rem, env(safe-area-inset-bottom)) max(0.55rem, env(safe-area-inset-left));
	}

	.hb-lightbox__viewer {
		padding: 3.7rem 0.15rem 0.75rem;
	}

	.hb-lightbox__image {
		max-height: calc(100dvh - 8.4rem);
	}

	.hb-lightbox__footer {
		min-height: 4.2rem;
		padding: 0.6rem 3.75rem 0.15rem;
		grid-template-columns: 1fr;
		gap: 0.3rem;
		text-align: center;
	}

	.hb-lightbox__counter {
		position: absolute;
		top: 0.25rem;
		left: 0.25rem;
		min-width: 3.6rem;
		min-height: 2.25rem;
	}

	.hb-lightbox__caption {
		display: -webkit-box;
		overflow: hidden;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
	}

	.hb-lightbox__close {
		top: 0.25rem;
		right: 0.25rem;
	}

	.hb-lightbox__nav {
		top: auto;
		bottom: 0.15rem;
		transform: none;
	}

	.hb-lightbox__nav:hover {
		transform: scale(1.05);
	}

	.hb-lightbox__prev {
		left: 0.25rem;
	}

	.hb-lightbox__next {
		right: 0.25rem;
	}

	.hb-event-single__title {
		font-size: clamp(2.55rem, 12.4vw, 4.4rem);
		line-height: 0.83;
	}

	.hb-event-grid--archive .hb-event-card h3,
	.hb-event-grid--archive .hb-event-card--featured h3 {
		font-size: clamp(1.9rem, 9vw, 3.1rem);
	}
}

@media (prefers-reduced-motion: reduce) {
	.hb-event-media__item a::after,
	.hb-lightbox__image,
	.hb-lightbox__close,
	.hb-lightbox__nav {
		transition: none;
	}
}

/* --------------------------------------------------------------------------
 * Mobile media, compact family artwork and gallery hardening — v0.5.21
 * ----------------------------------------------------------------------- */

/* The artwork already carries the family name. Keep only the illustration and
 * its overlaid arrow; descendant chips below remain untouched. */
.hb-hook-family__primary.has-artwork,
.hb-hook-family:hover > .hb-hook-family__primary.has-artwork,
.hb-hook-family.is-current > .hb-hook-family__primary.has-artwork {
	display: block;
	min-height: 0;
	padding: 0;
	background: transparent;
}

.hb-hook-family__primary.has-artwork .hb-hook-family__visual {
	display: block !important;
	min-height: 0;
	padding: 0;
	line-height: 0;
	overflow: hidden;
	background: transparent;
	box-shadow: none;
}

.hb-hook-family__primary.has-artwork .hb-hook-family__visual img {
	display: block !important;
	width: 100%;
	max-width: none;
	height: auto;
	max-height: none;
	object-fit: contain;
}

.hb-hook-family__primary.has-artwork .hb-hook-family__meta > i {
	right: 0.65rem;
	bottom: 0.65rem;
}

/* Same CarpHook scene as its category panel, with the mark retained above it. */
.hb-product-shelf__empty {
	background:
		linear-gradient(180deg, rgb(7 21 29 / 30%), rgb(7 21 29 / 90%)),
		url("../images/carphook-pro-logo-transparent.png") center / min(74%, 42rem) auto no-repeat,
		linear-gradient(180deg, rgb(3 18 24 / 18%), rgb(3 18 24 / 68%)),
		url("../images/carphook-pro-cinematic-bg.jpg") center / cover no-repeat;
}

.hb-story-step--two .hb-story-step__brand {
	z-index: 4;
}

.hb-hero-cinema__horizon picture,
.hb-hero-cinema__products picture,
.hb-hero-cinema__trees picture {
	display: block;
	width: 100%;
	height: 100%;
}

/* Avoid Safari double-tap zoom on controls without disabling intentional page
 * zoom globally. The close control stays inside the visual viewport. */
.hb-lightbox__viewer,
.hb-lightbox__image {
	touch-action: pan-y pinch-zoom;
}

.hb-lightbox__close,
.hb-lightbox__nav {
	touch-action: manipulation;
	-webkit-user-select: none;
	user-select: none;
	-webkit-tap-highlight-color: transparent;
}

/* Defer layout/paint work for heavy sections that start below the fold. */
.hb-product-shelf,
.hb-event-media {
	content-visibility: auto;
	contain-intrinsic-size: auto 900px;
}

@media (max-width: 767px) {
	/* The portrait supplied by the client is used only for the manifesto reveal
	 * on phones. The desktop showroom photograph remains unchanged. */
	body.home .hb-manifesto-cinema__media {
		background-image:
			linear-gradient(0deg, rgb(7 21 29 / 42%), transparent 55%),
			url("../images/manifesto-showroom-mobile.jpg");
		background-position: center;
		background-size: cover;
	}

	.hb-hook-family__primary.has-artwork .hb-hook-family__meta > i {
		right: 0.42rem;
		bottom: 0.42rem;
		width: 1.75rem;
		height: 1.75rem;
		font-size: 0.76rem;
	}

	.hb-lightbox__close {
		position: fixed;
		z-index: 20;
		top: max(0.55rem, env(safe-area-inset-top));
		right: max(0.55rem, env(safe-area-inset-right));
	}
}

