/* =========================================================================
   Peptide Test — custom CSS layer (fine-tuning over theme.json)
   Matches the live Dawn-based storefront. Mobile-first.
   ========================================================================= */

:root {
	--pt-border: #e8e8e8;
	--pt-navy: #242833;
	--pt-ink: #121212;
}

body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

/* ---- Links: square, no underline by default (Dawn-like) ---- */
a {
	text-decoration: none;
}

/* =========================================================================
   HEADER
   ========================================================================= */
.pt-announcement__text {
	margin: 0;
	font-weight: 600;
}
.pt-announcement__text a {
	color: #fff;
}

/* The header bar anchors the full-width search drop-down panel. */
.pt-header__bar {
	position: relative;
}

/* Desktop layout: logo (left) | nav | actions (right) — mirrors Dawn header--middle-left. */
.pt-header__inner {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 24px;
}
.pt-logo {
	margin: 0;
	flex: 0 0 auto;
}
.pt-logo img {
	display: block;
}
.pt-nav {
	flex: 1 1 auto;
}

/* Navigation links */
.pt-nav .wp-block-navigation-item__content {
	color: var(--pt-ink);
	font-weight: 600;
}
.pt-nav .wp-block-navigation-item__content:hover {
	text-decoration: underline;
	text-underline-offset: 4px;
}
.pt-nav .wp-block-navigation__submenu-container {
	border: 1px solid var(--pt-border);
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.08);
	min-width: 240px;
}

/* Header utility actions (language + search + account + cart). */
.pt-header__actions {
	display: flex;
	align-items: center;
	gap: 18px;
	flex: 0 0 auto;
	white-space: nowrap;
}
.pt-icon {
	display: inline-flex;
	color: var(--pt-ink);
	line-height: 0;
	cursor: pointer;
}
.pt-icon:hover {
	opacity: 0.65;
}

/* Header language selector — "English ⌄" disclosure (desktop only). */
.pt-hlang {
	position: relative;
	display: inline-flex;
	align-items: center;
	align-self: stretch; /* fill the actions row so the button centres against the icons */
}
.pt-hlang__btn {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	background: none;
	border: 0;
	padding: 0;
	margin: 0;
	font: inherit;
	font-size: 0.9rem;
	color: var(--pt-ink);
	cursor: pointer;
}
.pt-hlang__list {
	position: absolute;
	top: 100%;
	right: 0;
	margin: 10px 0 0;
	padding: 6px 0;
	list-style: none;
	min-width: 150px;
	background: #fff;
	border: 1px solid var(--pt-border);
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.08);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-4px);
	transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
	z-index: 50;
}
.pt-hlang:hover .pt-hlang__list,
.pt-hlang:focus-within .pt-hlang__list {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.pt-hlang__list li {
	margin: 0;
}
.pt-hlang__list a {
	display: block;
	padding: 8px 16px;
	font-size: 0.9rem;
	color: var(--pt-ink);
	white-space: nowrap;
}
.pt-hlang__list a:hover,
.pt-hlang__list .current-lang a {
	background: #f4f4f4;
}

/* Header search — magnifier icon that opens a full-width search bar (Dawn-style). */
.pt-search {
	position: static;
	display: inline-flex;
}
.pt-search > summary {
	list-style: none;
	cursor: pointer;
	display: inline-flex;
	color: var(--pt-ink);
	line-height: 0;
}
.pt-search > summary::-webkit-details-marker {
	display: none;
}
.pt-search > summary::marker {
	content: "";
}
.pt-search[open] > summary {
	opacity: 0.65;
}
/* The opened search drops a full-width bar below the header bar. */
.pt-search__panel {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	z-index: 60;
	background: #fff;
	border-bottom: 1px solid var(--pt-border);
	box-shadow: 0 12px 24px rgba(0, 0, 0, 0.06);
	padding: 22px 0 28px;
}
.pt-search__bar {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 12px;
	box-sizing: border-box; /* keep padding inside the width so the bar never exceeds the viewport */
	width: 100%;
	max-width: 930px; /* centred ~850px field like the live search, not full width */
	margin: 0 auto;
	padding: 0 20px;
}
.pt-search__bar .dgwt-wcas-search-wrapp {
	flex: 1 1 0%; /* size from leftover space only, so it never pushes the close button off-screen */
	width: auto !important;
	min-width: 0;
	max-width: none !important;
	margin: 0;
}
/* The form + field fill the (flex-sized) wrapper. */
.pt-search__bar .dgwt-wcas-search-form,
.pt-search__bar .dgwt-wcas-sf-wrapp {
	width: 100% !important;
	max-width: none !important;
}
.pt-search__close {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: none;
	border: 0;
	padding: 4px;
	cursor: pointer;
	color: var(--pt-ink);
	line-height: 0;
}
.pt-search__close:hover {
	opacity: 0.65;
}

/* FiboSearch input — large, square, bordered like the live search field.
   FiboSearch's "solaris" style sets a rounded grey pill with !important, so we
   override the box appearance with !important to match the Dawn search field. */
.pt-search__bar .dgwt-wcas-search-input[type="search"] {
	width: 100% !important;
	height: 54px !important;
	border: 1px solid var(--pt-ink) !important;
	border-radius: 0 !important;
	font-size: 1rem !important;
	padding: 0 52px 0 18px !important; /* placeholder left, magnifier on the right (like live) */
	background: #fff !important;
	box-shadow: none !important;
	color: var(--pt-ink) !important;
}
/* Move the magnifier/submit to the right edge of the field and vertically
   centre it on the 54px input (the FiboSearch wrapper is taller than the field,
   so we anchor the button to the field height itself). */
.pt-search__bar .dgwt-wcas-search-submit {
	left: auto !important;
	right: 0 !important;
	top: 0 !important;
	bottom: auto !important;
	height: 54px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
}
.pt-search__bar .dgwt-wcas-search-submit,
.pt-search__bar .dgwt-wcas-ico-magnifier {
	color: var(--pt-ink);
}
/* Neutralise FiboSearch's grey rounded form/wrapper chrome. */
.pt-search__bar .dgwt-wcas-search-form,
.pt-search__bar .dgwt-wcas-sf-wrapp {
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}
/* The theme's default paragraph margins + wrapper padding inflate FiboSearch's
   field wrapper (it wraps the input in <p> tags), which dropped the close ✕ out
   of line. Collapse them so the wrapper is just the input height and the ✕
   centres against the field. */
.pt-search__bar .dgwt-wcas-sf-wrapp {
	padding: 0 !important;
}
.pt-search__bar .dgwt-wcas-search-form p {
	margin: 0 !important;
}
/* FiboSearch tucks its hidden inputs in a <p> with a stray <br> that renders an
   extra ~18px line, making the field wrapper taller than the input and throwing
   the magnifier + close button off-centre. The hidden inputs still submit when
   the paragraph is hidden, so collapse it to keep the wrapper = field height. */
.pt-search__bar .dgwt-wcas-sf-wrapp > p:has(input[type="hidden"]) {
	display: none !important;
}

/* Suggestions dropdown — clean rows with a thumbnail + title (live "Products"). */
.dgwt-wcas-suggestions-wrapp {
	border: 1px solid var(--pt-border);
	border-radius: 0;
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.10);
}
.dgwt-wcas-suggestion {
	padding: 12px 16px;
}
.dgwt-wcas-suggestion .dgwt-wcas-st-title {
	font-size: 0.95rem;
	color: var(--pt-ink);
}
.dgwt-wcas-suggestion-product .dgwt-wcas-si img {
	width: 44px;
	height: 44px;
	object-fit: contain;
}
.dgwt-wcas-suggestion.dgwt-wcas-suggestion-more {
	font-weight: 700;
	color: var(--pt-ink);
	border-top: 1px solid var(--pt-border);
}

