:root {
	--primal-navy: #0f1c2e;
	--primal-navy-mid: #1a2d45;
	--primal-slate: #718cbd;
	--primal-slate-light: #a8c0dc;
	--primal-slate-pale: #d4e3f0;
	--primal-bg: #f0eeeb;
	--primal-bg-warm: #e8e6e2;
	--primal-bg-card: #ffffff;
	--primal-text-sub: #4a5f78;
	--primal-border: rgba(15, 28, 46, 0.1);
	--primal-border-accent: rgba(113, 140, 189, 0.3);
	--primal-green: #4caf7d;
	--primal-shadow: 0 18px 42px rgba(15, 28, 46, 0.06);
	--primal-font-sans: "Lato", Arial, sans-serif;
	--primal-font-display: "Cinzel", Georgia, serif;
	--primal-font-serif: "EB Garamond", Georgia, serif;
}

.primal-woocommerce-theme {
	background: var(--primal-bg);
	color: var(--primal-navy);
	font-family: var(--primal-font-sans);
	font-weight: 300;
	overflow-x: clip;
}

.primal-woocommerce-theme .wp-site-blocks {
	padding: 0;
}

.primal-woocommerce-theme :where(a) {
	color: inherit;
}

.primal-woocommerce-theme :where(img, svg) {
	display: block;
	max-width: 100%;
}

.primal-page,
.primal-page *,
.primal-page *::before,
.primal-page *::after,
.primal-wc-page,
.primal-wc-page *,
.primal-wc-page *::before,
.primal-wc-page *::after {
	box-sizing: border-box;
}

.primal-page {
	background: var(--primal-bg);
	color: var(--primal-navy);
	font-family: var(--primal-font-sans);
	overflow-x: clip;
	scroll-behavior: smooth;
}

.primal-topbar,
.primal-site-topbar {
	background: var(--primal-navy);
	color: var(--primal-slate-pale);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.18em;
	padding: 10px 24px;
	text-align: center;
	text-transform: uppercase;
}

.primal-nav,
.primal-site-header {
	align-items: center;
	background: rgba(240, 238, 235, 0.97);
	backdrop-filter: blur(12px);
	border-bottom: 1px solid var(--primal-border);
	display: flex;
	gap: 28px;
	justify-content: space-between;
	min-height: 80px;
	padding: 0 clamp(18px, 5vw, 60px);
	position: sticky;
	top: 0;
	z-index: 1000;
}

.primal-nav-logo,
.primal-site-logo {
	align-items: center;
	display: flex;
	flex-shrink: 0;
	gap: 12px;
	text-decoration: none;
}

.primal-nav-logo-mark,
.primal-site-logo-mark {
	display: block;
	flex: 0 0 54px;
	height: 54px !important;
	object-fit: contain;
	width: 54px !important;
}

.primal-nav-logo-text,
.primal-site-logo-text {
	display: flex;
	flex-direction: column;
	line-height: 1 !important;
}

.primal-nav-logo-name,
.primal-site-logo-name {
	color: var(--primal-navy);
	font-family: var(--primal-font-display);
	font-size: 22px;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1 !important;
	margin: 0 !important;
	padding: 0 !important;
	text-transform: uppercase;
}

.primal-nav-logo-sub,
.primal-site-logo-sub {
	color: var(--primal-slate);
	font-size: 9px;
	font-weight: 600;
	letter-spacing: 0.2em;
	line-height: 1 !important;
	margin: 3px 0 0 !important;
	padding: 0 !important;
	text-transform: uppercase;
}

.primal-nav-links,
.primal-site-nav {
	align-items: center;
	display: flex;
	gap: clamp(18px, 3vw, 40px);
	list-style: none;
	margin: 0;
	padding: 0;
}

.primal-nav-links a,
.primal-site-nav a {
	color: var(--primal-text-sub);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-decoration: none;
	text-transform: uppercase;
	transition: color 0.2s ease;
}

.primal-nav-links a:hover,
.primal-site-nav a:hover {
	color: var(--primal-navy);
}

.primal-nav-right {
	align-items: center;
	display: flex;
	flex-shrink: 0;
	gap: 10px;
}

.primal-nav-icon-link {
	align-items: center;
	border: 1px solid var(--primal-border);
	color: var(--primal-navy);
	display: inline-flex;
	height: 44px;
	justify-content: center;
	position: relative;
	text-decoration: none;
	transition: background 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
	width: 44px;
}

.primal-nav-icon-link:hover {
	background: #ffffff;
	border-color: var(--primal-navy);
	transform: translateY(-1px);
}

.primal-nav-icon-link svg {
	height: 21px;
	width: 21px;
}

.primal-cart-count {
	align-items: center;
	background: var(--primal-navy);
	border-radius: 999px;
	color: #ffffff;
	display: inline-flex;
	font-size: 9px;
	font-weight: 800;
	height: 17px;
	justify-content: center;
	line-height: 1;
	min-width: 17px;
	padding: 0 5px;
	position: absolute;
	right: -6px;
	top: -6px;
}

.primal-cart-count.is-empty {
	display: none;
}

.primal-btn,
.primal-add-to-cart,
.woocommerce .button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button,
.woocommerce #respond input#submit {
	align-items: center;
	border: 1px solid transparent;
	cursor: pointer;
	display: inline-flex;
	font-family: var(--primal-font-sans);
	font-size: 11px;
	font-weight: 800;
	justify-content: center;
	letter-spacing: 0.15em;
	line-height: 1.2;
	min-height: 44px;
	padding: 12px 28px;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.15s ease;
}

.primal-btn-primary,
.woocommerce .button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button,
.woocommerce #respond input#submit,
.primal-add-to-cart {
	background: var(--primal-navy);
	border-color: var(--primal-navy);
	color: #ffffff;
}

.primal-btn-primary:hover,
.woocommerce .button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button:hover,
.woocommerce #respond input#submit:hover,
.primal-add-to-cart:hover {
	background: var(--primal-navy-mid);
	border-color: var(--primal-navy-mid);
	color: #ffffff;
	transform: translateY(-1px);
}

.primal-btn-outline {
	background: transparent;
	border-color: var(--primal-navy);
	color: var(--primal-navy);
}

.primal-btn-outline:hover {
	background: var(--primal-navy);
	color: #ffffff;
}

.primal-hero {
	background: var(--primal-bg);
	border-bottom: 1px solid var(--primal-border);
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	min-height: 90vh;
	overflow: hidden;
	position: relative;
}

.primal-hero-left {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
	padding: clamp(56px, 7vw, 120px) clamp(28px, 6vw, 80px);
}

.primal-hero-left-inner {
	max-width: 560px;
}

.primal-nowrap {
	white-space: nowrap;
}

.primal-hero-right {
	align-items: center;
	background: #f4f3f1;
	border-left: 1px solid var(--primal-border);
	display: flex;
	justify-content: center;
	min-width: 0;
	padding: clamp(32px, 5vw, 76px);
	text-align: center;
}

.primal-hero-eyebrow,
.primal-section-label {
	align-items: center;
	color: var(--primal-slate);
	display: flex;
	font-size: 10px;
	font-weight: 800;
	gap: 12px;
	letter-spacing: 0.22em;
	margin-bottom: 16px;
	text-transform: uppercase;
}

.primal-hero-eyebrow {
	margin-bottom: 44px;
}

.primal-hero-eyebrow::after,
.primal-section-label::before {
	background: var(--primal-slate);
	content: "";
	display: block;
	flex: 0 0 auto;
	height: 1px;
	width: 40px;
}

.primal-section-label::before {
	width: 28px;
}

.primal-hero h1,
.primal-why-section h2,
.primal-products-header h2,
.primal-coa-section h2,
.primal-contact-section h2,
.primal-process-section h2,
.primal-wc-hero h1,
.primal-empty-state h2 {
	color: var(--primal-navy);
	font-family: var(--primal-font-display);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.1;
	margin: 0;
	text-transform: none;
}

.primal-hero h1 {
	font-size: clamp(42px, 4.7vw, 68px);
	margin-bottom: 22px;
	word-break: normal;
	overflow-wrap: normal;
}

.primal-hero h1 em,
.primal-why-section h2 em,
.primal-products-header h2 em,
.primal-contact-section h2 em,
.primal-process-section h2 em {
	color: var(--primal-slate);
	font-family: var(--primal-font-serif);
	font-style: italic;
	font-weight: 400;
	text-transform: none;
}

.primal-hero-tagline {
	border-bottom: 1px solid var(--primal-border);
	color: var(--primal-slate);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.22em;
	margin-bottom: 28px;
	padding-bottom: 28px;
	text-transform: uppercase;
}

.primal-hero p,
.primal-why-section > div > p,
.primal-wc-copy,
.primal-empty-state p {
	color: var(--primal-text-sub);
	font-family: var(--primal-font-serif);
	font-size: 18px;
	font-weight: 400;
	line-height: 1.75;
	margin: 0 0 36px;
	max-width: 520px;
}

