/*!
 * HEPI — core stylesheet
 * Loaded on every page. Homepage and shop styles live in separate files.
 * Design tokens that the Customizer controls are printed inline in <head>.
 */

/* ========================================================================
   1. Tokens
   ==================================================================== */
:root {
	--hp-paper: #ffffff;
	--hp-paper-2: #f6f6f7;
	--hp-paper-3: #ededef;
	--hp-mute: #6e6e76;
	--hp-mute-2: #8b8b93;
	--hp-line: #e4e4e7;
	--hp-line-2: #d3d3d8;
	--hp-ok: #0b7a45;

	/* Fallbacks — overwritten by the inline token block. */
	--hp-ink: #0b0b0c;
	--hp-ink-rgb: 11, 11, 12;
	--hp-accent: #ffcd4e;
	--hp-accent-rgb: 255, 205, 78;
	--hp-accent-ink: #0b0b0c;
	--hp-accent-text: #876e29;
	--hp-sale: #c8102e;
	--hp-base: 16px;
	--hp-radius: 0px;
	--hp-radius-lg: 2px;
	--hp-radius-pill: 999px;
	--hp-display-transform: uppercase;
	--hp-display-spacing: .02em;
	--hp-grid-cols: 4;
	--hp-btn-bg: var(--hp-ink);
	--hp-btn-fg: #fff;
	--hp-font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

	--hp-container: 1560px;
	--hp-gutter: clamp(16px, 4vw, 56px);
	--hp-header-h: 64px;
	--hp-announce-h: 36px;

	--hp-s1: 4px;
	--hp-s2: 8px;
	--hp-s3: 12px;
	--hp-s4: 16px;
	--hp-s5: 24px;
	--hp-s6: 32px;
	--hp-s7: 48px;
	--hp-s8: 64px;
	--hp-s9: 96px;

	--hp-sec-y: clamp(48px, 7vw, 104px);
	--hp-shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 8px 24px rgba(0, 0, 0, .06);
	--hp-shadow-lg: 0 24px 64px rgba(0, 0, 0, .14);
	--hp-ease: cubic-bezier(.2, .7, .3, 1);
	--hp-z-header: 60;
	--hp-z-overlay: 90;
	--hp-z-drawer: 95;
}

/* ========================================================================
   2. Reset / base
   ==================================================================== */
*,
*::before,
*::after { box-sizing: border-box; }

/* Author-level rule so [hidden] always wins over component display values. */
[hidden] { display: none !important; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--hp-header-h) + 16px);
}

body {
	margin: 0;
	font-family: var(--hp-font);
	font-size: var(--hp-base);
	line-height: 1.55;
	color: var(--hp-ink);
	background: var(--hp-paper);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-wrap: break-word;
}

body.hp-locked { overflow: hidden; }

img,
picture,
video,
canvas,
svg { display: block; max-width: 100%; }

img { height: auto; }

button,
input,
select,
textarea { font: inherit; color: inherit; }

button { cursor: pointer; }

a { color: inherit; text-decoration: none; }

/* Underline links inside written content only — never in navigation,
   product cards, footers or other UI. */
.hp-entry a:where(:not([class])),
.woocommerce-Tabs-panel a:where(:not([class])) {
	text-decoration: underline;
	text-underline-offset: .18em;
	text-decoration-thickness: 1px;
}

.hp-entry a:where(:not([class])):hover,
.woocommerce-Tabs-panel a:where(:not([class])):hover { color: var(--hp-accent-text); }

hr { border: 0; border-top: 1px solid var(--hp-line); margin: var(--hp-s7) 0; }

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

:focus-visible {
	outline: 2px solid var(--hp-accent-text);
	outline-offset: 2px;
}

::selection { background: var(--hp-ink); color: #fff; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*,
	*::before,
	*::after {
		animation-duration: .001ms !important;
		transition-duration: .001ms !important;
	}
}

/* ========================================================================
   3. Typography
   ==================================================================== */
h1, h2, h3, h4, h5, h6 {
	margin: 0 0 .5em;
	font-weight: 800;
	line-height: 1.06;
	letter-spacing: -.015em;
}

h1 { font-size: clamp(2rem, 5vw, 3.5rem); }
h2 { font-size: clamp(1.6rem, 3.4vw, 2.5rem); }
h3 { font-size: clamp(1.25rem, 2.2vw, 1.6rem); }
h4 { font-size: 1.125rem; }

p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }

.hp-display,
.hp-hero__title,
.hp-sechead__title,
.hp-editorial__title,
.hp-story__title,
.hp-promo__title,
.hp-news__title,
.hp-page-title {
	text-transform: var(--hp-display-transform);
	letter-spacing: var(--hp-display-spacing);
	font-weight: 800;
}

.hp-eyebrow {
	margin: 0 0 var(--hp-s3);
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--hp-mute);
}

.hp-lead { font-size: 1.125rem; color: var(--hp-mute); }
.hp-small { font-size: .875rem; }
.hp-muted { color: var(--hp-mute); }

blockquote {
	margin: var(--hp-s6) 0;
	padding-left: var(--hp-s5);
	border-left: 3px solid var(--hp-ink);
	font-size: 1.15rem;
	font-weight: 500;
}

code, pre {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: .9em;
}

pre {
	padding: var(--hp-s5);
	background: var(--hp-paper-2);
	overflow: auto;
	border-radius: var(--hp-radius-lg);
}

/* ========================================================================
   4. Layout utilities
   ==================================================================== */
.hp-container {
	width: 100%;
	max-width: var(--hp-container);
	margin-inline: auto;
	padding-inline: var(--hp-gutter);
}

.hp-container--narrow { max-width: 820px; }
.hp-container--mid { max-width: 1140px; }

.hp-section { padding-block: var(--hp-sec-y); }
.hp-section--tight { padding-block: clamp(32px, 4vw, 56px); }
.hp-section--flush { padding-block: 0; }

.hp-main { min-height: 40vh; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.hp-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 1000;
	padding: 12px 20px;
	background: var(--hp-ink);
	color: #fff;
	font-weight: 700;
}

.hp-skip:focus { left: 8px; top: 8px; }

.hp-hide-sm { display: none; }

@media (min-width: 768px) {
	.hp-hide-sm { display: inline-flex; }
}

.hp-img { width: 100%; height: 100%; object-fit: cover; }

.hp-ratio {
	position: relative;
	overflow: hidden;
	background: var(--hp-paper-2);
}

.hp-ratio > img,
.hp-ratio > a > img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hp-ratio--4x5 { aspect-ratio: 4 / 5; }
.hp-ratio--1x1 { aspect-ratio: 1 / 1; }
.hp-ratio--3x4 { aspect-ratio: 3 / 4; }
.hp-ratio--16x9 { aspect-ratio: 16 / 9; }

/* ========================================================================
   5. Buttons, chips, links
   ==================================================================== */
.hp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 48px;
	padding: 0 26px;
	border: 1px solid transparent;
	border-radius: var(--hp-radius);
	background: var(--hp-btn-bg);
	color: var(--hp-btn-fg);
	font-size: .875rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	text-align: center;
	transition: background-color .18s var(--hp-ease), color .18s var(--hp-ease), border-color .18s var(--hp-ease), transform .18s var(--hp-ease);
}

.hp-btn:hover { background: var(--hp-accent); color: var(--hp-accent-ink); }
.hp-btn:active { transform: translateY(1px); }

.hp-btn--outline {
	background: transparent;
	color: var(--hp-ink);
	border-color: var(--hp-ink);
}

.hp-btn--outline:hover { background: var(--hp-ink); color: #fff; }

.hp-btn--light {
	background: #fff;
	color: var(--hp-ink);
}

.hp-btn--light:hover { background: var(--hp-accent); color: var(--hp-accent-ink); }

.hp-btn--ghost-light {
	background: transparent;
	color: #fff;
	border-color: rgba(255, 255, 255, .6);
}

.hp-btn--ghost-light:hover { background: #fff; color: var(--hp-ink); border-color: #fff; }

.hp-btn--sm { min-height: 40px; padding: 0 18px; font-size: .78rem; }
.hp-btn--lg { min-height: 56px; padding: 0 34px; }
.hp-btn--block { display: flex; width: 100%; }

.hp-btn[disabled],
.hp-btn.is-loading { opacity: .6; pointer-events: none; }

.hp-link-arrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	border-bottom: 1px solid currentColor;
	padding-bottom: 2px;
	white-space: nowrap;
}

.hp-link-arrow svg { transition: transform .2s var(--hp-ease); }
.hp-link-arrow:hover svg { transform: translateX(4px); }

.hp-iconbtn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	position: relative;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	border-radius: var(--hp-radius-pill);
	transition: background-color .15s var(--hp-ease);
}