/* ---- Header responsive: hamburger left / logo centered / icons right ---- */
@media (max-width: 989px) {
	.pt-header__inner {
		display: grid;
		grid-template-columns: 1fr auto 1fr;
		gap: 12px;
	}
	.pt-nav {
		order: 1;
		justify-self: start;
		flex: 0 0 auto;
	}
	.pt-logo {
		order: 2;
		justify-self: center;
	}
	.pt-header__actions {
		order: 3;
		justify-self: end;
	}
	/* Language selector is desktop-only in the live header. */
	.pt-hlang {
		display: none;
	}
	/* Collapse the nav to a hamburger below 990px (Dawn's desktop breakpoint),
	   overriding the navigation block's default 600px collapse point. */
	.pt-nav .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}
	.pt-nav .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none;
	}
}
@media (max-width: 749px) {
	/* Account icon is hidden on small screens in the live header (small-hide). */
	.pt-icon--account {
		display: none;
	}
}

/* =========================================================================
   HERO
   ========================================================================= */
.pt-hero {
	align-items: center;
}
.pt-hero .wp-block-cover__background {
	background-color: var(--pt-navy);
	opacity: 0.55;
}
.pt-hero__inner {
	width: 100%;
}
.pt-hero__title {
	font-size: clamp(2.125rem, 5vw, 3.525rem);
	letter-spacing: 0.01em;
	margin: 0;
}
.pt-hero__sub {
	max-width: 620px;
	margin-left: auto;
	margin-right: auto;
	opacity: 0.92;
}

/* =========================================================================
   WELCOME
   ========================================================================= */
.pt-welcome__title {
	font-size: clamp(1.9rem, 3.5vw, 2.6rem);
}
.pt-welcome p {
	line-height: 1.75;
}

/* =========================================================================
   FEATURE BLOCKS
   ========================================================================= */
.pt-feature__title {
	font-size: clamp(1.6rem, 2.6vw, 2.1rem);
	margin: 0;
}
.pt-feature__img img {
	width: 100%;
	height: auto;
	display: block;
}
.pt-feature__sub {
	font-weight: 700;
	color: var(--pt-ink);
}

/* =========================================================================
   COLLECTION / PRODUCT CARDS (collage)
   ========================================================================= */
.pt-card {
	display: flex;
	flex-direction: column;
}
.pt-card__img {
	margin: 0;
	overflow: hidden;
	background: var(--pt-light-gray, #f3f3f3);
}
.pt-card__img img {
	width: 100%;
	display: block;
	transition: transform 0.4s ease;
}
.pt-card:hover .pt-card__img img {
	transform: scale(1.03);
}
.pt-card__title {
	font-size: 1.15rem;
	font-weight: 400;
	margin: 14px 0 0;
}
.pt-card__title a {
	color: var(--pt-ink);
}
.pt-card__title a:hover {
	text-decoration: underline;
	text-underline-offset: 4px;
}
.pt-card__price {
	margin: 2px 0 0;
}

/* =========================================================================
   FOOTER
   ========================================================================= */
.pt-footer__nav .wp-block-navigation-item__content {
	color: var(--pt-ink);
	font-weight: 400;
}
.pt-footer__nav .wp-block-navigation-item__content:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}
.pt-footer__lang {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
}
.pt-footer__lang-label {
	font-size: 0.85rem;
	color: var(--pt-ink);
}
.pt-lang--box {
	border: 1px solid var(--pt-border);
	padding: 10px 14px;
	font-size: 0.9rem;
}
/* Polylang footer switcher — Dawn-style "English ⌄" disclosure dropdown.
   The list opens ABOVE the button (footer sits at the page bottom) on
   hover/focus, mirroring the header language selector. */