.primal-hero-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}

.primal-hero-trust {
	border-bottom: 1px solid var(--primal-border);
	border-top: 1px solid var(--primal-border);
	display: flex;
	margin-top: 48px;
}

.primal-trust-item {
	border-right: 1px solid var(--primal-border);
	flex: 1;
	padding: 18px 20px;
}

.primal-trust-item:last-child {
	border-right: 0;
}

.primal-trust-label {
	color: var(--primal-slate);
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.18em;
	margin-bottom: 4px;
	text-transform: uppercase;
}

.primal-trust-value {
	color: var(--primal-navy);
	font-family: var(--primal-font-display);
	font-size: 13px;
	font-weight: 700;
}

.primal-hero-brand-panel {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: clamp(22px, 3vw, 34px);
	justify-content: center;
	margin: 0 auto;
	width: min(100%, 720px);
}

.primal-hero-brand-mark {
	height: auto;
	margin: 0 auto 16px;
	object-fit: contain;
	width: clamp(180px, 22vw, 360px);
}

.primal-hero-wordmark-name {
	align-items: center;
	color: var(--primal-navy);
	display: flex;
	flex-direction: column;
	font-family: var(--primal-font-display);
	font-size: clamp(54px, 6vw, 104px);
	font-weight: 800;
	letter-spacing: 0.16em;
	line-height: 0.95;
	margin: 0;
	text-transform: uppercase;
}

.primal-hero-wordmark-main {
	color: var(--primal-navy);
	font-size: clamp(28px, 3.1vw, 56px);
	font-weight: 800;
	letter-spacing: 0.14em;
	line-height: 1.18;
	margin: 0;
	text-transform: uppercase;
}

.primal-hero-wordmark-tagline {
	color: #555555;
	font-size: clamp(13px, 1.35vw, 24px);
	font-weight: 500;
	letter-spacing: 0.16em;
	line-height: 1.4;
	margin-top: clamp(20px, 2.2vw, 34px);
	text-transform: uppercase;
}

.primal-marquee-wrap {
	background: var(--primal-navy);
	overflow: hidden;
	padding: 16px 0;
	white-space: nowrap;
}

.primal-marquee-track {
	animation: primal-marquee 32s linear infinite;
	display: inline-flex;
}

@keyframes primal-marquee {
	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(-50%);
	}
}

.primal-marquee-item {
	align-items: center;
	color: var(--primal-slate-light);
	display: inline-flex;
	font-size: 10px;
	font-weight: 800;
	gap: 20px;
	letter-spacing: 0.2em;
	padding: 0 36px;
	text-transform: uppercase;
}

.primal-marquee-sep {
	background: var(--primal-slate);
	border-radius: 50%;
	height: 3px;
	width: 3px;
}

.primal-stats-row {
	background: var(--primal-bg-card);
	border-bottom: 1px solid var(--primal-border);
	display: grid;
	grid-template-columns: repeat(4, 1fr);
}

.primal-stat-cell {
	border-right: 1px solid var(--primal-border);
	padding: 48px 40px;
}

.primal-stat-cell:last-child {
	border-right: 0;
}

.primal-stat-num {
	color: var(--primal-navy);
	font-family: var(--primal-font-display);
	font-size: 42px;
	font-weight: 800;
	line-height: 1;
	margin-bottom: 10px;
}

.primal-stat-num span {
	color: var(--primal-slate);
}

.primal-stat-desc {
	color: var(--primal-text-sub);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 0.06em;
	line-height: 1.6;
}

.primal-why-section {
	align-items: center;
	background: var(--primal-bg);
	display: grid;
	gap: clamp(44px, 8vw, 100px);
	grid-template-columns: 1fr 1fr;
	padding: clamp(72px, 9vw, 120px) clamp(24px, 6vw, 80px);
}

.primal-why-section h2,
.primal-products-header h2,
.primal-contact-section h2,
.primal-process-section h2 {
	font-size: clamp(30px, 4vw, 48px);
	margin-bottom: 28px;
}

.primal-pillars {
	display: flex;
	flex-direction: column;
}

.primal-pillar {
	align-items: flex-start;
	border-bottom: 1px solid var(--primal-border);
	display: flex;
	gap: 28px;
	padding: 28px 0;
}

.primal-pillar:first-child {
	border-top: 1px solid var(--primal-border);
}

.primal-pillar-num {
	color: var(--primal-slate);
	font-family: var(--primal-font-display);
	font-size: 13px;
	font-weight: 800;
	min-width: 24px;
	padding-top: 2px;
}

.primal-pillar-title,
.primal-step-title {
	color: var(--primal-navy);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.14em;
	margin-bottom: 6px;
	text-transform: uppercase;
}

.primal-pillar-desc,
.primal-step-desc {
	color: var(--primal-text-sub);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.65;
}

.primal-products-section {
	background: var(--primal-bg-warm);
	border-top: 1px solid var(--primal-border);
	padding: 0 clamp(18px, 6vw, 80px) clamp(72px, 8vw, 120px);
}

.primal-products-header {
	align-items: flex-end;
	display: flex;
	gap: 24px;
	justify-content: space-between;
	padding: 80px 0 56px;
}

.primal-product-grid {
	background: var(--primal-border);
	display: grid;
	gap: 1px;
	grid-template-columns: repeat(3, 1fr);
}

.primal-product-card {
	background: var(--primal-bg-card);
	display: flex;
	flex-direction: column;
	gap: 22px;
	min-height: 320px;
	padding: 36px 32px;
	position: relative;
}

.primal-product-card.featured {
	align-items: center;
	background: var(--primal-navy);
	display: grid;
	gap: 40px;
	grid-column: span 2;
	grid-template-columns: 1fr auto;
}

.primal-feat-badge {
	background: var(--primal-slate);
	color: #ffffff;
	display: inline-block;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.18em;
	margin-bottom: 10px;
	padding: 5px 14px;
	text-transform: uppercase;
	width: fit-content;
}

.primal-product-cat {
	color: var(--primal-slate);
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.primal-product-card.featured .primal-product-cat {
	color: var(--primal-slate-light);
}

.primal-product-name,
.primal-search-card-title {
	color: var(--primal-navy);
	display: block;
	font-family: var(--primal-font-display);
	font-size: 22px;
	font-weight: 800;
	letter-spacing: 0;
	line-height: 1.2;
	text-decoration: none;
}

.primal-product-card.featured .primal-product-name {
	color: #ffffff;
	font-size: 28px;
}

.primal-product-lot {
	color: var(--primal-slate);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.06em;
}

.primal-product-card.featured .primal-product-lot {
	color: var(--primal-slate-light);
}

.primal-purity-bar-wrap {
	align-items: center;
	display: flex;
	gap: 10px;
	margin-top: 14px;
}

.primal-purity-bar {
	background: var(--primal-border);
	border-radius: 2px;
	flex: 1;
	height: 3px;
	overflow: hidden;
}

.primal-purity-bar-fill {
	background: var(--primal-green);
	border-radius: 2px;
	height: 100%;
}

.primal-purity-label {
	color: var(--primal-green);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.06em;
	white-space: nowrap;
}

.primal-purity-bar-wrap.light .primal-purity-bar {
	background: rgba(255, 255, 255, 0.16);
}

.primal-purity-bar-wrap.light .primal-purity-label,
.primal-cart-message {
	color: #6ee09a;
}

.primal-purity-bar-wrap.light .primal-purity-bar-fill {
	background: #6ee09a;
}

.primal-badge-row {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 14px;
}

.primal-badge {
	align-items: center;
	border: 1px solid var(--primal-border-accent);
	color: var(--primal-slate);
	display: inline-flex;
	font-size: 9px;
	font-weight: 800;
	gap: 5px;
	letter-spacing: 0.12em;
	padding: 3px 9px;
	text-transform: uppercase;
}

.primal-badge.light {
	border-color: rgba(168, 192, 220, 0.4);
	color: var(--primal-slate-light);
}

.primal-product-card-bottom {
	margin-top: auto;
}

.primal-product-price {
	color: var(--primal-navy);
	font-family: var(--primal-font-display);
	font-size: 22px;
	font-weight: 800;
}

.primal-product-card.featured .primal-product-price {
	color: #ffffff;
}

.primal-product-price small {
	color: var(--primal-text-sub);
	display: block;
	font-family: var(--primal-font-sans);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0;
	margin-top: 3px;
}

.primal-product-card.featured .primal-product-price small {
	color: var(--primal-slate-light);
}

.primal-add-to-cart-form {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
	gap: 7px;
	margin-top: 14px;
}

.primal-add-to-cart {
	font-size: 9px;
	min-height: 30px;
	padding: 8px 14px;
	width: fit-content;
}

.primal-add-to-cart.light {
	background: #ffffff;
	border-color: rgba(255, 255, 255, 0.75);
	color: var(--primal-navy);
}

.primal-add-to-cart.light:hover {
	background: var(--primal-slate-light);
	border-color: var(--primal-slate-light);
	color: var(--primal-navy);
}

.primal-add-to-cart.disabled {
	cursor: not-allowed;
	opacity: 0.58;
}

.primal-add-to-cart.loading {
	pointer-events: none;
	opacity: 0.72;
}

.primal-cart-message {
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.08em;
	min-height: 13px;
}

.primal-cart-message.is-error {
	color: #9f2d2d;
}

.primal-coa-section {
	background: var(--primal-navy);
	border-top: 1px solid rgba(255, 255, 255, 0.06);
	padding: clamp(72px, 8vw, 100px) clamp(18px, 6vw, 80px);
}

.primal-coa-section .primal-section-label {
	color: var(--primal-slate-light);
	justify-content: center;
	margin-bottom: 12px;
}

.primal-coa-section .primal-section-label::before {
	background: var(--primal-slate);
}

.primal-coa-section h2 {
	color: #ffffff;
	font-size: clamp(28px, 3.5vw, 44px);
	text-align: center;
}

.primal-coa-subtitle {
	color: rgba(255, 255, 255, 0.52);
	font-family: var(--primal-font-serif);
	font-size: 17px;
	margin: 10px auto 18px;
	text-align: center;
}

.primal-coa-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 2px;
	justify-content: center;
	margin-bottom: 48px;
}

