/*
 * Pure Forge Labs — theme styles
 * Design tokens mirror the source composition. Breakpoints: 1080px (tablet), 760px (mobile).
 */

:root {
	--paper: #fbfaf7;
	--panel: #f3f1ec;
	--white: #fff;
	--shade: #efedea;
	--ink: #1a1d21;
	--ink-deep: #14161a;
	--muted: #5c6167;
	--faint: #8a9098;
	--line: #e2ded5;
	--line-soft: #efede7;
	--line-input: #d6d2c8;
	--accent: #f15313;
	--accent-dark: #c9430d;
	--accent-soft: #f0906a;
	--accent-tint: #fdf1eb;
	--accent-tint-line: #e7cfbb;

	--d-surface: #1a1d21;
	--d-input: #1e2127;
	--d-chip: #24272d;
	--d-line: #2e323a;
	--d-line-soft: #23262c;
	--d-edge: #33383f;
	--d-text: #f2f0eb;
	--d-muted: #a2a7ae;
	--d-faint: #6e747c;
	--d-dim: #4e545c;

	--sans: "Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;
	--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
	--hatch: repeating-linear-gradient(135deg, #f3f1ec 0 11px, #eae7e0 11px 22px);
	--hatch-sm: repeating-linear-gradient(135deg, #f3f1ec 0 8px, #eae7e0 8px 16px);

	/* Desktop scale */
	--px: 40px;
	--py: 96px;
	--py-2: 76px;
	--py-s: 56px;
	--gap-big: 72px;
	--gap-mid: 64px;
	--hdr-h: 74px;
	--hdr-gap: 44px;
	--logo-h: 31px;
	--body-pb: 96px;
	--card-gap: 20px;
	--card-pad: 30px;
	--card-pad-s: 20px;
	--stat-pad: 18px 20px;
	--box-pad: 40px;
	--mb-big: 88px;

	--f-hero: 66px;
	--f-stat: 26px;
	--f-h2: 42px;
	--f-h2-b: 40px;
	--f-h2-c: 36px;
	--f-h1-shop: 48px;
	--f-h1-prod: 46px;
	--f-h1-coa: 52px;
	--f-h1-cert: 30px;
	--f-sec: 28px;
	--f-spec: 24px;
	--f-news: 30px;
	--f-card-name: 17px;
	--f-card-price: 19px;

	--cols-3: repeat(3, 1fr);
	--cols-4: repeat(4, 1fr);
	--cols-hero: 1.05fr 0.95fr;
	--cols-about: 0.9fr 1.1fr;
	--cols-coa: 0.85fr 1.15fr;
	--cols-faq: 0.75fr 1.25fr;
	--cols-prod: 1fr 1fr;
	--cols-cert: 1.2fr 1fr;
	--cols-news: 1fr 1fr;
	--cols-foot: 1.4fr 1fr 1fr 1.2fr;
	--cols-preview: 1.1fr 1.5fr 1fr 0.8fr;
	--gap-prod: 64px;
	--gap-cert: 40px;
	--gap-news: 72px;
	--gap-foot: 56px;
	--hero-min-h: 640px;
	--hero-pad: 88px 0;
	--hero-img-pad: 56px 0;
	--lot-margin: 18px 0 0 -28px;
	--faq-pad-r: 60px;
	--cert-pad: 32px 28px;
}

@media (max-width: 1080px) {
	:root {
		--px: 28px;
		--gap-big: 48px;
		--gap-mid: 44px;
		--card-gap: 20px;
		--box-pad: 30px;
		--f-hero: 46px;
		--f-h2: 32px;
		--f-h2-b: 31px;
		--f-h2-c: 29px;
		--f-h1-shop: 38px;
		--f-h1-prod: 36px;
		--f-h1-coa: 38px;
		--f-h1-cert: 26px;
		--f-sec: 24px;
		--f-spec: 21px;
		--f-news: 26px;
		--cols-4: repeat(3, 1fr);
		--cols-hero: 1.15fr 0.85fr;
		--gap-prod: 36px;
		--gap-news: 36px;
		--gap-foot: 36px 28px;
		--hero-min-h: 520px;
		--hero-pad: 60px 0;
		--hero-img-pad: 40px 0;
	}
}

@media (max-width: 760px) {
	:root {
		--px: 18px;
		--py: 56px;
		--py-2: 46px;
		--py-s: 34px;
		--gap-big: 30px;
		--gap-mid: 32px;
		--hdr-h: 58px;
		--hdr-gap: 12px;
		--logo-h: 26px;
		--body-pb: 84px;
		--card-gap: 12px;
		--card-pad: 22px;
		--card-pad-s: 14px;
		--stat-pad: 13px 11px;
		--box-pad: 24px;
		--mb-big: 52px;

		--f-hero: 38px;
		--f-stat: 19px;
		--f-h2: 28px;
		--f-h2-b: 26px;
		--f-h2-c: 25px;
		--f-h1-shop: 34px;
		--f-h1-prod: 31px;
		--f-h1-coa: 34px;
		--f-h1-cert: 24px;
		--f-sec: 21px;
		--f-spec: 20px;
		--f-news: 23px;
		--f-card-name: 15px;
		--f-card-price: 17px;

		--cols-3: 1fr;
		--cols-4: repeat(2, 1fr);
		--cols-hero: 1fr;
		--cols-about: 1fr;
		--cols-coa: 1fr;
		--cols-faq: 1fr;
		--cols-prod: 1fr;
		--cols-cert: 1fr;
		--cols-news: 1fr;
		--cols-foot: 1fr 1fr;
		--cols-preview: 1fr 1.3fr 0.6fr;
		--gap-prod: 26px;
		--gap-cert: 24px;
		--gap-news: 22px;
		--gap-foot: 30px 20px;
		--hero-min-h: auto;
		--hero-pad: 34px 0 4px;
		--hero-img-pad: 0 0 40px;
		--lot-margin: 14px 0 0 0;
		--faq-pad-r: 0px;
		--cert-pad: 22px 18px;
	}
}

/* ---------------------------------------------------------------- base */

*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font-family: var(--sans);
	font-size: 15px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	padding-bottom: var(--body-pb);
}

a {
	color: var(--accent-dark);
	text-decoration: none;
}

a:hover {
	color: var(--accent);
	text-decoration: underline;
}

button {
	font-family: inherit;
	cursor: pointer;
}

input,
select,
textarea {
	font-family: inherit;
}

h1,
h2,
h3,
h4 {
	margin: 0;
}

p {
	margin: 0;
}

img {
	max-width: 100%;
}

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

.pfl-skip:focus {
	position: fixed;
	top: 8px;
	left: 8px;
	z-index: 999;
	background: var(--ink);
	color: var(--paper);
	padding: 10px 16px;
}

:where(a, button, input, select, [tabindex]):focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

/* ------------------------------------------------------------ helpers */

.pfl-wrap {
	max-width: 1280px;
	margin: 0 auto;
	padding-inline: var(--px);
}

.pfl-mono {
	font-family: var(--mono);
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.pfl-eyebrow {
	font-family: var(--mono);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--faint);
}

.pfl-label {
	font-family: var(--mono);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--faint);
}