.pt-flang {
	position: relative;
	display: inline-block;
}
.pt-flang__btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: #fff;
	border: 1px solid rgba(18, 18, 18, 0.35);
	padding: 12px 16px;
	font: inherit;
	font-size: 0.9rem;
	color: var(--pt-ink);
	cursor: pointer;
}
.pt-flang__btn:hover {
	border-color: var(--pt-ink);
}
.pt-flang__list {
	position: absolute;
	bottom: 100%;
	left: 0;
	margin: 0 0 10px;
	padding: 6px 0;
	list-style: none;
	min-width: 150px;
	background: #fff;
	border: 1px solid var(--pt-border);
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.08);
	opacity: 0;
	visibility: hidden;
	transform: translateY(4px);
	transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
	z-index: 50;
}
.pt-flang:hover .pt-flang__list,
.pt-flang:focus-within .pt-flang__list {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.pt-flang__list li {
	margin: 0;
}
.pt-flang__list a {
	display: block;
	padding: 8px 16px;
	font-size: 0.9rem;
	color: var(--pt-ink);
	white-space: nowrap;
	text-decoration: none;
}
.pt-flang__list a:hover,
.pt-flang__list .current-lang a {
	background: #f4f4f4;
}
.pt-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 16px;
	border-top: 1px solid var(--pt-border);
	padding-top: 24px;
}
.pt-copyright {
	margin: 0;
	font-size: 0.8rem;
	color: rgba(18, 18, 18, 0.7);
}
.pt-payicons {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.pt-payicon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 24px;
	border: 1px solid var(--pt-border);
	border-radius: 4px;
	background: #fff;
	font-size: 8px;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: #555;
}
.pt-payicon[data-brand="visa"] { color: #1a1f71; }
.pt-payicon[data-brand="mastercard"] { color: #eb001b; }
.pt-payicon[data-brand="amex"] { color: #1f72cd; }
.pt-payicon[data-brand="discover"] { color: #e8730e; }

/* =========================================================================
   SECONDARY PAGES (About, Contact, Policies)
   ========================================================================= */
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0);
	white-space: nowrap; border: 0;
}

/* ---- About ---- */
.pt-about__title {
	font-size: clamp(1.9rem, 3.2vw, 2.6rem);
	font-weight: 400;
	margin: 0;
}
.pt-about p {
	line-height: 1.7;
}
/* Live's About button is sentence case (theme buttons elsewhere are caps) */
.pt-about .wp-block-button__link {
	text-transform: none;
	letter-spacing: 0.02em;
}
.pt-about__img {
	margin: 0;
}
.pt-about__img img {
	width: 100%;
	height: auto;
	display: block;
}

/* ---- Contact ---- */
.pt-contact__title {
	font-size: clamp(2.2rem, 5vw, 3.4rem);
	font-weight: 400;
	margin: 0;
}
/* Contact block: heading, intro, address + form all share one left edge and
   width (matches live). The constrained group centres any child narrower than
   its 1100px content size, which pushed the intro (760) + form (830) inward;
   letting them fill the full 1100 keeps them flush-left with the heading. */
.pt-contact__intro {
	max-width: 1100px;
}
.pt-contact__addr {
	line-height: 1.7;
}
.pt-contact-form {
	margin-top: 44px;
	max-width: 1100px;
}
.pt-form-row {
	display: flex;
	gap: 16px;
}
.pt-form-row .pt-field {
	flex: 1 1 0;
}
.pt-field {
	display: block;
	margin-bottom: 16px;
}
.pt-contact-form input,
.pt-contact-form textarea {
	width: 100%;
	padding: 15px 16px;
	border: 1px solid rgba(18, 18, 18, 0.25);
	border-radius: 0;
	background: #fff;
	color: var(--pt-ink);
	font-family: inherit;
	font-size: 1rem;
	line-height: 1.4;
	box-sizing: border-box;
}
.pt-contact-form textarea {
	min-height: 130px;
	resize: vertical;
}
.pt-contact-form input::placeholder,
.pt-contact-form textarea::placeholder {
	color: rgba(18, 18, 18, 0.6);
}
.pt-contact-form input:focus,
.pt-contact-form textarea:focus {
	outline: none;
	border-color: var(--pt-ink);
}
.pt-contact-form__submit {
	margin-top: 8px;
	display: inline-block;
	background: var(--pt-ink);
	color: #fff;
	border: 0;
	border-radius: 0;
	padding: 15px 38px;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 400;
	cursor: pointer;
	transition: background 0.2s ease;
}
.pt-contact-form__submit:hover {
	background: var(--pt-navy);
}
/* ---- Contact Form 7 integration (keeps the hand-built look) ---- */
.pt-contact-form .wpcf7-form-control-wrap {
	display: block;
}
/* submit is an <input type=submit>; exclude it from the field input styling */
.pt-contact-form input[type="submit"] {
	width: auto;
	border: 0;
	margin-top: 8px;
	background: var(--pt-ink);
	color: #fff;
	border-radius: 0;
	padding: 15px 38px;
	font-size: 1rem;
	font-weight: 400;
	cursor: pointer;
	transition: background 0.2s ease;
}
.pt-contact-form input[type="submit"]:hover {
	background: var(--pt-navy);
}
/* honeypot — visually removed, still in the DOM for bots */
.pt-honeypot {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
/* CF7 validation + response messages */
.pt-contact-form .wpcf7-not-valid-tip {
	color: #b3261e;
	font-size: 0.82rem;
	margin-top: 4px;
}
.pt-contact-form input.wpcf7-not-valid,
.pt-contact-form textarea.wpcf7-not-valid {
	border-color: #b3261e;
}
.wpcf7 .wpcf7-response-output {
	margin: 18px 0 0;
	padding: 12px 16px;
	border: 1px solid var(--pt-border);
	font-size: 0.92rem;
}
.wpcf7 form.sent .wpcf7-response-output {
	border-color: #1b6e3d;
	color: #1b6e3d;
}

/* ---- Policy pages ---- */
.pt-policy__title {
	font-size: clamp(2rem, 4vw, 2.75rem);
	font-weight: 400;
	margin: 0;
}
.pt-policy__h2 {
	font-size: 1.4rem;
	font-weight: 400;
	margin-top: 34px;
	margin-bottom: 8px;
}
.pt-policy__h {
	font-size: 1.12rem;
	font-weight: 400;
	margin-top: 26px;
	margin-bottom: 6px;
}
.pt-policy p,
.pt-policy li {
	color: rgba(18, 18, 18, 0.78);
	line-height: 1.75;
}
.pt-policy ul {
	padding-left: 1.4em;
	margin: 8px 0;
}
.pt-policy li {
	margin: 5px 0;
}
.pt-policy strong {
	color: var(--pt-ink);
}
.pt-policy a {
	color: var(--pt-ink);
	text-decoration: underline;
	word-break: break-word;
}

/* ---- Education ---- */
.pt-edu__title {
	font-size: clamp(1.9rem, 3.4vw, 2.6rem);
	font-weight: 400;
	margin: 0;
}
.pt-edu__eyebrow {
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(18, 18, 18, 0.55);
	margin: 0 0 6px;
}
.pt-edu__lead {
	font-size: clamp(1.9rem, 3.4vw, 2.6rem);
	font-weight: 400;
	margin: 0;
}
.pt-edu__sub {
	font-size: 1.2rem;
	font-weight: 400;
	color: rgba(18, 18, 18, 0.6);
	margin: 10px 0 20px;
}
.pt-edu__h {
	font-size: 1.5rem;
	font-weight: 400;
	margin-top: 34px;
	margin-bottom: 10px;
}
.pt-edu__article p {
	line-height: 1.75;
	margin-bottom: 18px;
}

/* SEM gallery */
.pt-sem__heading {
	font-size: 1.3rem;
	font-weight: 400;
	margin-bottom: 32px;
}
.pt-sem__row {
	flex-wrap: wrap;
}
.pt-sem__cell {
	flex-basis: calc(50% - 20px) !important;
}
.pt-sem__img {
	margin: 0 0 10px;
}
.pt-sem__img img {
	width: 100%;
	height: auto;
	display: block;
}
.pt-sem__cap {
	margin: 0 0 4px;
}
.pt-sem__cap strong {
	color: var(--pt-ink);
}

/* Video + text resource rows */
.pt-video {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	background: #000;
	overflow: hidden;
}
.pt-video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}
.pt-vt__title {
	font-size: clamp(1.6rem, 2.4vw, 2rem);
	font-weight: 400;
	margin: 0;
}

/* ---- Blog / News listing ---- */
.pt-blog__title {
	font-size: clamp(2.4rem, 5vw, 3.4rem);
	font-weight: 400;
	margin: 0 0 48px;
}
.pt-blog__grid {
	gap: 40px 32px;
}
.pt-blog__thumb img {
	width: 100%;
	height: auto;
	display: block;
}
.pt-blog__card-title {
	font-size: 1.3rem;
	font-weight: 400;
}
.pt-blog__card-title a {
	color: var(--pt-ink);
}

/* ---- Group Testing Central ---- */
.pt-gtc__title {
	font-size: clamp(2.2rem, 4.5vw, 3.1rem);
	font-weight: 400;
	margin: 0 0 28px;
}
.pt-gtc__intro p {
	line-height: 1.7;
}
.pt-gtc__list {
	width: fit-content;
	max-width: 100%;
	margin: 12px auto;
	padding-left: 1.3em;
	text-align: left;
	color: rgba(18, 18, 18, 0.78);
	line-height: 1.7;
}
.pt-gtc__guide {
	font-size: 1.5rem;
	font-weight: 700;
}
.pt-step__eyebrow {
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(18, 18, 18, 0.55);
	margin: 0 0 6px;
}
.pt-step__title {
	font-size: clamp(1.6rem, 2.6vw, 2.1rem);
	font-weight: 400;
	margin: 0 0 16px;
}
.pt-step p {
	line-height: 1.7;
	margin-bottom: 14px;
}
.pt-step__img {
	margin: 0;
}
.pt-step__img img {
	width: 100%;
	height: auto;
	display: block;
}

/* ---- Form pages (Jotform embeds) ---- */
.pt-form-page__title {
	font-size: clamp(2rem, 4vw, 2.75rem);
	font-weight: 400;
	margin: 0 0 24px;
}
.pt-jotform {
	width: 100%;
}
.pt-jotform iframe {
	width: 100% !important;
	min-width: 100% !important;
	max-width: 100% !important;
	border: 0;
}

/* ---- Attestation & Disclaimer ---- */
.pt-attest__title {
	font-size: clamp(2.6rem, 5.5vw, 4rem);
	font-weight: 400;
	margin: 0 0 32px;
}
.pt-attest__list {
	padding-left: 1.3em;
}
.pt-attest__list li {
	color: rgba(18, 18, 18, 0.78);
	line-height: 1.7;
	margin: 10px 0;
	font-size: 1.05rem;
}

/* =========================================================================
   COLLECTION / CATEGORY ARCHIVES
   ========================================================================= */
.pt-collbanner {
	align-items: center;
}
.pt-collbanner .wp-block-cover__background {
	background-color: var(--pt-navy);
	opacity: 0.5;
}
.pt-collbanner__inner {
	width: 100%;
}
.pt-collbanner__title {
	font-size: clamp(2rem, 4.5vw, 3.4rem);
	margin: 0;
	letter-spacing: 0.01em;
	text-align: center; /* live centres the collection banner title */
}

/* Filter sidebar (lab supplies) — mirrors live's "Filter: / Product type" rail */
.pt-coll-filter__label,
.pt-coll-filter p.pt-coll-filter__label {
	font-size: 0.95rem;
	color: rgba(18, 18, 18, 0.75) !important;
	margin: 0 0 14px;
}
.pt-coll-filter__heading,
.pt-coll-filter h4.pt-coll-filter__heading {
	font-size: 1rem;
	font-weight: 400;
	border-top: 1px solid var(--pt-border, #e8e8e8);
	padding-top: 16px;
	margin: 0 0 4px;
}
/* Live's rail is borderless — strip the block's box chrome */
.pt-coll-filter .wp-block-woocommerce-product-filter-checkbox-list,
.pt-coll-filter .wc-block-product-filter-checkbox-list__list,
.pt-coll-filter .wp-block-woocommerce-product-filter-attribute {
	border: 0 !important;
	padding-left: 0;
	padding-right: 0;
	background: transparent;
}
.pt-coll-filter .wc-block-product-filter-checkbox-list__label,
.pt-coll-filter .wc-block-product-filter-checkbox-list__item {
	font-size: 0.9rem;
}
/* Hide the mobile "Filter products" overlay trigger on desktop widths, and the
   drawer chrome (header/footer + apply button) that leaks into the inline view —
   desktop filters apply instantly on click, live-style. */
@media (min-width: 782px) {
	.pt-coll-filter .wc-block-product-filters__open-overlay,
	.pt-coll-filter .wc-block-product-filters__overlay-header,
	.pt-coll-filter .wc-block-product-filters__overlay-footer {
		display: none !important;
	}
	.pt-coll-filter .wc-block-product-filters__overlay-dialog {
		box-shadow: none;
		border: 0;
	}
}
@media (max-width: 781px) {
	/* columns stack on mobile; keep the rail compact above the grid */
	.pt-coll-filter {
		flex-basis: auto !important;
	}
}

/* Intro (order testing) */
.pt-coll-intro__title {
	font-size: clamp(1.7rem, 2.8vw, 2.2rem);
	font-weight: 400;
	margin: 0;
}
.pt-coll-intro p {
	line-height: 1.7;
}
.pt-coll-intro__video {
	margin: 0;
}
.pt-coll-intro__video video {
	width: 100%;
	display: block;
	border-radius: 0;
	background: #000;
}
.pt-coll-intro__img {
	margin: 0;
}
.pt-coll-intro__img img {
	width: 100%;
	height: auto;
	display: block;
}

/* Results count + sorting bar */
.pt-coll-bar {
	border-bottom: 1px solid var(--pt-border);
	padding-bottom: 16px;
	margin-bottom: 32px;
	font-size: 0.9rem;
	color: rgba(18, 18, 18, 0.7);
}
.pt-coll-bar .wc-block-product-sorting select,
.pt-coll-bar select {
	border: 1px solid var(--pt-border);
	border-radius: 0;
	padding: 8px 28px 8px 12px;
	font-family: inherit;
	font-size: 0.9rem;
	background-color: #fff;
}

/* Product grid + cards — mirrored to live Dawn (8px gap, 400-weight titles) */
.pt-products .wp-block-post-template,
.pt-products ul {
	gap: 8px !important;
	margin: 0;
	padding: 0;
	list-style: none;
}
.pt-products li.product,
.pt-products .wp-block-post {
	margin: 0;
}
.pt-products .wc-block-components-product-image,
.pt-products .wp-block-woocommerce-product-image {
	margin: 0;
}
.pt-products .wp-block-woocommerce-product-image img,
.pt-products li.product img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 0 !important;
	display: block;
}
.pt-products .wp-block-post-title {
	font-size: 1.24rem;
	font-weight: 400;
	line-height: 1.4;
	margin: 10px 0 2px;
	text-align: left;
}
.pt-products .wp-block-post-title,
.pt-products .wp-block-post-title a {
	color: var(--pt-ink);
	font-weight: 400;
}
.pt-products .wp-block-post-title a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}
.pt-products .wc-block-components-product-price,
.pt-products .wp-block-woocommerce-product-price {
	color: var(--pt-ink);
	font-size: 1.15rem;
	text-align: left;
	margin: 0 0 24px;
}
/* Sale badge — live shows a dark pill "Sale" at the image's bottom-left
   (same look as the Sold out badge), not a square top-right chip. */
.pt-products .wc-block-components-product-sale-badge {
	position: absolute;
	left: 0.6rem;
	right: auto;
	bottom: 0.6rem;
	top: auto;
	border-radius: 999px;
	background: #121212;
	color: #fff;
	font-size: 0.72rem;
	line-height: 1.4;
	padding: 0.25rem 0.7rem;
	letter-spacing: 0.04em;
	text-transform: none;
	border: 0;
	margin: 0;
}
/* Sale cards: struck-through regular price sits on its own line above the
   "From" sale price, mirroring live. */
.pt-products .wp-block-woocommerce-product-price del {
	display: block;
	color: rgba(18, 18, 18, 0.6);
	font-size: 1rem;
}

/* =========================================================================
   SINGLE PRODUCT
   ========================================================================= */
.pt-single__cols {
	gap: 56px;
}
/* "Shipping calculated at checkout." caption (mirrors live) */
.pt-single__shipnote {
	font-size: 0.85rem;
	color: rgba(18, 18, 18, 0.65);
	margin: 4px 0 0;
}
.pt-single__shipnote a {
	text-decoration: underline;
	text-underline-offset: 2px;
	color: inherit;
}
.pt-single__gallery img {
	border-radius: 0 !important;
}
.pt-single__gallery .wc-block-components-product-image-gallery__image img {
	width: 100%;
	display: block;
}
.pt-single__title {
	font-size: clamp(2rem, 3.6vw, 2.75rem);
	font-weight: 400;
	line-height: 1.1;
	margin: 0 0 12px;
}
.pt-single__price,
.pt-single__price .woocommerce-Price-amount,
.pt-single .wp-block-woocommerce-product-price {
	font-size: 1.35rem;
	font-weight: 400;
	color: var(--pt-ink);
}
.pt-single__price {
	margin: 0 0 20px;
}
.pt-single__excerpt {
	color: rgba(18, 18, 18, 0.78);
	line-height: 1.7;
	margin-bottom: 24px;
}

/* Add-to-cart form: square inputs, dark full-width button (Dawn) */
.pt-single__atc .variations,
.pt-single__atc table {
	border: 0;
	margin-bottom: 16px;
}
.pt-single__atc .variations td,
.pt-single__atc .variations th {
	padding: 6px 0;
	border: 0;
	background: none;
}
.pt-single__atc label,
.pt-single__atc .variations th {
	font-weight: 400;
	font-size: 0.95rem;
	color: var(--pt-ink);
}
.pt-single__atc select,
.pt-single .quantity input[type="number"] {
	border: 1px solid rgba(18, 18, 18, 0.25);
	border-radius: 0;
	padding: 12px 14px;
	font-family: inherit;
	font-size: 1rem;
	background: #fff;
	color: var(--pt-ink);
}
.pt-single__atc select {
	width: 100%;
}
.pt-single .quantity {
	margin-right: 0;
	margin-bottom: 12px;
}
.pt-single .quantity input[type="number"] {
	width: 84px;
	text-align: center;
}
.pt-single__atc .single_add_to_cart_button,
.pt-single__atc .wp-block-button__link,
.pt-single__atc button[type="submit"] {
	display: block;
	width: 100%;
	background: var(--pt-ink);
	color: #fff;
	border: 0;
	border-radius: 0;
	padding: 16px 32px;
	font-family: inherit;
	font-weight: 700;
	font-size: 0.95rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.2s ease;
}
.pt-single__atc .single_add_to_cart_button:hover {
	background: var(--pt-navy);
}

/* Group-test custom fields (Tepo replacement) on the product page */
.pt-gt-fields {
	margin: 8px 0 20px;
}
.pt-gt-field {
	margin: 0 0 14px;
}
.pt-gt-field label {
	display: block;
	font-weight: 400;
	font-size: 0.9rem;
	margin-bottom: 6px;
	color: var(--pt-ink);
}
.pt-gt-field input[type="text"],
.pt-gt-field textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid rgba(18, 18, 18, 0.25);
	border-radius: 0;
	background: #fff;
	color: var(--pt-ink);
	font-family: inherit;
	font-size: 1rem;
	box-sizing: border-box;
}
.pt-gt-field input:focus,
.pt-gt-field textarea:focus {
	outline: none;
	border-color: var(--pt-ink);
}
.pt-gt-field .required {
	color: #b00020;
	border: 0;
	text-decoration: none;
}