.primal-coa-tab {
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.1);
	color: rgba(255, 255, 255, 0.45);
	cursor: pointer;
	font-family: var(--primal-font-sans);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.16em;
	padding: 10px 24px;
	text-transform: uppercase;
	transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.primal-coa-tab.active {
	background: rgba(113, 140, 189, 0.15);
	border-color: var(--primal-slate);
	color: #ffffff;
}

.primal-coa-panel {
	display: none;
}

.primal-coa-panel.active {
	display: block;
}

.primal-coa-grid {
	background: rgba(255, 255, 255, 0.06);
	display: grid;
	gap: 1px;
}

.primal-coa-grid-hplc {
	grid-template-columns: repeat(4, 1fr);
}

.primal-coa-grid-etx {
	grid-template-columns: repeat(5, 1fr);
}

.primal-coa-card {
	background: var(--primal-navy);
	border: 1px solid rgba(255, 255, 255, 0.02);
	color: rgba(255, 255, 255, 0.74);
	min-height: 290px;
	padding: 28px 24px;
}

.primal-coa-card-icon {
	color: var(--primal-slate);
	margin-bottom: 22px;
}

.primal-coa-card-product {
	color: #ffffff;
	font-family: var(--primal-font-display);
	font-size: 21px;
	font-weight: 800;
	line-height: 1.15;
}

.primal-coa-card-lot,
.primal-coa-card-date,
.primal-coa-card-method,
.primal-coa-analyst {
	color: rgba(255, 255, 255, 0.5);
	font-size: 11px;
	letter-spacing: 0.06em;
	line-height: 1.5;
	margin-top: 8px;
}

.primal-coa-card-method {
	color: var(--primal-slate-light);
}

.primal-coa-purity {
	margin-top: 18px;
}

.primal-coa-purity-num,
.primal-coa-result {
	color: #6ee09a;
	font-family: var(--primal-font-display);
	font-size: 24px;
	font-weight: 800;
	line-height: 1;
}

.primal-coa-result {
	font-size: 18px;
	margin-top: 22px;
}

.primal-coa-purity-label {
	color: rgba(255, 255, 255, 0.48);
	font-size: 10px;
	line-height: 1.45;
	margin-top: 7px;
}

.primal-coa-purity-bar {
	background: rgba(255, 255, 255, 0.12);
	border-radius: 2px;
	height: 3px;
	margin-top: 10px;
	overflow: hidden;
}

.primal-coa-purity-bar-fill {
	background: #6ee09a;
	height: 100%;
}

.primal-coa-download {
	border: 1px solid rgba(168, 192, 220, 0.38);
	color: #ffffff;
	display: inline-flex;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.16em;
	margin-top: 22px;
	padding: 8px 12px;
	text-decoration: none;
	text-transform: uppercase;
}

.primal-coa-download:hover {
	background: rgba(113, 140, 189, 0.18);
}

.primal-process-section {
	background: var(--primal-bg);
	padding: clamp(72px, 8vw, 112px) clamp(18px, 6vw, 80px);
}

.primal-steps {
	display: grid;
	gap: 1px;
	grid-template-columns: repeat(3, 1fr);
	margin-top: 48px;
	background: var(--primal-border);
}

.primal-step {
	background: var(--primal-bg-card);
	padding: 34px 30px;
}

.primal-step-num {
	color: var(--primal-slate);
	font-family: var(--primal-font-display);
	font-size: 26px;
	font-weight: 800;
	margin-bottom: 28px;
}

.primal-contact-section {
	align-items: start;
	background: var(--primal-bg-warm);
	border-top: 1px solid var(--primal-border);
	display: grid;
	gap: clamp(36px, 7vw, 92px);
	grid-template-columns: minmax(0, 0.9fr) minmax(320px, 1.1fr);
	padding: clamp(72px, 8vw, 112px) clamp(18px, 6vw, 80px);
}

.primal-contact-copy {
	max-width: 560px;
}

.primal-contact-copy p {
	color: var(--primal-text-sub);
	font-family: var(--primal-font-serif);
	font-size: clamp(18px, 2vw, 23px);
	line-height: 1.65;
	margin: 0;
}

.primal-contact-form {
	background: #ffffff;
	border: 1px solid var(--primal-border);
	box-shadow: var(--primal-shadow);
	display: grid;
	gap: 22px;
	padding: clamp(24px, 4vw, 42px);
}

.primal-contact-field {
	display: grid;
	gap: 9px;
}