.hp-iconbtn:hover { background: rgba(var(--hp-ink-rgb), .06); }

.hp-count {
	position: absolute;
	top: 3px;
	right: 2px;
	min-width: 18px;
	height: 18px;
	padding: 0 4px;
	border-radius: 999px;
	background: var(--hp-accent);
	color: var(--hp-accent-ink);
	font-size: .6875rem;
	font-weight: 700;
	line-height: 18px;
	text-align: center;
}

.hp-chiplist {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.hp-chip {
	display: inline-flex;
	align-items: center;
	height: 36px;
	padding: 0 14px;
	border: 1px solid var(--hp-line-2);
	border-radius: var(--hp-radius-pill);
	font-size: .8125rem;
	font-weight: 600;
	transition: border-color .15s, background-color .15s, color .15s;
}

.hp-chip:hover { border-color: var(--hp-ink); background: var(--hp-ink); color: #fff; }

.hp-badge {
	display: inline-flex;
	align-items: center;
	height: 24px;
	padding: 0 8px;
	font-size: .6875rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	background: var(--hp-ink);
	color: #fff;
	border-radius: var(--hp-radius);
}

.hp-badge--sale { background: var(--hp-sale); }
.hp-badge--new { background: var(--hp-accent); color: var(--hp-accent-ink); }
.hp-badge--out { background: var(--hp-mute); }

/* ========================================================================
   6. Forms
   ==================================================================== */
.hp-input,
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="number"],
input[type="date"],
select,
textarea {
	width: 100%;
	min-height: 48px;
	padding: 12px 14px;
	border: 1px solid var(--hp-line-2);
	border-radius: var(--hp-radius);
	background: var(--hp-paper);
	color: var(--hp-ink);
	transition: border-color .15s var(--hp-ease), box-shadow .15s var(--hp-ease);
}

textarea { min-height: 120px; }

.hp-input:focus,
input:focus,
select:focus,
textarea:focus {
	border-color: var(--hp-ink);
	box-shadow: 0 0 0 3px rgba(var(--hp-ink-rgb), .08);
	outline: none;
}

label { font-size: .875rem; font-weight: 600; }

/* ========================================================================
   7. Announcement bar
   ==================================================================== */
.hp-announce {
	background: var(--hp-ink);
	color: #fff;
}

.hp-announce__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: var(--hp-announce-h);
}

.hp-announce__text {
	margin: 0;
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	text-align: center;
}

a.hp-announce__text:hover { color: var(--hp-accent); }

/* ========================================================================
   8. Header
   ==================================================================== */
.hp-header {
	position: relative;
	z-index: var(--hp-z-header);
	background: var(--hp-paper);
	border-bottom: 1px solid var(--hp-line);
}

body.hp-sticky-header .hp-header {
	position: sticky;
	top: 0;
	transition: box-shadow .2s var(--hp-ease);
}

body.hp-sticky-header .hp-header.is-stuck {
	box-shadow: 0 1px 0 var(--hp-line), 0 6px 20px rgba(0, 0, 0, .05);
}

/* Three zones: brand (left) — navigation (centred) — actions (right).
   Below the nav breakpoint the nav is hidden, so the outer columns size to
   their content — equal columns there would squeeze the icon row into the
   wordmark. From 1100px up the outer columns are equal, which puts the nav on
   the true centre line of the header whatever the logo or icon row width. */
.hp-header__inner {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: var(--hp-s4);
	min-height: var(--hp-header-h);
}