/* Description / details */
.pt-single__details {
	margin-top: 56px;
}
.pt-single__details h2,
.pt-single__details .wc-tab-title {
	font-size: 1.5rem;
	font-weight: 700;
}
.pt-single__details p,
.pt-single__details li {
	line-height: 1.75;
	color: rgba(18, 18, 18, 0.85);
}

/* Related products ("You may also like") */
.wp-block-woocommerce-related-products,
.related.products {
	margin-top: 64px;
}
.wp-block-woocommerce-related-products h2,
.related.products > h2 {
	font-size: 1.6rem;
	font-weight: 400;
	margin-bottom: 28px;
}
.wp-block-woocommerce-related-products img,
.related.products img {
	border-radius: 0 !important;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}
.wp-block-woocommerce-related-products .wp-block-post-title {
	font-size: 1.05rem;
	font-weight: 400;
	text-align: left;
}
.wp-block-woocommerce-related-products .wp-block-post-title a {
	color: var(--pt-ink);
}
.wp-block-woocommerce-related-products .wc-block-components-product-price,
.wp-block-woocommerce-related-products .wp-block-woocommerce-product-price {
	text-align: left;
	color: var(--pt-ink);
}
/* No add-to-cart button on related cards (match live "You may also like") */
.wp-block-woocommerce-related-products .wp-block-button,
.wp-block-woocommerce-related-products .wc-block-components-product-button,
.wp-block-woocommerce-related-products .wp-block-woocommerce-product-button {
	display: none !important;
}