.pfl-btn {
	display: inline-block;
	border: 1px solid transparent;
	padding: 16px 30px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	cursor: pointer;
	border-radius: 0;
	text-decoration: none;
}

.pfl-btn:hover {
	text-decoration: none;
}

.pfl-btn--accent {
	background: var(--accent);
	border-color: var(--accent);
	color: var(--paper);
}

.pfl-btn--accent:hover {
	background: var(--accent-dark);
	border-color: var(--accent-dark);
	color: var(--paper);
}

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

.pfl-btn--outline:hover {
	background: var(--ink);
	color: var(--paper);
}

.pfl-btn--ink {
	background: var(--ink);
	border-color: var(--ink);
	color: var(--paper);
}

.pfl-btn--ink:hover {
	background: var(--ink-deep);
	color: var(--paper);
}

.pfl-btn--block {
	display: block;
	width: 100%;
	padding: 18px;
	font-size: 15px;
	font-weight: 700;
}

.pfl-shot {
	position: relative;
	overflow: hidden;
	background: var(--shade);
}

.pfl-shot img {
	position: absolute;
	top: -1px;
	left: -1px;
	width: calc(100% + 2px);
	height: calc(100% + 2px);
	object-fit: cover;
	display: block;
}

.pfl-shot--empty {
	background: var(--hatch);
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}

.pfl-shot--empty span {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--faint);
	line-height: 1.8;
}

.pfl-badge {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 2;
	font-family: var(--mono);
	font-size: 9px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 5px 8px;
	color: var(--paper);
}

.pfl-badge--best {
	background: var(--ink);
}

.pfl-badge--new {
	background: var(--accent);
}

/* ------------------------------------------------------------- header */

.pfl-ticker {
	background: var(--ink);
	color: var(--d-text);
	padding: 9px 24px;
	text-align: center;
	font-family: var(--mono);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.pfl-header {
	position: sticky;
	top: 0;
	z-index: 60;
	background: var(--paper);
	border-bottom: 1px solid var(--line);
}

.pfl-header__bar {
	max-width: 1280px;
	margin: 0 auto;
	padding-inline: var(--px);
	height: var(--hdr-h);
	display: flex;
	align-items: center;
	gap: var(--hdr-gap);
}

.pfl-header__logo {
	display: flex;
	align-items: center;
	flex: none;
}

.pfl-header__logo img {
	height: var(--logo-h);
	width: auto;
	display: block;
}

.pfl-header__logo .pfl-header__wordmark {
	font-size: 17px;
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var(--ink);
}

.pfl-header__spacer {
	flex: 1;
}

.pfl-nav {
	display: flex;
	align-items: center;
	gap: 30px;
	margin-left: 8px;
}

/* wp_nav_menu wraps items in a <ul>; the fallback prints bare <a>s. */
.pfl-nav ul {
	display: flex;
	align-items: center;
	gap: 30px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.pfl-nav a {
	font-size: 14px;
	font-weight: 500;
	color: var(--muted);
	padding: 26px 0;
	border-bottom: 2px solid transparent;
	text-decoration: none;
	white-space: nowrap;
}

.pfl-nav a:hover {
	color: var(--ink);
	text-decoration: none;
}

.pfl-nav a.is-active {
	font-weight: 600;
	color: var(--ink);
	border-bottom-color: var(--accent);
}

.pfl-header__tools {
	display: flex;
	align-items: center;
	gap: 10px;
}

.pfl-search {
	display: flex;
	align-items: center;
	gap: 8px;
	border: 1px solid var(--line);
	background: var(--white);
	padding: 8px 12px;
	width: 210px;
}

.pfl-search__glyph {
	width: 11px;
	height: 11px;
	border: 1.5px solid var(--faint);
	border-radius: 50%;
	flex: none;
}

.pfl-search input {
	border: 0;
	outline: 0;
	background: transparent;
	font-size: 13px;
	width: 100%;
	color: var(--ink);
	padding: 0;
}

.pfl-search button {
	border: 0;
	background: none;
	padding: 0;
}

.pfl-cart {
	display: flex;
	align-items: center;
	gap: 8px;
	border: 1px solid var(--ink);
	background: var(--ink);
	color: var(--paper);
	padding: 9px 14px;
	font-family: var(--mono);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	white-space: nowrap;
	text-decoration: none;
}

.pfl-cart:hover {
	color: var(--paper);
	text-decoration: none;
	background: var(--ink-deep);
}

.pfl-cart__count {
	color: var(--accent);
}

.pfl-burger {
	width: 44px;
	height: 42px;
	border: 1px solid var(--line);
	background: var(--white);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	flex: none;
	padding: 0;
}

.pfl-burger span {
	width: 18px;
	height: 1.5px;
	background: var(--ink);
	display: block;
}

.pfl-header__mobile {
	display: none;
	align-items: center;
	gap: 8px;
}

.pfl-header__mobile .pfl-cart {
	padding: 11px 12px;
	gap: 6px;
}

.pfl-mobilemenu {
	display: none;
	border-top: 1px solid var(--line);
	background: var(--paper);
	padding: 14px 18px 22px;
	flex-direction: column;
}

.pfl-mobilemenu.is-open {
	display: flex;
}

.pfl-mobilemenu .pfl-search {
	width: auto;
	padding: 12px 14px;
	margin-bottom: 10px;
}

.pfl-mobilemenu .pfl-search input {
	font-size: 16px;
}

.pfl-mobilemenu__nav {
	display: flex;
	flex-direction: column;
}

.pfl-mobilemenu__nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
}

.pfl-mobilemenu a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 17px;
	font-weight: 500;
	color: var(--muted);
	padding: 15px 0;
	border-bottom: 1px solid var(--line-soft);
	text-decoration: none;
}

.pfl-mobilemenu a.is-active {
	font-weight: 700;
	color: var(--ink);
}

.pfl-mobilemenu a.is-active::after {
	content: "viewing";
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--accent);
}