@media (min-width: 1100px) {
	.hp-header__inner { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
}

.hp-header__left {
	display: flex;
	align-items: center;
	gap: var(--hp-s2);
	justify-self: start;
	min-width: 0;
}

.hp-header__actions {
	display: flex;
	align-items: center;
	gap: 2px;
	justify-self: end;
}

.hp-brand {
	margin: 0;
	line-height: 1;
	display: flex;
	align-items: center;
}

.hp-brand__link {
	display: flex;
	align-items: center;
	line-height: 1;
}

.hp-brand__word {
	display: block;
	font-size: 1.5rem;
	font-weight: 900;
	letter-spacing: .16em;
	text-transform: uppercase;
	line-height: 1;
	padding-left: .06em;
	/* A line box of 1em still carries descender space, which makes an
	   all-caps wordmark sit visually high. This nudges it onto the optical
	   centre of the header. */
	transform: translateY(0.055em);
}

.hp-brand--footer .hp-brand__word { color: #fff; }

.hp-brand--image { line-height: 0; }
.hp-brand--image img { display: block; max-height: 40px; width: auto; }
.hp-brand--footer .hp-brand__word { transform: none; }

.hp-header__burger { display: inline-flex; }

@media (min-width: 1100px) {
	.hp-header__burger { display: none; }
}

/* ---- Primary nav ---- */
.hp-nav { display: none; }

@media (min-width: 1100px) {
	.hp-nav {
		display: block;
		align-self: stretch;
	}
}

.hp-nav__list {
	display: flex;
	align-items: stretch;
	gap: 2px;
	height: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

.hp-nav__item { display: flex; align-items: stretch; }

.hp-nav__link {
	display: inline-flex;
	align-items: center;
	padding: 0 14px;
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	position: relative;
}

.hp-nav__link span { position: relative; }

.hp-nav__link span::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -6px;
	height: 2px;
	background: var(--hp-ink);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .22s var(--hp-ease);
}

.hp-nav__item:hover > .hp-nav__link span::after,
.hp-nav__item.is-current > .hp-nav__link span::after,
.hp-nav__link:focus-visible span::after { transform: scaleX(1); }

.hp-nav__item.is-accent > .hp-nav__link { color: var(--hp-sale); }

/* ---- Mega panel ---- */
.hp-mega {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	background: var(--hp-paper);
	border-top: 1px solid var(--hp-line);
	border-bottom: 1px solid var(--hp-line);
	box-shadow: var(--hp-shadow);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity .18s var(--hp-ease), transform .18s var(--hp-ease), visibility .18s;
	pointer-events: none;
}

.hp-nav__item.has-mega:hover > .hp-mega,
.hp-nav__item.has-mega.is-open > .hp-mega,
.hp-nav__item.has-mega:focus-within > .hp-mega {
	opacity: 1;
	visibility: visible;
	transform: none;
	pointer-events: auto;
}

.hp-mega__inner { padding-block: var(--hp-s7); }

.hp-mega__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	gap: var(--hp-s6);
	align-items: start;
}

.hp-mega__heading {
	display: block;
	margin: 0 0 var(--hp-s3);
	font-size: .75rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--hp-ink);
}

a.hp-mega__heading:hover { color: var(--hp-accent-text); }

.hp-mega__list,
.hp-mega__sublist {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 9px;
}

.hp-mega__item > a {
	font-size: .9375rem;
	color: var(--hp-mute);
	transition: color .14s;
}

.hp-mega__item > a:hover { color: var(--hp-ink); }

.hp-mega__promo { grid-column: span 1; }

.hp-mega__promo-link {
	display: block;
	position: relative;
	overflow: hidden;
	border-radius: var(--hp-radius-lg);
}

.hp-mega__promo-link img { width: 100%; height: 220px; object-fit: cover; }

.hp-mega__promo-title {
	position: absolute;
	left: 16px;
	bottom: 14px;
	color: #fff;
	font-weight: 800;
	font-size: .875rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	text-shadow: 0 1px 8px rgba(0, 0, 0, .5);
}

/* ========================================================================
   9. Search overlay
   ==================================================================== */
.hp-overlay {
	position: fixed;
	inset: 0;
	z-index: var(--hp-z-overlay);
	background: var(--hp-paper);
	overflow-y: auto;
	animation: hp-fade .18s var(--hp-ease);
}

@keyframes hp-fade { from { opacity: 0; } to { opacity: 1; } }

.hp-search__inner { padding-block: clamp(20px, 5vw, 56px); }

.hp-search__form {
	display: flex;
	align-items: center;
	gap: var(--hp-s3);
	border-bottom: 2px solid var(--hp-ink);
	padding-bottom: var(--hp-s3);
}

.hp-search__field {
	flex: 1;
	border: 0;
	min-height: 52px;
	padding: 0;
	font-size: clamp(1.1rem, 3vw, 1.75rem);
	font-weight: 600;
	background: none;
}

.hp-search__field:focus { box-shadow: none; border: 0; }

.hp-search__submit { flex: 0 0 auto; }

.hp-search__results { margin-top: var(--hp-s6); }

.hp-search__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: var(--hp-s5);
	margin: 0;
	padding: 0;
	list-style: none;
}

.hp-search__item a { display: block; }
.hp-search__item img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; background: var(--hp-paper-2); }
.hp-search__name { display: block; margin-top: 8px; font-size: .875rem; font-weight: 600; }
.hp-search__price { display: block; font-size: .8125rem; color: var(--hp-mute); }

