:root {
	--ff-ink: #0b0806;
	--ff-ink-2: #100b07;
	--ff-soot: #16110b;
	--ff-soot-2: #1e1710;
	--ff-line: #2a2018;
	--ff-line-2: #3a2c1f;
	--ff-amber: #fc9e0b;
	--ff-red: #fa3f20;
	--ff-orange: #f04b1b;
	--ff-glow: #f4ead9;
	--ff-ash: #8c8177;
	--ff-ash-dim: #5f574e;
	--ff-ember: linear-gradient(180deg, var(--ff-amber) 0%, var(--ff-red) 100%);
	--ff-ember-h: linear-gradient(110deg, var(--ff-amber) 0%, var(--ff-orange) 55%, var(--ff-red) 100%);
	--ff-bloom: 0 0 42px -6px rgba(252, 158, 11, 0.45);
	--ff-bloom-red: 0 14px 50px -18px rgba(250, 63, 32, 0.55);
	--ff-display: "Work Sans", ui-sans-serif, system-ui, sans-serif;
	--ff-body: "Work Sans", ui-sans-serif, system-ui, sans-serif;
	--ff-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
	--ff-card-media-ratio: 16 / 10;
	--ff-card-art-width: 66%;
	--ff-card-overhang: 17%;
	--ff-wt-hero: 600;
	--ff-wt-head: 700;
	--ff-track-hero: -0.03em;
	--ff-track-head: -0.025em;
	--ff-hero: clamp(2.6rem, 1.4rem + 4.6vw, 5.4rem);
	--ff-h1: clamp(2rem, 1.3rem + 2.6vw, 3.1rem);
	--ff-h2: clamp(1.5rem, 1.1rem + 1.6vw, 2.25rem);
	--ff-h3: clamp(1.15rem, 1rem + 0.6vw, 1.4rem);
	--ff-small: 0.8125rem;

	--ff-container: 1200px;
	--ff-wide: 1360px;
	--ff-gutter: clamp(1.15rem, 0.6rem + 2.6vw, 3rem);
	--ff-radius: 14px;
	--ff-head-h: calc(100px + 1.7rem + 1px);
	--ff-radius-sm: 9px;
	--ff-radius-pill: 999px;
	--ff-section: clamp(3.5rem, 2rem + 6vw, 7rem);
	--ff-ease: cubic-bezier(0.22, 1, 0.36, 1);
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--ff-ink);
	color: var(--ff-glow);
	font-family: var(--ff-body);
	font-size: 1.0625rem;
	line-height: 1.6;
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
img { border-style: none; }
input, select, textarea, button, optgroup {
	font-family: inherit;
	letter-spacing: inherit;
}

input[type="number"], .woocommerce .quantity .qty {
	font-variant-numeric: tabular-nums;
}
a { color: var(--ff-orange); text-decoration: none; transition: color 0.2s var(--ff-ease); }
a:hover { color: var(--ff-amber); }
h1, h2, h3, h4 {
	font-family: var(--ff-display);
	font-weight: var(--ff-wt-head);
	line-height: 1.05;
	letter-spacing: var(--ff-track-head);
	margin: 0 0 0.5em;
	color: #fff;
}
p { margin: 0 0 1.15rem; }
ul, ol { margin: 0 0 1.15rem; padding-left: 1.2rem; }
strong { font-weight: 600; color: #fff; }
hr { border: 0; border-top: 1px solid var(--ff-line); margin: 2rem 0; }
::selection { background: rgba(252, 158, 11, 0.28); color: #fff; }
:focus-visible {
	outline: 2px solid var(--ff-amber);
	outline-offset: 3px;
	border-radius: 3px;
}
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden; clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap; border: 0; padding: 0; margin: -1px;
}
.ff-skip {
	position: fixed; top: -100px; left: 1rem; z-index: 999;
	background: var(--ff-amber); color: var(--ff-ink);
	padding: 0.6rem 1rem; border-radius: var(--ff-radius-sm);
	font-family: var(--ff-body); font-weight: 600; font-size: var(--ff-small);
	transition: top 0.2s var(--ff-ease);
}
.ff-skip:focus { top: 1rem; color: var(--ff-ink); }
.ff-container { width: 100%; max-width: var(--ff-container); margin-inline: auto; padding-inline: var(--ff-gutter); }
.ff-main { overflow-x: clip; }
.ff-container--wide { max-width: var(--ff-wide); }
.ff-section { padding-block: var(--ff-section); }
.ff-eyebrow {
	font-family: var(--ff-body);
	font-size: 0.9375rem;
	font-weight: 500;
	letter-spacing: 0;
	color: var(--ff-amber);
	margin: 0 0 1.1rem;
	display: inline-flex;
	align-items: center;
	gap: 0.7rem;
}
.ff-eyebrow::before {
	content: "";
	width: 26px; height: 2px;
	background: var(--ff-ember-h);
	border-radius: 2px;
}
.ff-ember-text {
	background: var(--ff-ember-h);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.ff-section__head { max-width: 62ch; margin-bottom: clamp(1.75rem, 3vw, 2.75rem); }
.ff-section__head h2 { font-size: var(--ff-h2); }
.ff-section__head p { color: var(--ff-ash); font-size: 1.05rem; margin-bottom: 0; }
.ff-section__head--split { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; flex-wrap: wrap; max-width: none; }
.ff-dots { display: inline-flex; gap: 0.5rem; align-items: center; }
.ff-dots i {
	width: 7px; height: 7px; border-radius: 50%;
	background: var(--ff-orange);
	box-shadow: 0 0 10px -1px rgba(240, 75, 27, 0.8);
}
.ff-dots i:last-child { background: var(--ff-red); opacity: 0.72; }
.ff-divider { position: relative; overflow: hidden; }
.ff-divider .ff-wave { width: 100%; height: 46px; opacity: 0.85; }
:root {
	--ff-btn-pad-y: 0.85rem;
	--ff-btn-pad-x: 1.5rem;
	--ff-btn-font: 0.9375rem;
}
.ff-btn,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	font-family: var(--ff-body);
	font-size: var(--ff-btn-font);
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1;
	text-transform: none;
	text-decoration: none;
	white-space: nowrap;
	padding: var(--ff-btn-pad-y) var(--ff-btn-pad-x);
	border-radius: var(--ff-radius-pill);
	border: 1px solid transparent;
	cursor: pointer;
	transition: transform 0.2s var(--ff-ease), box-shadow 0.25s var(--ff-ease),
		background 0.25s var(--ff-ease), color 0.2s var(--ff-ease), border-color 0.2s var(--ff-ease);
}
.ff-btn--sm,
.woocommerce .ff-packtile__buttons .button,
.woocommerce .midgard-license__copy.button {
	--ff-btn-pad-y: 0.6rem;
	--ff-btn-pad-x: 1.05rem;
	--ff-btn-font: 0.875rem;
}
.ff-btn--lg,
.woocommerce div.product .single_add_to_cart_button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	--ff-btn-pad-y: 1.05rem;
	--ff-btn-pad-x: 2.5rem;
	--ff-btn-font: 1rem;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	font-size: var(--ff-btn-font);
	padding: var(--ff-btn-pad-y) var(--ff-btn-pad-x);
	display: flex; width: 100%; margin-bottom: 1em;
}