@media (max-width: 1080px) {
	.pfl-search {
		width: 170px;
	}

	.pfl-nav {
		gap: 20px;
	}
}

@media (max-width: 760px) {
	.pfl-nav,
	.pfl-header__tools {
		display: none;
	}

	.pfl-header__mobile {
		display: flex;
	}
}

/* --------------------------------------------------------------- hero */

.pfl-hero {
	border-bottom: 1px solid var(--line);
	background: var(--paper);
}

.pfl-hero__grid {
	max-width: 1280px;
	margin: 0 auto;
	padding-inline: var(--px);
	display: grid;
	grid-template-columns: var(--cols-hero);
	gap: var(--gap-big);
	align-items: center;
	min-height: var(--hero-min-h);
}

.pfl-hero__copy {
	padding: var(--hero-pad);
}

.pfl-pill {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	border: 1px solid var(--line);
	background: var(--white);
	padding: 7px 13px;
	margin-bottom: 30px;
}

.pfl-pill__dot {
	width: 6px;
	height: 6px;
	background: var(--accent);
	border-radius: 50%;
}

.pfl-pill span {
	font-family: var(--mono);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--muted);
	white-space: nowrap;
}

.pfl-hero h1 {
	font-size: var(--f-hero);
	font-weight: 800;
	letter-spacing: -0.035em;
	line-height: 1.02;
	text-wrap: balance;
	margin-bottom: 24px;
}

.pfl-hero h1 em {
	font-style: normal;
	color: var(--accent);
}

.pfl-hero__lede {
	font-size: 18px;
	color: var(--muted);
	line-height: 1.6;
	max-width: 470px;
	text-wrap: pretty;
	margin-bottom: 36px;
}

.pfl-hero__cta {
	display: flex;
	gap: 12px;
	margin-bottom: 52px;
	flex-wrap: wrap;
}

.pfl-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	background: var(--line);
	border: 1px solid var(--line);
	max-width: 520px;
}

.pfl-stats__item {
	background: var(--paper);
	padding: var(--stat-pad);
}

.pfl-stats__value {
	font-size: var(--f-stat);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1;
}

.pfl-stats__key {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--faint);
	margin-top: 6px;
}

.pfl-hero__media {
	position: relative;
	padding: var(--hero-img-pad);
}

.pfl-hero__frame {
	aspect-ratio: 1 / 1;
	border: 1px solid var(--line);
	background: var(--shade);
	overflow: hidden;
}

.pfl-hero__frame img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.pfl-lotcard {
	margin: var(--lot-margin);
	display: inline-block;
	background: var(--white);
	border: 1px solid var(--line);
	padding: 16px 20px;
	box-shadow: 0 12px 32px rgba(26, 29, 33, 0.08);
	text-decoration: none;
}

.pfl-lotcard:hover {
	text-decoration: none;
}

/* These are <span>s inside an <a>; they must stack like the design's blocks. */
.pfl-lotcard__lot,
.pfl-lotcard__name,
.pfl-lotcard__lab {
	display: block;
}

.pfl-lotcard__lot {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--faint);
	margin-bottom: 6px;
}

.pfl-lotcard__name {
	font-size: 15px;
	font-weight: 600;
	color: var(--ink);
}

.pfl-lotcard__lab {
	font-family: var(--mono);
	font-size: 11px;
	color: var(--accent-dark);
	margin-top: 4px;
}

/* ------------------------------------------------------------ pillars */

.pfl-section {
	max-width: 1280px;
	margin: 0 auto;
	padding: var(--py) var(--px);
}

.pfl-intro {
	display: grid;
	grid-template-columns: var(--cols-about);
	gap: var(--gap-big);
	margin-bottom: var(--gap-mid);
	align-items: start;
}

.pfl-intro h2 {
	font-size: var(--f-h2);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.08;
	text-wrap: balance;
}

.pfl-intro p {
	font-size: 17px;
	color: var(--muted);
	line-height: 1.65;
	text-wrap: pretty;
	padding-top: 6px;
}

.pfl-pillars {
	display: grid;
	grid-template-columns: var(--cols-3);
	gap: 1px;
	background: var(--line);
	border: 1px solid var(--line);
}

.pfl-pillar {
	background: var(--paper);
}

.pfl-pillar__media {
	aspect-ratio: 4 / 3;
	border-bottom: 1px solid var(--line);
	position: relative;
	overflow: hidden;
}

.pfl-pillar__body {
	padding: var(--card-pad);
}

.pfl-pillar__num {
	font-family: var(--mono);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.14em;
	color: var(--accent-dark);
	margin-bottom: 14px;
}

.pfl-pillar h3 {
	font-size: 20px;
	font-weight: 700;
	letter-spacing: -0.015em;
	margin-bottom: 10px;
}

.pfl-pillar p {
	font-size: 14.5px;
	color: var(--muted);
	line-height: 1.6;
	text-wrap: pretty;
}

/* ----------------------------------------------------------- featured */

.pfl-band {
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	background: var(--panel);
}

.pfl-band__inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: var(--py-2) var(--px);
}

.pfl-sechead {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
	margin-bottom: 32px;
}

.pfl-sechead h2 {
	font-size: var(--f-h2-c);
	font-weight: 700;
	letter-spacing: -0.03em;
}

.pfl-sechead__eyebrow {
	margin-bottom: 12px;
}

.pfl-sechead__link {
	font-family: var(--mono);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--accent-dark);
	padding-bottom: 6px;
	border-bottom: 1px solid var(--accent);
	text-decoration: none;
}

.pfl-sechead__link:hover {
	text-decoration: none;
	color: var(--accent);
}

.pfl-grid {
	display: grid;
	grid-template-columns: var(--cols-4);
	gap: var(--card-gap);
}

/* ------------------------------------------------------- product card */

.pfl-card {
	background: var(--white);
	border: 1px solid var(--line);
	display: flex;
	flex-direction: column;
	position: relative;
}

.pfl-band .pfl-card {
	background: var(--paper);
}

.pfl-card__media {
	aspect-ratio: 1 / 1;
	border-bottom: 1px solid var(--line);
	position: relative;
	overflow: hidden;
	background: var(--shade);
	display: block;
}

.pfl-card__body {
	padding: var(--card-pad-s);
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex: 1;
}

.pfl-card__cat {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--faint);
}

.pfl-card__name {
	font-size: var(--f-card-name);
	font-weight: 700;
	letter-spacing: -0.015em;
	line-height: 1.25;
}