/* =========================================================================
   WOOCOMMERCE — CART / CHECKOUT / MY ACCOUNT (visual polish only)
   No flow/field/order-logic changes — styling to match Dawn (square, Assistant).
   ========================================================================= */

/* Square off Woo cards, panels, inputs & buttons (Dawn is squared) */
.woocommerce .cart_totals,
.woocommerce-account form.woocommerce-form-login,
.woocommerce-account form.woocommerce-form-register,
.woocommerce table.shop_table,
.wc-block-components-panel,
.wc-block-components-text-input input,
.wc-block-components-select__container,
.wc-block-checkout__form input,
.wc-block-components-button,
.wc-block-cart__submit-button {
	border-radius: 0 !important;
}

/* Headings on these pages */
.woocommerce-account h1,
.woocommerce-cart h1,
.woocommerce-checkout h1 {
	font-size: clamp(1.9rem, 3.4vw, 2.6rem);
	font-weight: 400;
}
.woocommerce h2,
.woocommerce-account .woocommerce h2 {
	font-weight: 400;
}

/* Classic Woo inputs (login, account details, addresses) */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .woocommerce-Input,
.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="password"],
.woocommerce input[type="tel"] {
	border: 1px solid rgba(18, 18, 18, 0.25);
	border-radius: 0;
	padding: 13px 14px;
	font-family: inherit;
	font-size: 1rem;
	box-sizing: border-box;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus {
	outline: none;
	border-color: var(--pt-ink);
}

/* Classic Woo buttons -> dark square (matches theme) */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce .button.alt,
.woocommerce-MyAccount-content .button {
	background: var(--pt-ink);
	color: #fff;
	border: 0;
	border-radius: 0;
	padding: 14px 30px;
	font-weight: 700;
	font-size: 0.9rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	transition: background 0.2s ease;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce .button.alt:hover {
	background: var(--pt-navy);
	color: #fff;
}

/* Login / register: constrain width + square card */
.woocommerce-account .woocommerce form.woocommerce-form-login,
.woocommerce-account .woocommerce form.woocommerce-form-register {
	border: 1px solid var(--pt-border);
	padding: 32px;
	max-width: 560px;
}

/* My Account navigation (logged-in) */
.woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0 0 8px;
	padding: 0;
	border-top: 1px solid var(--pt-border);
}
.woocommerce-MyAccount-navigation li {
	margin: 0;
	border-bottom: 1px solid var(--pt-border);
}
.woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 13px 4px;
	color: var(--pt-ink);
	font-weight: 600;
}
.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation li a:hover {
	text-decoration: none;
	opacity: 0.65;
}
.woocommerce-MyAccount-navigation li.is-active a {
	opacity: 1;
	box-shadow: inset 3px 0 0 var(--pt-ink);
	padding-left: 14px;
}