.hp-search__suggest { margin-top: var(--hp-s7); }

/* ========================================================================
   10. Drawers + scrim
   ==================================================================== */
.hp-scrim {
	position: fixed;
	inset: 0;
	z-index: calc(var(--hp-z-drawer) - 1);
	background: rgba(0, 0, 0, .45);
	animation: hp-fade .2s var(--hp-ease);
}

.hp-drawer {
	position: fixed;
	top: 0;
	bottom: 0;
	z-index: var(--hp-z-drawer);
	width: min(420px, 92vw);
	background: var(--hp-paper);
	display: flex;
	flex-direction: column;
	box-shadow: var(--hp-shadow-lg);
}

.hp-drawer--left { left: 0; animation: hp-slide-l .26s var(--hp-ease); }
.hp-drawer--right { right: 0; animation: hp-slide-r .26s var(--hp-ease); }

@keyframes hp-slide-l { from { transform: translateX(-100%); } }
@keyframes hp-slide-r { from { transform: translateX(100%); } }

.hp-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--hp-s4);
	padding: var(--hp-s3) var(--hp-s4) var(--hp-s3) var(--hp-s5);
	border-bottom: 1px solid var(--hp-line);
	flex: 0 0 auto;
}

.hp-drawer__title {
	font-size: 1rem;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.hp-drawer__foot {
	margin-top: auto;
	border-top: 1px solid var(--hp-line);
	padding: var(--hp-s4) var(--hp-s5);
	display: grid;
	gap: var(--hp-s3);
	flex: 0 0 auto;
}

/* ---- Mobile nav ---- */
.hp-mnav {
	flex: 1 1 auto;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

.hp-mnav__list,
.hp-mnav__panel {
	margin: 0;
	padding: 0;
	list-style: none;
}

.hp-mnav__item--d0 { border-bottom: 1px solid var(--hp-line); }

.hp-mnav__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.hp-mnav__link {
	display: block;
	flex: 1;
	padding: 16px var(--hp-s5);
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.hp-mnav__item--d1 > .hp-mnav__row > .hp-mnav__link,
.hp-mnav__item--d1 > .hp-mnav__link {
	font-size: .875rem;
	letter-spacing: .1em;
	color: var(--hp-mute);
	padding-block: 12px;
}

.hp-mnav__item--d2 > .hp-mnav__link {
	font-size: .9375rem;
	font-weight: 500;
	text-transform: none;
	letter-spacing: 0;
	padding: 10px var(--hp-s5) 10px calc(var(--hp-s5) + 16px);
	color: var(--hp-mute);
}

.hp-mnav__item.is-accent > .hp-mnav__link,
.hp-mnav__item.is-accent > .hp-mnav__row > .hp-mnav__link { color: var(--hp-sale); }

.hp-mnav__toggle {
	width: 48px;
	height: 48px;
	border: 0;
	background: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-right: 4px;
}

.hp-mnav__toggle svg { transition: transform .2s var(--hp-ease); }
.hp-mnav__toggle[aria-expanded="true"] svg { transform: rotate(180deg); }

.hp-mnav__panel { background: var(--hp-paper-2); }

.hp-mnav__util {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: .875rem;
	font-weight: 600;
}

/* ---- Cart drawer ---- */
.hp-cartdrawer {
	flex: 1 1 auto;
	overflow-y: auto;
	padding: var(--hp-s5);
	display: flex;
	flex-direction: column;
}

/* ========================================================================
   11. Breadcrumbs
   ==================================================================== */
.hp-crumbs {
	border-bottom: 1px solid var(--hp-line);
	font-size: .8125rem;
	color: var(--hp-mute);
}

.hp-crumbs__list,
.hp-crumbs .woocommerce-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	padding-block: 12px;
}

.hp-crumbs a:hover { color: var(--hp-ink); }
.hp-crumbs__sep { color: var(--hp-line-2); }

/* ========================================================================
   12. Section heading
   ==================================================================== */
.hp-sechead {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--hp-s5);
	margin-bottom: var(--hp-s6);
	flex-wrap: wrap;
}

.hp-sechead--center {
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.hp-sechead__title { margin: 0; }
.hp-sechead__sub { margin: 10px 0 0; color: var(--hp-mute); max-width: 56ch; }

/* ========================================================================
   13. Pagination
   ==================================================================== */
.hp-pagination ul,
.woocommerce-pagination ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px;
	margin: var(--hp-s7) 0 0;
	padding: 0;
	list-style: none;
	border: 0;
}

.hp-pagination a,
.hp-pagination span,
.woocommerce-pagination a,
.woocommerce-pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 12px;
	border: 1px solid var(--hp-line);
	border-radius: var(--hp-radius);
	font-size: .875rem;
	font-weight: 600;
}