.pfl-card__name a {
	color: inherit;
	text-decoration: none;
}

.pfl-card__name a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.pfl-card:hover {
	border-color: var(--faint);
}

.pfl-card__meta {
	font-size: 13.5px;
	color: var(--muted);
}

.pfl-card__spacer {
	flex: 1;
}

.pfl-card__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding-top: 12px;
	border-top: 1px solid var(--line);
}

.pfl-card__price {
	font-size: var(--f-card-price);
	font-weight: 700;
	letter-spacing: -0.02em;
}

.pfl-card__price del {
	opacity: 0.5;
	font-weight: 500;
	margin-right: 6px;
}

.pfl-card__price ins {
	text-decoration: none;
}

.pfl-card__add {
	position: relative;
	z-index: 2;
	background: var(--ink);
	border: 1px solid var(--ink);
	color: var(--paper);
	font-family: var(--mono);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 9px 14px;
	white-space: nowrap;
	text-decoration: none;
	line-height: 1.4;
}

.pfl-card__add:hover {
	background: var(--accent);
	border-color: var(--accent);
	color: var(--paper);
	text-decoration: none;
}

.pfl-card__add.loading {
	opacity: 0.6;
}

.pfl-card__add.added::after {
	content: " ✓";
}

/* --------------------------------------------------------- COA band */

.pfl-dark {
	background: var(--ink-deep);
	color: var(--d-text);
}

.pfl-coaband {
	max-width: 1280px;
	margin: 0 auto;
	padding: var(--py-2) var(--px);
	display: grid;
	grid-template-columns: var(--cols-coa);
	gap: var(--gap-big);
	align-items: center;
}

.pfl-coaband__eyebrow {
	font-family: var(--mono);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--accent);
	margin-bottom: 16px;
}

.pfl-coaband h2 {
	font-size: var(--f-h2-b);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.08;
	margin-bottom: 20px;
	text-wrap: balance;
}

.pfl-coaband p {
	font-size: 16.5px;
	color: var(--d-muted);
	line-height: 1.6;
	text-wrap: pretty;
	margin-bottom: 30px;
}

.pfl-coaband .pfl-btn--accent {
	color: var(--ink-deep);
	font-weight: 700;
	padding: 15px 28px;
}

.pfl-lottable {
	border: 1px solid var(--d-line);
}

.pfl-lottable__head,
.pfl-lottable__row {
	display: grid;
	grid-template-columns: var(--cols-preview);
	gap: 14px;
	align-items: center;
}

.pfl-lottable__head {
	padding: 14px 20px;
	border-bottom: 1px solid var(--d-line);
	background: var(--d-surface);
	font-family: var(--mono);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--d-faint);
}

.pfl-lottable__row {
	padding: 15px 20px;
	border-bottom: 1px solid var(--d-line-soft);
	font-size: 13.5px;
}

.pfl-lottable__id {
	font-family: var(--mono);
	font-size: 12.5px;
	color: var(--d-text);
}

.pfl-lottable__product {
	color: var(--d-muted);
}

.pfl-lottable__lab {
	color: var(--d-faint);
	font-size: 12.5px;
}

.pfl-lottable__pur {
	font-family: var(--mono);
	font-size: 12.5px;
	color: var(--accent);
}

@media (max-width: 760px) {
	.pfl-lottable__lab {
		display: none;
	}
}

/* ---------------------------------------------------------------- FAQ */

.pfl-faq {
	display: grid;
	grid-template-columns: var(--cols-faq);
	gap: var(--gap-big);
	align-items: start;
}

.pfl-faq h2 {
	font-size: var(--f-h2-b);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.08;
	text-wrap: balance;
	margin-bottom: 16px;
}

.pfl-faq__intro {
	font-size: 15.5px;
	color: var(--muted);
	line-height: 1.6;
	text-wrap: pretty;
}

.pfl-faq__list {
	border-top: 1px solid var(--line);
}

.pfl-faq__item {
	border-bottom: 1px solid var(--line);
}

.pfl-faq__item > summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 22px 0;
	cursor: pointer;
	font-size: 17px;
	font-weight: 600;
	letter-spacing: -0.01em;
	list-style: none;
}

.pfl-faq__item > summary::-webkit-details-marker {
	display: none;
}

.pfl-faq__item > summary::after {
	content: "+";
	font-family: var(--mono);
	font-size: 16px;
	color: var(--faint);
	flex: none;
}

.pfl-faq__item[open] > summary::after {
	content: "−";
	color: var(--accent-dark);
}

.pfl-faq__item p {
	font-size: 15px;
	color: var(--muted);
	line-height: 1.65;
	text-wrap: pretty;
	padding: 0 var(--faq-pad-r) 26px 0;
	max-width: 640px;
}

/* --------------------------------------------------------- newsletter */

.pfl-news {
	background: var(--panel);
	border-top: 1px solid var(--line);
}

.pfl-news__inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: var(--py-2) var(--px);
	display: grid;
	grid-template-columns: var(--cols-news);
	gap: var(--gap-news);
	align-items: center;
}

.pfl-news h2 {
	font-size: var(--f-news);
	font-weight: 700;
	letter-spacing: -0.025em;
	margin-bottom: 10px;
	text-wrap: balance;
}

.pfl-news p {
	font-size: 15px;
	color: var(--muted);
	line-height: 1.6;
}

.pfl-news form {
	display: flex;
	gap: 10px;
}

.pfl-news input {
	flex: 1;
	min-width: 0;
	background: var(--paper);
	border: 1px solid var(--line-input);
	padding: 15px 16px;
	font-size: 14px;
	outline: 0;
	color: var(--ink);
}

.pfl-news button {
	background: var(--ink);
	border: 1px solid var(--ink);
	color: var(--paper);
	padding: 15px 28px;
	font-size: 14px;
	font-weight: 600;
	white-space: nowrap;
}

.pfl-news__msg {
	margin-top: 10px;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--accent-dark);
}

/* ------------------------------------------------------------- footer */

.pfl-footer {
	background: var(--ink-deep);
	color: var(--d-text);
}

.pfl-footer__cols {
	max-width: 1280px;
	margin: 0 auto;
	padding: var(--py-2) var(--px) 0;
	display: grid;
	grid-template-columns: var(--cols-foot);
	gap: var(--gap-foot);
}

.pfl-footer__brand img {
	height: 29px;
	width: auto;
	display: block;
	margin-bottom: 20px;
}

.pfl-footer__brand p {
	font-size: 14px;
	color: var(--d-muted);
	line-height: 1.6;
	max-width: 300px;
	text-wrap: pretty;
}