/* Tables (orders, addresses, cart) */
.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	border-color: var(--pt-border);
}

/* Cart/checkout block buttons stay dark+square (inherit theme button color) */
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	border-radius: 0 !important;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

/* Attestation checkbox: make the embedded policy links clearly clickable */
.pt-policy-link,
.wc-block-components-checkbox__label .pt-policy-link {
	color: var(--pt-navy);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 2px;
	text-decoration-thickness: 1px;
}
.pt-policy-link:hover,
.wc-block-components-checkbox__label .pt-policy-link:hover {
	color: var(--pt-ink);
	text-decoration: underline;
}

/* =========================================================================
   RESPONSIVE
   ========================================================================= */
@media (max-width: 990px) {
	.pt-header__left {
		gap: 12px;
	}
	.pt-hero {
		min-height: 480px !important;
	}
}

/* About: keep 2-col down to Dawn's 750px breakpoint, then stack image-first. */
@media (max-width: 749px) {
	.pt-about__cols {
		flex-direction: column-reverse !important;
	}
	.pt-about__cols > .wp-block-column {
		flex-basis: 100% !important;
		width: 100% !important;
	}
	.pt-about__img img {
		aspect-ratio: 16 / 10 !important;
	}
}

@media (max-width: 781px) {
	.pt-hero {
		min-height: 420px !important;
	}
	.pt-form-row {
		flex-direction: column;
		gap: 0;
	}
	.pt-sem__cell {
		flex-basis: 100% !important;
	}
	.pt-footer__bottom {
		justify-content: center;
		text-align: center;
	}
}