.primal-contact-field label {
	color: var(--primal-navy);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.primal-contact-field input,
.primal-contact-field textarea {
	background: #f9f8f6;
	border: 1px solid var(--primal-border);
	border-radius: 0;
	color: var(--primal-navy);
	font: inherit;
	font-size: 15px;
	line-height: 1.5;
	padding: 14px 16px;
	width: 100%;
}

.primal-contact-field input {
	min-height: 54px;
}

.primal-contact-field textarea {
	min-height: 180px;
	resize: vertical;
}

.primal-contact-field input:focus,
.primal-contact-field textarea:focus {
	background: #ffffff;
	border-color: var(--primal-navy);
	outline: none;
}

.primal-contact-submit {
	justify-self: start;
	min-width: 132px;
}

.primal-contact-notice {
	color: var(--primal-green);
	font-size: 13px;
	font-weight: 700;
	margin: -6px 0 0;
}

.primal-contact-notice.is-error {
	color: #9d3f3f;
}

.primal-footer,
.primal-site-footer {
	background: var(--primal-navy);
	color: rgba(255, 255, 255, 0.58);
	padding: 72px clamp(18px, 6vw, 80px) 28px;
}

.primal-footer-grid,
.primal-site-footer-grid {
	display: grid;
	gap: 44px;
	grid-template-columns: 1.4fr repeat(3, 1fr);
}

.primal-footer-brand,
.primal-site-footer-brand {
	color: #ffffff;
	font-family: var(--primal-font-display);
	font-size: 28px;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.primal-footer-brand-sub,
.primal-site-footer-brand-sub {
	color: var(--primal-slate-light);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.2em;
	margin-top: 5px;
	text-transform: uppercase;
}

.primal-footer-tagline,
.primal-footer-legal {
	font-size: 12px;
	line-height: 1.7;
	margin-top: 22px;
	max-width: 520px;
}

.primal-footer-col-title,
.primal-site-footer-title {
	color: #ffffff;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.16em;
	margin-bottom: 18px;
	text-transform: uppercase;
}

.primal-footer-links,
.primal-site-footer-links {
	display: grid;
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.primal-footer-links a,
.primal-site-footer-links a {
	color: rgba(255, 255, 255, 0.58);
	font-size: 12px;
	text-decoration: none;
}

.primal-footer-links a:hover,
.primal-site-footer-links a:hover {
	color: #ffffff;
}

.primal-footer-bottom {
	align-items: end;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	display: flex;
	gap: 24px;
	justify-content: space-between;
	margin-top: 56px;
	padding-top: 24px;
}

.primal-footer-copy {
	color: rgba(255, 255, 255, 0.45);
	font-size: 11px;
	white-space: nowrap;
}

.primal-wc-page {
	background: #f4f3f1;
	color: var(--primal-navy);
	font-family: var(--primal-font-sans);
	min-height: 70vh;
	overflow-x: clip;
	padding: clamp(22px, 3vw, 38px) clamp(16px, 4vw, 44px) clamp(48px, 6vw, 84px);
	/* Escape FSE contentSize (760px) constraint — mirrors align:full so it works
	   regardless of whether the shortcode block carries {"align":"full"} in the
	   template or is embedded inside wp:post-content with a constrained layout. */
	box-sizing: border-box;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	max-width: 100vw !important;
	width: 100vw !important;
}

.primal-wc-hero {
	margin: 0 auto clamp(28px, 4vw, 52px);
	max-width: 1180px;
	position: relative;
}

.primal-wc-hero h1 {
	font-size: clamp(36px, 5vw, 64px);
	margin: 12px 0 16px;
	max-width: 820px;
}

.utility-page-back {
	align-items: center;
	background: rgba(255, 255, 255, 0.72);
	border: 1px solid var(--primal-border);
	color: var(--primal-navy);
	display: inline-flex;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.14em;
	line-height: 1;
	margin-bottom: 22px;
	min-height: 42px;
	padding: 0 15px;
	text-decoration: none;
	text-transform: uppercase;
	transition: background 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
	width: fit-content;
}

.utility-page-back:hover {
	background: #ffffff;
	border-color: var(--primal-navy);
	transform: translateY(-1px);
}

.primal-wc-surface,
.primal-wc-product-wrap {
	background: rgba(255, 255, 255, 0.78);
	border: 1px solid var(--primal-border);
	box-shadow: var(--primal-shadow);
	margin: 0 auto;
	max-width: 1180px;
	padding: clamp(16px, 2.6vw, 34px);
}

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering,
.woocommerce .woocommerce-breadcrumb {
	color: var(--primal-text-sub);
	font-size: 12px;
	letter-spacing: 0.06em;
}

/* ===== WooCommerce product loop — card design ===== */

.woocommerce ul.products {
	display: grid;
	gap: 22px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	display: none;
}

/* Card shell */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	background: var(--primal-bg-card);
	border: 1px solid var(--primal-border);
	border-radius: 4px;
	box-shadow: 0 4px 18px rgba(15, 28, 46, 0.06);
	display: flex;
	flex-direction: column;
	float: none;
	margin: 0;
	min-width: 0;
	overflow: hidden;
	padding: 0;
	transition: box-shadow 0.2s ease, transform 0.15s ease;
	width: auto;
}

.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover {
	box-shadow: 0 10px 32px rgba(15, 28, 46, 0.11);
	transform: translateY(-2px);
}

/* Image area — edge-to-edge, square, light bg */
.woocommerce ul.products li.product a.woocommerce-loop-product__link {
	display: block;
}

.woocommerce ul.products li.product a img {
	aspect-ratio: 1 / 1;
	background: #f4f3f1;
	border-bottom: 1px solid var(--primal-border);
	border-radius: 0;
	display: block;
	height: auto;
	margin: 0;
	object-fit: contain;
	padding: 18px;
	transition: opacity 0.2s ease;
	width: 100%;
}

.woocommerce ul.products li.product a img:hover {
	opacity: 0.88;
}

/* Text + action area */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .button {
	display: block;
	padding-left: 18px;
	padding-right: 18px;
}

/* Product title */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	color: var(--primal-slate);
	font-family: var(--primal-font-display);
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.25;
	margin: 0;
	padding-top: 18px;
	padding-bottom: 8px;
	text-decoration: none;
}

/* Price */
.woocommerce ul.products li.product .price {
	color: var(--primal-navy);
	font-family: var(--primal-font-display);
	font-size: 22px;
	font-weight: 700;
	margin: 0 0 16px;
	padding-bottom: 0;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--primal-navy);
	font-family: var(--primal-font-display);
	font-size: 22px;
	font-weight: 700;
}

/* Add to cart button — full width, flush to card edges */
.woocommerce ul.products li.product .button {
	background: var(--primal-navy);
	border: none;
	border-radius: 0;
	border-top: 1px solid rgba(15, 28, 46, 0.08);
	color: #ffffff;
	cursor: pointer;
	display: block;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.18em;
	margin-top: auto;
	min-height: 48px;
	padding: 14px 18px;
	text-align: center;
	text-transform: uppercase;
	transition: background 0.2s ease;
	width: 100%;
}

.woocommerce ul.products li.product .button:hover {
	background: var(--primal-navy-mid);
	color: #ffffff;
	transform: none;
}

/* Result count + ordering bar */
.woocommerce .woocommerce-result-count {
	color: var(--primal-text-sub);
	font-size: 13px;
	font-weight: 400;
	letter-spacing: 0;
	margin-bottom: 20px;
}

.woocommerce .woocommerce-ordering {
	margin-bottom: 20px;
}

.woocommerce .woocommerce-ordering select {
	background: #ffffff;
	border: 1px solid var(--primal-border);
	border-radius: 4px;
	color: var(--primal-navy);
	font-family: var(--primal-font-sans);
	font-size: 13px;
	min-height: 38px;
	padding: 0 12px;
}

/* Breadcrumb inside results */
.woocommerce .woocommerce-breadcrumb {
	color: var(--primal-text-sub);
	font-size: 12px;
	letter-spacing: 0.04em;
	margin-bottom: 18px;
}

.woocommerce .woocommerce-breadcrumb a {
	color: var(--primal-slate);
	text-decoration: none;
}

.woocommerce .woocommerce-breadcrumb a:hover {
	color: var(--primal-navy);
}

/* Search results surface — remove the white outer box for a cleaner layout */
.primal-search-results.primal-wc-surface {
	background: transparent;
	border: none;
	box-shadow: none;
	padding: 0;
}

/* ── Search page layout ── */
.primal-search-page .primal-wc-hero {
	max-width: 1180px;
	margin-left: auto;
	margin-right: auto;
	padding-bottom: 32px;
}

.primal-search-page .primal-wc-hero h1 {
	font-size: clamp(26px, 4.2vw, 56px);
	letter-spacing: 0.01em;
	margin-bottom: 22px;
	text-transform: uppercase;
}

/* Search form — full-width, prominent */
.primal-search-page .primal-search-form {
	max-width: 100%;
	margin-bottom: 0;
}

.primal-search-page .primal-search-form .woocommerce-product-search {
	max-width: 800px;
}

.primal-single-product-page .product {
	display: grid;
	gap: clamp(24px, 4vw, 56px);
	grid-template-columns: minmax(280px, 520px) minmax(280px, 1fr);
}

.primal-single-product-page .woocommerce-product-gallery {
	background: #f7f6f4;
	border: 1px solid var(--primal-border);
	float: none;
	padding: clamp(12px, 2vw, 24px);
	width: 100% !important;
}

.primal-single-product-page .woocommerce-product-gallery img {
	object-fit: contain;
}

.primal-single-product-page .summary {
	background: #ffffff;
	border: 1px solid var(--primal-border);
	box-shadow: var(--primal-shadow);
	float: none;
	padding: clamp(22px, 3vw, 36px);
	width: 100% !important;
}

.primal-single-product-page .woocommerce-tabs,
.primal-single-product-page .upsells,
.primal-single-product-page .related {
	grid-column: 1 / -1;
}

.woocommerce div.product .product_title {
	color: var(--primal-navy);
	font-family: var(--primal-font-display);
	font-size: clamp(34px, 4.5vw, 56px);
	font-weight: 800;
	letter-spacing: 0;
	line-height: 1.08;
	text-transform: uppercase;
}

.woocommerce div.product form.cart {
	border-top: 1px solid var(--primal-border);
	margin-top: 24px;
	padding-top: 24px;
}

.woocommerce .quantity .qty {
	background: #ffffff;
	border: 1px solid var(--primal-border);
	color: var(--primal-navy);
	min-height: 44px;
}

.woocommerce div.product .woocommerce-tabs {
	grid-column: 1 / -1;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	border-bottom: 1px solid var(--primal-border);
	padding: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent;
	border: 1px solid var(--primal-border);
	border-radius: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	background: var(--primal-navy);
	border-color: var(--primal-navy);
	color: #ffffff;
}

.woocommerce div.product .woocommerce-tabs .panel {
	background: #ffffff;
	border: 1px solid var(--primal-border);
	border-top: 0;
	padding: clamp(18px, 3vw, 32px);
}

.woocommerce table.shop_table,
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout-review-order,
.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register {
	background: #ffffff;
	border: 1px solid var(--primal-border);
	border-radius: 0;
	box-shadow: var(--primal-shadow);
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	border-color: var(--primal-border);
	color: var(--primal-navy);
}

.woocommerce-cart table.cart img {
	background: #f7f6f4;
	object-fit: contain;
	padding: 6px;
	width: 84px;
}

.woocommerce-cart .cart-collaterals .cart_totals {
	padding: clamp(18px, 2.4vw, 30px);
}