.pfl-footer__title {
	font-family: var(--mono);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--d-faint);
	margin-bottom: 16px;
}

.pfl-footer__list {
	display: flex;
	flex-direction: column;
	gap: 10px;
	font-size: 14px;
	list-style: none;
	margin: 0;
	padding: 0;
	color: var(--d-muted);
}

.pfl-footer__list a {
	color: var(--d-muted);
	text-decoration: none;
}

.pfl-footer__list a:hover {
	color: var(--d-text);
	text-decoration: none;
}

.pfl-footer__list .pfl-footer__mail a {
	color: var(--accent);
}

.pfl-footer__addr {
	line-height: 1.5;
	color: var(--d-faint);
	font-size: 13px;
}

.pfl-footer__legal {
	max-width: 1280px;
	margin: 0 auto;
	padding: 36px var(--px) 52px;
}

.pfl-footer__legal-inner {
	border-top: 1px solid var(--d-line);
	padding-top: 28px;
}

.pfl-footer__legal p {
	font-size: 12.5px;
	color: var(--d-faint);
	line-height: 1.65;
	max-width: 960px;
	text-wrap: pretty;
	margin-bottom: 14px;
}

.pfl-footer__legal p strong {
	color: var(--d-muted);
}

.pfl-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	margin-top: 24px;
}

.pfl-footer__bottom,
.pfl-footer__pay {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--d-dim);
}

.pfl-footer__pay {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
}

@media (max-width: 760px) {
	.pfl-footer__brand {
		grid-column: 1 / -1;
	}
}

/* ---------------------------------------------------------- shop head */

.pfl-pagehead {
	border-bottom: 1px solid var(--line);
	background: var(--panel);
}

.pfl-pagehead__inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: var(--py-s) var(--px) 38px;
}

.pfl-pagehead .pfl-eyebrow {
	margin-bottom: 14px;
}

.pfl-pagehead h1 {
	font-size: var(--f-h1-shop);
	font-weight: 800;
	letter-spacing: -0.035em;
	line-height: 1;
	margin-bottom: 16px;
}

.pfl-pagehead p {
	font-size: 16.5px;
	color: var(--muted);
	max-width: 560px;
	line-height: 1.6;
	text-wrap: pretty;
}

.pfl-shop {
	max-width: 1280px;
	margin: 0 auto;
	padding: 24px var(--px) var(--py);
}

.pfl-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 20px 0;
	border-bottom: 1px solid var(--line);
	margin-bottom: 32px;
	flex-wrap: wrap;
}

.pfl-chips {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.pfl-chip {
	background: var(--paper);
	color: var(--muted);
	border: 1px solid var(--line);
	padding: 9px 16px;
	font-size: 13px;
	font-weight: 500;
	text-decoration: none;
}

.pfl-chip:hover {
	color: var(--ink);
	text-decoration: none;
	border-color: var(--faint);
}

.pfl-chip.is-active {
	background: var(--ink);
	color: var(--paper);
	border-color: var(--ink);
	font-weight: 600;
}

.pfl-toolbar__right {
	display: flex;
	align-items: center;
	gap: 16px;
}

.pfl-count {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--faint);
}

.pfl-layout {
	display: flex;
	border: 1px solid var(--line);
}

.pfl-layout a {
	background: var(--paper);
	color: var(--faint);
	font-family: var(--mono);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 9px 13px;
	text-decoration: none;
}

.pfl-layout a.is-active {
	background: var(--ink);
	color: var(--paper);
}

.pfl-layout a:hover {
	text-decoration: none;
}

@media (max-width: 760px) {
	.pfl-layout,
	.pfl-dock {
		display: none !important;
	}
}

/* -------------------------------------------------------- shop / rows */

.pfl-rows {
	border: 1px solid var(--line);
	background: var(--white);
	overflow-x: auto;
}

.pfl-rows__head,
.pfl-row {
	display: grid;
	grid-template-columns: 72px 2.2fr 1.3fr 0.8fr 1fr 0.8fr 96px;
	gap: 20px;
	align-items: center;
	min-width: 860px;
}

.pfl-rows__head {
	padding: 13px 20px;
	background: var(--panel);
	border-bottom: 1px solid var(--line);
	font-family: var(--mono);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--faint);
}

.pfl-row {
	padding: 14px 20px;
	border-bottom: 1px solid var(--line-soft);
	position: relative;
}

.pfl-row:hover {
	background: var(--paper);
}

.pfl-row__thumb {
	width: 52px;
	height: 52px;
	border: 1px solid var(--line);
	position: relative;
	overflow: hidden;
	background: var(--hatch-sm);
}

.pfl-row__name {
	font-size: 16px;
	font-weight: 700;
	letter-spacing: -0.015em;
}

.pfl-row__name a {
	color: inherit;
	text-decoration: none;
}

.pfl-row__name a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.pfl-row__tag {
	font-family: var(--mono);
	font-size: 9.5px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--accent-dark);
	margin-top: 3px;
}

.pfl-row__cat {
	font-size: 13px;
	color: var(--muted);
}

.pfl-row__size {
	font-family: var(--mono);
	font-size: 12.5px;
	color: var(--ink);
}

.pfl-row__lot {
	font-family: var(--mono);
	font-size: 12px;
	color: var(--faint);
}

.pfl-row__pur {
	font-family: var(--mono);
	font-size: 12.5px;
	color: var(--accent-dark);
}

.pfl-row__price {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: -0.02em;
	text-align: right;
}

.pfl-rows__head > :last-child,
.pfl-row > :last-child {
	text-align: right;
}

/* ------------------------------------------------------- layout dock */

.pfl-dock {
	position: fixed;
	left: 50%;
	bottom: 22px;
	transform: translateX(-50%);
	z-index: 80;
	background: var(--d-surface);
	border: 1px solid var(--d-edge);
	padding: 8px 10px;
	display: flex;
	align-items: center;
	gap: 14px;
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.28);
}

.pfl-dock__label {
	font-family: var(--mono);
	font-size: 9px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--d-faint);
	padding-left: 6px;
}

.pfl-dock__opts {
	display: flex;
	gap: 4px;
	padding-right: 6px;
}

.pfl-dock__opts a {
	background: var(--d-chip);
	color: var(--d-muted);
	font-family: var(--mono);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 8px 12px;
	text-decoration: none;
}

.pfl-dock__opts a.is-active {
	background: var(--accent);
	color: var(--ink-deep);
	font-weight: 600;
}

