/* ==========================================================================
   Primo Technology — design layer (Nov 2026 concepts)
   Navy + teal, Outfit headings, DM Sans body. Loaded site-wide after the
   theme's own styles (see inc/primo.php).
   ========================================================================== */

:root {
	--p-navy: #13233f;
	--p-navy-2: #1c2f52;
	--p-teal: #0e7c6b;
	--p-teal-d: #0a6656;
	--p-teal-l: #e2f1ee;
	--p-mint: #d9efeb;
	--p-grey: #eef2f5;
	--p-grey-2: #f6f8fa;
	--p-line: #dde3e9;
	--p-ink: #13233f;
	--p-text: #3d4757;
	--p-muted: #667085;
	--p-radius: 10px;
	--p-shadow: 0 1px 2px rgba(19, 35, 63, .06), 0 4px 16px rgba(19, 35, 63, .06);
	--p-head: "Outfit", "DM Sans", system-ui, sans-serif;
	--p-body: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
	--p-wrap: 1200px;
	--p-gutter: clamp(16px, 4vw, 32px);
}

body {
	background: #fff;
	color: var(--p-text);
	font-family: var(--p-body);
	-webkit-font-smoothing: antialiased;
}
html.primo-lock, html.primo-lock body { overflow: hidden; }

.primo-wrap {
	inline-size: 100%;
	max-inline-size: calc(var(--p-wrap) + var(--p-gutter) * 2);
	margin-inline: auto;
	padding-inline: var(--p-gutter);
}

.primo-ico { display: inline-block; flex-shrink: 0; vertical-align: middle; }