.hp-pagination .current,
.woocommerce-pagination .current {
	background: var(--hp-ink);
	color: #fff;
	border-color: var(--hp-ink);
}

.hp-pagination a:hover,
.woocommerce-pagination a:hover { border-color: var(--hp-ink); }

/* ========================================================================
   14. Blog / editor content
   ==================================================================== */
.hp-page-head {
	padding-block: clamp(32px, 5vw, 72px);
	border-bottom: 1px solid var(--hp-line);
}

.hp-page-title { margin: 0; }
.hp-page-sub { margin: 12px 0 0; color: var(--hp-mute); max-width: 62ch; }

.hp-layout {
	display: grid;
	gap: var(--hp-s8);
	align-items: start;
}

@media (min-width: 1000px) {
	.hp-layout--sidebar { grid-template-columns: minmax(0, 1fr) 300px; }
}

.hp-postgrid {
	display: grid;
	gap: var(--hp-s6);
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}

.hp-postcard__media { margin-bottom: var(--hp-s4); }
.hp-postcard__media img { transition: transform .5s var(--hp-ease); }
.hp-postcard:hover .hp-postcard__media img { transform: scale(1.04); }

.hp-postcard__title {
	font-size: 1.125rem;
	margin: 0 0 8px;
	letter-spacing: -.01em;
}

.hp-postcard__title a:hover { color: var(--hp-accent-text); }

.hp-postmeta {
	font-size: .75rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--hp-mute);
	margin: 0 0 8px;
}

.hp-postmeta__cat { color: var(--hp-ink); font-weight: 700; margin-right: 8px; }

.hp-entry { max-width: 78ch; }

.hp-entry > * + * { margin-top: 1.1em; }

.hp-entry img,
.hp-entry figure { border-radius: var(--hp-radius-lg); }

.hp-entry h2 { margin-top: 1.6em; }
.hp-entry h3 { margin-top: 1.4em; }

.hp-entry ul,
.hp-entry ol { padding-left: 1.2em; }
.hp-entry li + li { margin-top: .4em; }

.hp-entry table th,
.hp-entry table td {
	border: 1px solid var(--hp-line);
	padding: 10px 12px;
	text-align: left;
}

.widget { margin-bottom: var(--hp-s7); }
.widget-title {
	font-size: .8125rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	margin-bottom: var(--hp-s4);
}

.widget ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.widget ul a { font-size: .9375rem; color: var(--hp-mute); }
.widget ul a:hover { color: var(--hp-ink); }

/* Comments */
.hp-comments { margin-top: var(--hp-s8); border-top: 1px solid var(--hp-line); padding-top: var(--hp-s7); }
.hp-comments ol { list-style: none; margin: 0; padding: 0; }
.hp-comments .children { list-style: none; padding-left: var(--hp-s6); }
.hp-comments article { padding: var(--hp-s5) 0; border-bottom: 1px solid var(--hp-line); }
.comment-form { display: grid; gap: var(--hp-s4); max-width: 640px; }

/* 404 */
.hp-404 { text-align: center; padding-block: clamp(64px, 12vw, 160px); }
.hp-404__code {
	font-size: clamp(4rem, 18vw, 11rem);
	font-weight: 900;
	line-height: .85;
	letter-spacing: -.04em;
	margin: 0 0 var(--hp-s5);
}

/* ========================================================================
   15. Newsletter block
   ==================================================================== */
.hp-news {
	display: grid;
	gap: var(--hp-s5);
	align-items: center;
}

@media (min-width: 900px) {
	.hp-news { grid-template-columns: 1fr minmax(360px, 480px); gap: var(--hp-s8); }
}

.hp-news__title { margin: 0 0 8px; font-size: clamp(1.4rem, 2.6vw, 2rem); }
.hp-news__text { margin: 0; color: var(--hp-mute); }

.hp-news__form {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: var(--hp-s2);
}

.hp-news__form .hp-news__msg,
.hp-news__form .hp-news__small {
	grid-column: 1 / -1;
	margin: 0;
	font-size: .75rem;
	color: var(--hp-mute);
}