.pfl-dock__opts a:hover {
	text-decoration: none;
}

/* ------------------------------------------------------ single product */

.pfl-product {
	max-width: 1280px;
	margin: 0 auto;
	padding: 20px var(--px) var(--py);
}

.pfl-crumbs {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--faint);
	margin-bottom: 36px;
}

.pfl-crumbs a {
	color: var(--muted);
	text-decoration: none;
}

.pfl-crumbs a:hover {
	color: var(--ink);
}

.pfl-crumbs__current {
	color: var(--ink);
}

.pfl-product__top {
	display: grid;
	grid-template-columns: var(--cols-prod);
	gap: var(--gap-prod);
	align-items: start;
	margin-bottom: var(--mb-big);
}

.pfl-gallery {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.pfl-gallery__main {
	aspect-ratio: 1 / 1;
	border: 1px solid var(--line);
	position: relative;
	overflow: hidden;
	background: var(--shade);
}

.pfl-gallery__thumbs {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
}

.pfl-gallery__thumb {
	aspect-ratio: 1 / 1;
	border: 1px solid var(--line);
	position: relative;
	overflow: hidden;
	background: var(--hatch-sm);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	cursor: pointer;
}

.pfl-gallery__thumb span {
	font-family: var(--mono);
	font-size: 9px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--faint);
}

.pfl-gallery__thumb.is-active {
	border-color: var(--accent);
}

.pfl-product__summary {
	padding-top: 4px;
}

.pfl-tags {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	margin-bottom: 18px;
}

.pfl-tag {
	font-family: var(--mono);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--muted);
	border: 1px solid var(--line);
	padding: 5px 9px;
	text-decoration: none;
}

.pfl-tag--purity {
	color: var(--accent-dark);
	border-color: var(--accent);
}

.pfl-product__summary h1 {
	font-size: var(--f-h1-prod);
	font-weight: 800;
	letter-spacing: -0.035em;
	line-height: 1.02;
	margin-bottom: 14px;
}

.pfl-product__desc {
	font-size: 16.5px;
	color: var(--muted);
	line-height: 1.6;
	text-wrap: pretty;
	margin-bottom: 28px;
	max-width: 520px;
}

.pfl-price {
	display: flex;
	align-items: baseline;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 28px;
}

.pfl-price__total {
	font-size: 38px;
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.1;
}

.pfl-price__note {
	font-family: var(--mono);
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--faint);
}

.pfl-optlabel {
	font-family: var(--mono);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--faint);
	margin-bottom: 10px;
}

.pfl-doses {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 26px;
}

.pfl-dose {
	border: 1px solid var(--line);
	background: var(--white);
	color: var(--ink);
	padding: 12px 20px;
	min-width: 104px;
	text-align: left;
}

/* Button children are <span>s — stack them. */
.pfl-dose__label,
.pfl-dose__price,
.pfl-tier__label,
.pfl-tier__note {
	display: block;
}

.pfl-dose__label {
	font-size: 14px;
	font-weight: 600;
}

.pfl-dose__price {
	font-family: var(--mono);
	font-size: 11px;
	color: var(--faint);
	margin-top: 2px;
}

.pfl-dose.is-active {
	border-color: var(--ink);
	background: var(--ink);
	color: var(--paper);
}

.pfl-dose.is-active .pfl-dose__price {
	color: var(--accent-soft);
}

.pfl-dose[disabled] {
	opacity: 0.45;
	cursor: not-allowed;
}

.pfl-tiers {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
	margin-bottom: 26px;
}

.pfl-tier {
	border: 1px solid var(--line);
	background: var(--white);
	padding: 14px;
	text-align: left;
}

.pfl-tier__label {
	font-size: 14px;
	font-weight: 600;
}

.pfl-tier__note {
	font-family: var(--mono);
	font-size: 11px;
	color: var(--faint);
	margin-top: 3px;
}

.pfl-tier.is-active {
	border-color: var(--accent);
	background: var(--accent-tint);
}

.pfl-tier.is-active .pfl-tier__label {
	font-weight: 700;
}

.pfl-tier.is-active .pfl-tier__note {
	color: var(--accent-dark);
}

.pfl-product__meta {
	display: flex;
	gap: 20px;
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.06em;
	color: var(--muted);
	flex-wrap: wrap;
	margin-top: 14px;
}

.pfl-product__meta a {
	color: var(--accent-dark);
}

.pfl-panels {
	display: grid;
	grid-template-columns: var(--cols-prod);
	gap: 1px;
	background: var(--line);
	border: 1px solid var(--line);
	margin-bottom: var(--mb-big);
}

.pfl-panel {
	background: var(--paper);
	padding: var(--box-pad);
}

.pfl-panel h2 {
	font-size: var(--f-spec);
	font-weight: 700;
	letter-spacing: -0.02em;
	margin-bottom: 24px;
}

.pfl-spec {
	display: grid;
	grid-template-columns: 0.8fr 1.2fr;
	gap: 20px;
	padding: 13px 0;
	border-bottom: 1px solid var(--line-soft);
}

.pfl-spec__k {
	font-family: var(--mono);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--faint);
}

.pfl-spec__v {
	font-size: 14px;
	color: var(--ink);
	word-break: break-word;
}

.pfl-storage {
	display: flex;
	flex-direction: column;
	gap: 22px;
}

.pfl-storage__key {
	font-family: var(--mono);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--accent-dark);
	margin-bottom: 8px;
}

.pfl-storage p {
	font-size: 14.5px;
	color: var(--muted);
	line-height: 1.6;
	text-wrap: pretty;
}

.pfl-notice {
	border: 1px solid var(--line);
	background: var(--panel);
	padding: 16px;
}

.pfl-notice p {
	font-size: 13px;
	color: var(--muted);
	line-height: 1.55;
	text-wrap: pretty;
}

.pfl-notice strong {
	color: var(--ink);
}

.pfl-subhead {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--line);
	margin-bottom: 32px;
}

.pfl-subhead h2 {
	font-size: var(--f-sec);
	font-weight: 700;
	letter-spacing: -0.025em;
}

.pfl-subhead__meta {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--faint);
}

.pfl-subhead__meta a {
	color: var(--accent-dark);
	font-weight: 600;
}

/* --------------------------------------------------------- reviews */

.pfl-reviews {
	margin-bottom: var(--mb-big);
}

.pfl-reviews__grid {
	display: grid;
	grid-template-columns: var(--cols-3);
	gap: var(--card-gap);
}

.pfl-review {
	border: 1px solid var(--line);
	background: var(--white);
	padding: var(--card-pad);
}