.woocommerce-cart .cart-collaterals .cart_totals h2,
.woocommerce-checkout h3,
.woocommerce-account h2 {
	color: var(--primal-navy);
	font-family: var(--primal-font-display);
	font-weight: 800;
	letter-spacing: 0;
	text-transform: uppercase;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single {
	background: #ffffff;
	border: 1px solid var(--primal-border);
	border-radius: 0;
	color: var(--primal-navy);
	min-height: 46px;
	padding: 10px 12px;
}

.woocommerce-info,
.woocommerce-message,
.woocommerce-error {
	background: #ffffff;
	border-top-color: var(--primal-slate);
	color: var(--primal-navy);
	font-family: var(--primal-font-sans);
}

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

.primal-search-form {
	max-width: 760px;
	width: 100%;
}

.primal-search-form .woocommerce-product-search {
	display: flex;
	gap: 0;
	width: 100%;
}

.primal-search-form input[type="search"],
.woocommerce-product-search input[type="search"] {
	background: #ffffff;
	border: 1px solid var(--primal-border);
	border-right: 0;
	color: var(--primal-navy);
	flex: 1;
	font: inherit;
	font-size: 14px;
	min-height: 54px;
	padding: 0 16px;
}

.primal-search-form input[type="search"]:focus,
.woocommerce-product-search input[type="search"]:focus {
	border-color: var(--primal-navy);
	outline: none;
}

.primal-search-form button,
.woocommerce-product-search button {
	background: var(--primal-navy);
	border: 1px solid var(--primal-navy);
	color: #ffffff;
	cursor: pointer;
	flex-shrink: 0;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.15em;
	min-height: 54px;
	padding: 0 28px;
	text-transform: uppercase;
	transition: background 0.2s ease, border-color 0.2s ease;
}

.primal-search-form button:hover,
.woocommerce-product-search button:hover {
	background: var(--primal-navy-mid);
	border-color: var(--primal-navy-mid);
}

/* Search page layout — matches Shopify search results page */
.primal-search-page .primal-wc-hero {
	padding-bottom: 0;
}

.primal-search-page .primal-wc-hero h1 {
	font-size: clamp(28px, 4vw, 52px);
	margin-bottom: 20px;
}

.primal-search-page .primal-search-form {
	margin-bottom: 0;
}

/* Hide breadcrumb-like elements on search page — results section provides context */
.primal-search-results .woocommerce-breadcrumb {
	display: none;
}

.primal-search-grid {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
}

.primal-search-card {
	background: #ffffff;
	border: 1px solid var(--primal-border);
	box-shadow: 0 12px 30px rgba(15, 28, 46, 0.04);
	min-width: 0;
	padding: 12px;
}

.primal-search-card-media {
	align-items: center;
	aspect-ratio: 1 / 1;
	background: #f7f6f4;
	border: 1px solid rgba(15, 28, 46, 0.08);
	display: flex;
	justify-content: center;
	margin-bottom: 14px;
	overflow: hidden;
}

.primal-search-card-media img {
	height: 100%;
	object-fit: contain;
	padding: 10px;
	width: 100%;
}

.primal-search-card-price {
	color: var(--primal-navy);
	font-family: var(--primal-font-display);
	font-size: 18px;
	font-weight: 800;
	margin-top: 8px;
}

.primal-empty-state {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 24px;
}

/* Shopify template parity */
.primal-woocommerce-theme,
.primal-page,
.primal-wc-page {
	font-family: var(--primal-font-sans);
	font-weight: 300;
}

.primal-topbar,
.primal-site-topbar,
.primal-nav-links a,
.primal-site-nav a,
.primal-nav-logo-sub,
.primal-site-logo-sub,
.primal-hero-wordmark-tagline {
	font-weight: 400;
}

.primal-nav-logo,
.primal-site-logo {
	gap: 20px;
}

.primal-nav-logo-sub,
.primal-site-logo-sub {
	letter-spacing: 0.22em;
}

.primal-cart-count,
.primal-btn,
.primal-add-to-cart,
.woocommerce .button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button,
.woocommerce #respond input#submit,
.primal-hero-eyebrow,
.primal-section-label,
.primal-hero-tagline,
.primal-trust-label,
.primal-marquee-item,
.primal-pillar-num,
.primal-pillar-title,
.primal-step-title,
.primal-feat-badge,
.primal-product-cat,
.primal-purity-label,
.primal-badge,
.primal-cart-message,
.primal-coa-tab,
.primal-coa-card-method,
.primal-coa-purity-label,
.primal-coa-result,
.primal-coa-download,
.primal-footer-brand-sub,
.primal-site-footer-brand-sub,
.primal-footer-col-title,
.primal-site-footer-title,
.utility-page-back,
.primal-search-form button,
.woocommerce-product-search button {
	font-weight: 700;
}

.primal-nav-icon-link {
	--icon-stroke-width: 1.6px;
}

.primal-btn-outline {
	background: var(--primal-navy);
	border-color: var(--primal-navy);
	color: #ffffff;
}

.primal-btn-outline:hover {
	background: var(--primal-navy-mid);
	border-color: var(--primal-navy-mid);
	color: #ffffff;
}

.primal-hero-left {
	padding-inline: clamp(32px, 6vw, 80px);
}

.primal-hero h1,
.primal-why-section h2,
.primal-products-header h2,
.primal-coa-section h2,
.primal-process-section h2,
.primal-wc-hero h1,
.primal-empty-state h2,
.woocommerce div.product .product_title,
.woocommerce-cart .cart-collaterals .cart_totals h2,
.woocommerce-checkout h3,
.woocommerce-account h2 {
	font-weight: 700;
	line-height: 1.08;
}

.primal-why-section h2,
.primal-products-header h2,
.primal-process-section h2 {
	line-height: 1.12;
}

.primal-hero h1 em,
.primal-why-section h2 em,
.primal-products-header h2 em,
.primal-process-section h2 em {
	font-size: 1.15em;
}

.primal-products-header h2 em {
	font-size: 1.2em;
}

.primal-hero p {
	font-size: 19px;
	margin-bottom: 40px;
	max-width: 460px;
}

.primal-why-section > div > p {
	line-height: 1.8;
	max-width: 440px;
}

.primal-trust-value {
	font-weight: 600;
}

.primal-stat-desc,
.primal-pillar-desc,
.primal-product-lot,
.primal-product-price small,
.primal-footer-links a,
.primal-site-footer-links a,
.primal-footer-legal,
.primal-footer-copy {
	font-weight: 300;
}

.primal-products-header h2 {
	line-height: 1.1;
	margin-bottom: 0;
}

.primal-product-card {
	gap: 14px;
	min-height: 0;
}

.primal-product-name,
.primal-search-card-title,
.primal-product-price,
.primal-stat-num,
.primal-hero-wordmark-name,
.primal-hero-wordmark-main,
.primal-coa-card-product,
.primal-coa-purity-num,
.primal-step-num,
.primal-footer-brand,
.primal-site-footer-brand,
.primal-search-card-price {
	font-weight: 700;
}

.primal-product-lot {
	font-weight: 300;
}

.primal-purity-bar-wrap,
.primal-badge-row {
	margin-top: 0;
}

.primal-product-price {
	margin-top: auto;
}

.primal-product-price small {
	margin-top: 2px;
}

.primal-add-to-cart-form {
	gap: 6px;
	margin-top: 4px;
}

.primal-add-to-cart {
	font-size: 9px;
	letter-spacing: 0.18em;
	min-height: 28px;
	padding: 7px 14px;
}

.primal-add-to-cart:hover:not(:disabled),
.primal-add-to-cart:focus-visible:not(:disabled) {
	background: var(--primal-slate);
	border-color: var(--primal-slate);
	color: #ffffff;
}

.primal-add-to-cart.light:hover:not(:disabled),
.primal-add-to-cart.light:focus-visible:not(:disabled) {
	background: var(--primal-slate-light);
	border-color: var(--primal-slate-light);
	color: var(--primal-navy);
}

.primal-coa-subtitle,
.primal-step-desc,
.primal-footer-tagline {
	font-family: var(--primal-font-serif);
	font-weight: 400;
}

.primal-coa-section {
	padding-block: clamp(72px, 8vw, 100px);
}

.primal-coa-subtitle {
	color: rgba(255, 255, 255, 0.45);
	margin: 0 0 16px;
}

.primal-coa-grid,
.primal-coa-grid-hplc,
.primal-coa-grid-etx {
	background: rgba(255, 255, 255, 0.06);
	display: grid;
	gap: 1px;
}

.primal-coa-card {
	background: var(--primal-navy);
	border: 1px solid rgba(113, 140, 189, 0.12);
	display: flex;
	flex-direction: column;
	gap: 10px;
	min-height: 0;
	padding: 32px 24px;
	transition: background 0.2s ease;
}

.primal-coa-card:hover {
	background: var(--primal-navy-mid);
}

.primal-coa-card-icon {
	align-items: center;
	border: 1px solid rgba(113, 140, 189, 0.3);
	display: flex;
	height: 36px;
	justify-content: center;
	margin-bottom: 4px;
	width: 36px;
}

.primal-coa-card-product {
	font-size: 15px;
}

.primal-coa-card-lot {
	color: var(--primal-slate);
	font-size: 9px;
	font-weight: 400;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.primal-coa-card-date {
	color: rgba(255, 255, 255, 0.35);
	font-size: 10px;
	font-weight: 300;
}

.primal-coa-card-method {
	color: rgba(255, 255, 255, 0.3);
	font-size: 9px;
	letter-spacing: 0.1em;
	margin-top: 2px;
	text-transform: uppercase;
}

.primal-coa-card-lot,
.primal-coa-card-date,
.primal-coa-card-method,
.primal-coa-analyst {
	line-height: 1.5;
}

.primal-coa-purity {
	margin-top: 4px;
}

.primal-coa-purity-num {
	color: var(--primal-green);
	font-size: 28px;
}

.primal-coa-purity-label {
	color: rgba(255, 255, 255, 0.35);
	font-size: 9px;
	letter-spacing: 0.14em;
	margin-top: 2px;
	text-transform: uppercase;
}

.primal-coa-purity-bar {
	background: rgba(255, 255, 255, 0.08);
	height: 2px;
	margin-top: 8px;
	width: 100%;
}

.primal-coa-purity-bar-fill {
	background: var(--primal-green);
}

.primal-coa-result {
	align-items: center;
	color: var(--primal-green);
	display: inline-flex;
	font-family: var(--primal-font-sans);
	font-size: 9px;
	gap: 6px;
	letter-spacing: 0.12em;
	margin-top: 4px;
	text-transform: uppercase;
}

.primal-coa-result::before {
	background: var(--primal-green);
	border-radius: 50%;
	content: "";
	flex-shrink: 0;
	height: 6px;
	width: 6px;
}

.primal-coa-analyst {
	color: rgba(255, 255, 255, 0.3);
	font-size: 10px;
	font-weight: 300;
	margin-top: 2px;
}

.primal-coa-download {
	align-items: center;
	background: #2f855a;
	border: 1px solid rgba(255, 255, 255, 0.18);
	color: #ffffff;
	display: inline-flex;
	justify-content: center;
	letter-spacing: 0.14em;
	margin-top: auto;
	transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
	width: 100%;
}

.primal-coa-download:hover {
	background: #256f4b;
	color: #ffffff;
}

.primal-process-section {
	border-top: 1px solid var(--primal-border);
}

.primal-process-section .primal-section-label {
	justify-content: center;
}

.primal-process-section h2 {
	margin-bottom: 72px;
	text-align: center;
}

.primal-step {
	border: 1px solid var(--primal-border);
	padding: 48px 40px;
}

.primal-step-num {
	color: rgba(113, 140, 189, 0.2);
	font-size: 56px;
	margin-bottom: 24px;
}

.primal-step-title {
	letter-spacing: 0.16em;
	margin-bottom: 12px;
}

.primal-step-desc {
	font-size: 17px;
	line-height: 1.75;
}

.primal-footer,
.primal-site-footer {
	border-top: 1px solid rgba(255, 255, 255, 0.06);
	padding-bottom: 40px;
}

.primal-footer-grid,
.primal-site-footer-grid {
	gap: clamp(44px, 5vw, 60px);
	grid-template-columns: 2fr repeat(3, 1fr);
	margin-bottom: 64px;
}

.primal-footer-brand,
.primal-site-footer-brand {
	font-size: 24px;
	letter-spacing: 0.08em;
	margin-bottom: 4px;
}

.primal-footer-brand-sub,
.primal-site-footer-brand-sub {
	color: var(--primal-slate);
	font-size: 9px;
	letter-spacing: 0.22em;
	margin-bottom: 18px;
}

.primal-footer-tagline {
	color: rgba(255, 255, 255, 0.45);
	font-size: 15px;
	line-height: 1.75;
	max-width: 280px;
}

.primal-footer-col-title,
.primal-site-footer-title {
	color: var(--primal-slate);
	font-size: 9px;
	letter-spacing: 0.22em;
	margin-bottom: 20px;
}

.primal-footer-links,
.primal-site-footer-links {
	gap: 12px;
}

.primal-footer-links a,
.primal-site-footer-links a {
	color: rgba(255, 255, 255, 0.45);
	font-size: 13px;
}

.primal-footer-links a:hover,
.primal-site-footer-links a:hover {
	color: var(--primal-slate-light);
}

.primal-footer-bottom {
	align-items: flex-start;
	gap: 40px;
	padding-top: 32px;
}

.primal-footer-legal {
	color: rgba(255, 255, 255, 0.3);
	max-width: 600px;
}

.primal-footer-copy {
	color: rgba(255, 255, 255, 0.3);
}

.primal-wc-copy,
.primal-empty-state p {
	font-family: var(--primal-font-serif);
	font-size: 18px;
	font-weight: 400;
	line-height: 1.75;
}

.utility-page-back {
	font-family: var(--primal-font-sans);
	padding: 0 15px 0 12px;
}

/* Product loop gap is set in the main block above — no override needed here */

/* primal-search-card keeps its own padding independent of the loop cards */
.primal-search-card {
	padding: 12px;
}

.woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.primal-search-card-title,
.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-family: var(--primal-font-display);
	font-weight: 700;
}

.woocommerce div.product form.cart {
	margin-top: 24px;
	padding-top: 24px;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single {
	border-radius: 4px;
}

/* Search form keeps square corners to match the Shopify design */
.primal-search-form input[type="search"],
.woocommerce-product-search input[type="search"] {
	border-radius: 0;
}

/* ===== High-specificity overrides: prevent WordPress/WooCommerce CSS from overriding Primal spacing ===== */

/* --- Nav logo gap --- */
.primal-page .primal-nav-logo,
.primal-woocommerce-theme .primal-nav-logo,
.primal-woocommerce-theme .primal-site-logo {
	align-items: center !important;
	gap: 14px !important;
}

/* --- Nav logo mark: explicit dimensions prevent Chrome/Safari layout shift --- */
.primal-page .primal-nav-logo-mark,
.primal-woocommerce-theme .primal-nav-logo-mark,
.primal-woocommerce-theme .primal-site-logo-mark {
	display: block !important;
	flex: 0 0 54px !important;
	height: 54px !important;
	min-height: 54px !important;
	min-width: 54px !important;
	object-fit: contain !important;
	width: 54px !important;
}

/* --- Nav logo text container: align-items:flex-start prevents Chrome stretching spans --- */
.primal-page .primal-nav-logo-text,
.primal-woocommerce-theme .primal-nav-logo-text,
.primal-woocommerce-theme .primal-site-logo-text {
	align-items: flex-start !important;
	align-self: center !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 0 !important;
	line-height: 1 !important;
}

/* --- Logo name: display:block removes inline baseline whitespace in Chrome/Safari/Edge --- */
.primal-page .primal-nav-logo-name,
.primal-woocommerce-theme .primal-nav-logo-name,
.primal-woocommerce-theme .primal-site-logo-name {
	display: block !important;
	line-height: 1 !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* --- Logo sub: same inline fix + consistent gap from name --- */
.primal-page .primal-nav-logo-sub,
.primal-woocommerce-theme .primal-nav-logo-sub,
.primal-woocommerce-theme .primal-site-logo-sub {
	display: block !important;
	line-height: 1 !important;
	margin: 4px 0 0 !important;
	padding: 0 !important;
}

/* --- Section headings: natural Cinzel case (beats parity.css text-transform: uppercase) --- */
.primal-page .primal-hero h1,
.primal-page .primal-why-section h2,
.primal-page .primal-products-header h2,
.primal-page .primal-coa-section h2,
.primal-page .primal-process-section h2 {
	text-transform: none !important;
}

/* --- Add to cart buttons: force correct style cross-browser --- */
.primal-page .primal-add-to-cart:not(.light) {
	background: var(--primal-navy) !important;
	border: 1px solid var(--primal-navy) !important;
	color: #ffffff !important;
	font-size: 9px !important;
	min-height: 28px !important;
	padding: 7px 14px !important;
	width: fit-content !important;
}

.primal-page .primal-add-to-cart.light {
	background: #ffffff !important;
	border: 1px solid rgba(255, 255, 255, 0.7) !important;
	color: var(--primal-navy) !important;
}

/* --- Hero brand panel --- */
.primal-page .primal-hero-brand-panel {
	align-items: center !important;
	display: flex !important;
	flex-direction: column !important;
	gap: clamp(10px, 1vw, 16px) !important;
	justify-content: center !important;
	margin: 0 auto !important;
	width: min(100%, 720px) !important;
}

.primal-page .primal-hero-wordmark-name {
	align-items: center;
	display: block;
	line-height: 0.95;
	margin: 0;
	padding: 0;
	text-align: center;
}

.primal-page .primal-hero-brand-mark {
	aspect-ratio: 1 / 1 !important;
	display: block !important;
	flex: 0 0 auto !important;
	height: auto !important;
	margin: 0 auto !important;
	object-fit: contain !important;
	width: clamp(180px, 22vw, 360px) !important;
}

.primal-page .primal-hero-wordmark {
	display: block !important;
	margin: 0 !important;
	text-align: center !important;
	width: 100% !important;
}

.primal-page .primal-hero-wordmark-main {
	display: block;
	line-height: 1.18;
	margin: 0;
}

.primal-page .primal-hero-wordmark-tagline {
	line-height: 1.4;
}

/* --- Footer: match Shopify sizing --- */
.primal-page .primal-footer,
.primal-woocommerce-theme .primal-site-footer {
	padding: 72px clamp(18px, 6vw, 80px) 40px !important;
}

.primal-page .primal-footer-grid,
.primal-woocommerce-theme .primal-site-footer-grid {
	margin-bottom: 64px !important;
}

.primal-page .primal-footer-bottom,
.primal-woocommerce-theme .primal-footer-bottom {
	margin-top: 0 !important;
	padding-top: 32px !important;
}

.primal-page .primal-footer-brand,
.primal-woocommerce-theme .primal-site-footer-brand {
	font-size: 24px !important;
	font-weight: 700 !important;
}

/* Match primalpeptides.com desktop proportions */
@media (min-width: 981px) {
	.primal-nav,
	.primal-site-header {
		min-height: 80px;
		padding: 0 60px;
	}

	.primal-nav-links,
	.primal-site-nav {
		gap: 40px;
	}

	.primal-nav-right {
		gap: 10px;
	}

	.primal-hero-left {
		padding: 120px 80px;
	}

	.primal-hero-right {
		padding: 76px;
	}

	.primal-hero-brand-mark {
		width: clamp(180px, 22vw, 360px);
	}

	.primal-stats-row {
		min-height: 128px;
	}

	.primal-stat-cell {
		padding: 48px 40px;
	}

	.primal-why-section {
		gap: 100px;
		padding: 120px 80px;
	}

	.primal-products-section {
		padding: 0 80px 120px;
	}

	.primal-products-header {
		padding: 80px 0 56px;
	}

	.primal-product-card {
		padding: 36px 32px;
	}

	.primal-coa-section {
		padding: 100px 80px;
	}

	.primal-coa-grid-hplc {
		grid-template-columns: repeat(4, 1fr);
	}

	.primal-coa-grid-etx {
		grid-template-columns: repeat(5, 1fr);
	}

	.primal-coa-card {
		padding: 32px 24px;
	}

	.primal-process-section {
		padding: 120px 80px;
	}

	.primal-contact-section {
		padding: 120px 80px;
	}

	.primal-process-section h2 {
		margin-bottom: 72px;
	}

	.primal-step {
		min-height: 336px;
		padding: 48px 40px;
	}

	.primal-site-footer,
	.primal-footer {
		padding: 72px 80px 40px;
	}
}

@media (max-width: 1180px) {
	.primal-nav,
	.primal-site-header {
		padding-left: 32px;
		padding-right: 32px;
	}

	.primal-nav-links,
	.primal-site-nav {
		gap: 24px;
	}

	.primal-coa-grid-hplc,
	.primal-coa-grid-etx {
		grid-template-columns: repeat(2, 1fr);
	}

	.woocommerce ul.products {
		gap: 16px;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 980px) {
	.primal-nav,
	.primal-site-header {
		align-items: flex-start;
		flex-direction: column;
		padding: 18px 24px;
		position: relative;
	}

	.primal-nav-links,
	.primal-site-nav,
	.primal-nav-right {
		width: 100%;
	}

	.primal-nav-right {
		justify-content: flex-end;
		flex-wrap: wrap;
	}

	.primal-nav-links,
	.primal-site-nav {
		justify-content: space-between;
		gap: 12px;
		flex-wrap: wrap;
	}

	.primal-hero {
		grid-template-columns: 1fr;
		min-height: auto;
	}

	.primal-contact-section {
		grid-template-columns: 1fr;
		padding: 80px 24px;
	}

	.primal-hero-left {
		padding: 56px 24px 44px;
	}

	.primal-hero-right {
		border-left: 0;
		border-top: 1px solid var(--primal-border);
		min-height: 360px;
		padding: 40px 24px;
	}

	.primal-hero-left {
		padding: 40px 24px 32px;
	}

	.primal-hero-left-inner {
		max-width: 100%;
	}

	.primal-hero h1 {
		font-size: 42px;
	}

	.primal-hero-actions {
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
	}

	.woocommerce ul.products {
		gap: 14px;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.primal-search-results.primal-wc-surface {
		padding: 0;
	}
}

@media (max-width: 540px) {
	.woocommerce ul.products {
		grid-template-columns: 1fr;
	}
}

/* ===================================================
 * Duplicate-product suppression (safety net)
 *
 * All product rendering goes through primal_woocommerce_direct_product_loop()
 * which adds .primal-loop-item to every <li> it generates.
 * Any product that doesn't carry that class is a duplicate from WooCommerce's
 * native PHP loop, block-based rendering, or a database block template — hide it.
 * This rule has no effect on single product pages (no .products list there).
 * =================================================== */
.woocommerce ul.products li.product:not(.primal-loop-item),
.woocommerce-page ul.products li.product:not(.primal-loop-item) {
	display: none !important;
	height: 0 !important;
	margin: 0 !important;
	overflow: hidden !important;
	padding: 0 !important;
	visibility: hidden !important;
}

/* Hide native WC sort dropdown (comes from duplicate loop rendering). */
.woocommerce .woocommerce-ordering,
.woocommerce-page .woocommerce-ordering {
	display: none !important;
}

/* Our own result count is always visible */
.woocommerce-result-count.primal-result-count {
	display: block !important;
	visibility: visible !important;
}

/* ===== Product loop — Primal card override (content-product.php) ===== */

/*
 * The <li> wrapper from WooCommerce gets primal-loop-item in addition to
 * the native WC classes.  We reset the native card styles added above so
 * the inner <article> controls all visual styling.
 */
/*
 * Reset ALL native WC card styles on the <li>.
 *
 * IMPORTANT: also reset display to block.
 * The earlier rule (.woocommerce ul.products li.product) sets display:flex on
 * the <li>, which causes the <article> inside to stretch to the full row height.
 * Breaking that flex chain is the key fix for the disproportionate card heights.
 */
.woocommerce ul.products li.primal-loop-item,
.woocommerce-page ul.products li.primal-loop-item {
	background: transparent !important;
	border: none !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	display: block !important;   /* ← breaks the flex stretch chain */
	overflow: visible !important;
	padding: 0 !important;
	transition: none !important;
}

.woocommerce ul.products li.primal-loop-item:hover,
.woocommerce-page ul.products li.primal-loop-item:hover {
	box-shadow: none !important;
	transform: none !important;
}

/*
 * Grid: let cards take their natural content height.
 * align-items: start stops the grid from stretching <li> items to the full
 * row height, which is the root cause of the large empty gap inside cards.
 * The :has() selector targets only grids that contain our custom items;
 * the general rule below covers browsers without :has() support.
 */
.woocommerce ul.products:has(li.primal-loop-item) {
	align-items: start;
}

/* Fallback for browsers without :has() — always use align-items:start on the
   WooCommerce product grid when our theme is active */
.primal-woocommerce-theme .woocommerce ul.products,
.primal-page .woocommerce ul.products {
	align-items: start;
}

/* Inner article card — height:auto so it only grows with its content */
.primal-loop-card {
	background: var(--primal-bg-card);
	border: 1px solid var(--primal-border);
	border-radius: 4px;
	box-shadow: 0 4px 18px rgba(15, 28, 46, 0.06);
	display: flex;
	flex-direction: column;
	gap: 0;
	height: auto;          /* natural height — no stretching */
	overflow: hidden;
	transition: box-shadow 0.2s ease, transform 0.15s ease;
}

.primal-loop-card:hover {
	box-shadow: 0 10px 32px rgba(15, 28, 46, 0.11);
	transform: translateY(-2px);
}

/* Image link wrapper — flush to card edges */
.primal-loop-card__img-wrap {
	background: #f4f3f1;
	border-bottom: 1px solid var(--primal-border);
	display: block;
	line-height: 0;
	overflow: hidden;
}

.primal-loop-card__img {
	aspect-ratio: 1 / 1;
	display: block !important;
	height: auto !important;
	object-fit: contain;
	padding: 18px;
	transition: opacity 0.2s ease;
	width: 100% !important;
}

.primal-loop-card__img-wrap:hover .primal-loop-card__img {
	opacity: 0.88;
}

/* Body: category / name / lot / purity / badges */
.primal-loop-card__body {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 16px 16px 8px;
}

/* Bottom: price + add-to-cart — sits immediately after body, no auto margin */
.primal-loop-card__bottom {
	margin-top: 0;
	padding: 8px 16px 16px;
}

/* Make the add-to-cart button full-width in the loop card */
.primal-loop-card .primal-add-to-cart {
	font-size: 9px !important;
	letter-spacing: 0.18em !important;
	min-height: 36px !important;
	padding: 9px 16px !important;
	width: 100% !important;
}

/* ===== Product search page: compact catalog grid matching the reference ===== */

.primal-search-page {
	background: var(--primal-bg);
	padding: 7px clamp(8px, 1.4vw, 18px) clamp(44px, 6vw, 80px);
}

.primal-search-page .primal-search-results.primal-wc-surface {
	background: transparent;
	border: 0;
	box-shadow: none;
	margin: 0 auto;
	max-width: 1180px;
	padding: 0;
}

.primal-loop-toolbar {
	align-items: center;
	display: flex;
	gap: 18px;
	justify-content: space-between;
	margin: 0 0 18px;
}

.woocommerce .primal-loop-toolbar .primal-result-count {
	color: var(--primal-navy);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.2;
	margin: 0;
}

.primal-loop-ordering {
	flex: 0 0 auto;
	margin: 0;
}

.primal-loop-ordering select {
	appearance: auto;
	background: #ffffff;
	border: 1px solid rgba(15, 28, 46, 0.12);
	border-radius: 0;
	color: var(--primal-navy);
	font-family: var(--primal-font-sans);
	font-size: 10px;
	font-weight: 800;
	height: 34px;
	letter-spacing: 0;
	min-width: 112px;
	padding: 0 24px 0 10px;
}

.primal-loop-ordering__submit {
	background: var(--primal-navy);
	border: 0;
	color: #ffffff;
	font-size: 10px;
	font-weight: 800;
	margin-left: 8px;
	min-height: 34px;
	padding: 0 12px;
	text-transform: uppercase;
}

.primal-search-page .woocommerce ul.products {
	align-items: stretch;
	gap: 16px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.primal-search-page .woocommerce ul.products li.primal-loop-item,
.primal-search-page .woocommerce-page ul.products li.primal-loop-item {
	height: 100%;
}

.primal-search-page .primal-loop-card {
	background: #ffffff;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	height: 100%;
	min-height: 0;
	overflow: visible;
	padding: 16px;
	transition: none;
}

.primal-search-page .primal-loop-card:hover {
	box-shadow: none;
	transform: none;
}

.primal-search-page .primal-loop-card__img-wrap {
	align-items: center;
	background: #f6f5f3;
	border: 0;
	display: flex;
	justify-content: center;
	overflow: hidden;
}

.primal-search-page .primal-loop-card__img {
	aspect-ratio: 1 / 1;
	display: block !important;
	height: auto !important;
	object-fit: contain;
	padding: 22px;
	width: 100% !important;
}

.primal-search-page .primal-loop-card__body {
	gap: 7px;
	padding: 28px 0 0;
}

.primal-search-page .primal-product-cat {
	color: #2d65b2;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.18em;
	line-height: 1.2;
}

.primal-search-page .primal-product-name {
	color: var(--primal-navy);
	font-size: 22px;
	line-height: 1.08;
	margin: 0;
}

.primal-search-page .primal-loop-card__meta {
	align-items: baseline;
	display: flex;
	gap: 10px;
	justify-content: space-between;
	min-height: 15px;
}

.primal-search-page .primal-product-lot {
	color: var(--primal-slate);
	flex: 1 1 auto;
	font-size: 9px;
	font-weight: 400;
	letter-spacing: 0.02em;
	line-height: 1.35;
	min-width: 0;
}

.primal-search-page .primal-purity-label {
	color: var(--primal-green);
	flex: 0 0 auto;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.02em;
	line-height: 1.35;
	white-space: nowrap;
}

.primal-search-page .primal-badge-row {
	gap: 7px;
	margin-top: 12px;
}

.primal-search-page .primal-badge {
	border-color: rgba(45, 101, 178, 0.38);
	color: #2d65b2;
	font-size: 8px;
	letter-spacing: 0.08em;
	line-height: 1;
	padding: 4px 8px;
}

.primal-search-page .primal-loop-card__bottom {
	margin-top: auto;
	padding: 30px 0 0;
}

.primal-search-page .primal-product-price {
	color: var(--primal-navy);
	font-size: 20px;
	line-height: 1;
}

.primal-search-page .primal-product-price small {
	font-size: 10px;
	line-height: 1.3;
	margin-top: 8px;
}

.primal-search-page .primal-add-to-cart-form {
	gap: 0;
	margin-top: 12px;
}

.primal-search-page .primal-loop-card .primal-add-to-cart {
	background: var(--primal-navy) !important;
	border: 0 !important;
	color: #ffffff !important;
	font-size: 9px !important;
	font-weight: 800 !important;
	letter-spacing: 0.12em !important;
	min-height: 42px !important;
	padding: 10px 16px !important;
	width: 100% !important;
}

.primal-search-page .primal-loop-card .primal-add-to-cart:hover {
	background: var(--primal-navy-mid) !important;
	transform: none !important;
}

.primal-search-page .primal-cart-message {
	min-height: 0;
}

@media (max-width: 760px) {
	.primal-search-page .woocommerce ul.products {
		gap: 14px;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 540px) {
	.primal-loop-toolbar {
		align-items: stretch;
		flex-direction: column;
		gap: 10px;
	}

	.primal-loop-ordering,
	.primal-loop-ordering select {
		width: 100%;
	}

	.primal-search-page .woocommerce ul.products {
		grid-template-columns: 1fr;
	}
}

/* ===== Custom product gallery (no FlexSlider dependency) ===== */

.primal-product-gallery {
	background: #f7f6f4;
	border: 1px solid var(--primal-border);
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: clamp(12px, 2vw, 24px);
	width: 100%;
}

/* Main image */
.primal-product-gallery__main {
	align-items: center;
	display: flex;
	justify-content: center;
	margin: 0;
	overflow: hidden;
	width: 100%;
}

.primal-product-gallery__main .primal-product-gallery__img {
	aspect-ratio: 1 / 1;
	display: block !important;
	height: auto;
	max-height: 520px;
	object-fit: contain;
	transition: opacity 0.18s ease;
	width: 100%;
}

.primal-product-gallery__placeholder .primal-product-gallery__img {
	opacity: 0.4;
}

/* Thumbnail strip */
.primal-product-gallery__thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding-top: 6px;
	border-top: 1px solid var(--primal-border);
}

.primal-product-gallery__thumb {
	background: #ffffff;
	border: 1px solid var(--primal-border);
	cursor: pointer;
	flex: 0 0 68px;
	height: 68px;
	overflow: hidden;
	padding: 4px;
	transition: border-color 0.15s ease, opacity 0.15s ease;
	width: 68px;
}

.primal-product-gallery__thumb:hover {
	border-color: var(--primal-slate);
}

.primal-product-gallery__thumb.is-active {
	border-color: var(--primal-navy);
}

.primal-product-gallery__thumb-img {
	aspect-ratio: 1 / 1;
	display: block;
	height: 100%;
	object-fit: contain;
	width: 100%;
}

/* Override WooCommerce native gallery styles that may hide images when JS
   hasn't initialised (FlexSlider adds display:none on the wrapper). */
.primal-single-product-page .woocommerce-product-gallery,
.primal-single-product-page .woocommerce-product-gallery--with-images {
	float: none !important;
	opacity: 1 !important;
	width: 100% !important;
}

.primal-single-product-page .woocommerce-product-gallery__wrapper {
	display: flex !important;
	flex-wrap: wrap;
	gap: 8px;
}

.primal-single-product-page .woocommerce-product-gallery__image {
	display: block !important;
	flex: 1 1 100%;
	margin: 0;
}

.primal-single-product-page .woocommerce-product-gallery__image img {
	display: block !important;
	height: auto !important;
	width: 100% !important;
}

@media (max-width: 680px) {
	.primal-product-gallery__thumb {
		flex: 0 0 56px;
		height: 56px;
		width: 56px;
	}
}

@media (max-width: 600px) {
	.primal-contact-section {
		padding: 72px 18px;
	}

	.primal-contact-form {
		gap: 18px;
		padding: 22px 18px;
	}

	.primal-contact-submit {
		justify-content: center;
		width: 100%;
	}
}