.hp-news__msg:empty { display: none; }
.hp-news__msg.is-ok { color: var(--hp-ok); font-weight: 600; }
.hp-news__msg.is-error { color: var(--hp-sale); font-weight: 600; }

/* ========================================================================
   16. Footer
   ==================================================================== */
.hp-footer {
	background: var(--hp-ink);
	color: rgba(255, 255, 255, .72);
	margin-top: var(--hp-sec-y);
}

body.hp-home .hp-footer { margin-top: 0; }

/* Signup band — the first thing in the footer, deliberately prominent. */
.hp-footer__news {
	border-bottom: 1px solid rgba(255, 255, 255, .14);
	padding-block: clamp(32px, 5vw, 56px);
	background: rgba(255, 255, 255, .04);
}

.hp-footer__news .hp-news {
	align-items: center;
	gap: var(--hp-s5);
}

@media (min-width: 900px) {
	.hp-footer__news .hp-news { grid-template-columns: 1fr minmax(380px, 520px); gap: var(--hp-s8); }
}

.hp-footer__news .hp-news__title {
	color: #fff;
	font-size: clamp(1.35rem, 2.6vw, 2rem);
	margin-bottom: 6px;
}

.hp-footer__news .hp-news__text { color: rgba(255, 255, 255, .75); }
.hp-footer__news .hp-news__small { color: rgba(255, 255, 255, .5); }

.hp-footer__news .hp-input {
	background: rgba(255, 255, 255, .06);
	border-color: rgba(255, 255, 255, .28);
	color: #fff;
}

.hp-footer__news .hp-input::placeholder { color: rgba(255, 255, 255, .5); }
.hp-footer__news .hp-input:focus {
	border-color: #fff;
	box-shadow: 0 0 0 3px rgba(255, 255, 255, .12);
}