.pfl-review__stars {
	font-family: var(--mono);
	font-size: 12px;
	letter-spacing: 0.08em;
	color: var(--accent-dark);
	margin-bottom: 14px;
}

.pfl-review__body {
	font-size: 14.5px;
	color: var(--ink);
	line-height: 1.6;
	text-wrap: pretty;
	margin-bottom: 18px;
}

.pfl-review__body p {
	margin-bottom: 8px;
}

.pfl-review__who {
	font-family: var(--mono);
	font-size: 10.5px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--faint);
}

.pfl-review-form {
	margin-top: 32px;
	border: 1px solid var(--line);
	background: var(--white);
	padding: var(--card-pad);
	max-width: 640px;
}

.pfl-review-form .comment-reply-title {
	font-size: 18px;
	font-weight: 700;
	margin-bottom: 12px;
}

.pfl-review-form input[type="text"],
.pfl-review-form input[type="email"],
.pfl-review-form textarea {
	width: 100%;
	border: 1px solid var(--line);
	background: var(--paper);
	padding: 12px 14px;
	font-size: 14px;
	outline: 0;
	margin-top: 4px;
}

.pfl-review-form p {
	margin-bottom: 14px;
}

/* -------------------------------------------------------- lab reports */

.pfl-coahero {
	background: var(--ink-deep);
	color: var(--d-text);
}

.pfl-coahero__inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: var(--py-s) var(--px) 46px;
}

.pfl-coahero .pfl-coaband__eyebrow {
	margin-bottom: 16px;
}

.pfl-coahero h1 {
	font-size: var(--f-h1-coa);
	font-weight: 800;
	letter-spacing: -0.035em;
	line-height: 1;
	margin-bottom: 18px;
}

.pfl-coahero p {
	font-size: 17px;
	color: var(--d-muted);
	line-height: 1.6;
	max-width: 560px;
	text-wrap: pretty;
	margin-bottom: 34px;
}

.pfl-coasearch {
	display: flex;
	gap: 10px;
	max-width: 620px;
}

.pfl-coasearch input {
	flex: 1;
	min-width: 0;
	background: var(--d-input);
	border: 1px solid var(--d-line);
	color: var(--d-text);
	padding: 16px 18px;
	font-family: var(--mono);
	font-size: 14px;
	letter-spacing: 0.06em;
	outline: 0;
}

.pfl-coasearch input::placeholder {
	color: var(--d-faint);
}

.pfl-coasearch button {
	background: var(--accent);
	border: 1px solid var(--accent);
	color: var(--ink-deep);
	padding: 16px 30px;
	font-size: 14px;
	font-weight: 700;
	white-space: nowrap;
}

.pfl-coahint {
	font-family: var(--mono);
	font-size: 11px;
	color: var(--d-faint);
	margin-top: 12px;
}

@media (max-width: 760px) {
	.pfl-coasearch {
		flex-direction: column;
	}
}

.pfl-coabody {
	max-width: 1280px;
	margin: 0 auto;
	padding: 36px var(--px) var(--py);
}

.pfl-cert {
	border: 1px solid var(--accent);
	background: var(--accent-tint);
	margin-bottom: 48px;
}

.pfl-cert__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	padding: 20px 28px;
	border-bottom: 1px solid var(--accent-tint-line);
}

.pfl-cert__found {
	display: flex;
	align-items: center;
	gap: 14px;
	font-family: var(--mono);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--accent-dark);
}

.pfl-cert__dot {
	width: 8px;
	height: 8px;
	background: var(--accent);
	border-radius: 50%;
	flex: none;
}

.pfl-cert__pdf {
	font-family: var(--mono);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pfl-cert__grid {
	display: grid;
	grid-template-columns: var(--cols-cert);
	gap: var(--gap-cert);
	padding: var(--cert-pad);
}

.pfl-cert h2 {
	font-size: var(--f-h1-cert);
	font-weight: 700;
	letter-spacing: -0.025em;
	margin-bottom: 6px;
}

.pfl-cert__sub {
	font-family: var(--mono);
	font-size: 13px;
	color: var(--muted);
	margin-bottom: 26px;
}

.pfl-cert__facts {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1px;
	background: var(--accent-tint-line);
	border: 1px solid var(--accent-tint-line);
}

.pfl-cert__fact {
	background: var(--paper);
	padding: 16px 18px;
}

.pfl-cert__fact dt {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--faint);
	margin-bottom: 6px;
}

.pfl-cert__fact dd {
	margin: 0;
	font-size: 24px;
	font-weight: 700;
	letter-spacing: -0.02em;
}

.pfl-cert__fact--sm dd {
	font-size: 16px;
	font-weight: 600;
	padding-top: 4px;
}

.pfl-cert__scan {
	background: var(--hatch);
	border: 1px solid var(--line);
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 240px;
	overflow: hidden;
	position: relative;
}

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

.pfl-cert__scan span {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--faint);
	text-align: center;
	line-height: 1.8;
}

.pfl-nohit {
	border: 1px solid var(--line);
	background: var(--panel);
	padding: 28px;
	margin-bottom: 48px;
}

.pfl-nohit strong {
	display: block;
	font-size: 17px;
	font-weight: 600;
	margin-bottom: 6px;
}

.pfl-nohit p {
	font-size: 14.5px;
	color: var(--muted);
	line-height: 1.6;
}

.pfl-coatable {
	border: 1px solid var(--line);
	border-top: 0;
	background: var(--white);
	overflow-x: auto;
}

.pfl-coatable__head,
.pfl-coatable__row {
	display: grid;
	grid-template-columns: 1.1fr 1.9fr 1.3fr 1fr 0.8fr 0.9fr 110px;
	gap: 20px;
	align-items: center;
	min-width: 900px;
}

.pfl-coatable__head {
	padding: 13px 20px;
	background: var(--panel);
	border-bottom: 1px solid var(--line);
	font-family: var(--mono);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--faint);
}

.pfl-coatable__row {
	padding: 15px 20px;
	border-bottom: 1px solid var(--line-soft);
}

.pfl-coatable__head > :last-child,
.pfl-coatable__row > :last-child {
	text-align: right;
}

.pfl-coatable__lot {
	font-family: var(--mono);
	font-size: 12.5px;
	font-weight: 500;
}

.pfl-coatable__name {
	font-size: 14.5px;
	font-weight: 600;
	letter-spacing: -0.01em;
}

.pfl-coatable__lab {
	font-size: 13px;
	color: var(--muted);
}