/* ---------- Buttons & links ---------- */
.primo-btn,
.woocommerce .primo-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	min-block-size: 44px;
	padding: .65rem 1.4rem;
	border: 2px solid var(--p-teal);
	border-radius: 6px;
	background: var(--p-teal);
	color: #fff;
	font-family: var(--p-head);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .15s, border-color .15s, color .15s;
}
.primo-btn:hover, .primo-btn:focus-visible { background: var(--p-teal-d); border-color: var(--p-teal-d); color: #fff; }
.primo-btn--lg { min-block-size: 54px; padding-inline: 2rem; font-size: 1.15rem; }
.primo-btn--block { inline-size: 100%; }
.primo-btn--ghost { background: transparent; color: var(--p-teal); }
.primo-btn--ghost:hover, .primo-btn--ghost:focus-visible { background: var(--p-teal); color: #fff; }
.primo-link { color: var(--p-navy); font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.primo-link:hover { color: var(--p-teal); }
:where(.primo-header, .primo-home, .primo-footer, .primo-pp) a:focus-visible,
:where(.primo-header, .primo-home, .primo-footer, .primo-pp) button:focus-visible,
.primo-search:focus-within {
	outline: 3px solid rgba(14, 124, 107, .45);
	outline-offset: 2px;
}

/* ==========================================================================
   Header
   ========================================================================== */
.primo-bar {
	background: var(--p-navy);
	color: #fff;
	text-align: center;
	font-family: var(--p-head);
	font-size: .95rem;
	font-weight: 500;
	padding: .5rem var(--p-gutter);
}
.primo-header { background: #fff; border-block-end: 1px solid var(--p-line); position: relative; z-index: 50; }
.primo-header__row {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: clamp(1rem, 4vw, 3.5rem);
	padding-block: .9rem;
}
.primo-burger { display: none; }
.primo-header__logo { display: inline-flex; line-height: 0; }
.primo-logo { inline-size: 196px; block-size: auto; display: block; }
.primo-search {
	display: flex;
	align-items: center;
	gap: .6rem;
	inline-size: 100%;
	max-inline-size: 560px;
	justify-self: center;
	padding: 0 1rem;
	border: 1px solid #cdd5de;
	border-radius: 6px;
	background: var(--p-grey-2);
	color: var(--p-muted);
}
.primo-search input[type="search"] {
	flex: 1;
	min-inline-size: 0;
	border: 0;
	background: transparent;
	padding: .7rem 0;
	font: inherit;
	font-size: .98rem;
	color: var(--p-ink);
	outline: none;
	box-shadow: none;
}
.primo-search input::placeholder { color: #7d8796; }
.primo-search--drawer { display: none; }
.primo-header__tools { display: flex; align-items: center; gap: 1.25rem; }
.primo-tool {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	color: var(--p-ink);
	font-weight: 500;
	font-size: .98rem;
	text-decoration: none;
}
.primo-tool:hover { color: var(--p-teal); }
.primo-tool + .primo-tool { padding-inline-start: 1.25rem; border-inline-start: 1px solid var(--p-line); }
.primo-tool--cart { position: relative; }
.primo-tool--cart .wc-block-mini-cart { display: inline-flex; }
.primo-tool--cart .wc-block-mini-cart__button {
	padding: 0;
	color: var(--p-ink);
	cursor: pointer;
}
.primo-tool--cart .wc-block-mini-cart__button svg { fill: currentColor; inline-size: 26px; block-size: 26px; }
.primo-tool--cart .wc-block-mini-cart__badge {
	background: var(--p-teal);
	color: #fff;
	border: 0;
	font-size: 11px;
	font-weight: 700;
}
.primo-tool__label { pointer-events: none; }

/* Nav row */
.primo-nav { border-block-start: 1px solid var(--p-line); }
.primo-nav__head { display: none; }
.primo-menu {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: clamp(1rem, 4vw, 3.5rem);
	margin: 0;
	padding: 0;
	list-style: none;
}
.primo-menu > li { position: relative; }
.primo-menu a,
.primo-menu .has-sub > button {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	padding: .8rem 0;
	border: 0;
	background: none;
	color: var(--p-ink);
	font: 500 .98rem/1.2 var(--p-body);
	text-decoration: none;
	cursor: pointer;
}
.primo-menu a:hover, .primo-menu button:hover, .primo-menu .current-menu-item > a { color: var(--p-teal); }
.primo-menu .has-sub > button .primo-ico { transition: transform .15s; }
.primo-menu .has-sub > button[aria-expanded="true"] .primo-ico { transform: rotate(180deg); }
.primo-sub, .primo-menu .sub-menu {
	position: absolute;
	inset-block-start: 100%;
	inset-inline-start: 50%;
	translate: -50% 0;
	min-inline-size: 200px;
	margin: 0;
	padding: .4rem;
	list-style: none;
	background: #fff;
	border: 1px solid var(--p-line);
	border-radius: var(--p-radius);
	box-shadow: 0 16px 40px rgba(19, 35, 63, .14);
	display: none;
	z-index: 60;
}
.primo-menu .has-sub > button[aria-expanded="true"] + .primo-sub,
.primo-menu li:hover > .sub-menu,
.primo-menu li:focus-within > .sub-menu { display: block; }
@media (hover: hover) and (min-width: 961px) {
	.primo-menu .has-sub:hover > .primo-sub { display: block; }
}
.primo-sub a, .primo-menu .sub-menu a { display: block; padding: .6rem .85rem; border-radius: 6px; white-space: nowrap; }
.primo-sub a:hover, .primo-menu .sub-menu a:hover { background: var(--p-teal-l); color: var(--p-teal-d); }

.primo-scrim { position: fixed; inset: 0; background: rgba(19, 35, 63, .5); z-index: 998; }

@media (max-width: 960px) {
	.primo-header__row { grid-template-columns: auto 1fr auto; gap: .75rem; padding-block: .7rem; }
	.primo-burger {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		inline-size: 44px;
		block-size: 44px;
		margin-inline-start: -10px;
		border: 0;
		background: none;
		color: var(--p-ink);
		cursor: pointer;
	}
	.primo-header__logo { justify-self: center; }
	.primo-logo { inline-size: 150px; }
	.primo-header__row > .primo-search { display: none; }
	.primo-tool:not(.primo-tool--cart) { display: none; }
	.primo-tool + .primo-tool { padding: 0; border: 0; }
	.primo-tool__label { display: none; }

	.primo-nav {
		position: fixed;
		inset-block: 0;
		inset-inline-start: 0;
		z-index: 999;
		inline-size: min(340px, 88vw);
		padding: 1rem 1.25rem 2rem;
		background: #fff;
		border: 0;
		box-shadow: 8px 0 40px rgba(19, 35, 63, .2);
		overflow-y: auto;
		transform: translateX(-102%);
		transition: transform .25s ease;
		visibility: hidden;
	}
	.primo-nav.is-open { transform: none; visibility: visible; }
	.primo-nav__head { display: flex; justify-content: space-between; align-items: center; margin-block-end: 1rem; }
	.primo-nav__head .primo-logo { inline-size: 130px; }
	.primo-nav__close { inline-size: 44px; block-size: 44px; border: 0; background: none; color: var(--p-ink); cursor: pointer; margin-inline-end: -10px; }
	.primo-search--drawer { display: flex; margin-block-end: 1rem; max-inline-size: none; }
	.primo-nav .primo-wrap { padding: 0; }
	.primo-menu { flex-direction: column; align-items: stretch; gap: 0; }
	.primo-menu > li { border-block-end: 1px solid var(--p-line); }
	.primo-menu a, .primo-menu .has-sub > button { inline-size: 100%; justify-content: space-between; padding: 1rem 0; font-size: 1.05rem; }
	.primo-sub, .primo-menu .sub-menu { position: static; translate: none; box-shadow: none; border: 0; padding: 0 0 .5rem .75rem; min-inline-size: 0; }
	.primo-menu li:hover > .sub-menu { display: none; }
	.primo-menu .has-sub > button[aria-expanded="true"] + .primo-sub { display: block; }
}
@media (prefers-reduced-motion: reduce) {
	.primo-nav, .primo-menu .has-sub > button .primo-ico { transition: none; }
}

/* ==========================================================================
   Shared section bits
   ========================================================================== */
.primo-home h1, .primo-home h2, .primo-home h3,
.primo-pp h1, .primo-pp h2, .primo-pp h3,
.primo-footer h2, .primo-shop h1 {
	font-family: var(--p-head);
	color: var(--p-ink);
	letter-spacing: -.01em;
}
.primo-section { padding-block: clamp(2rem, 4vw, 3rem) 0; }
.primo-section__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; margin-block-end: 1.25rem; }
.primo-section__head h2 { margin: 0; font-size: clamp(1.7rem, 3vw, 2.2rem); font-weight: 700; line-height: 1.15; }
.primo-section__head p { margin: .35rem 0 0; color: var(--p-text); font-size: 1.05rem; }
.primo-more { display: inline-flex; align-items: center; gap: .35rem; color: var(--p-teal); font-weight: 600; text-decoration: none; white-space: nowrap; }
.primo-more:hover { color: var(--p-teal-d); text-decoration: underline; }

/* ---------- Product card ---------- */
.primo-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr));
	gap: clamp(1rem, 2vw, 1.5rem);
	margin: 0;
	padding: 0;
	list-style: none;
}
.primo-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--p-line);
	border-radius: var(--p-radius);
	overflow: hidden;
	transition: box-shadow .15s, border-color .15s;
}
.primo-card:hover { box-shadow: var(--p-shadow); border-color: #c9d3dc; }
.primo-card__media { display: block; aspect-ratio: 4 / 3; padding: 1rem 1rem 0; background: #fff; }
.primo-card__media img { inline-size: 100%; block-size: 100%; object-fit: contain; margin: 0; }
.primo-card__body { display: flex; flex-direction: column; flex: 1; padding: 1rem 1.25rem 1.25rem; }
.primo-card__title { margin: 0; font-family: var(--p-head); font-size: 1.15rem; font-weight: 600; line-height: 1.3; }
.primo-card__title a { color: var(--p-ink); text-decoration: none; }
.primo-card__title a:hover { color: var(--p-teal); }
.primo-card__specs { margin: .3rem 0 0; color: var(--p-muted); font-size: .93rem; }
.primo-card__price { margin: .6rem 0 1rem; margin-block-start: auto; padding-block-start: .6rem; font-family: var(--p-head); font-size: 1.55rem; font-weight: 700; color: var(--p-ink); }
.primo-card__price del { color: var(--p-muted); font-size: 1rem; font-weight: 500; margin-inline-end: .35rem; }
.primo-card__price ins { text-decoration: none; }
.primo-card .primo-btn { min-block-size: 42px; }

/* ==========================================================================
   Home
   ========================================================================== */
.primo-home { display: block; padding-block-end: 0; }

.primo-hero { background: linear-gradient(105deg, #eef2f5 0%, #e8edf1 55%, #dfe6ec 100%); overflow: hidden; }
.primo-hero__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); align-items: center; gap: 2rem; min-block-size: clamp(320px, 34vw, 430px); }
.primo-hero__copy { padding-block: 2.5rem; }
.primo-hero h1 { margin: 0; font-size: clamp(2.6rem, 5.4vw, 4.4rem); font-weight: 800; line-height: 1.02; letter-spacing: -.025em; }
.primo-hero p { margin: 1rem 0 1.75rem; max-inline-size: 30ch; font-size: clamp(1.1rem, 1.6vw, 1.35rem); color: var(--p-ink); line-height: 1.45; }
.primo-hero__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.75rem; }
.primo-hero__media { display: block; align-self: end; line-height: 0; }
.primo-hero__media img { inline-size: 100%; max-block-size: 420px; object-fit: contain; object-position: center bottom; mix-blend-mode: multiply; margin: 0; }

.primo-trust { border-block-end: 1px solid var(--p-line); }
.primo-trust ul { display: flex; justify-content: center; margin: 0 auto; padding-block: 1.1rem; list-style: none; }
.primo-trust li { display: flex; align-items: center; gap: .75rem; flex: 1; justify-content: center; padding-inline: 1rem; color: var(--p-ink); font-family: var(--p-head); font-size: 1.1rem; font-weight: 500; }
.primo-trust li + li { border-inline-start: 1px solid var(--p-line); }
.primo-trust .primo-ico { color: var(--p-teal); }

.primo-budgets { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(.75rem, 2vw, 1.25rem); }
.primo-budget {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-block-size: 108px;
	padding: 1rem 1rem 1rem 1.5rem;
	background: var(--p-grey);
	border-radius: var(--p-radius);
	color: var(--p-ink);
	text-decoration: none;
	overflow: hidden;
	transition: background-color .15s;
}
.primo-budget::before { content: ""; position: absolute; inset-block: 1.1rem; inset-inline-start: 1rem; inline-size: 3px; border-radius: 2px; background: var(--p-teal); }
.primo-budget:hover { background: #e3e9ee; }
.primo-budget__label { display: flex; flex-direction: column; gap: .35rem; padding-inline-start: .5rem; font-family: var(--p-head); font-size: clamp(1.3rem, 2.2vw, 1.65rem); font-weight: 600; }
.primo-budget__label .primo-ico { color: var(--p-teal); transition: transform .15s; }
.primo-budget:hover .primo-budget__label .primo-ico { transform: translateX(4px); }
.primo-budget__img { flex: 0 0 46%; line-height: 0; }
.primo-budget__img img { inline-size: 100%; block-size: 86px; object-fit: contain; mix-blend-mode: multiply; margin: 0; }

.primo-brands { display: flex; align-items: center; gap: 2rem; }
.primo-brands h2 { margin: 0; font-size: clamp(1.4rem, 2.4vw, 1.75rem); font-weight: 700; white-space: nowrap; }
.primo-brands ul { display: flex; flex: 1; margin: 0; padding: 0; list-style: none; border-block: 1px solid var(--p-line); }
.primo-brands li { flex: 1; }
.primo-brands li + li { border-inline-start: 1px solid var(--p-line); }
.primo-brands a { display: flex; justify-content: center; align-items: center; gap: .5rem; padding: 1rem; color: var(--p-ink); font-family: var(--p-head); font-size: 1.15rem; font-weight: 600; text-decoration: none; }
.primo-brands a .primo-ico { color: var(--p-teal); transition: transform .15s; }
.primo-brands a:hover { color: var(--p-teal); }
.primo-brands a:hover .primo-ico { transform: translateX(4px); }

.primo-story { margin-block-start: clamp(2.5rem, 5vw, 3.5rem); background: var(--p-grey); }
.primo-story__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: clamp(1.5rem, 4vw, 3rem); padding-block: 1rem; }
.primo-story__img { margin: 0; border-radius: var(--p-radius); overflow: hidden; background: #fff; aspect-ratio: 16 / 9; }
.primo-story__img img { inline-size: 100%; block-size: 100%; object-fit: cover; margin: 0; }
.primo-story__copy h2 { margin: 0 0 .75rem; font-size: clamp(1.7rem, 3vw, 2.3rem); font-weight: 700; line-height: 1.15; }
.primo-story__copy p { margin: 0 0 1.5rem; font-size: 1.1rem; line-height: 1.55; max-inline-size: 46ch; }

/* ---------- FAQ (home + product) ---------- */
.primo-faq { padding-block: clamp(2rem, 4vw, 2.75rem) 0; }
.primo-faq h2 { margin: 0 0 1rem; font-family: var(--p-head); font-size: clamp(1.6rem, 2.8vw, 2.1rem); font-weight: 700; color: var(--p-ink); }
.primo-faq details { border-block-end: 1px solid var(--p-line); }
.primo-faq details:first-of-type { border-block-start: 1px solid var(--p-line); }
.primo-faq summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding: 1rem .5rem;
	color: var(--p-ink);
	font-weight: 600;
	font-size: 1.05rem;
	cursor: pointer;
	list-style: none;
}
.primo-faq summary::-webkit-details-marker { display: none; }
.primo-faq summary .primo-ico { color: var(--p-ink); transition: transform .2s; }
.primo-faq details[open] summary .primo-ico { transform: rotate(45deg); }
.primo-faq details > div { padding: 0 .5rem 1.1rem; }
.primo-faq details p { margin: 0; max-inline-size: 75ch; line-height: 1.6; }
.primo-faq details a { color: var(--p-teal); }

/* ---------- Contact band ---------- */
.primo-cta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 1rem 2rem;
	margin-block: clamp(2rem, 4vw, 2.75rem);
	padding: clamp(1.25rem, 3vw, 1.75rem) clamp(1.25rem, 3vw, 2rem);
	background: var(--p-mint);
	border-radius: var(--p-radius);
}
.primo-cta h2 { margin: 0; font-family: var(--p-head); font-size: clamp(1.45rem, 2.6vw, 1.9rem); font-weight: 700; color: var(--p-ink); }
.primo-cta p { margin: .25rem 0 0; color: var(--p-ink); font-size: 1.05rem; }
.primo-cta__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem 1.5rem; }
.primo-cta__mail { color: var(--p-ink); font-weight: 500; text-decoration: none; }
.primo-cta__mail:hover { color: var(--p-teal); text-decoration: underline; }