.hp-footer__news .hp-btn { background: var(--hp-accent); color: var(--hp-accent-ink); }
.hp-footer__news .hp-btn:hover { background: #fff; color: var(--hp-ink); }

.hp-footer__grid {
	display: grid;
	gap: var(--hp-s7);
	padding-block: clamp(40px, 6vw, 72px);
	grid-template-columns: 1fr 1fr;
}

/* auto-fit collapses any column that has no content, so a footer with fewer
   than four link menus fills the row instead of leaving a gap. */
@media (min-width: 720px) {
	.hp-footer__grid { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
}

@media (min-width: 1100px) {
	.hp-footer__grid { grid-template-columns: minmax(230px, 1.5fr) repeat(auto-fit, minmax(150px, 1fr)); }
}

.hp-footer__brand { grid-column: 1 / -1; }

@media (min-width: 720px) {
	.hp-footer__brand { grid-column: span 2; }
}

@media (min-width: 1100px) {
	.hp-footer__brand { grid-column: auto; }
}

.hp-footer__about {
	margin: var(--hp-s4) 0 var(--hp-s5);
	max-width: 38ch;
	font-size: .9375rem;
}

.hp-footer__heading {
	margin: 0 0 var(--hp-s4);
	color: #fff;
	font-size: .75rem;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.hp-footer__links {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 11px;
}

.hp-footer__links a { font-size: .9375rem; transition: color .15s; }
.hp-footer__links a:hover { color: #fff; }

.hp-footer__contact {
	list-style: none;
	margin: 0 0 var(--hp-s5);
	padding: 0;
	display: grid;
	gap: 10px;
	font-size: .875rem;
}

.hp-footer__contact li { display: flex; gap: 10px; align-items: flex-start; }
.hp-footer__contact svg { flex: 0 0 auto; margin-top: 3px; opacity: .7; }
.hp-footer__contact a:hover { color: #fff; }

.hp-social {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.hp-social__link {
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	border-bottom: 1px solid rgba(255, 255, 255, .3);
	padding-bottom: 2px;
}

.hp-social__link:hover { color: #fff; border-color: #fff; }

/* Icon style */
.hp-social--icons { gap: 10px; }

.hp-social__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: var(--hp-radius-pill);
	color: rgba(255, 255, 255, .8);
	transition: background-color .18s var(--hp-ease), color .18s var(--hp-ease), border-color .18s var(--hp-ease);
}

.hp-social__icon:hover,
.hp-social__icon:focus-visible {
	background: var(--hp-accent);
	border-color: var(--hp-accent);
	color: var(--hp-accent-ink);
}

/* Facebook is a filled glyph; everything else is a stroke. */
.hp-social__icon .hp-icon--facebook,
.hp-social__icon .hp-icon--youtube path:last-child { fill: currentColor; stroke: none; }

/* Service bar: region note · secure checkout · payment badges · social */
.hp-footer__service {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: var(--hp-s4) var(--hp-s6);
	padding-block: var(--hp-s5);
	border-top: 1px solid rgba(255, 255, 255, .12);
}

.hp-footer__region {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	font-size: .8125rem;
	font-weight: 600;
	color: #fff;
}

.hp-footer__region svg { opacity: .6; }

.hp-footer__service .hp-social { margin-left: auto; }

@media (max-width: 767px) {
	.hp-footer__service { justify-content: flex-start; }
	.hp-footer__service .hp-social { margin-left: 0; }
}

.hp-footer__pay {
	display: flex;
	align-items: center;
	gap: var(--hp-s4);
	flex-wrap: wrap;
}

.hp-footer__pay-label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #fff;
}

.hp-footer__pay-img { max-height: 28px; width: auto; }

.hp-footer__bar { border-top: 1px solid rgba(255, 255, 255, .12); }

.hp-footer__bar-inner {
	display: flex;
	flex-wrap: wrap;
	gap: var(--hp-s3) var(--hp-s6);
	justify-content: space-between;
	padding-block: var(--hp-s5);
	font-size: .75rem;
}

.hp-footer__copy,
.hp-footer__legal { margin: 0; }

/* ========================================================================
   17. Scroll to top
   ==================================================================== */
.hp-totop {
	position: fixed;
	right: 18px;
	bottom: 18px;
	z-index: 70;
	width: 44px;
	height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--hp-line-2);
	border-radius: var(--hp-radius-pill);
	background: var(--hp-paper);
	color: var(--hp-ink);
	box-shadow: var(--hp-shadow);
	transition: transform .2s var(--hp-ease), background-color .2s, border-color .2s, color .2s;
}

.hp-totop:hover,
.hp-totop:focus-visible {
	background: var(--hp-accent);
	border-color: var(--hp-accent);
	color: var(--hp-accent-ink);
	transform: translateY(-2px);
}

body.hp-has-chat .hp-totop { bottom: 78px; }

/* ========================================================================
   18. Small pieces
   ==================================================================== */
.hp-searchform {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 8px;
	max-width: 520px;
}

.hp-page-search { margin-top: var(--hp-s5); }

.hp-404__cta {
	display: flex;
	gap: var(--hp-s3);
	justify-content: center;
	flex-wrap: wrap;
	margin-top: var(--hp-s6);
}

.hp-404__search { display: flex; justify-content: center; margin-top: var(--hp-s7); }
.hp-404__search .hp-searchform { margin-inline: auto; }

.hp-empty { text-align: center; padding-block: var(--hp-s8); }
.hp-empty p { margin-top: var(--hp-s4); }

.hp-single__media { border-radius: var(--hp-radius-lg); margin-top: var(--hp-s6); }

.hp-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: var(--hp-s6); }
.hp-tags a {
	display: inline-flex;
	align-items: center;
	height: 32px;
	padding: 0 12px;
	border: 1px solid var(--hp-line);
	border-radius: var(--hp-radius-pill);
	font-size: .75rem;
	color: var(--hp-mute);
}
.hp-tags a:hover { border-color: var(--hp-ink); color: var(--hp-ink); }

.hp-postnav {
	display: grid;
	gap: var(--hp-s4);
	margin-top: var(--hp-s8);
	padding-top: var(--hp-s6);
	border-top: 1px solid var(--hp-line);
}

@media (min-width: 700px) {
	.hp-postnav .nav-links { display: grid; grid-template-columns: 1fr 1fr; gap: var(--hp-s6); }
	.hp-postnav .nav-next { text-align: right; }
}

.hp-postnav a { font-weight: 700; display: block; }
.hp-postnav .hp-eyebrow { margin-bottom: 4px; display: block; }

.hp-sidebar { position: sticky; top: calc(var(--hp-header-h) + 20px); }

.hp-pagelinks { display: flex; gap: 8px; margin-top: var(--hp-s5); font-size: .875rem; }

/* ========================================================================
   19. Elementor guard rails
   ==================================================================== */
.hp-elementor .hp-main > .elementor { width: 100%; }
.elementor-widget-container p:last-child { margin-bottom: 0; }