.ff-btn--primary,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce a.button.add_to_cart_button,
.woocommerce #respond input#submit,
.woocommerce #place_order,
.woocommerce .single_add_to_cart_button {
	background: var(--ff-ember-h);
	color: var(--ff-glow) !important;
	border-color: transparent;
	box-shadow: var(--ff-bloom);
}
.ff-btn--primary:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce a.button.add_to_cart_button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce #place_order:hover,
.woocommerce .single_add_to_cart_button:hover {
	color: var(--ff-glow) !important;
	transform: translateY(-2px);
	box-shadow: 0 0 60px -4px rgba(252, 158, 11, 0.6);
	filter: saturate(1.05) brightness(1.04);
}
.ff-btn--ghost,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
	background: transparent;
	color: var(--ff-glow) !important;
	border-color: var(--ff-line-2);
}
.ff-btn--ghost:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
	color: #fff !important;
	border-color: var(--ff-amber);
	background: rgba(252, 158, 11, 0.07);
	transform: translateY(-2px);
}
.ff-btn--soft {
	background: rgba(244, 234, 217, 0.12);
	color: var(--ff-glow) !important;
	border-color: rgba(244, 234, 217, 0.22);
}
.ff-btn--soft:hover {
	background: rgba(244, 234, 217, 0.2);
	border-color: rgba(244, 234, 217, 0.4);
	color: #fff !important;
	transform: translateY(-2px);
}
.ff-btn--green {
	background: linear-gradient(110deg, #3ddc84 0%, #22c55e 100%);
	color: var(--ff-ink) !important;
	border-color: transparent;
	box-shadow: 0 0 42px -6px rgba(61, 220, 132, 0.45);
}
.ff-btn--green:hover {
	color: var(--ff-ink) !important;
	transform: translateY(-2px);
	box-shadow: 0 0 60px -4px rgba(61, 220, 132, 0.6);
	filter: saturate(1.05) brightness(1.04);
}
.ff-btn--text {
	background: none; border: 0; padding: 0.4rem 0;
	color: var(--ff-amber); border-radius: 0;
}
.ff-btn--text:hover { color: var(--ff-glow); gap: 0.85rem; }
a.added_to_cart, .woocommerce a.added_to_cart { display: none; }
.woocommerce .button.added::after { content: none; }
.ff-masthead {
	position: sticky; top: 0; z-index: 100;
	background: color-mix(in srgb, var(--ff-ink) 82%, transparent);
	backdrop-filter: blur(14px) saturate(1.2);
	-webkit-backdrop-filter: blur(14px) saturate(1.2);
	border-bottom: 1px solid var(--ff-line);
}
.ff-masthead__inner {
	max-width: var(--ff-wide); margin-inline: auto;
	padding: 0.85rem var(--ff-gutter);
	display: flex; align-items: center; gap: 1.5rem;
}
.ff-masthead__brand { margin-right: auto; display: flex; align-items: center; min-width: 78px;  }
.ff-logo, .custom-logo-link { display: inline-flex; align-items: center; }
.ff-masthead__brand .ff-logo, .ff-masthead__brand .custom-logo-link { height: 100px; max-width: 100%; }
.ff-logo img, .custom-logo-link img { height: auto; max-height: 100px; width: auto; max-width: 100%; }

.ff-primary { display: flex; }
.ff-menu .menu-item-has-children { position: relative; }
.ff-menu .menu-item-has-children > a::after { content: "▾"; font-size: 0.7em; margin-left: 0.45em; opacity: 0.7; }
.ff-menu .sub-menu {
	display: none; position: absolute; top: 100%; left: 50%; transform: translateX(-50%);
	min-width: 230px; padding: 0.5rem; z-index: 60;
	background: var(--ff-ink-2); border: 1px solid var(--ff-line-2); border-radius: var(--ff-radius);
	box-shadow: 0 24px 60px -24px rgba(0, 0, 0, 0.9);
	flex-direction: column; align-items: stretch; gap: 2px;
}
.ff-menu .menu-item-has-children:hover > .sub-menu,
.ff-menu .menu-item-has-children:focus-within > .sub-menu { display: flex; }
.ff-menu .sub-menu a { display: block; padding: 0.6rem 0.9rem; border-radius: var(--ff-radius-sm); }
.ff-menu .sub-menu a:hover { background: var(--ff-soot); }
.ff-menu, .ff-menu ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 0.35rem; }
.ff-menu__item > a, .ff-menu a {
	display: inline-block;
	font-family: var(--ff-body);
	font-size: 1.0625rem;
	font-weight: 500;
	letter-spacing: 0;
	color: var(--ff-glow);
	padding: 0.5rem 0.95rem;
	border-radius: var(--ff-radius-sm);
	position: relative;
}
.ff-menu a:hover, .ff-menu .current-menu-item > a { color: #fff; }

.ff-menu .ff-menu__free > a { color: var(--ff-orange); font-weight: 600; }
.ff-menu .ff-menu__free > a:hover { color: #fff; }
.ff-menu .ff-menu__free.current-menu-item > a { color: #fff; }
.ff-menu .current-menu-item > a::after {
	content: ""; position: absolute; left: 0.85rem; right: 0.85rem; bottom: 0.25rem;
	height: 2px; background: var(--ff-ember-h); border-radius: 2px;
}
.ff-masthead__actions { display: flex; align-items: center; gap: 0.75rem; flex: none; }
.ff-account { display: inline-flex; align-items: center; color: var(--ff-glow); padding: 0.4rem; }
.ff-account:hover { color: var(--ff-amber); }
.ff-account--signin {
	font-family: var(--ff-body); font-weight: 500; font-size: 0.875rem; white-space: nowrap;
	border: 1px solid var(--ff-line-2); border-radius: var(--ff-radius-pill);
	padding: 0.45rem 1rem; margin-right: 0.35rem;
}
.ff-account--signin:hover { border-color: var(--ff-amber); }
.ff-account--signin svg { display: none; }
.ff-cart { position: relative; display: inline-flex; color: var(--ff-glow); padding: 0.4rem; }
.ff-cart:hover { color: var(--ff-amber); }
.ff-cart__count {
	position: absolute; top: -4px; right: -6px;
	min-width: 17px; height: 17px; padding: 0 4px;
	display: grid; place-items: center;
	font-family: var(--ff-body); font-size: 0.66rem; font-weight: 700;
	font-variant-numeric: tabular-nums;
	color: var(--ff-ink); background: var(--ff-ember-h);
	border-radius: var(--ff-radius-pill);
	opacity: 0; transform: scale(0.6); transition: 0.2s var(--ff-ease);
}
.ff-cart__count.is-filled { opacity: 1; transform: scale(1); }
.ff-hsearch-toggle {
	display: inline-flex; align-items: center; padding: 0.4rem;
	background: transparent; border: 0; color: var(--ff-glow); cursor: pointer;
}
.ff-hsearch-toggle:hover, .ff-hsearch-toggle[aria-expanded="true"] { color: var(--ff-amber); }
.ff-hsearch {
	position: absolute; left: 0; right: 0; top: 100%; z-index: 95;
	background: var(--ff-ink-2); border-bottom: 1px solid var(--ff-line-2);
	box-shadow: 0 40px 80px -30px rgba(0, 0, 0, 0.9);
}
.ff-hsearch[hidden] { display: none; }
.ff-hsearch__inner { max-width: 720px; margin-inline: auto; padding: 1.25rem var(--ff-gutter) 1.5rem; }
.ff-hsearch__form { position: relative; display: flex; align-items: center; }
.ff-hsearch__icon { position: absolute; left: 1.1rem; width: 20px; height: 20px; color: var(--ff-ash); pointer-events: none; }
.ff-hsearch input[type="search"] {
	width: 100%; margin: 0; background: var(--ff-soot); color: #fff;
	border: 1px solid var(--ff-line-2); border-radius: var(--ff-radius-pill);
	padding: 0.95rem 3.25rem 0.95rem 3.1rem; font-family: var(--ff-body); font-size: 1.125rem;
	-webkit-appearance: none; appearance: none;
}
.ff-hsearch input[type="search"]::-webkit-search-cancel-button,
.ff-hsearch input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; appearance: none; }
.ff-hsearch input[type="search"]::placeholder { color: var(--ff-ash); }
.ff-hsearch input[type="search"]:focus { outline: none; border-color: var(--ff-amber); }
.ff-hsearch__close {
	position: absolute; right: 0.6rem; width: 2.25rem; height: 2.25rem; padding: 0;
	border: 0; border-radius: 50%; background: transparent; color: var(--ff-ash);
	font-size: 1.5rem; line-height: 1; cursor: pointer;
}
.ff-hsearch__close:hover { color: #fff; background: var(--ff-line); }
.ff-hsearch__results { list-style: none; margin: 0.75rem 0 0; padding: 0; max-height: min(60vh, 520px); overflow-y: auto; }
.ff-hsearch__results:empty { margin: 0; }
.ff-hsearch__item {
	display: flex; align-items: center; gap: 0.9rem;
	padding: 0.55rem 0.75rem; border-radius: var(--ff-radius-sm); color: var(--ff-glow);
}
.ff-hsearch__item:hover, .ff-hsearch__item:focus { background: var(--ff-soot); color: #fff; outline: none; }
.ff-hsearch__item:focus-visible { box-shadow: inset 0 0 0 1px var(--ff-amber); }
.ff-hsearch__thumb {
	flex: none; width: 60px; aspect-ratio: 16 / 11; overflow: hidden; border-radius: 6px;
	background: var(--ff-ink); border: 1px solid var(--ff-line);
}
.ff-hsearch__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ff-hsearch__text { display: grid; gap: 0.1rem; min-width: 0; }
.ff-hsearch__name { font-weight: 600; color: #fff; }
.ff-hsearch__meta { font-size: var(--ff-small); color: var(--ff-ash); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ff-hsearch__price { margin-left: auto; font-family: var(--ff-mono); color: var(--ff-amber); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ff-hsearch__price del { color: var(--ff-ash); margin-right: 0.4rem; }
.ff-hsearch__status { margin: 0.9rem 0.75rem 0; font-family: var(--ff-body); font-size: var(--ff-small); color: var(--ff-ash); }
.ff-hsearch__status:empty { display: none; }
.ff-hsearch__all { display: inline-block; margin: 0.9rem 0.75rem 0; font-family: var(--ff-body); font-size: var(--ff-small); color: var(--ff-amber); text-decoration: underline; text-underline-offset: 3px; }
.ff-hsearch__all[hidden] { display: none; }
@media (max-width: 560px) {
	.ff-hsearch__inner { padding-block: 0.9rem 1.1rem; }
	.ff-hsearch input[type="search"] { font-size: 1rem; padding-block: 0.8rem; }
	.ff-hsearch__meta { display: none; }
}
.ff-nav-toggle {
	display: none; order: 3; flex: none;
	align-items: center; justify-content: center;
	width: 44px; height: 44px; padding: 0;
	background: transparent; border: 1px solid var(--ff-line-2);
	border-radius: var(--ff-radius-sm); cursor: pointer;
}
.ff-nav-toggle__bars { display: grid; gap: 5px; justify-items: center; }
.ff-nav-toggle__bars i { width: 20px; height: 2px; background: var(--ff-glow); border-radius: 2px; transition: 0.25s var(--ff-ease); }
.ff-nav-toggle[aria-expanded="true"] .ff-nav-toggle__bars i:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.ff-nav-toggle[aria-expanded="true"] .ff-nav-toggle__bars i:nth-child(2) { opacity: 0; }
.ff-nav-toggle[aria-expanded="true"] .ff-nav-toggle__bars i:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.ff-hero {
	position: relative;
	padding-block: clamp(3rem, 2rem + 7vw, 7.5rem) clamp(2rem, 6vw, 4rem);
	text-align: center;
	overflow: hidden;
	background:
		radial-gradient(120% 90% at 50% -10%, rgba(252, 158, 11, 0.14), transparent 55%),
		radial-gradient(80% 60% at 50% 120%, rgba(250, 63, 32, 0.1), transparent 60%);
}
.ff-hero__inner { position: relative; z-index: 2; max-width: 940px; margin-inline: auto; }
.ff-hero__title {
	font-size: var(--ff-hero); font-weight: var(--ff-wt-hero);
	letter-spacing: var(--ff-track-hero);
	margin-bottom: 0.2em;
}
.ff-hero__lede {
	font-size: clamp(1.05rem, 0.95rem + 0.5vw, 1.3rem);
	color: var(--ff-ash); max-width: 46ch; margin: 1.3rem auto 2rem;
}
.ff-hero__actions { display: flex; gap: 0.9rem; justify-content: center; flex-wrap: wrap; }
.ff-hero__cta {
	--ff-btn-pad-y: 1.15rem; --ff-btn-pad-x: 2.9rem; --ff-btn-font: 1.125rem;
	font-weight: 700;
	box-shadow: var(--ff-bloom), 0 0 80px -10px rgba(252, 158, 11, 0.55);
}
.ff-hero__cta:hover { box-shadow: 0 0 60px -4px rgba(252, 158, 11, 0.7), 0 0 110px -10px rgba(250, 63, 32, 0.5); }
.ff-hero__wave {
	position: relative;
	margin: clamp(1.5rem, 4vw, 3rem) auto 0;
	max-width: 1100px;
}
.ff-wave { width: 100%; height: 200px; }
.ff-wave--hero { height: clamp(140px, 22vw, 220px); }
.ff-wave__line, .ff-wave__glow { vector-effect: non-scaling-stroke; }
.ff-wave__dot { filter: drop-shadow(0 0 6px rgba(240, 75, 27, 0.9)); }
.ff-hero__meta {
	display: flex; gap: 1.5rem 2.5rem; justify-content: center; flex-wrap: wrap;
	margin-top: clamp(1.5rem, 4vw, 2.5rem);
	font-family: var(--ff-body); font-size: 1.125rem; color: var(--ff-glow);
	letter-spacing: 0;
}
.ff-contact__intro { color: var(--ff-glow); font-size: 1.05rem; margin: 0 0 0.6rem; }
.ff-contact__intro--quiet { font-size: 0.9375rem; opacity: 0.8; margin-bottom: 1.5rem; }
.ff-contact__intro a { color: var(--ff-amber); }
.ff-contact__form .wpcf7 form { display: block; }
.ff-contact__form .wpcf7 label { display: block; margin: 0 0 1rem; color: var(--ff-glow); font-size: 0.875rem; font-weight: 500; }
.ff-contact__form .wpcf7 .wpcf7-form-control-wrap { display: block; margin-top: 0.35rem; }
.ff-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
@media (max-width: 560px) { .ff-form__row { grid-template-columns: 1fr; } }
.ff-contact__form .wpcf7 input[type="text"],
.ff-contact__form .wpcf7 input[type="email"],
.ff-contact__form .wpcf7 select,
.ff-contact__form .wpcf7 textarea {
	width: 100%; box-sizing: border-box;
	background: var(--ff-ink-2); color: #fff; border: 1px solid var(--ff-line-2);
	border-radius: var(--ff-radius-sm); padding: 0.85rem 1rem;
	font-family: var(--ff-body); font-size: 1rem; line-height: 1.3;
}
.ff-contact__form .wpcf7 textarea { min-height: 9rem; resize: vertical; }
.ff-contact__form .wpcf7 input:focus,
.ff-contact__form .wpcf7 select:focus,
.ff-contact__form .wpcf7 textarea:focus { border-color: var(--ff-amber); outline: none; }
.ff-contact__form .wpcf7 .wpcf7-submit { margin-top: 0.25rem; }
.ff-contact__form .wpcf7 .wpcf7-not-valid-tip { display: block; margin-top: 0.35rem; font-size: 0.8125rem; color: var(--ff-red); }
.ff-contact__form .wpcf7 .wpcf7-response-output {
	margin: 1.25rem 0 0; padding: 0.9rem 1.1rem; border: 1px solid var(--ff-line-2) !important;
	border-radius: var(--ff-radius-sm); color: var(--ff-glow); font-size: 0.9375rem;
}
.ff-contact__form .wpcf7 form.sent .wpcf7-response-output { border-color: var(--ff-amber) !important; }
.ff-contact__form .wpcf7 form.invalid .wpcf7-response-output,
.ff-contact__form .wpcf7 form.failed .wpcf7-response-output { border-color: var(--ff-red) !important; }
.ff-contact__form .wpcf7-spinner { margin-left: 0.75rem; }
.ff-bundlepromo { padding-block: var(--ff-section); }
.ff-bundlepromo__inner {
	display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 4.5rem); align-items: center;
}
@media (max-width: 900px) { .ff-bundlepromo__inner { grid-template-columns: 1fr; } }
.ff-bundlepromo__art { display: block; position: relative; border-radius: var(--ff-radius); overflow: hidden; }
.ff-bundlepromo__art::before {
	content: ""; position: absolute; inset: -14% -20%; pointer-events: none; z-index: 0;
	background: radial-gradient(55% 55% at 50% 45%, rgba(252, 158, 11, 0.16), rgba(250, 63, 32, 0.06) 55%, transparent 78%);
}
.ff-bundlepromo__art img {
	position: relative; z-index: 1; width: 100%; height: auto; display: block;
	border-radius: var(--ff-radius); border: 1px solid var(--ff-line-2); box-shadow: var(--ff-bloom-red);
}
.ff-bundlepromo__body h2 { font-size: var(--ff-h2); margin-bottom: 0.75rem; }
.ff-bundlepromo__lede { color: var(--ff-glow); font-size: 1.1rem; line-height: 1.55; max-width: 48ch; margin-bottom: 1.25rem; }
.ff-bundlepromo__points { list-style: none; margin: 0 0 1.75rem; padding: 0; display: grid; gap: 0.6rem; }
.ff-bundlepromo__points li { color: var(--ff-glow); font-size: 1rem; padding-left: 1.6rem; position: relative; }
.ff-bundlepromo__points li::before { content: "✓"; position: absolute; left: 0; color: var(--ff-amber); font-weight: 700; }
.ff-bundlepromo__cta { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }
.ff-bundlepromo__cta .button { margin: 0 !important; }
@media (max-width: 560px) { .ff-bundlepromo__cta > * { width: 100%; } }
.ff-grid { display: grid; gap: clamp(1.5rem, 3vw, 2.5rem); grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.ff-card,
.woocommerce ul.products li.product {
	position: relative;
	display: flex; flex-direction: column; align-items: center;
	text-align: center;
	background: none;
	border: 0;
	border-radius: 0;
	overflow: visible;
	margin: 0 !important; width: auto !important; padding: 0 !important;
}
.woocommerce ul.products li.product .ff-card-media {
	position: relative; display: block; width: 100%;
	aspect-ratio: var(--ff-card-media-ratio);
	margin-bottom: var(--ff-card-overhang);
}
.woocommerce ul.products li.product .ff-card-media img { margin: 0 !important; }
.woocommerce ul.products li.product .ff-card-media__bg {
	position: absolute; inset: 0; overflow: hidden;
	border-radius: var(--ff-radius);
	background: var(--ff-ink-2);
}
.woocommerce ul.products li.product .ff-card-media__bg img {
	width: 100%; height: 100%; object-fit: cover;
	transform: scale(1.3);
	filter: blur(32px) brightness(0.55) saturate(1.5);
}
.woocommerce ul.products li.product .ff-card-media__bg::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(11, 8, 6, 0.15) 0%, rgba(11, 8, 6, 0.6) 100%);
}
.woocommerce ul.products li.product .ff-card-media__img {
	position: absolute; z-index: 2;
	left: 50%; bottom: calc(-1 * var(--ff-card-overhang) * 1.6);
	width: var(--ff-card-art-width); height: auto;
	transform: translateX(-50%);
	border-radius: calc(var(--ff-radius) * 0.6);
	box-shadow: 0 24px 44px -14px rgba(0, 0, 0, 0.75), 0 0 0 1px rgba(255, 255, 255, 0.05);
}
.woocommerce ul.products li.product .ff-card-media .ff-flash {
	position: absolute; top: 0.8rem; right: 0.8rem; z-index: 4;
	background: var(--ff-ember-h); color: var(--ff-ink);
	font-family: var(--ff-body); font-weight: 700; font-size: 0.72rem; letter-spacing: 0;
	padding: 0.3rem 0.65rem; border-radius: var(--ff-radius-pill); line-height: 1;
	box-shadow: var(--ff-bloom);
}
.ff-card__body { padding: 1.15rem 0 0; display: flex; flex-direction: column; flex: 1; }
.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link { display: block; width: 100%; padding: 0; }
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.ff-card__title {
	font-family: var(--ff-display); font-weight: var(--ff-wt-head);
	letter-spacing: var(--ff-track-head); color: #fff;
	font-size: 1.35rem; line-height: 1.2; padding: 0.75rem 0 0 !important; margin: 0;
}
.ff-card__title { padding: 0 0 0.1rem !important; font-size: 1.2rem; }

.woocommerce ul.products li.product .ff-loop-tagline {
	color: var(--ff-glow); font-size: 0.9375rem; line-height: 1.5;
	margin: 0.35rem auto 0; max-width: 34ch;
}
.ff-card__cat {
	font-family: var(--ff-body); font-size: 0.875rem; letter-spacing: 0;
	color: var(--ff-ash); padding: 0; margin-bottom: 0.5rem;
}
.woocommerce ul.products li.product .ff-card-foot {
	display: flex; flex-direction: column; align-items: center;
	gap: 0.8rem; margin-top: auto; padding-top: 1rem; width: 100%;
}
.woocommerce ul.products li.product .ff-card-foot__actions {
	display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem;
	width: min(100%, 17rem);
}
.woocommerce ul.products li.product .ff-card-foot__actions > :not(.screen-reader-text) { width: 100%; margin: 0 !important; }
.woocommerce ul.products li.product .ff-card-foot__price .price,
.woocommerce ul.products li.product .price,
.ff-card__price {
	font-family: var(--ff-mono) !important; color: var(--ff-glow) !important;
	font-size: 1rem !important; font-weight: 500;
	font-variant-numeric: tabular-nums;
	margin: 0 !important; padding: 0 !important;
}
.woocommerce ul.products li.product .price del { color: var(--ff-ash-dim); opacity: 0.7; font-weight: 400; }
.woocommerce ul.products li.product .price ins { text-decoration: none; color: var(--ff-amber); }

.woocommerce ul.products li.product .ff-card-foot__price .price {
	font-size: 1.15rem !important; font-weight: 600; color: #fff !important;
}
.ff-featured-band { margin-bottom: 2.5rem; }
.ff-featured-band .ff-eyebrow { margin-bottom: 1.25rem; }
.ff-featured-band ul.products { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 1000px) {
	.ff-featured-band ul.products { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.ff-featured-band ul.products { grid-template-columns: 1fr; }
}
.ff-formats { list-style: none; display: flex; flex-wrap: wrap; gap: 0.4rem; padding: 0; margin: 0.85rem 0 0; }
.ff-formats__item {
	font-family: var(--ff-mono); font-size: 0.7rem; letter-spacing: 0.02em;
	color: var(--ff-ash); border: 1px solid var(--ff-line-2);
	border-radius: var(--ff-radius-sm); padding: 0.22rem 0.5rem; line-height: 1;
}
.ff-cats { display: grid; gap: clamp(1rem, 2vw, 1.5rem); grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.ff-cat {
	position: relative; display: flex; flex-direction: column; justify-content: flex-end;
	min-height: 220px; padding: 1.5rem; border-radius: var(--ff-radius);
	background: linear-gradient(180deg, var(--ff-soot-2), var(--ff-soot));
	border: 1px solid var(--ff-line); overflow: hidden;
	transition: transform 0.3s var(--ff-ease), border-color 0.3s var(--ff-ease), box-shadow 0.3s var(--ff-ease);
}
.ff-cat::after {
	content: ""; position: absolute; inset: 0;
	background: radial-gradient(120% 80% at 90% -10%, rgba(252, 158, 11, 0.18), transparent 60%);
	opacity: 0.6; transition: opacity 0.3s var(--ff-ease);
}
.ff-cat:hover { transform: translateY(-4px); border-color: var(--ff-amber); box-shadow: var(--ff-bloom-red); }
.ff-cat:hover::after { opacity: 1; }
.ff-cat > * { position: relative; z-index: 1; }
.ff-cat__name {
	font-family: var(--ff-display); font-weight: var(--ff-wt-head);
	letter-spacing: var(--ff-track-head); font-size: 1.5rem;
	color: #fff; margin: 0 0 0.15rem;
}
.ff-cat__count {
	font-family: var(--ff-body); font-size: 0.9375rem;
	font-variant-numeric: tabular-nums; color: var(--ff-ash);
}
.ff-cat__arrow { position: absolute; top: 1.4rem; right: 1.4rem; z-index: 1; color: var(--ff-amber); transition: transform 0.3s var(--ff-ease); }
.ff-cat:hover .ff-cat__arrow { transform: translate(3px, -3px); }
.ff-features { display: grid; gap: clamp(1rem, 2vw, 1.75rem); grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.ff-feature { padding: 1.5rem; background: var(--ff-soot); border: 1px solid var(--ff-line); border-radius: var(--ff-radius); }
.ff-feature__icon { color: var(--ff-amber); margin-bottom: 0.85rem; }
.ff-feature h3 { font-size: var(--ff-h3); margin-bottom: 0.35rem; }
.ff-feature p { color: var(--ff-ash); font-size: 0.95rem; margin: 0; }
.ff-band {
	position: relative; overflow: hidden;
	border: 1px solid var(--ff-line); border-radius: calc(var(--ff-radius) + 6px);
	background: linear-gradient(160deg, var(--ff-soot-2), var(--ff-ink));
	padding: clamp(2.25rem, 5vw, 4rem);
	text-align: center;
}
.ff-band::after {
	content: ""; position: absolute; inset: 0;
	background: radial-gradient(90% 120% at 50% 140%, rgba(250, 63, 32, 0.22), transparent 60%);
}
.ff-band > * { position: relative; z-index: 1; }
.ff-band h2 { font-size: var(--ff-h2); margin-bottom: 0.5rem; }
.ff-band p { color: var(--ff-ash); max-width: 48ch; margin: 0 auto 1.75rem; }
.ff-footer { border-top: 1px solid var(--ff-line); margin-top: var(--ff-section); background: var(--ff-ink-2); }
.ff-footer__signal { margin-top: -23px; margin-bottom: 1.5rem; }
.ff-footer__inner {
	max-width: var(--ff-wide); margin-inline: auto;
	padding: clamp(2rem, 4vw, 3rem) var(--ff-gutter) clamp(2rem, 4vw, 2.75rem);
	display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 2fr);
	gap: 2.5rem clamp(2rem, 5vw, 5rem); align-items: start;
}
.ff-footer__brand .ff-logo img { height: 64px; }
.ff-footer__tag { color: var(--ff-glow); opacity: 0.8; max-width: 30ch; margin: 1.1rem 0 1.4rem; font-size: 0.9375rem; line-height: 1.55; }
.ff-footer__newsletter { max-width: 26rem; margin: 0 0 1.5rem; }
.ff-footer__newsletter .ff-footer__heading { margin-bottom: 0.35rem; }
.ff-footer__newsletter-text { margin: 0 0 0.85rem; font-size: 0.875rem; line-height: 1.5; color: var(--ff-ash); }
.ff-footer .mwc-newsletter__row { flex-wrap: nowrap; }
.ff-footer .mwc-newsletter .ff-input {
	background: var(--ff-ink); border-radius: var(--ff-radius-pill);
	padding: 0.6rem 1.05rem; font-size: 0.9375rem; line-height: 1.2; -webkit-appearance: none; appearance: none;
}
.ff-footer .mwc-newsletter .ff-input::placeholder { color: var(--ff-ash); }
.ff-footer .mwc-newsletter .ff-input:focus { border-color: var(--ff-amber); outline: none; }
.ff-footer .mwc-newsletter__button { flex: none; }
.ff-footer .mwc-newsletter__button:disabled { cursor: progress; transform: none; }
.ff-footer .mwc-newsletter__message { margin-top: 0.6rem; font-size: 0.875rem; color: var(--ff-glow); }
.ff-footer .mwc-newsletter__message.is-ok { color: var(--ff-amber); }
.ff-footer .mwc-newsletter__message.is-error { color: var(--ff-red); }
@media (max-width: 380px) { .ff-footer .mwc-newsletter__row { flex-wrap: wrap; } .ff-footer .mwc-newsletter__button { width: 100%; } }
.ff-social { list-style: none; display: flex; flex-wrap: wrap; gap: 0.4rem 1.25rem; padding: 0; margin: 0; }
.ff-social a { font-family: var(--ff-body); font-size: 0.9375rem; color: var(--ff-ash); }
.ff-social a:hover { color: var(--ff-amber); }

.ff-footer__nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem 1.5rem; }
.ff-footer__heading {
	font-family: var(--ff-body); font-size: 0.8125rem; font-weight: 600; letter-spacing: 0;
	color: var(--ff-ash); margin: 0 0 0.9rem;
}
.ff-footer__menu { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.55rem; }
.ff-footer__menu a { font-family: var(--ff-body); font-size: 0.9375rem; color: var(--ff-glow); }
.ff-footer__menu a:hover { color: var(--ff-amber); }
.ff-colophon {
	max-width: var(--ff-wide); margin-inline: auto;
	padding: 1.1rem var(--ff-gutter); border-top: 1px solid var(--ff-line);
	display: flex; align-items: center; justify-content: space-between; gap: 0.5rem 1.5rem; flex-wrap: wrap;
}
.ff-colophon p { margin: 0; font-family: var(--ff-body); font-size: 0.8125rem; color: var(--ff-ash); }
.ff-colophon__legal { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.4rem 1.25rem; }
.ff-colophon__legal a { font-family: var(--ff-body); font-size: 0.8125rem; color: var(--ff-ash); }
.ff-colophon__legal a:hover { color: var(--ff-amber); }
.ff-cookie {
	position: fixed; left: 1rem; bottom: 1rem; z-index: 90; max-width: 380px;
	padding: 1.1rem 1.25rem;
	background: rgba(16, 11, 7, 0.96); border: 1px solid var(--ff-line-2); border-radius: var(--ff-radius);
	box-shadow: 0 24px 60px -24px rgba(0, 0, 0, 0.8);
	opacity: 0; transform: translateY(12px);
	transition: opacity 0.3s var(--ff-ease), transform 0.3s var(--ff-ease);
}
.ff-cookie[hidden] { display: none; }
.ff-cookie.is-visible { opacity: 1; transform: none; }
.ff-cookie p { margin: 0 0 0.9rem; font-family: var(--ff-body); font-size: 0.9rem; line-height: 1.5; color: var(--ff-glow); }
.ff-cookie p a { color: var(--ff-amber); text-decoration: underline; text-underline-offset: 3px; }
.ff-cookie__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
@media (max-width: 560px) {
	.ff-cookie { left: 0.75rem; right: 0.75rem; bottom: calc(0.75rem + env(safe-area-inset-bottom)); max-width: none; }
	.ff-cookie__actions .ff-btn { flex: 1 1 auto; }
}
.ff-news__log {
	margin-top: clamp(1.75rem, 3vw, 2.5rem);
	border-top: 1px solid var(--ff-line);
}
.ff-news__entry { margin: 0; border-bottom: 1px solid var(--ff-line); }
.ff-news__link {
	display: grid;
	grid-template-columns: 7.5rem minmax(0, 1fr) auto;
	grid-template-areas: "date text thumb";
	gap: 0 clamp(1.25rem, 3vw, 2.25rem);
	padding: clamp(1.5rem, 3vw, 2.25rem) 0;
	color: var(--ff-glow);
}
.ff-news__link:hover { color: var(--ff-glow); }
.ff-news__date {
	font-family: var(--ff-mono); font-size: 0.8125rem; line-height: 1.5;
	font-variant-numeric: tabular-nums; white-space: nowrap;
	color: var(--ff-ash-dim);
}
.ff-news__link > .ff-news__date { grid-area: date; align-self: start; padding-top: 0.2rem; }
.ff-news__text { grid-area: text; display: grid; gap: 0.45rem; align-content: start; }
.ff-news__topic {
	font-family: var(--ff-body); font-size: 0.8125rem; font-weight: 500;
	color: var(--ff-amber);
}
.ff-news__title {
	display: block; font-family: var(--ff-display); font-weight: var(--ff-wt-head);
	letter-spacing: var(--ff-track-head); font-size: clamp(1.2rem, 2.2vw, 1.5rem);
	line-height: 1.2; color: #fff; text-wrap: balance;
	transition: color 0.2s var(--ff-ease);
}
.ff-news__link:hover .ff-news__title { color: var(--ff-amber); }
.ff-news__excerpt { display: block; font-size: 0.9375rem; line-height: 1.6; color: var(--ff-ash); max-width: 58ch; }
.ff-news__thumb {
	grid-area: thumb; align-self: start; display: block;
	width: 9.5rem; aspect-ratio: 16 / 10; overflow: hidden;
	border-radius: var(--ff-radius); background: var(--ff-ink-2);
	border: 1px solid var(--ff-line);
	transition: border-color 0.2s var(--ff-ease);
}
.ff-news__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ff-news__link:hover .ff-news__thumb { border-color: var(--ff-amber); }
.ff-news__link:not(:has(.ff-news__thumb)) { grid-template-columns: 7.5rem minmax(0, 1fr); }
@media (max-width: 720px) {
	.ff-news__link {
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas: "date thumb" "text thumb";
		gap: 0.5rem 1.25rem;
	}
	.ff-news__link:not(:has(.ff-news__thumb)) {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas: "date" "text";
	}
	.ff-news__link > .ff-news__date { padding-top: 0; }
	.ff-news__thumb { width: 5.5rem; }
}
.ff-news__empty { margin-top: 2rem; color: var(--ff-ash); font-size: 1.05rem; max-width: 56ch; }
.ff-post__head { padding-bottom: clamp(1.25rem, 3vw, 2rem); }
.ff-post__meta {
	display: flex; gap: 0.9rem; flex-wrap: wrap; align-items: baseline; margin: 0.9rem 0 0;
	font-family: var(--ff-mono); font-size: var(--ff-small);
	font-variant-numeric: tabular-nums; color: var(--ff-ash);
}
.ff-post__updated { padding-left: 0.9rem; border-left: 1px solid var(--ff-line-2); color: var(--ff-ash-dim); }
.ff-post__media { margin: 0 0 clamp(1.75rem, 4vw, 2.75rem); }
.ff-post__media img {
	width: 100%; height: auto; display: block;
	border-radius: var(--ff-radius); border: 1px solid var(--ff-line-2);
	box-shadow: var(--ff-bloom-red);
}
.ff-post__topics {
	display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap;
	margin-top: clamp(2rem, 4vw, 3rem); padding-top: 1.25rem;
	border-top: 1px solid var(--ff-line);
	font-size: var(--ff-small); color: var(--ff-ash);
}
.ff-post__topics a {
	color: var(--ff-glow); border: 1px solid var(--ff-line-2);
	border-radius: var(--ff-radius-pill); padding: 0.3rem 0.8rem;
}
.ff-post__topics a:hover { color: #fff; border-color: var(--ff-amber); }
.ff-postnav {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: clamp(1.25rem, 3vw, 2.5rem);
	margin-top: clamp(2rem, 4vw, 3rem); padding-top: clamp(1.25rem, 2.5vw, 1.75rem);
	border-top: 1px solid var(--ff-line);
}
.ff-postnav a { display: grid; gap: 0.4rem; align-content: start; color: var(--ff-glow); }
.ff-postnav__next { text-align: right; }
.ff-postnav a:only-child { text-align: left; }
.ff-postnav__title {
	font-family: var(--ff-display); font-weight: var(--ff-wt-head);
	letter-spacing: var(--ff-track-head); font-size: 1.0625rem; line-height: 1.3; color: #fff;
	transition: color 0.2s var(--ff-ease);
}
.ff-postnav a:hover .ff-postnav__title { color: var(--ff-amber); }
.ff-post__back { margin-top: clamp(1.5rem, 3vw, 2.25rem); }
.ff-page-hero { padding-block: clamp(2.5rem, 2rem + 5vw, 5rem) clamp(1.5rem, 4vw, 2.5rem); }
.ff-page-hero h1 { font-size: var(--ff-h1); }
.ff-shop-lede {
	color: var(--ff-ash); font-size: 1.15rem; line-height: 1.5;
	max-width: 52ch; margin: 0.5rem 0 clamp(1.75rem, 3vw, 2.5rem);
}
.ff-page-hero .ff-lede { color: var(--ff-ash); font-size: 1.15rem; max-width: 60ch; }
.ff-prose { max-width: 68ch; }
.ff-prose h2 { font-size: var(--ff-h2); margin-top: 2.5rem; }
.ff-prose h3 { font-size: var(--ff-h3); margin-top: 1.75rem; }
.ff-prose a { text-decoration: underline; text-underline-offset: 3px; }
.ff-prose img { border-radius: var(--ff-radius); margin: 1.5rem 0; }
.ff-prose .ff-lede { font-size: 1.125rem; color: var(--ff-glow); max-width: 58ch; }
.ff-prose .ff-toc {
	margin: 1.75rem 0 0; padding: 1.25rem 1.5rem; border: 1px solid var(--ff-line); border-radius: var(--ff-radius);
	column-count: 2; column-gap: 2rem; font-size: 0.9375rem; line-height: 1.5;
}
.ff-prose .ff-toc li { break-inside: avoid; margin: 0 0 0.35rem 1.1rem; padding-left: 0.2rem; }
.ff-prose .ff-toc a { color: var(--ff-glow); text-decoration: none; }
.ff-prose .ff-toc a:hover { color: var(--ff-amber); }
@media (max-width: 560px) { .ff-prose .ff-toc { column-count: 1; } }
.ff-prose h2[id], .ff-prose h3[id] { scroll-margin-top: calc(var(--ff-head-h) + 1rem); }
.mwc-downloader {
	margin: 2rem 0; padding: clamp(1.75rem, 4vw, 2.5rem) 1.5rem;
	background: var(--ff-soot); border: 1px solid var(--ff-line); border-radius: var(--ff-radius);
}
.ff-prose .mwc-downloader__logo { width: 200px; margin: 0 auto 1.75rem; border-radius: 0; }
.mwc-downloader__platforms { gap: 1rem; }
.ff-prose .mwc-downloader__platform,
.mwc-downloader__platform {
	min-width: 9.5rem; padding: 1.15rem 1.5rem 1rem; gap: 0.65rem;
	border: 1px solid var(--ff-line-2); border-radius: var(--ff-radius-sm);
	color: var(--ff-glow); font-weight: 600; font-size: 0.9375rem; text-decoration: none;
	transition: color 0.2s var(--ff-ease), border-color 0.2s var(--ff-ease), background 0.2s var(--ff-ease), transform 0.2s var(--ff-ease);
}
.mwc-downloader__platform:hover,
.mwc-downloader__platform:focus-visible {
	color: var(--ff-amber); border-color: var(--ff-amber); background: rgba(252, 158, 11, 0.07); transform: translateY(-2px);
}
@media (max-width: 420px) { .mwc-downloader__platforms li { flex: 1 1 0; } .ff-prose .mwc-downloader__platform { min-width: 0; } }
.ff-prose blockquote {
	margin: 1.75rem 0; padding: 0.5rem 0 0.5rem 1.5rem;
	border-left: 2px solid var(--ff-amber); color: var(--ff-glow); font-size: 1.15rem;
}
.ff-faq { max-width: 760px; }
.ff-faq details {
	border: 1px solid var(--ff-line); border-radius: var(--ff-radius);
	background: var(--ff-soot); margin-bottom: 0.75rem; overflow: hidden;
	transition: border-color 0.25s var(--ff-ease);
}
.ff-faq details[open] { border-color: var(--ff-line-2); }
.ff-faq summary {
	list-style: none; cursor: pointer; padding: 1.1rem 1.35rem;
	font-family: var(--ff-display); font-weight: 600; color: #fff; font-size: 1.05rem;
	display: flex; align-items: center; justify-content: space-between; gap: 1rem;
}
.ff-faq summary::-webkit-details-marker { display: none; }
.ff-faq summary::after {
	content: "+"; font-family: var(--ff-body); color: var(--ff-amber); font-size: 1.3rem;
	transition: transform 0.25s var(--ff-ease);
}
.ff-faq details[open] summary::after { transform: rotate(45deg); }
.ff-faq .ff-faq__body { padding: 0 1.35rem 1.25rem; color: var(--ff-ash); }
.ff-faq .ff-faq__body p:last-child { margin-bottom: 0; }
.ff-contact { display: grid; gap: 2rem; grid-template-columns: 1.2fr 1fr; align-items: start; }
.ff-contact__card { background: var(--ff-soot); border: 1px solid var(--ff-line); border-radius: var(--ff-radius); padding: 1.5rem; }
.ff-contact__card h3 { font-size: var(--ff-h3); }
.ff-contact__row { font-family: var(--ff-body); font-size: 0.9375rem; color: var(--ff-ash); margin-bottom: 0.4rem; }
.ff-contact__row a { color: var(--ff-glow); }
.woocommerce .ff-container, .woocommerce-page .ff-container { }
.woocommerce ul.products {
	display: grid !important;
	gap: clamp(1.75rem, 3vw, 3rem) clamp(1.25rem, 2.5vw, 2.25rem);
	grid-template-columns: repeat(3, 1fr);
	margin: 0 !important; padding: 0; list-style: none;
}
@media (max-width: 1000px) {
	.woocommerce ul.products { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.woocommerce ul.products { grid-template-columns: 1fr; }
}
.woocommerce ul.products::before, .woocommerce ul.products::after { content: none !important; }
.woocommerce ul.products li.product a img { border-radius: 0; }
.midgard-license {
	background: linear-gradient(160deg, var(--ff-soot), var(--ff-ink-2));
	border: 1px solid var(--ff-line); border-radius: var(--ff-radius);
	padding: 1.35rem 1.5rem;
	transition: border-color 0.2s var(--ff-ease);
}
.midgard-license:hover { border-color: var(--ff-line-2); }
.midgard-license__product {
	font-family: var(--ff-display); font-weight: var(--ff-wt-head);
	letter-spacing: var(--ff-track-head); color: #fff; font-size: 1.15rem;
}
.midgard-license__type {
	font-family: var(--ff-body); font-size: 0.875rem; letter-spacing: 0;
	color: var(--ff-ash); opacity: 1;
}
.midgard-license__status {
	font-family: var(--ff-body); font-weight: 600; letter-spacing: 0;
	color: var(--ff-ash); border-color: var(--ff-line-2);
}
.midgard-license__status--active,
.midgard-license__status--registered,
.midgard-license__status--completed { color: var(--ff-amber); border-color: var(--ff-amber); }
.midgard-license__status--expired,
.midgard-license__status--suspended,
.midgard-license__status--revoked,
.midgard-license__status--locked { color: var(--ff-red); border-color: var(--ff-red); }
.midgard-license__serial {
	background: var(--ff-ink); border: 1px solid var(--ff-line);
	color: var(--ff-glow); font-family: var(--ff-mono) !important;
}
.midgard-license__meta { color: var(--ff-ash); font-family: var(--ff-body); font-size: 0.875rem; opacity: 1; }
.midgard-licenses__note { color: var(--ff-ash-dim); font-family: var(--ff-body); }

.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews, .woocommerce p.no-comments {
	background: var(--ff-soot) !important; color: var(--ff-glow) !important;
	border-top: 2px solid var(--ff-amber) !important; border-radius: var(--ff-radius-sm);
	padding: 1rem 1.25rem 1rem 3.25rem !important; font-family: var(--ff-body); list-style: none;
	position: relative; line-height: 1.5;
}

.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before {
	color: var(--ff-amber) !important;
	left: 1.25rem !important; top: 1.05rem !important;
}
.woocommerce-error::before { color: var(--ff-red) !important; }
.woocommerce-message .button, .woocommerce-info .button, .woocommerce-error .button { float: right; margin-left: 1rem; }
.woocommerce-error { border-top-color: var(--ff-red) !important; }
.woocommerce .woocommerce-breadcrumb {
	font-family: var(--ff-body); font-size: var(--ff-small); color: var(--ff-ash-dim);
	margin-bottom: 1.5rem; letter-spacing: 0.03em;
}
.woocommerce .woocommerce-breadcrumb a { color: var(--ff-ash); }
.woocommerce .woocommerce-result-count { color: var(--ff-ash); font-family: var(--ff-body); font-size: var(--ff-small); }
.woocommerce .woocommerce-ordering select,
.ff-select {
	background: var(--ff-soot); color: var(--ff-glow);
	border: 1px solid var(--ff-line-2); border-radius: var(--ff-radius-sm);
	padding: 0.6rem 0.9rem; font-family: var(--ff-body); font-size: var(--ff-small);
}
.ff-shop-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; margin-bottom: 2rem; }
.ff-shopbar {
	display: flex; align-items: center; justify-content: space-between;
	gap: 1rem 1.5rem; flex-wrap: wrap;
	border-bottom: 1px solid var(--ff-line);
	padding-bottom: 1.15rem; margin-bottom: clamp(1.75rem, 3vw, 2.5rem);
}
.ff-shopbar .ff-filter { margin: 0; }
.ff-shopbar .woocommerce-result-count,
.ff-shopbar .woocommerce-ordering { float: none !important; margin: 0 !important; }
.ff-shopbar .woocommerce-ordering { margin-left: auto !important; }
@media (max-width: 700px) {
	.ff-shopbar { align-items: stretch; }
	.ff-shopbar .woocommerce-result-count { order: 3; }
}
.ff-woo.is-swapping ul.products,
.ff-woo.is-swapping .woocommerce-pagination,
.ff-woo.is-swapping .woocommerce-result-count { opacity: 0.4; transition: opacity 0.15s var(--ff-ease); }
.ff-woo.is-swapping ul.products { pointer-events: none; }
.ff-woo nav.woocommerce-pagination { padding-top: clamp(2rem, 4vw, 3.25rem); }

.ff-shopsearch { position: relative; display: flex; align-items: center; flex: 1 1 220px; max-width: 340px; }
.ff-shopsearch__icon { position: absolute; left: 0.9rem; width: 15px; height: 15px; color: var(--ff-ash); pointer-events: none; }
.ff-shopsearch input[type="search"] {
	width: 100%; margin: 0; background: var(--ff-soot); color: var(--ff-glow);
	border: 1px solid var(--ff-line-2); border-radius: var(--ff-radius-pill);
	padding: 0.6rem 2.3rem 0.6rem 2.35rem; font-family: var(--ff-body); font-size: var(--ff-small);
	-webkit-appearance: none; appearance: none;
	transition: border-color 0.2s var(--ff-ease);
}
.ff-shopsearch input[type="search"]::-webkit-search-cancel-button,
.ff-shopsearch input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; appearance: none; }
.ff-shopsearch input[type="search"]::placeholder { color: var(--ff-ash); }
.ff-shopsearch input[type="search"]:focus { outline: none; border-color: var(--ff-amber); }
.ff-shopsearch__clear {
	position: absolute; right: 0.45rem; width: 1.6rem; height: 1.6rem; padding: 0;
	border: 0; border-radius: 50%; background: transparent; color: var(--ff-ash);
	font-size: 1.15rem; line-height: 1; cursor: pointer;
}
.ff-shopsearch__clear:hover { color: #fff; background: var(--ff-line); }
.ff-shopsearch__status { margin: -0.75rem 0 1.25rem; font-family: var(--ff-body); font-size: var(--ff-small); color: var(--ff-ash); }
.ff-shopsearch__status:empty { display: none; }
.ff-woo.is-searching .ff-featured-band,
.ff-woo.is-searching .ff-shop-everything,
.ff-woo.is-searching .woocommerce-result-count,
.ff-woo.is-searching .woocommerce-pagination { display: none; }
.woocommerce ul.products.is-empty { display: none !important; }
@media (max-width: 700px) { .ff-shopsearch { max-width: none; order: 2; } }
.ff-filter { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1.25rem; }
.ff-filter--sub { margin-top: -0.5rem; }
.ff-filter a {
	font-family: var(--ff-body); font-size: var(--ff-small); color: var(--ff-ash);
	border: 1px solid var(--ff-line-2); border-radius: var(--ff-radius-pill);
	padding: 0.45rem 1rem; transition: color 0.2s var(--ff-ease), border-color 0.2s var(--ff-ease);
}
.ff-filter a:hover { color: #fff; border-color: var(--ff-amber); }
.ff-filter a.is-active { color: var(--ff-ink); background: var(--ff-ember-h); border-color: transparent; }
.ff-free { font-family: var(--ff-mono); color: var(--ff-amber); font-variant-numeric: tabular-nums; }
.ff-builder {
	position: relative; overflow: hidden;
	margin: 0 0 clamp(1.75rem, 3vw, 2.5rem); padding: clamp(1.5rem, 3vw, 2.25rem);
	background: linear-gradient(160deg, var(--ff-soot), var(--ff-ink-2));
	border: 1px solid var(--ff-line); border-radius: var(--ff-radius);
	scroll-margin-top: calc(var(--ff-head-h) + 1rem);
}

.ff-offerstep {
	position: relative; overflow: hidden;
	padding: clamp(1.5rem, 3vw, 2.5rem);
	background: linear-gradient(160deg, var(--ff-soot), var(--ff-ink-2));
	border: 1px solid var(--ff-line); border-radius: var(--ff-radius);
	max-width: 960px;
}
.ff-offerstep::before {
	content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: var(--ff-red);
}
.ff-offerstep .ff-eyebrow { color: var(--ff-red); }
.ff-offerstep .ff-eyebrow::before { background: var(--ff-red); }
.ff-offerstep--free::before { background: var(--ff-ember-h); }
.ff-offerstep--free .ff-eyebrow { color: var(--ff-amber); }
.ff-offerstep--free .ff-eyebrow::before { background: var(--ff-ember-h); }
.ff-offerstep h2 { font-size: var(--ff-h2); margin-bottom: 0.5rem; }
.ff-offerstep__lede { color: var(--ff-glow); font-size: 1.05rem; max-width: 60ch; margin-bottom: 1.5rem; }
.ff-offerstep__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; margin-top: 1.5rem; }
.ff-orbundle {
	display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 1.5rem; align-items: center;
	margin-top: 2.25rem; padding-top: 2rem; border-top: 1px solid var(--ff-line);
}
@media (max-width: 640px) { .ff-orbundle { grid-template-columns: 1fr; } }
.ff-orbundle__art img { width: 100%; height: auto; display: block; border-radius: var(--ff-radius-sm); border: 1px solid var(--ff-line-2); }
.ff-orbundle__kicker { color: var(--ff-amber); font-weight: 600; font-size: 0.9375rem; margin: 0 0 0.35rem; }
.ff-orbundle h3 { font-size: var(--ff-h3); margin: 0 0 0.5rem; }
.ff-orbundle p { color: var(--ff-glow); font-size: 1rem; max-width: 60ch; margin: 0 0 1.1rem; }
@media (max-width: 560px) { .ff-offerstep__actions .ff-btn { width: 100%; } }
.ff-builder::before {
	content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px;
	background: var(--ff-ember-h);
}
.ff-builder h2 { font-size: var(--ff-h3); margin-bottom: 0.35rem; }
.ff-builder__lede { color: var(--ff-glow); font-size: 0.9375rem; margin-bottom: 1.25rem; }
.ff-builder__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 0.75rem; }
.ff-builder-pack {
	display: flex; flex-direction: column; gap: 0.45rem;
	background: var(--ff-ink-2); border: 1px solid var(--ff-line); border-radius: var(--ff-radius-sm);
	padding: 0.95rem 1rem;
}
.ff-builder-pack__name { display: block; font-family: var(--ff-display); font-weight: var(--ff-wt-head); letter-spacing: var(--ff-track-head); font-size: 0.95rem; color: #fff; line-height: 1.25; }
.ff-builder-pack__price { font-family: var(--ff-mono); font-size: var(--ff-small); color: var(--ff-amber); font-variant-numeric: tabular-nums; }
.ff-builder-pack__price del { color: var(--ff-ash-dim); margin-right: 0.35rem; }
.ff-builder-pack--pick { cursor: pointer; user-select: none; transition: border-color 0.2s var(--ff-ease), box-shadow 0.2s var(--ff-ease); }
.ff-builder-pack--pick input { position: absolute; opacity: 0; pointer-events: none; }
.ff-builder-pack--pick::after {
	content: "✓"; position: absolute; top: 0.6rem; right: 0.7rem;
	color: var(--ff-amber); font-family: var(--ff-body); opacity: 0;
	transition: opacity 0.15s var(--ff-ease);
}
.ff-builder-pack--pick { position: relative; }
.ff-builder-pack--pick:hover { border-color: var(--ff-line-2); }
.ff-builder-pack--pick:has(input:checked) { border-color: var(--ff-amber); box-shadow: var(--ff-bloom); }
.ff-builder-pack--pick:has(input:checked)::after { opacity: 1; }
.ff-builder-pack--pick:has(input:focus-visible) { outline: 2px solid var(--ff-amber); outline-offset: 3px; }
.ff-builder-pack--pick.is-locked { opacity: 0.35; cursor: not-allowed; transition: opacity 0.2s var(--ff-ease); }
.ff-builder__actions { display: flex; justify-content: flex-start; gap: 0.6rem; flex-wrap: wrap; margin-top: 1.1rem; }
.ff-builder__actions .ff-btn { padding: 0.85rem 1.8rem; }
.ff-builder__group { border: 0; padding: 0; margin: 0; min-width: 0; }
.ff-builder__group + .ff-builder__group { margin-top: 1.4rem; }
.ff-builder__group legend,
.ff-builder__legend {
	font-family: var(--ff-body); font-size: 1.05rem; font-weight: 700;
	letter-spacing: 0; color: var(--ff-glow);
	padding: 0; margin: 0 0 0.85rem;
}
.woocommerce .woocommerce-products-header { margin-bottom: 1.75rem; }
.woocommerce .woocommerce-products-header__title.page-title { font-size: var(--ff-h1); margin: 0 0 0.4rem; }
.woocommerce .term-description, .woocommerce .woocommerce-products-header .term-description { color: var(--ff-ash); max-width: 62ch; }
.woocommerce .woocommerce-result-count { margin: 0 0 1.5rem; }
.woocommerce .woocommerce-ordering { margin: 0 0 1.5rem; }
.woocommerce ul.products { clear: both; }
.ff-crumb-sep { color: var(--ff-ash-dim); padding: 0 0.15rem; }
.woocommerce span.onsale {
	background: var(--ff-ember-h) !important; color: var(--ff-ink) !important;
	font-family: var(--ff-body); font-weight: 700; font-size: 0.72rem; letter-spacing: 0;
	min-height: auto; min-width: auto; padding: 0.28rem 0.6rem; border-radius: var(--ff-radius-pill);
	top: 0.85rem; left: 0.85rem; right: auto; margin: 0; line-height: 1; box-shadow: var(--ff-bloom); z-index: 4;
}
.ff-phero {
	position: relative; overflow: hidden;
	min-height: clamp(420px, 66vh, 700px);
	background-size: cover; background-position: center 38%;
	display: flex; align-items: flex-end; justify-content: center;
}
.ff-phero::before {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(11, 8, 6, 0.42) 0%, rgba(11, 8, 6, 0.05) 34%, rgba(11, 8, 6, 0.78) 70%, var(--ff-ink) 100%);
}
.ff-phero__content { position: relative; text-align: center; padding: 0 var(--ff-gutter) clamp(2rem, 5vh, 3.5rem); max-width: 900px; }
.ff-phero__title { font-size: var(--ff-hero); line-height: 1.02; margin: 0 0 0.6rem; text-shadow: 0 2px 30px rgba(11, 8, 6, 0.8); }
.ff-phero__lede { color: var(--ff-glow); opacity: 0.85; font-size: 1.15rem; max-width: 52ch; margin: 0 auto; text-shadow: 0 1px 18px rgba(11, 8, 6, 0.9); }
.woocommerce div.product { display: block; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { float: none; width: 100%; }
.woocommerce div.product div.summary { max-width: 760px; margin: 0 auto; text-align: center; }
.ff-fblocks { margin-top: 3.5rem; display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(3rem, 7vw, 5.5rem); }
.ff-fblock { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: clamp(1.75rem, 4vw, 3.5rem); align-items: center; }
.ff-fblock--text { grid-template-columns: minmax(0, 1fr); }
.ff-fblock--text .ff-fblock__text p { max-width: 68ch; }
.ff-fblock:nth-child(even) { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); }
.ff-fblock--text:nth-child(even) { grid-template-columns: minmax(0, 1fr); }
.ff-fblock:nth-child(even) .ff-fblock__media { order: 2; }
.ff-fblock__media { position: relative; }
.ff-fblock__media::before {
	content: ""; position: absolute; inset: -14% -20%; pointer-events: none;
	background: radial-gradient(55% 55% at 50% 45%, rgba(252, 158, 11, 0.14), rgba(250, 63, 32, 0.06) 55%, transparent 78%);
}
.ff-fblock__media img {
	width: 100%; height: auto; border-radius: var(--ff-radius);
	border: 1px solid var(--ff-line-2); box-shadow: var(--ff-bloom-red);
	position: relative; display: block;
}
.ff-fblock__media--player .ffap { margin: 0; position: relative; box-shadow: var(--ff-bloom-red); }
.ff-fblock__text h2 { font-size: var(--ff-h2); margin-bottom: 0.9rem; }
.ff-fblock__text p { color: var(--ff-glow); font-size: 1.05rem; max-width: 48ch; }
.ff-fblock__text h3 { font-size: 1.1875rem; margin: 1.6rem 0 0.5rem; color: #fff; }
.ff-fblock__text h3:first-child { margin-top: 0; }
.ff-fsections {
	display: grid; grid-template-columns: 1fr;
	gap: clamp(1.75rem, 3vw, 2.5rem) clamp(1.5rem, 3vw, 2.75rem);
	padding-top: clamp(1.75rem, 3vw, 2.5rem); border-top: 1px solid var(--ff-line);
}
@media (min-width: 640px) { .ff-fsections { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 960px) { .ff-fsections--n3, .ff-fsections--n6 { grid-template-columns: repeat(3, 1fr); } }
.ff-fsection h3 { font-size: 1.125rem; margin: 0 0 0.6rem; color: #fff; }
.ff-fsection p { color: var(--ff-glow); font-size: 1rem; line-height: 1.6; margin: 0 0 0.75rem; }
.ff-fsection p:last-child { margin-bottom: 0; }
.ff-fsection a { color: var(--ff-amber); text-decoration: underline; text-underline-offset: 3px; }
.ff-contact__help { margin-top: clamp(2.5rem, 5vw, 4rem); padding-top: clamp(2rem, 4vw, 3rem); border-top: 1px solid var(--ff-line); }
.ff-contact__help h2 { font-size: var(--ff-h2); margin-bottom: 0.9rem; }
.ff-contact__help h3 { font-size: var(--ff-h3); margin-top: 1.5rem; }
.ff-contact__help p, .ff-contact__help li { color: var(--ff-glow); font-size: 1.05rem; }
.ff-faq__heading { font-size: var(--ff-h2); margin: 0 0 1.25rem; }
.ff-shop-about { border-top: 1px solid var(--ff-line); margin-top: clamp(2.5rem, 5vw, 4rem); padding-top: clamp(2rem, 4vw, 3rem); max-width: 68ch; }
.ff-shop-about h2 { font-size: var(--ff-h2); margin-bottom: 0.9rem; }
.ff-shop-about h3 { font-size: var(--ff-h3); margin-top: 1.75rem; }
.ff-shop-about p { color: var(--ff-glow); font-size: 1.05rem; }
.woocommerce div.product p.price, .woocommerce div.product span.price {
	font-family: var(--ff-mono) !important; color: var(--ff-amber) !important;
	font-variant-numeric: tabular-nums;
	font-size: 1.75rem !important; font-weight: 500; margin-bottom: 1.25rem;
}
.woocommerce div.product p.price del { color: var(--ff-ash-dim); font-size: 1.1rem; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--ff-glow); font-size: 1.05rem; }
.woocommerce div.product form.cart { margin: 1.75rem 0; display: flex; gap: 0.75rem; align-items: center; flex-wrap: wrap; }
.woocommerce div.product form.cart .quantity input.qty {
	width: 68px; background: var(--ff-soot); color: #fff; border: 1px solid var(--ff-line-2);
	border-radius: var(--ff-radius-sm); padding: 0.85rem 0.5rem; font-family: var(--ff-body); text-align: center;
}

.woocommerce div.product form.cart .quantity { display: none; }
.woocommerce div.product .product_meta { font-family: var(--ff-body); font-size: 0.9375rem; color: var(--ff-glow); border-top: 1px solid var(--ff-line); padding-top: 1.25rem; margin-top: 0.5rem; }
.woocommerce div.product .product_meta a { color: var(--ff-glow); }
.woocommerce div.product p.price { margin: 0 0 0.25rem; font-size: 2rem !important; }
.ff-price-anchor { font-family: var(--ff-body); font-size: 1.0625rem; line-height: 1.5; color: var(--ff-glow); margin: 1rem 0 0; }
.ff-price-anchor a { color: var(--ff-amber); }
.ff-req-chip {
	display: inline-flex; align-items: center; gap: 0.4rem;
	padding: 0.7rem 1.35rem 0.7rem 1.05rem;
	border: 1px solid rgba(252, 158, 11, 0.45);
	border-radius: var(--ff-radius-pill);
	background: rgba(252, 158, 11, 0.08);
	color: var(--ff-glow);
	font-size: 0.875rem; line-height: 1;
	transition: border-color 0.2s var(--ff-ease), background 0.2s var(--ff-ease);
}
a.ff-req-chip:hover { border-color: var(--ff-amber); background: rgba(252, 158, 11, 0.14); color: #fff; }
.ff-req-chip--note { cursor: default; }
.ff-req-chip__icon { width: 13px; height: 13px; color: var(--ff-amber); flex: 0 0 auto; }
.ff-req-chip__label { color: var(--ff-ash); }
.ff-req-chip__name { font-weight: 600; }
.ff-req-chip--card { padding: 0.5rem 1rem 0.5rem 0.8rem; margin-top: 0.75rem; }
.ff-phero__req { margin: 1.1rem 0 0; }
.ff-req-chip--hero {
	font-size: 0.9375rem; padding: 0.75rem 1.4rem 0.75rem 1.1rem;
	background: rgba(11, 8, 6, 0.55); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.ff-req-chip--hero .ff-req-chip__icon { width: 15px; height: 15px; }
.ff-requires {
	display: flex; align-items: center; gap: 1rem;
	margin: 1.1rem 0 0;
	padding: 0.9rem 1rem;
	background: linear-gradient(160deg, var(--ff-soot-2), var(--ff-soot));
	border: 1px solid rgba(252, 158, 11, 0.4);
	border-radius: var(--ff-radius);
	color: var(--ff-glow);
	transition: border-color 0.2s var(--ff-ease), box-shadow 0.2s var(--ff-ease);
}
.ff-requires:hover { border-color: var(--ff-amber); box-shadow: var(--ff-bloom); color: var(--ff-glow); }
.ff-requires__thumb {
	flex: 0 0 auto; width: 64px; height: 64px; object-fit: cover;
	border-radius: var(--ff-radius-sm); background: var(--ff-ink-2);
}
.ff-requires__body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 0.15rem; }
.ff-requires__label { font-size: 0.8125rem; color: var(--ff-amber); font-weight: 600; }
.ff-requires__name { font-family: var(--ff-display); font-weight: var(--ff-wt-head); letter-spacing: var(--ff-track-head); font-size: 1.15rem; color: #fff; line-height: 1.2; }
.ff-requires__meta { font-size: 0.875rem; color: var(--ff-glow); opacity: 0.8; }
.ff-requires__perk { font-size: 0.8125rem; color: var(--ff-glow); opacity: 0.8; margin-top: 0.2rem; }
.ff-requires__cta { flex: 0 0 auto; align-self: center; }
@media (max-width: 480px) {
	.ff-requires { flex-wrap: wrap; }
	.ff-requires__cta { width: 100%; text-align: center; }
}
.woocommerce div.product form.cart { margin: 1.1rem 0 0; justify-content: center; }
.woocommerce div.product form.cart .quantity:has(input[type="hidden"]) { display: none; }
.ff-buywith { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; margin: 1.1rem 0 0.25rem; }
.ff-buywith .ff-btn { width: 100%; }
.ff-buywith__note { font-size: 0.875rem; color: var(--ff-glow); opacity: 0.75; text-align: center; }
.ff-buywith ~ form.cart .single_add_to_cart_button { width: 100%; }
.ff-buywith ~ form.cart .single_add_to_cart_button {
	background: rgba(244, 234, 217, 0.12) !important; color: var(--ff-glow) !important;
	border-color: rgba(244, 234, 217, 0.22) !important; box-shadow: none;
}
.ff-buywith ~ form.cart .single_add_to_cart_button:hover {
	background: rgba(244, 234, 217, 0.2) !important; border-color: rgba(244, 234, 217, 0.4) !important; color: #fff !important;
	transform: translateY(-2px); filter: none;
}

.woocommerce ul.products li.product .ff-card-media .ff-flash--artist {
	background: linear-gradient(110deg, var(--ff-red), #c8321a); color: #fff;
	box-shadow: 0 0 42px -6px rgba(250, 63, 32, 0.5);
}
.ff-artist-badge {
	display: inline-flex; align-items: center;
	padding: 0.55rem 1rem; border-radius: var(--ff-radius-pill);
	background: linear-gradient(110deg, var(--ff-red), #c8321a); color: #fff;
	font-size: 0.875rem; font-weight: 700; line-height: 1; letter-spacing: 0;
	box-shadow: 0 0 42px -6px rgba(250, 63, 32, 0.5);
}
.ff-artist-badge--hero { font-size: 0.9375rem; padding: 0.65rem 1.15rem; }
.ff-phero__req { display: flex; justify-content: center; align-items: center; gap: 0.6rem; flex-wrap: wrap; }
.ff-excludes { font-size: 0.8125rem; color: var(--ff-glow); opacity: 0.7; margin: 0.5rem 0 0; }
.ff-band .ff-excludes { margin: 0.35rem 0 1rem; }
.ff-orbundle .ff-excludes { margin: -0.5rem 0 0.9rem; }

.ff-packs__artist { margin-top: clamp(1.75rem, 3vw, 2.5rem); padding-top: 1.5rem; border-top: 1px solid var(--ff-line); }
.ff-packs__artist h3 { font-size: var(--ff-h3); margin: 0 0 0.3rem; }
.ff-packs__artist > p { color: var(--ff-glow); opacity: 0.8; margin: 0 0 1rem; font-size: 0.9375rem; }
.ff-fblock__list { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: 0.55rem; }
.ff-fblock__list li { color: var(--ff-glow); font-size: 1.05rem; padding-left: 1.6rem; position: relative; }
.ff-fblock__list li::before { content: "✓"; position: absolute; left: 0; color: var(--ff-amber); font-weight: 700; }
.ff-incart { display: flex; justify-content: center; margin: 1.1rem 0 0; }
.ff-ticks {
	list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem 1.75rem;
	padding: 0; margin: 1.75rem 0 0; font-family: var(--ff-body); font-size: 1rem; color: var(--ff-glow);
}
.ff-ticks li::before { content: "✓"; color: var(--ff-amber); margin-right: 0.5rem; }
.ff-specband {
	list-style: none; padding: 0; margin: 3.25rem 0 0;
	display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 1px;
	background: var(--ff-line); border: 1px solid var(--ff-line);
	border-radius: var(--ff-radius); overflow: hidden;
}
.ff-specband li { background: var(--ff-soot); padding: 1.1rem 1.3rem; }
.ff-specband li span {
	display: block; font-family: var(--ff-body); font-size: 0.875rem; color: var(--ff-glow); opacity: 0.75;
	letter-spacing: 0; margin-bottom: 0.35rem;
}
.ff-specband li strong { font-family: var(--ff-mono); font-size: 1rem; font-weight: 500; color: var(--ff-glow); }
.ff-inside { border-top: 1px solid var(--ff-line); margin-top: 2.75rem; padding-top: 2.75rem; }
.ff-inside__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.25rem, 3vw, 2.5rem); }
.ff-inside__art {
	display: block; aspect-ratio: 16 / 11; overflow: hidden; margin-bottom: 0.9rem;
	border-radius: var(--ff-radius-sm);
	background: var(--ff-ink-2); border: 1px solid var(--ff-line);
	transition: border-color 0.2s var(--ff-ease);
}
.ff-inside__art:hover { border-color: var(--ff-amber); }
.ff-inside__art img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ff-inside__col h3 { font-size: var(--ff-h3); margin-bottom: 0.7rem; }
.ff-inside__col h3 a { color: #fff; }
.ff-inside__col h3 a:hover { color: var(--ff-amber); }
.ff-inside__col ul { list-style: none; margin: 0; padding: 0; }
.ff-inside__col li {
	font-family: var(--ff-body); font-size: var(--ff-small);
	padding: 0.45rem 0; border-bottom: 1px solid var(--ff-line);
}
.ff-inside__col li::before { content: "✓"; color: var(--ff-amber); margin-right: 0.55rem; }
.ff-inside__col li a { color: var(--ff-ash); }
.ff-inside__col li a:hover { color: var(--ff-amber); }
.ff-story {
	border-top: 1px solid var(--ff-line); margin-top: 2.5rem; padding-top: 2.5rem;
}
.ff-story__prose h2 { font-size: var(--ff-h2); margin-bottom: 0.9rem; }
.ff-story__prose p { color: var(--ff-glow); font-size: 1.05rem; max-width: 62ch; }
.ff-deal-note {
	display: inline-block; margin-top: 1.1rem;
	font-family: var(--ff-body); font-size: var(--ff-small); color: var(--ff-amber);
	border: 1px solid var(--ff-amber); border-radius: var(--ff-radius-pill);
	padding: 0.55rem 1.1rem;
	transition: box-shadow 0.25s var(--ff-ease), background 0.25s var(--ff-ease);
}
.ff-deal-note:hover { color: var(--ff-amber); background: rgba(252, 158, 11, 0.08); box-shadow: var(--ff-bloom); }
.ff-packs { border-top: 1px solid var(--ff-line); margin-top: 2.75rem; padding-top: 2.75rem; scroll-margin-top: calc(var(--ff-head-h) + 1rem); }
.ff-packs__cta {
	display: flex; align-items: center; gap: 1.1rem; flex-wrap: wrap;
	margin-top: clamp(1.5rem, 3vw, 2.25rem);
}
.ff-packs__cta-price { font-size: 0.9375rem; color: var(--ff-glow); opacity: 0.8; }
.ff-free-price { color: var(--ff-orange); font-family: var(--ff-display); font-weight: 700; letter-spacing: -0.02em; }
@media (max-width: 560px) { .ff-packs__cta .ff-btn { width: 100%; } }
.ff-fleet { border-top: 1px solid var(--ff-line); margin-top: 2.75rem; padding-top: 2.75rem; }
.ff-fleet .ff-section__head { margin-bottom: 1.25rem; }
.ff-fleet__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(0.9rem, 2vw, 1.5rem); max-width: 780px; }
@media (max-width: 560px) { .ff-fleet__grid { grid-template-columns: repeat(2, 1fr); } }
.ff-fleet .ff-packtile__meta { color: var(--ff-amber); font-family: var(--ff-mono); font-variant-numeric: tabular-nums; }
.ff-packtile--actions { color: var(--ff-glow); }
.ff-packtile__link { display: flex; flex-direction: column; gap: 0.55rem; color: inherit; }
.ff-packtile__link:hover { color: inherit; }
.ff-packtile__link:hover .ff-packtile__art { border-color: var(--ff-amber); }
.ff-packtile__buttons { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.4rem; }
.ff-packtile__buttons > * { flex: 1 1 0; min-width: max-content; margin: 0 !important; }
.ff-packs__grid {
	display: grid; grid-template-columns: repeat(5, 1fr);
	gap: clamp(0.9rem, 2vw, 1.5rem) clamp(0.75rem, 1.5vw, 1.1rem);
}
@media (max-width: 1000px) { .ff-packs__grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px)  { .ff-packs__grid { grid-template-columns: repeat(2, 1fr); } }
.ff-packtile { display: flex; flex-direction: column; gap: 0.55rem; color: var(--ff-glow); min-width: 0; }
.ff-packtile__art {
	display: block; aspect-ratio: 16 / 11; overflow: hidden;
	border-radius: var(--ff-radius-sm);
	background: var(--ff-ink-2); border: 1px solid var(--ff-line);
	transition: border-color 0.2s var(--ff-ease);
}
.ff-packtile__art img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ff-packtile__name { font-weight: 600; color: #fff; font-size: 0.9375rem; line-height: 1.3; }
.ff-packtile__meta { font-size: 0.8125rem; color: var(--ff-ash); margin-top: -0.25rem; }
.ff-packtile:hover { color: var(--ff-glow); }
.ff-packtile:hover .ff-packtile__art { border-color: var(--ff-amber); }
.ff-band--bundle { grid-column: 1 / -1; margin-top: 2.75rem; }
.ff-band--bundle .ff-band__save {
	display: inline-block; font-family: var(--ff-body); font-size: var(--ff-small); color: var(--ff-amber);
	border: 1px solid var(--ff-line-2); border-radius: var(--ff-radius-pill);
	padding: 0.35rem 0.9rem; margin: 0 auto 1.6rem;
}
.ff-buybar {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 80;
	background: rgba(16, 11, 7, 0.92);
	-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	border-top: 1px solid var(--ff-line-2);
	transform: translateY(102%); visibility: hidden;
	transition: transform 0.28s var(--ff-ease), visibility 0.28s;
}
.ff-buybar.is-visible { transform: translateY(0); visibility: visible; }
.ff-buybar__inner {
	display: flex; align-items: center; gap: 1rem;
	padding-top: 0.7rem; padding-bottom: calc(0.7rem + env(safe-area-inset-bottom));
}
.ff-buybar__name { font-family: var(--ff-display); font-weight: 600; }
.ff-buybar__price { font-family: var(--ff-mono); color: var(--ff-amber); font-variant-numeric: tabular-nums; }
.ff-buybar .ff-btn { margin-left: auto; padding: 0.7rem 1.5rem; }
.woocommerce .related.products, .woocommerce .upsells.products { grid-column: 1 / -1; margin-top: 2rem; }
.woocommerce .related.products > h2, .woocommerce .upsells.products > h2 { font-size: var(--ff-h2); margin-bottom: 1.5rem; }
.ff-page-hero__sub { color: var(--ff-glow); opacity: 0.7; font-size: 1.05rem; margin: -0.35rem 0 0; }
.woocommerce-cart .ff-prose, .woocommerce-checkout .ff-prose { max-width: none; }

.ff-cartpage {
	display: grid; grid-template-columns: minmax(0, 1fr) 340px;
	gap: clamp(1.5rem, 3vw, 3rem); align-items: start;
}
@media (max-width: 900px) { .ff-cartpage { grid-template-columns: 1fr; } }
.woocommerce-cart .ff-cartpage .woocommerce-cart-form { min-width: 0; }
.woocommerce-cart .ff-cartpage .cart-collaterals {
	position: sticky; top: calc(var(--ff-head-h) + 1rem);
}
.woocommerce-cart .ff-cartpage .cart-collaterals .cart_totals { float: none !important; width: 100% !important; }
.woocommerce-cart .ff-cartpage .cart_totals h2 { font-size: 1.15rem; margin-bottom: 0.75rem; }
.woocommerce-cart .ff-cartpage .cart_totals table.shop_table { border: 0; border-radius: 0; background: none; }
.woocommerce-cart .ff-cartpage .cart_totals th { padding: 0.55rem 0; font-weight: 500; color: var(--ff-glow); }
.woocommerce-cart .ff-cartpage .cart_totals td { padding: 0.55rem 0; text-align: right; border-top: 0; }
.woocommerce-cart .ff-cartpage .cart_totals tr.order-total th,
.woocommerce-cart .ff-cartpage .cart_totals tr.order-total td {
	border-top: 1px solid var(--ff-line); padding-top: 0.85rem; margin-top: 0.3rem;
	font-size: 1.15rem; font-weight: 700; color: #fff;
}
.woocommerce-cart .ff-cartpage .wc-proceed-to-checkout { padding-top: 1rem; }
.woocommerce-cart .ff-cartpage table.shop_table.cart { display: block; border: 0; border-radius: 0; background: none; }
.woocommerce-cart .ff-cartpage table.shop_table.cart thead { display: none; }
.woocommerce-cart .ff-cartpage table.shop_table.cart tbody { display: block; }
.woocommerce-cart .ff-cartpage table.shop_table.cart tr.cart_item {
	display: flex; align-items: center; gap: 1rem;
	padding: 1rem 0; border-top: 1px solid var(--ff-line);
}
.woocommerce-cart .ff-cartpage table.shop_table.cart tr.cart_item:first-child { border-top: 0; padding-top: 0; }
.woocommerce-cart .ff-cartpage table.shop_table.cart tr.cart_item td { border: 0; padding: 0; display: block; }
.woocommerce-cart .ff-cartpage table.shop_table.cart td.product-thumbnail { flex: 0 0 auto; }
.woocommerce-cart .ff-cartpage table.shop_table.cart td.product-thumbnail img {
	width: 88px; height: auto; border-radius: var(--ff-radius-sm); border: 1px solid var(--ff-line); display: block;
}
.woocommerce-cart .ff-cartpage table.shop_table.cart td.product-name { flex: 1 1 auto; min-width: 0; }
.woocommerce-cart .ff-cartpage table.shop_table.cart td.product-name a { color: #fff; font-weight: 600; font-size: 1.05rem; }
.woocommerce-cart .ff-cartpage table.shop_table.cart td.product-name .variation,
.woocommerce-cart .ff-cartpage table.shop_table.cart td.product-name dl { margin: 0.2rem 0 0; font-size: 0.875rem; color: var(--ff-glow); opacity: 0.75; }
.woocommerce-cart .ff-cartpage table.shop_table.cart td.product-name dl dt,
.woocommerce-cart .ff-cartpage table.shop_table.cart td.product-name dl dd { display: inline; margin: 0; font-weight: 400; }
.woocommerce-cart .ff-cartpage table.shop_table.cart tr.cart_item td.product-price,
.woocommerce-cart .ff-cartpage table.shop_table.cart tr.cart_item td.product-quantity { display: none; }
.woocommerce-cart .ff-cartpage table.shop_table.cart td.product-subtotal {
	flex: 0 0 auto; font-family: var(--ff-mono); font-size: 1.05rem; font-weight: 500; color: #fff;
	font-variant-numeric: tabular-nums;
}
.woocommerce-cart .ff-cartpage table.shop_table.cart td.product-remove { flex: 0 0 auto; order: 10; }
.woocommerce-cart .ff-cartpage table.shop_table.cart td.product-remove a.remove {
	width: 30px; height: 30px; line-height: 28px; font-size: 1.1rem; display: grid; place-items: center;
}
.woocommerce-cart .ff-cartpage table.shop_table.cart tr:not(.cart_item) { display: block; }
.woocommerce-cart .ff-cartpage table.shop_table.cart td.actions {
	display: block; border-top: 1px solid var(--ff-line); padding: 1.1rem 0 0; margin-top: 0.25rem;
}
.woocommerce-cart .ff-cartpage table.shop_table.cart td.actions .button[name="update_cart"] { display: none; }
.woocommerce-cart .ff-cartpage .coupon { display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; }
.woocommerce-cart .ff-cartpage .coupon label { display: none; }
.woocommerce-cart .ff-cartpage .coupon input.input-text {
	flex: 1 1 12rem; max-width: 18rem;
	background: var(--ff-ink-2); color: #fff; border: 1px solid var(--ff-line-2);
	border-radius: var(--ff-radius-pill); padding: 0.7rem 1rem; font-size: 0.9375rem;
}
.woocommerce-cart .ff-cartpage .coupon input.input-text:focus { border-color: var(--ff-amber); outline: none; }
.ff-bundlecta { display: flex; flex-direction: column; gap: 0.5rem; margin: 0 0 0.9rem; }
.ff-bundlecta__btn { width: 100%; }
.ff-bundlecta__status {
	display: block; text-align: center; font-size: 0.875rem; line-height: 1.35;
	padding: 0.55rem 0.75rem; border-radius: var(--ff-radius-sm);
	color: var(--ff-glow);
}
.ff-bundlecta__status--free {
	background: rgba(252, 158, 11, 0.1); border: 1px solid rgba(252, 158, 11, 0.35);
}
.ff-bundlecta__status--free::before { content: "✓ "; color: var(--ff-amber); }
.ff-bundlecta__status--done {
	background: rgba(252, 158, 11, 0.1); border: 1px solid rgba(252, 158, 11, 0.35);
}
.ff-bundlecta__status--done::before { content: "✓ "; color: var(--ff-amber); }
.ff-bundlecta__status:hover { color: #fff; }
.woocommerce table.shop_table {
	border: 1px solid var(--ff-line); border-radius: var(--ff-radius); border-collapse: separate;
	background: var(--ff-soot); overflow: hidden;
}
.woocommerce table.shop_table th { font-family: var(--ff-body); font-size: 0.875rem; font-weight: 600; letter-spacing: 0; color: var(--ff-ash); border: 0; }
.woocommerce table.shop_table td { border-top: 1px solid var(--ff-line); color: var(--ff-glow); font-variant-numeric: tabular-nums; }
.woocommerce table.shop_table .product-name a { color: #fff; }
.woocommerce a.remove { color: var(--ff-red) !important; border: 1px solid var(--ff-line-2); }
.woocommerce a.remove:hover { background: var(--ff-red) !important; color: #fff !important; }
.woocommerce .cart-collaterals .cart_totals h2,
.woocommerce-checkout h3, .woocommerce-cart h2 { font-size: var(--ff-h3); }
.woocommerce .cart_totals, .woocommerce-checkout #order_review, .woocommerce .woocommerce-order {
	background: var(--ff-soot); border: 1px solid var(--ff-line); border-radius: var(--ff-radius); padding: 1.5rem;
}
.woocommerce form .form-row label, .woocommerce-page form .form-row label { color: var(--ff-ash); font-family: var(--ff-body); font-size: var(--ff-small); }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container--default .select2-selection--single,
.ff-input {
	background: var(--ff-ink-2); color: #fff; border: 1px solid var(--ff-line-2);
	border-radius: var(--ff-radius-sm); padding: 0.85rem 1rem; font-family: var(--ff-body);
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus { border-color: var(--ff-amber); outline: none; }
.woocommerce-checkout form.checkout {
	display: grid; grid-template-columns: minmax(0, 1fr) 380px;
	grid-template-rows: auto 1fr;
	gap: 0 clamp(1.5rem, 3vw, 3rem); align-items: start;
}
@media (max-width: 1210px) { .woocommerce-checkout form.checkout { grid-template-columns: 1fr; } }
.woocommerce-checkout form.checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; }
.woocommerce-checkout form.checkout #customer_details .col-1,
.woocommerce-checkout form.checkout #customer_details .col-2 { float: none; width: 100%; }
.woocommerce-checkout form.checkout #customer_details .col-2:not(:has(.form-row)) { display: none; }
.woocommerce-checkout form.checkout #order_review_heading { grid-column: 2; grid-row: 1; margin: 0 0 0.75rem; }
.woocommerce-checkout form.checkout #order_review { grid-column: 2; grid-row: 2; position: sticky; top: calc(var(--ff-head-h) + 1rem); }
@media (max-width: 1210px) {
	.woocommerce-checkout form.checkout #customer_details,
	.woocommerce-checkout form.checkout #order_review_heading,
	.woocommerce-checkout form.checkout #order_review { grid-column: 1; grid-row: auto; position: static; }
	.woocommerce-checkout form.checkout #order_review_heading { margin-top: 2rem; }
}
.woocommerce-checkout .woocommerce-billing-fields h3 { margin: 0 0 1rem; }
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper {
	display: grid; grid-template-columns: 1fr 1fr; gap: 0.9rem 1rem;
}
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row { float: none; width: auto; margin: 0; padding: 0; }
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row-wide { grid-column: 1 / -1; }
@media (max-width: 560px) { .woocommerce-checkout .woocommerce-billing-fields__field-wrapper { grid-template-columns: 1fr; } .woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row { grid-column: 1; } }
.woocommerce-checkout .form-row label { display: block; margin-bottom: 0.35rem; color: var(--ff-glow); font-size: 0.875rem; font-weight: 500; }
.woocommerce-checkout .form-row label .optional { color: var(--ff-ash); font-weight: 400; }
.woocommerce-checkout .form-row .required { color: var(--ff-amber); text-decoration: none; }
.woocommerce-checkout .form-row .woocommerce-input-wrapper { display: block; }
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .select2-container--default .select2-selection--single { width: 100%; height: auto; line-height: 1.3; }
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered { color: #fff; line-height: 1.3; padding: 0; }
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow { height: 100%; right: 0.75rem; }
.woocommerce-checkout .form-row .description { display: block; margin: 0.35rem 0 0; font-size: 0.8125rem; color: var(--ff-ash); }
.woocommerce-checkout #order_review table.shop_table tbody tr.cart_item { display: none; }
.woocommerce-checkout #order_review table.shop_table.is-open tbody tr.cart_item { display: table-row; }
.woocommerce-checkout #order_review table.shop_table tr.ff-review-summary td { padding: 0 0 0.35rem; }
.ff-review-toggle {
	display: flex; align-items: center; gap: 0.5rem; width: 100%;
	padding: 0.15rem 0; border: 0; background: none; cursor: pointer;
	font: inherit; color: var(--ff-glow); text-align: left;
}
.ff-review-toggle__count { font-weight: 600; color: #fff; }
.ff-review-toggle__hint { color: var(--ff-amber); font-size: 0.875rem; margin-left: auto; }
.ff-review-toggle__chev { width: 14px; height: 14px; color: var(--ff-amber); flex: 0 0 auto; transition: transform 0.2s var(--ff-ease); }
.ff-review-toggle[aria-expanded="true"] .ff-review-toggle__chev { transform: rotate(180deg); }
.ff-review-toggle:hover .ff-review-toggle__hint { color: #fff; }
.ff-review-toggle:focus-visible { outline: 2px solid var(--ff-amber); outline-offset: 3px; border-radius: 4px; }
.woocommerce-checkout #order_review table.shop_table.is-open tbody tr.cart_item:first-of-type td { padding-top: 0.6rem; }
.woocommerce-checkout #order_review table.shop_table.is-open tbody tr.cart_item td { font-size: 0.9375rem; }
.woocommerce-checkout #order_review table.shop_table { border: 0; border-radius: 0; background: none; margin: 0; }
.woocommerce-checkout #order_review table.shop_table thead { display: none; }
.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td { padding: 0.55rem 0; border: 0; vertical-align: top; }
.woocommerce-checkout #order_review table.shop_table tbody td.product-name { color: var(--ff-glow); font-weight: 500; }
.woocommerce-checkout #order_review table.shop_table tbody td.product-name .product-quantity { display: none; }
.woocommerce-checkout #order_review table.shop_table tbody td.product-name dl { margin: 0.15rem 0 0; font-size: 0.8125rem; color: var(--ff-glow); opacity: 0.7; }
.woocommerce-checkout #order_review table.shop_table tbody td.product-name dl dt,
.woocommerce-checkout #order_review table.shop_table tbody td.product-name dl dd { display: inline; margin: 0; font-weight: 400; }
.woocommerce-checkout #order_review table.shop_table td.product-total { text-align: right; font-family: var(--ff-mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
.woocommerce-checkout #order_review table.shop_table tfoot th { font-weight: 500; color: var(--ff-glow); }
.woocommerce-checkout #order_review table.shop_table tfoot td { text-align: right; font-family: var(--ff-mono); font-variant-numeric: tabular-nums; }
.woocommerce-checkout #order_review table.shop_table tfoot tr:first-child th,
.woocommerce-checkout #order_review table.shop_table tfoot tr:first-child td { border-top: 1px solid var(--ff-line); padding-top: 0.85rem; }
.woocommerce-checkout #order_review table.shop_table tfoot tr.order-total th,
.woocommerce-checkout #order_review table.shop_table tfoot tr.order-total td { font-size: 1.15rem; font-weight: 700; color: #fff; padding-top: 0.6rem; }
.woocommerce-checkout #payment,
#add_payment_method #payment { background: none; border: 0; border-top: 1px solid var(--ff-line); border-radius: 0; margin-top: 1rem; padding-top: 1rem; }
#add_payment_method #payment { border-top: 0; margin-top: 0; padding-top: 0; }
.woocommerce-checkout #payment ul.payment_methods,
#add_payment_method #payment ul.payment_methods { border-bottom: 0; padding: 0; margin: 0 0 1rem; }
.woocommerce-checkout #payment ul.payment_methods li,
#add_payment_method #payment ul.payment_methods li { padding: 0.5rem 0; color: var(--ff-glow); }
.woocommerce-checkout #payment ul.payment_methods li label,
#add_payment_method #payment ul.payment_methods li label { color: var(--ff-glow); font-weight: 500; }
.woocommerce-checkout #payment div.payment_box,
#add_payment_method #payment div.payment_box { background: var(--ff-ink-2); color: var(--ff-glow); border-radius: var(--ff-radius-sm); font-size: 0.9375rem; }
.woocommerce-checkout #payment div.payment_box::before,
#add_payment_method #payment div.payment_box::before { border-bottom-color: var(--ff-ink-2); }
.woocommerce-checkout #payment div.place-order { padding: 0; margin: 0; }
.woocommerce-checkout #payment .woocommerce-privacy-policy-text { font-size: 0.8125rem; color: var(--ff-ash); margin-bottom: 1rem; }
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper { margin-bottom: 1.25rem; }
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper .validate-required { margin: 0; padding: 0; }
.woocommerce-checkout #payment .woocommerce-form__label-for-checkbox {
	display: flex; align-items: flex-start; gap: 0.65rem;
	font-size: 0.9375rem; color: var(--ff-glow); line-height: 1.45;
}
.woocommerce-checkout #payment .woocommerce-form__label-for-checkbox input[type="checkbox"] {
	flex: none; width: 1.1rem; height: 1.1rem; margin: 0.15rem 0 0; accent-color: var(--ff-amber);
}
.woocommerce-checkout #payment .woocommerce-form__label-for-checkbox a { color: var(--ff-amber); text-decoration: underline; text-underline-offset: 3px; }
.woocommerce-checkout #payment #place_order { width: 100%; float: none; }
.woocommerce form .form-row.mwc-optin { margin: 1.1rem 0 0; padding: 0; }
.woocommerce-checkout .woocommerce-account-fields { margin-top: 0.75rem; }
.woocommerce-checkout .woocommerce-account-fields .form-row.create-account { float: none; width: auto; margin: 0; padding: 0; }
.woocommerce form .form-row.mwc-optin label,
.woocommerce-checkout .form-row.mwc-optin label,
.woocommerce-checkout .form-row.create-account label {
	display: flex; align-items: flex-start; gap: 0.65rem; margin: 0;
	font-size: 0.9375rem; font-weight: 400; color: var(--ff-glow); line-height: 1.45; cursor: pointer;
}
.woocommerce form .form-row.mwc-optin input[type="checkbox"],
.woocommerce-checkout .form-row.create-account input[type="checkbox"] {
	flex: none; width: 1.1rem; height: 1.1rem; margin: 0.15rem 0 0; accent-color: var(--ff-amber);
}
.woocommerce-checkout div.create-account { margin-top: 0.9rem; }
.woocommerce-checkout .woocommerce-account-fields:has(#createaccount) div.create-account { display: none; }
.woocommerce-checkout .woocommerce-account-fields:has(#createaccount:checked) div.create-account { display: block; }
.woocommerce-checkout div.create-account .form-row { float: none; width: auto; margin: 0; padding: 0; }
.ff-checkout-coupon { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1rem; margin: -0.5rem 0 1.5rem; }
.ff-checkout-coupon__toggle { font-size: 0.9375rem; color: var(--ff-amber); }
.ff-checkout-coupon .checkout_coupon { display: flex; gap: 0.5rem; align-items: center; margin: 0; padding: 0; border: 0; background: none; }
.ff-checkout-coupon .checkout_coupon input.input-text {
	width: 14rem; max-width: 100%;
	background: var(--ff-ink-2); color: #fff; border: 1px solid var(--ff-line-2);
	border-radius: var(--ff-radius-pill); padding: 0.6rem 1rem; font-size: 0.9375rem;
}
.ff-checkout-coupon .checkout_coupon input.input-text:focus { border-color: var(--ff-amber); outline: none; }
.woocommerce-account .ff-container { max-width: var(--ff-wide); }
.woocommerce-account .ff-prose { max-width: none; }
.woocommerce-account .ff-prose a { text-decoration: none; }
.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) {
	display: grid; grid-template-columns: 220px minmax(0, 1fr);
	gap: 2rem; align-items: start;
}
.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation)::before,
.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation)::after { content: none; }
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content { float: none; width: 100%; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.25rem; }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block; padding: 0.45rem 0.85rem; border-radius: var(--ff-radius-sm);
	font-family: var(--ff-body); font-size: 0.78rem; color: var(--ff-ash); border: 1px solid transparent;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { color: #fff; background: var(--ff-soot); border-color: var(--ff-line); }
.woocommerce-account .woocommerce-MyAccount-content { background: var(--ff-soot); border: 1px solid var(--ff-line); border-radius: var(--ff-radius); padding: 1.75rem; }
.woocommerce-account #customer_login { max-width: 520px; }
.woocommerce-account #customer_login::before,
.woocommerce-account #customer_login::after { content: none; }
.woocommerce-account #customer_login .u-column1,
.woocommerce-account #customer_login .u-column2 {
	float: none; width: auto;
	background: var(--ff-soot); border: 1px solid var(--ff-line); border-radius: var(--ff-radius); padding: 1.75rem;
}
.ff-auth--login #customer_login .u-column2,
.ff-auth--register #customer_login .u-column1 { display: none; }
.woocommerce-account .ff-auth-switch {
	margin: 1.25rem 0 0; padding-top: 1.1rem; border-top: 1px solid var(--ff-line);
	font-size: 0.9375rem; color: var(--ff-ash);
}
.woocommerce-account .ff-auth-switch a { color: var(--ff-amber); font-weight: 600; }
.woocommerce-account .ff-auth-switch a:hover { color: #fff; }
.woocommerce-account #customer_login h2 { font-size: var(--ff-h3); margin: 0 0 1.1rem; }
.woocommerce-account #customer_login form.login,
.woocommerce-account #customer_login form.register { border: 0; border-radius: 0; padding: 0; margin: 0; }
.woocommerce-account #customer_login .cf-turnstile { margin: 1rem 0 0.25rem; }
.woocommerce-account #customer_login .woocommerce-privacy-policy-text p { margin: 0.9rem 0 1.1rem; font-size: 0.8125rem; line-height: 1.5; color: var(--ff-ash); }
.woocommerce-account #customer_login .woocommerce-privacy-policy-text a { color: var(--ff-amber); }
.woocommerce-account #customer_login .lost_password { margin: 1rem 0 0; font-size: 0.875rem; }

.woocommerce form .woocommerce-password-strength {
	margin-top: 0.5rem; padding: 0.35rem 0.75rem; text-align: left;
	background: transparent; border: 1px solid var(--ff-line-2); border-radius: var(--ff-radius-sm);
	font-size: 0.8125rem; font-weight: 600; color: var(--ff-glow);
}
.woocommerce form .woocommerce-password-strength.short,
.woocommerce form .woocommerce-password-strength.bad { background: transparent; border-color: var(--ff-red); color: var(--ff-red); }
.woocommerce form .woocommerce-password-strength.good { background: transparent; border-color: var(--ff-amber); color: var(--ff-amber); }
.woocommerce form .woocommerce-password-strength.strong { background: transparent; border-color: #3ddc84; color: #3ddc84; }
.woocommerce form .woocommerce-password-hint { display: block; margin-top: 0.4rem; font-size: 0.8125rem; line-height: 1.45; color: var(--ff-ash); }
.woocommerce form .show-password-input::before { filter: invert(1); opacity: 0.55; }
.woocommerce form .show-password-input:hover::before,
.woocommerce form .show-password-input.display-password::before { opacity: 0.9; }
.woocommerce table.my_account_orders .button, .woocommerce .woocommerce-MyAccount-downloads .button { padding: 0.55rem 1rem; }
.ff-wave__line, .ff-wave__glow { transition: none; }
@keyframes ff-flicker {
	0%, 100% { opacity: 0.72; }
	50% { opacity: 0.4; }
}
.ff-dots i:last-child { animation: ff-flicker 2.6s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) {
	* { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
}
@media (max-width: 900px) {
	.ff-specband { grid-template-columns: repeat(2, 1fr); }
	.ff-inside__grid { grid-template-columns: 1fr; }
	.ff-fblock, .ff-fblock:nth-child(even) { grid-template-columns: minmax(0, 1fr); }
	.ff-fblock:nth-child(even) .ff-fblock__media { order: 0; }
	.ff-contact { grid-template-columns: 1fr; }
	.ff-footer__inner { grid-template-columns: 1fr; gap: 2rem; }
	.ff-footer__nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1210px) {
	.ff-masthead__inner { gap: 0.75rem; }
	.ff-nav-toggle { display: inline-flex; }
	.ff-primary {
		position: fixed; inset: var(--ff-head-h) 0 auto 0; z-index: 90;
		background: var(--ff-ink); border-bottom: 1px solid var(--ff-line);
		padding: 1rem var(--ff-gutter) 1.5rem;
		transform: translateY(calc(-100% - var(--ff-head-h))); transition: transform 0.3s var(--ff-ease);
		max-height: calc(100dvh - var(--ff-head-h)); overflow-y: auto;
	}
	.ff-primary.is-open { transform: translateY(0); }
	.ff-menu, .ff-menu ul { flex-direction: column; align-items: stretch; gap: 0.15rem; }
	.ff-menu a { padding: 0.8rem 0.5rem; font-size: 1rem; }
	.ff-menu .sub-menu {
		display: flex; position: static; transform: none; min-width: 0;
		padding: 0 0 0 1.1rem; border: 0; box-shadow: none; background: transparent;
	}
	.ff-menu .menu-item-has-children > a::after { content: ""; margin: 0; }
	.ff-menu .current-menu-item > a::after { left: 0.5rem; right: auto; width: 22px; }
}
@media (max-width: 780px) {
	.ff-phero { min-height: clamp(300px, 48vh, 460px); }
	.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) { grid-template-columns: 1fr; }
	.woocommerce-account .woocommerce-MyAccount-navigation ul { flex-direction: row; flex-wrap: wrap; }
}
@media (max-width: 560px) {
	.ff-hero__actions { flex-direction: column; }
	.ff-hero__actions .ff-btn { width: 100%; }
	.woocommerce div.product form.cart { flex-direction: column; align-items: stretch; }
	.woocommerce div.product .single_add_to_cart_button { width: 100%; }
	.ff-specband { grid-template-columns: 1fr; }
	.ff-buybar__name { display: none; }
}
@media (max-width: 412px) {
	.ff-account--signin { border: 0; padding: 0.4rem; margin-right: 0; }
	.ff-account--signin svg { display: block; }
	.ff-account--signin .ff-account__label { display: none; }
}