.pfl-coatable__date,
.pfl-coatable__endo {
	font-family: var(--mono);
	font-size: 12px;
	color: var(--muted);
}

.pfl-coatable__pur {
	font-family: var(--mono);
	font-size: 12.5px;
	color: var(--accent-dark);
}

.pfl-coatable__pdf {
	font-family: var(--mono);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.pfl-coacards {
	border: 1px solid var(--line);
	border-top: 0;
	background: var(--white);
}

.pfl-coacard {
	padding: 16px;
	border-bottom: 1px solid var(--line-soft);
	display: flex;
	flex-direction: column;
	gap: 7px;
}

.pfl-coacard__top {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
}

.pfl-coacard__name {
	font-size: 15.5px;
	font-weight: 700;
	letter-spacing: -0.015em;
	line-height: 1.25;
}

.pfl-coacard__pur {
	font-family: var(--mono);
	font-size: 13px;
	color: var(--accent-dark);
	flex: none;
}

.pfl-coacard__line {
	font-family: var(--mono);
	font-size: 11.5px;
	letter-spacing: 0.04em;
	color: var(--faint);
}

.pfl-coacard__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.pfl-coacard__lab {
	font-size: 13px;
	color: var(--muted);
}

.pfl-coatable-wrap {
	display: block;
}

.pfl-coacards {
	display: none;
}

@media (max-width: 760px) {
	.pfl-coatable-wrap {
		display: none;
	}

	.pfl-coacards {
		display: block;
	}
}

/* ------------------------------------------------------ sticky add bar */

.pfl-stickybar {
	display: none;
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 75;
	background: var(--paper);
	border-top: 1px solid var(--line);
	padding: 10px 14px;
	align-items: center;
	gap: 12px;
	box-shadow: 0 -10px 28px rgba(26, 29, 33, 0.12);
}

.pfl-stickybar__info {
	flex: 1;
	min-width: 0;
}

.pfl-stickybar__price {
	font-size: 19px;
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.1;
}

.pfl-stickybar__meta {
	font-family: var(--mono);
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--faint);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	margin-top: 3px;
}

.pfl-stickybar button {
	background: var(--accent);
	border: 1px solid var(--accent);
	color: var(--paper);
	padding: 15px 26px;
	font-size: 15px;
	font-weight: 700;
	flex: none;
}

@media (max-width: 760px) {
	.pfl-stickybar {
		display: flex;
	}
}

/* ------------------------------------------------------- generic page */

.pfl-page {
	max-width: 780px;
	margin: 0 auto;
	padding: var(--py-s) var(--px) var(--py);
}

.pfl-page--wide {
	max-width: 1280px;
}

.pfl-page h1 {
	font-size: var(--f-h1-shop);
	font-weight: 800;
	letter-spacing: -0.035em;
	line-height: 1.05;
	margin-bottom: 24px;
}

.pfl-prose h2 {
	font-size: var(--f-sec);
	font-weight: 700;
	letter-spacing: -0.025em;
	margin: 40px 0 14px;
}

.pfl-prose h3 {
	font-size: 20px;
	font-weight: 700;
	margin: 28px 0 10px;
}

.pfl-prose p,
.pfl-prose li {
	font-size: 16px;
	color: var(--muted);
	line-height: 1.7;
	text-wrap: pretty;
}

.pfl-prose p {
	margin-bottom: 16px;
}

.pfl-prose ul,
.pfl-prose ol {
	margin: 0 0 16px;
	padding-left: 22px;
}

.pfl-prose img {
	height: auto;
	display: block;
	margin: 24px 0;
}

.pfl-prose blockquote {
	border-left: 2px solid var(--accent);
	margin: 24px 0;
	padding-left: 20px;
	color: var(--ink);
}

.pfl-postmeta {
	font-family: var(--mono);
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--faint);
	margin-bottom: 20px;
}

.pfl-postlist {
	display: grid;
	grid-template-columns: var(--cols-3);
	gap: var(--card-gap);
}

.pfl-postcard {
	border: 1px solid var(--line);
	background: var(--white);
	padding: var(--card-pad);
}

.pfl-postcard h2 {
	font-size: 20px;
	font-weight: 700;
	letter-spacing: -0.015em;
	margin-bottom: 10px;
}

.pfl-postcard h2 a {
	color: var(--ink);
	text-decoration: none;
}

.pfl-pagination {
	margin-top: 40px;
	font-family: var(--mono);
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.pfl-pagination .page-numbers {
	display: inline-block;
	padding: 8px 12px;
	border: 1px solid var(--line);
	margin-right: 6px;
	color: var(--muted);
	text-decoration: none;
}

.pfl-pagination .page-numbers.current {
	background: var(--ink);
	border-color: var(--ink);
	color: var(--paper);
}

.pfl-empty {
	border: 1px solid var(--line);
	background: var(--panel);
	padding: 40px;
	text-align: center;
}

.pfl-empty p {
	color: var(--muted);
	margin-bottom: 16px;
}

/* --------------------------------------------- WooCommerce overrides */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
	border-top-color: var(--accent);
	background: var(--white);
	border: 1px solid var(--line);
	border-top: 3px solid var(--accent);
	font-size: 14.5px;
	border-radius: 0;
}

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

.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
	background: var(--ink);
	color: var(--paper);
	border-radius: 0;
	font-family: var(--sans);
	font-weight: 600;
	font-size: 14px;
	padding: 14px 24px;
	line-height: 1.2;
}

.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
	background: var(--accent);
	color: var(--paper);
}

.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce,
.woocommerce-account .woocommerce,
.woocommerce-order-received .woocommerce {
	max-width: 1280px;
	margin: 0 auto;
	padding: var(--py-s) var(--px) var(--py);
}

.woocommerce table.shop_table {
	border-radius: 0;
	border-color: var(--line);
}

.woocommerce table.shop_table th {
	font-family: var(--mono);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--faint);
}

.woocommerce .quantity .qty {
	border: 1px solid var(--line);
	padding: 10px 6px;
	background: var(--white);
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container .select2-selection--single {
	border: 1px solid var(--line);
	border-radius: 0;
	padding: 12px 14px;
	height: auto;
	background: var(--white);
}

.pfl-tierhint {
	font-family: var(--mono);
	font-size: 10.5px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--accent-dark);
	display: block;
	margin-top: 4px;
}

/* --------------------------------------------------------------- misc */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
	}
}

@media print {
	.pfl-header,
	.pfl-footer,
	.pfl-dock,
	.pfl-stickybar,
	.pfl-news {
		display: none !important;
	}
}