/* ---------- Home: responsive ---------- */
@media (max-width: 860px) {
	.primo-hero__inner { grid-template-columns: 1fr; text-align: center; gap: 0; min-block-size: 0; }
	.primo-hero__copy { padding-block: 2rem 0; }
	.primo-hero p { margin-inline: auto; }
	.primo-hero__cta { justify-content: center; }
	.primo-hero__media { max-inline-size: 420px; margin-inline: auto; padding-block-start: 1rem; }
	.primo-hero__media img { max-block-size: 260px; }
	.primo-trust ul { flex-direction: column; padding-block: .5rem; }
	.primo-trust li { justify-content: flex-start; padding: .7rem .25rem; font-size: 1rem; }
	.primo-trust li + li { border-inline-start: 0; border-block-start: 1px solid var(--p-line); }
	.primo-budgets { grid-template-columns: 1fr; }
	.primo-budget { min-block-size: 92px; }
	.primo-brands { flex-direction: column; align-items: stretch; gap: .75rem; }
	.primo-story__inner { grid-template-columns: 1fr; padding-block: 1.5rem; }
	.primo-section__head { align-items: flex-start; flex-direction: column; gap: .5rem; }
	.primo-cta { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 560px) {
	.primo-brands ul { flex-direction: column; }
	.primo-brands li + li { border-inline-start: 0; border-block-start: 1px solid var(--p-line); }
	.primo-brands a { justify-content: space-between; padding-inline: .25rem; }
}

/* ==========================================================================
   Footer
   ========================================================================== */
.primo-footer { background: var(--p-navy); color: #d5dde8; font-size: .95rem; }
.primo-footer__grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1.3fr;
	gap: 2rem;
	padding-block: clamp(2rem, 4vw, 2.75rem) 1.75rem;
}
.primo-footer__brand { padding-inline-end: 1.5rem; border-inline-end: 1px solid rgba(255, 255, 255, .14); }
.primo-footer__brand .primo-logo { inline-size: 196px; }
.primo-footer__brand p { margin: 1rem 0 0; max-inline-size: 32ch; line-height: 1.5; color: #fff; }
.primo-footer h2 { margin: 0 0 .75rem; color: #fff; font-size: 1.1rem; font-weight: 600; }
.primo-footer nav, .primo-footer__contact { display: flex; flex-direction: column; align-items: flex-start; gap: .45rem; }
.primo-footer a { color: #d5dde8; text-decoration: none; }
.primo-footer a:hover { color: #fff; text-decoration: underline; }
.primo-footer__contact a { display: inline-flex; align-items: center; gap: .6rem; }
.primo-footer__bottom {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: .75rem 1.5rem;
	padding-block: 1rem 1.25rem;
	border-block-start: 1px solid rgba(255, 255, 255, .14);
	font-size: .88rem;
}
.primo-footer__bottom p { margin: 0; }
.primo-footer__bottom nav { flex-direction: row; flex-wrap: wrap; gap: .25rem 1.25rem; }
.primo-footer__pay { display: flex; gap: .4rem; }
.primo-footer__pay img { display: block; block-size: 26px; inline-size: auto; border-radius: 4px; background: #fff; }
@media (max-width: 860px) {
	.primo-footer__grid { grid-template-columns: 1fr 1fr; }
	.primo-footer__brand { grid-column: 1 / -1; border: 0; padding: 0; }
}
@media (max-width: 480px) {
	.primo-footer__grid { grid-template-columns: 1fr; }
	.primo-footer__bottom { flex-direction: column; align-items: flex-start; }
}

/* Old header/footer remnants never render with the Primo layer, but hide defensively. */
.pwc-announce, .site-header, .pwc-footer { display: none !important; }

/* ==========================================================================
   Shop / category archives
   ========================================================================== */
.pwc-shop .pwc-shop-head { background: var(--p-grey); border-radius: 0; }
.pwc-shop .pwc-shop-head h1 { font-family: var(--p-head); color: var(--p-ink); font-weight: 700; }
.primo-grid--shop { grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); }
.primo-pagination ul { display: flex; justify-content: center; flex-wrap: wrap; gap: .4rem; margin: 2rem 0 0; padding: 0; list-style: none; }
.primo-pagination a, .primo-pagination span {
	display: inline-flex; align-items: center; justify-content: center;
	min-inline-size: 42px; block-size: 42px; padding: 0 .75rem;
	border: 1px solid var(--p-line); border-radius: 6px;
	color: var(--p-ink); text-decoration: none; font-weight: 600;
}
.primo-pagination .current { background: var(--p-teal); border-color: var(--p-teal); color: #fff; }
.primo-pagination a:hover { border-color: var(--p-teal); color: var(--p-teal); }
.primo-empty { padding: 2rem; background: var(--p-grey); border-radius: var(--p-radius); }
.primo-empty a { color: var(--p-teal); font-weight: 600; }

/* ==========================================================================
   Single product
   ========================================================================== */
.primo-pp main { max-inline-size: none !important; padding-inline: 0 !important; }
.primo-pp div.product {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 1.5rem clamp(1.5rem, 4vw, 3.5rem);
	inline-size: 100%;
	max-inline-size: calc(var(--p-wrap) + var(--p-gutter) * 2);
	margin: 0 auto;
	padding: 0 var(--p-gutter);
}
.primo-pp div.product > * { min-inline-size: 0; }
.primo-pp div.product > .woocommerce-product-gallery { grid-column: 1; grid-row: 1; inline-size: 100% !important; float: none !important; margin: 0 !important; }
.primo-pp div.product > .summary { grid-column: 2; grid-row: 1; inline-size: 100% !important; float: none !important; margin: 0 !important; }
.primo-pp div.product > :not(.woocommerce-product-gallery):not(.summary) { grid-column: 1 / -1; }

.primo-crumbs {
	max-inline-size: calc(var(--p-wrap) + var(--p-gutter) * 2);
	margin: 0 auto;
	padding: 1.1rem var(--p-gutter);
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	color: var(--p-muted);
	font-size: .95rem;
}
.primo-crumbs a { color: var(--p-navy-2); text-decoration: none; }
.primo-crumbs a:hover { color: var(--p-teal); text-decoration: underline; }

/* Gallery */
.primo-pp .woocommerce-product-gallery__wrapper { margin: 0; }
.primo-pp .woocommerce-product-gallery .flex-viewport,
.primo-pp .woocommerce-product-gallery__image:only-child { border-radius: var(--p-radius); background: #fff; }
.primo-pp .woocommerce-product-gallery img { border-radius: var(--p-radius); }
.primo-pp .woocommerce-product-gallery .flex-control-thumbs {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: .75rem;
	margin: .9rem 0 0 !important;
	padding: 0;
	list-style: none;
}
.primo-pp .woocommerce-product-gallery .flex-control-thumbs li { inline-size: auto !important; float: none !important; margin: 0 !important; }
.primo-pp .woocommerce-product-gallery .flex-control-thumbs img {
	aspect-ratio: 4 / 3;
	object-fit: contain;
	background: #fff;
	border: 1px solid var(--p-line);
	border-radius: 8px;
	padding: .25rem;
	opacity: 1 !important;
	cursor: pointer;
}
.primo-pp .woocommerce-product-gallery .flex-control-thumbs img.flex-active { border: 2px solid var(--p-teal); }
.primo-pp .woocommerce-product-gallery__trigger { inset-block-start: .75rem !important; inset-inline-end: .75rem !important; }

/* Buy panel */
.primo-pp .summary { color: var(--p-text); }
.primo-badge {
	display: inline-block;
	padding: .3rem .75rem;
	border-radius: 6px;
	background: var(--p-teal);
	color: #fff;
	font-size: .9rem;
	font-weight: 600;
}
.primo-pp .summary h1.primo-pp__title { margin: .75rem 0 .15rem; font-size: clamp(1.9rem, 3.4vw, 2.6rem); font-weight: 700; line-height: 1.1; }
.primo-pp__sub { margin: 0; color: var(--p-text); font-size: 1.15rem; }
.primo-pp__price { margin: .9rem 0 0; font-family: var(--p-head); font-size: clamp(2rem, 4vw, 2.6rem); font-weight: 700; color: var(--p-teal); line-height: 1; }
.primo-pp__price del { font-size: 1.1rem; color: var(--p-muted); font-weight: 500; margin-inline-end: .5rem; }
.primo-pp__price ins { text-decoration: none; }
.primo-chips { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1.1rem 0 0; padding: 0; list-style: none; }
.primo-chips li { padding: .45rem .9rem; border: 1px solid #c8d1db; border-radius: 6px; color: var(--p-ink); font-size: .98rem; font-weight: 500; }

.primo-know { margin: 1.25rem 0 0; border: 1px solid var(--p-line); border-radius: var(--p-radius); background: var(--p-grey-2); overflow: hidden; }
.primo-know h2 { margin: 0; padding: .85rem 1rem; font-size: 1.2rem; font-weight: 600; border-block-end: 1px solid var(--p-line); background: #fff; }
.primo-know dl { margin: 0; }
.primo-know dl > div { display: grid; grid-template-columns: 8rem 1fr; gap: 1rem; padding: .65rem 1rem; }
.primo-know dl > div + div { border-block-start: 1px solid var(--p-line); }
.primo-know dt { font-weight: 700; color: var(--p-ink); }
.primo-know dd { margin: 0; }

.primo-pp div.product form.cart { display: flex; gap: .75rem; margin: 1.25rem 0 0; }
.primo-pp div.product form.cart .quantity { display: none; }
.primo-pp div.product form.cart .single_add_to_cart_button,
.primo-pp div.product form.cart button.button.alt {
	flex: 1;
	min-block-size: 56px;
	border: 0;
	border-radius: 6px;
	background: var(--p-teal) !important;
	color: #fff !important;
	font-family: var(--p-head);
	font-size: 1.25rem;
	font-weight: 600;
	cursor: pointer;
}
.primo-pp div.product form.cart .single_add_to_cart_button:hover { background: var(--p-teal-d) !important; }
.primo-pp div.product form.cart .single_add_to_cart_button::before {
	content: "";
	display: inline-block;
	inline-size: 24px;
	block-size: 24px;
	margin-inline-end: .6rem;
	vertical-align: -5px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 11 4-7'/%3E%3Cpath d='m19 11-4-7'/%3E%3Cpath d='M2 11h20'/%3E%3Cpath d='m3.5 11 1.6 7.4a2 2 0 0 0 2 1.6h9.8a2 2 0 0 0 2-1.6l1.7-7.4'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 11 4-7'/%3E%3Cpath d='m19 11-4-7'/%3E%3Cpath d='M2 11h20'/%3E%3Cpath d='m3.5 11 1.6 7.4a2 2 0 0 0 2 1.6h9.8a2 2 0 0 0 2-1.6l1.7-7.4'/%3E%3C/svg%3E") center / contain no-repeat;
}
.primo-pp .stock { margin: 1rem 0 0; font-weight: 600; color: var(--p-teal-d); }
.primo-pp .stock.out-of-stock { color: #b42318; }
.primo-pp__help { margin: 1.1rem 0 0; text-align: center; color: var(--p-ink); font-size: 1.05rem; }
.primo-pp__help a { color: var(--p-teal); font-weight: 600; }

/* Below the fold */
.primo-pp-info {
	display: grid;
	grid-template-columns: 1.1fr 1fr 1fr;
	margin-block-start: clamp(1.5rem, 3vw, 2.5rem);
	padding-block-start: 1.75rem;
	border-block-start: 2px solid var(--p-line);
}
.primo-pp-info > section { padding-inline: clamp(1rem, 2.5vw, 2rem); }
.primo-pp-info > section:first-child { padding-inline-start: 0; }
.primo-pp-info > section:last-child { padding-inline-end: 0; }
.primo-pp-info > section + section { border-inline-start: 1px solid var(--p-line); }
.primo-pp-info h2 { margin: 0 0 .9rem; font-size: 1.5rem; font-weight: 600; }
.primo-pp-info p { margin: 0 0 .75rem; line-height: 1.55; }
.primo-pp-info a { display: block; margin-block-start: .5rem; color: var(--p-teal); font-weight: 500; }
.primo-spec { inline-size: 100%; border-collapse: collapse; margin: 0; border: 0; }
.primo-spec th, .primo-spec td { padding: .45rem .25rem; border: 0; border-block-end: 1px solid var(--p-line); text-align: start; vertical-align: top; background: none; }
.primo-spec th { inline-size: 45%; color: var(--p-ink); font-weight: 700; }

.primo-closer { margin-block-start: clamp(1.75rem, 3vw, 2.5rem); padding: clamp(1.25rem, 3vw, 1.75rem); background: var(--p-grey); border-radius: var(--p-radius); }
.primo-closer h2 { margin: 0 0 1rem; font-size: clamp(1.4rem, 2.6vw, 1.8rem); font-weight: 600; }
.primo-closer__grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1.25rem; align-items: center; }
.primo-closer figure { margin: 0; aspect-ratio: 4 / 3; border-radius: 8px; overflow: hidden; background: #fff; }
.primo-closer figure img { inline-size: 100%; block-size: 100%; object-fit: cover; margin: 0; }
.primo-closer__text h3 { margin: 0 0 .5rem; font-size: 1.35rem; font-weight: 600; }
.primo-closer__text p { margin: 0; line-height: 1.55; }

.primo-desc { margin-block-start: clamp(1.75rem, 3vw, 2.5rem); }
.primo-desc h2 { margin: 0 0 .75rem; font-size: 1.5rem; font-weight: 600; }
.primo-desc__body { max-inline-size: 78ch; line-height: 1.65; }
.primo-desc__body h2, .primo-desc__body h3 { font-size: 1.2rem; margin: 1.25rem 0 .5rem; }

.primo-pp section.related { margin-block-start: 2rem; }
.primo-pp section.related > h2 { font-family: var(--p-head); color: var(--p-ink); font-size: 1.6rem; }
.primo-pp section.related ul.products { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); gap: 1.25rem; margin: 0; padding: 0; list-style: none; }
.primo-pp section.related ul.products::before, .primo-pp section.related ul.products::after { display: none; }
.primo-pp section.related ul.products li.primo-card { inline-size: auto !important; float: none !important; margin: 0 !important; }

@media (max-width: 900px) {
	.primo-pp div.product { grid-template-columns: 1fr; }
	.primo-pp div.product > .summary { grid-column: 1; grid-row: auto; }
	.primo-pp-info { grid-template-columns: 1fr; gap: 1.5rem; }
	.primo-pp-info > section { padding: 0 !important; }
	.primo-pp-info > section + section { border: 0; border-block-start: 1px solid var(--p-line); padding-block-start: 1.25rem !important; }
	.primo-closer__grid { grid-template-columns: 1fr 1fr; }
	.primo-closer__text { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
	.primo-know dl > div { grid-template-columns: 6.5rem 1fr; }
	.primo-closer__grid { grid-template-columns: 1fr; }
}

/* Footer divider aligned to the content width (not the gutter). */
.primo-footer__bottom { position: relative; border-block-start: 0 !important; }
.primo-footer__bottom::before { content: ""; position: absolute; inset-block-start: 0; inset-inline: var(--p-gutter); border-block-start: 1px solid rgba(255, 255, 255, .14); }

/* Mobile sticky add-to-basket bar (functions.php) in Primo colours. */
.pwc-sticky-atc { background: #fff !important; border-block-start: 1px solid var(--p-line) !important; box-shadow: 0 -6px 20px rgba(19, 35, 63, .08) !important; font-family: var(--p-body); }
.pwc-sticky-atc .pwc-sticky-atc__add,
.pwc-sticky-atc a.button {
	display: inline-flex !important; align-items: center; justify-content: center;
	min-block-size: 44px; padding: .55rem 1.1rem !important;
	border-radius: 6px !important; background: var(--p-teal) !important; color: #fff !important;
	font-family: var(--p-head); font-weight: 600; text-decoration: none !important; white-space: nowrap;
}
.pwc-sticky-atc .pwc-sticky-atc__add:hover { background: var(--p-teal-d) !important; }

/* Shop: price filter + heading band in Primo colours. */
.widget_price_filter .ui-slider .ui-slider-range { background: var(--p-teal) !important; }
.widget_price_filter .ui-slider .ui-slider-handle { background: #fff !important; border: 3px solid var(--p-teal) !important; }
.widget_price_filter .price_slider_wrapper .ui-widget-content { background: var(--p-line) !important; }
.widget_price_filter .button { background: var(--p-teal) !important; color: #fff !important; border-radius: 6px !important; font-family: var(--p-head); }
.pwc-shop .pwc-shop-head { padding: clamp(1.25rem, 3vw, 2rem) !important; border-radius: var(--p-radius) !important; }
.pwc-shop .pwc-shop-head h1 { font-size: clamp(1.8rem, 3.4vw, 2.5rem) !important; margin: .35rem 0 .25rem !important; }
.pwc-shop .pwc-shop-head p { font-size: 1.05rem !important; color: var(--p-text) !important; }
.pwc-shop .pwc-shop-head__crumbs, .pwc-shop .pwc-shop-head__crumbs a { font-size: .92rem !important; color: var(--p-muted); }
.pwc-shop__filters-title { font-family: var(--p-head) !important; color: var(--p-ink) !important; }
.primo-from { font-size: .62em; font-weight: 500; color: var(--p-muted); margin-inline-end: .15rem; }

/* ---------- Product page: variation pickers (Grade / RAM / Storage …) ---------- */
.primo-pp div.product form.variations_form { display: block; }
.primo-pp table.variations { inline-size: 100%; margin: 0 0 .5rem; border: 0; border-collapse: collapse; }
.primo-pp table.variations tr { display: block; margin-block-end: 1rem; }
.primo-pp table.variations th, .primo-pp table.variations td { display: block; padding: 0; border: 0; background: none; text-align: start; }
.primo-pp table.variations th.label label, .primo-pp table.variations td.label label { display: block; margin-block-end: .45rem; color: var(--p-ink); font-weight: 700; font-size: 1rem; }
.primo-pp table.variations select { inline-size: 100%; min-block-size: 46px; padding: .5rem .75rem; border: 1px solid #c8d1db; border-radius: 6px; background-color: #fff; color: var(--p-ink); font: inherit; }
.primo-pp .variable-items-wrapper { display: flex !important; flex-wrap: wrap; gap: .5rem; margin: 0 !important; padding: 0 !important; }
.primo-pp .variable-items-wrapper .variable-item {
	margin: 0 !important; min-block-size: 44px !important; min-inline-size: 64px; padding: .45rem .9rem !important;
	border-radius: 6px !important; background: #fff !important; box-shadow: 0 0 0 1px #c8d1db !important;
	color: var(--p-ink) !important; font-weight: 500;
}
.primo-pp .variable-items-wrapper .variable-item:hover { box-shadow: 0 0 0 1px var(--p-teal) !important; }
.primo-pp .variable-items-wrapper .variable-item.selected { background: var(--p-teal-l) !important; box-shadow: 0 0 0 2px var(--p-teal) !important; color: var(--p-teal-d) !important; font-weight: 700; }
.primo-pp .variable-items-wrapper .variable-item.disabled { opacity: .45; }
.primo-pp .reset_variations { display: inline-block; margin-block-start: .25rem; color: var(--p-muted); font-size: .9rem; }
.primo-pp .woocommerce-variation { margin: .25rem 0 0; }
.primo-pp .woocommerce-variation-price .price { font-family: var(--p-head); font-size: 1.6rem; font-weight: 700; color: var(--p-teal); }
.primo-pp .woocommerce-variation-price .price del { font-size: 1rem; color: var(--p-muted); font-weight: 500; }
.primo-pp .woocommerce-variation-price .price ins { text-decoration: none; }
.primo-pp .woocommerce-variation-description p { margin: .25rem 0; font-size: .95rem; }
.primo-pp .woocommerce-variation-add-to-cart { display: flex; gap: .75rem; margin-block-start: 1rem; }