@media (max-width: 480px) {
	.pt-hero__title {
		font-size: clamp(1.6rem, 8vw, 2.2rem);
	}
}

/* =========================================================================
   FiboSearch (header) + Product Filters (collection toolbar)
   ========================================================================= */
.pt-header__icons {
	display: flex;
	align-items: center;
	gap: 18px;
}
.pt-header__actions {
	gap: 18px;
}
.pt-header__actions .dgwt-wcas-search-wrapp {
	width: 230px;
	max-width: 34vw;
}
.pt-header__actions .dgwt-wcas-search-input {
	border-radius: 0;
	border: 1px solid rgba(18, 18, 18, 0.25);
}

/* Collection toolbar "Filter products" trigger -> dark square button */
.pt-coll-bar__tools {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-wrap: nowrap;
}
.pt-coll-bar__tools .wp-block-woocommerce-product-filters button,
.pt-coll-bar__tools .wc-block-product-filters__open-overlay-button,
.wp-block-woocommerce-product-filters .wc-block-product-filters__open-overlay-button {
	background: var(--pt-ink);
	color: #fff;
	border: 0;
	border-radius: 0;
	padding: 10px 18px;
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	cursor: pointer;
}

/* =========================================================================
   404 — Page not found
   ========================================================================= */
.pt-404 {
	text-align: center;
}
.pt-404__code {
	margin: 0 0 10px;
	font-size: 0.85rem;
	color: rgba(18, 18, 18, 0.55);
}
.pt-404__title {
	font-size: clamp(2.4rem, 5vw, 3.6rem);
	font-weight: 400;
	margin: 0;
}
.pt-404__msg {
	max-width: 520px;
	margin-left: auto;
	margin-right: auto;
	color: rgba(18, 18, 18, 0.7);
}
.pt-404__search {
	margin-top: 30px;
}
.pt-404__search .dgwt-wcas-search-wrapp {
	width: 100%;
	max-width: 460px;
	margin: 0 auto;
}
/* Square, white field to match the brand (FiboSearch defaults to a grey pill). */
.pt-404__search .dgwt-wcas-search-input[type="search"] {
	height: 52px !important;
	border: 1px solid var(--pt-ink) !important;
	border-radius: 0 !important;
	background: #fff !important;
	box-shadow: none !important;
}
.pt-404__search .dgwt-wcas-search-form,
.pt-404__search .dgwt-wcas-sf-wrapp {
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

/* ── Product reviews (CusRev) — match the live Judge.me widget ─────────────── */
/* The migrated reviews carry full "city, state, country" location strings, so
   CusRev builds its flag <img> as /img/flags/<location>.svg and 404s (it only
   ships country-code flags). The live Judge.me widget shows no location at all,
   so hide the whole location line — fixes the broken image AND matches live. */
.ivole-review-country-icon,
.ivole-review-country-text {
	display: none !important;
}

/* ── Group-test order fields (Qikify replacement) — match the live form ────── */
/* Stack the WooCommerce variation selector (e.g. "Number of Vials"): Woo's
   default renders the label in a table cell on the LEFT and the dropdown on the
   RIGHT. The live Shopify form (and our custom fields) put the label ABOVE a
   full-width control, so flatten the table to blocks. */
.woocommerce div.product form.cart table.variations,
.woocommerce div.product form.cart table.variations tbody,
.woocommerce div.product form.cart table.variations tr {
	display: block;
	width: 100%;
	border: 0;
	margin: 0;
}
.woocommerce div.product form.cart table.variations {
	margin: 0 0 1.25rem;
}
.woocommerce div.product form.cart table.variations th.label,
.woocommerce div.product form.cart table.variations td.value {
	display: block;
	width: 100%;
	padding: 0;
	text-align: left;
	border: 0;
}
.woocommerce div.product form.cart table.variations th.label {
	margin: 0 0 .4rem;
	font-weight: 400;
	line-height: 1.3;
}
.woocommerce div.product form.cart table.variations td.value select {
	width: 100%;
	min-height: 48px;
	padding: .55rem .75rem;
	border: 1px solid #ccc;
	border-radius: 0;
	background-color: #fff;
	box-sizing: border-box;
}
/* A default variation is preselected (matches the live "1 Vial" default), so the
   "Clear" link is redundant and not on the live form — hide it. Keep the
   selected-variation price (it updates as the vial count changes) but tighten
   its spacing so it sits cleanly under the dropdown. */
.woocommerce div.product form.cart .reset_variations {
	display: none !important; /* WC toggles this via an inline style — needs !important */
}
.woocommerce div.product form.cart .woocommerce-variation.single_variation {
	margin: .25rem 0 1rem;
}
.woocommerce div.product form.cart .single_variation_wrap {
	margin-top: .25rem;
}

/* Custom text/textarea fields — label above a full-width square input. */
.pt-gt-fields {
	margin: 0 0 1rem;
}
.pt-gt-field {
	margin: 0 0 1.25rem;
}
.pt-gt-field label {
	display: block;
	margin: 0 0 .4rem;
	font-weight: 400;
	line-height: 1.3;
}
.pt-gt-field .required {
	color: #c1121f;
	border: 0;
	text-decoration: none;
}
.pt-gt-field input[type="text"],
.pt-gt-field textarea {
	width: 100%;
	padding: .6rem .75rem;
	border: 1px solid #ccc;
	border-radius: 0;
	background: #fff;
	box-sizing: border-box;
}
.pt-gt-field .pt-gt-limit {
	display: block;
	margin-top: .25rem;
	text-align: right;
	font-size: .8em;
	color: #767676;
}
.pt-gt-field .pt-gt-desc {
	display: block;
	margin-top: .4rem;
	font-style: italic;
	font-size: .92em;
	line-height: 1.4;
	color: #767676;
}
.pt-gt-required-note {
	margin: 0 0 1.1rem;
	font-style: italic;
	color: #333;
}

/* Group Testing Central (page 1033) — Dawn underlines inline body links, but our
   theme leaves content links undecorated. Underline this page's inline content
   links (not the block buttons) to match the live page. */
body.page-id-1033 .entry-content a:not(.wp-block-button__link):not(.wp-element-button) {
	text-decoration: underline;
	color: rgba(18, 18, 18, 0.85);
}
/* Live left-aligns the GTC title + intro copy; only the "Group Testing Guide"
   heading and its PDF link stay centred. */
body.page-id-1033 .pt-gtc__title,
body.page-id-1033 .pt-gtc__intro > p {
	text-align: left;
}
body.page-id-1033 .pt-gtc__guide,
body.page-id-1033 .pt-gtc__guide + p {
	text-align: center;
}
/* Live's GTC buttons are outline style in sentence case (not solid caps). */
body.page-id-1033 .wp-block-button__link {
	background: transparent;
	color: var(--pt-ink);
	border: 1px solid var(--pt-ink);
	text-transform: none;
	letter-spacing: 0.02em;
	font-weight: 400;
	padding: 12px 26px;
}
body.page-id-1033 .wp-block-button__link:hover {
	background: var(--pt-ink);
	color: #fff;
}

/* ── Cart page — safe visual polish toward the live Dawn cart (no block/flow
   changes). Enlarge the line-item thumbnail and style the Continue-shopping
   link. ─────────────────────────────────────────────────────────────────── */
.wp-block-woocommerce-cart td.wc-block-cart-item__image,
.wp-block-woocommerce-cart .wc-block-cart-item__image {
	width: 110px;
}
.wp-block-woocommerce-cart .wc-block-cart-item__image img {
	width: 110px;
	height: auto;
}
.pt-continue-shopping {
	margin-bottom: 0;
}
.pt-continue-shopping a {
	text-decoration: underline;
	color: var(--pt-ink, #121212);
}

/* ── Homepage hero CTA — match live's blue rounded button ──────────────────── */
/* Live uses #334FB4, 4px radius, ~18px; our block rendered it square navy at
   15px. Override to match. */
.pt-hero__cta .wp-block-button__link {
	background-color: #334fb4 !important;
	border-radius: 4px !important;
	font-size: 1.15rem !important;
}

/* ── Single product: "You may also like" cards match live (no buttons) ─────── */
/* Live's related cards are image+title+price only. Hide the product-collection
   card buttons — scoped to single-product + the product-template, so the main
   Add-to-Cart form button (.single_add_to_cart_button) is never affected. */
body.single-product .wp-block-woocommerce-product-button,
body.single-product .wp-block-woocommerce-product-template .wp-block-button {
	display: none !important;
}

/* ── "Sold out" badge on out-of-stock collection cards (match live) ────────── */
/* Block product-collection cards get an `outofstock` class on the <li>; live
   shows a dark pill on the image. CSS-only, only renders on OOS cards. */
.wc-block-product.outofstock .wc-block-components-product-image {
	position: relative;
	display: block;
}
.wc-block-product.outofstock .wc-block-components-product-image::after {
	content: "Sold out";
	position: absolute;
	left: 0.6rem;
	bottom: 0.6rem;
	z-index: 3;
	background: #121212;
	color: #fff;
	font-size: 0.72rem;
	line-height: 1.4;
	padding: 0.25rem 0.7rem;
	border-radius: 999px;
	pointer-events: none;
}

/* ── Header nav — match live's lighter links ──────────────────────────────── */
/* Live top-nav links measure 16.1px / weight 400. Per manager preference we run
   2px above live (18px) for a slightly more prominent header. */
.pt-nav .wp-block-navigation-item__content {
	font-size: 1.125rem;
	font-weight: 400;
}
