/* ==========================================================================
   Prime Peptides Child — site-wide polish (2026-09-26, owner "all").
   One late stylesheet (enqueued last, every page) that brings the pages
   outside the homepage / Shop / product page onto the homepage v4 look:
   600-weight headings, navy primary buttons, sentence case, no eyebrows,
   tidier WooCommerce notices. Each block is scoped to its page's body
   class. Delete this file (and its enqueue in functions.php) to revert.
   ========================================================================== */

/* ---- 1. Headings: homepage weight and scale ---- */
body.lab-page .page-title,
body.faq-page .page-title,
body.contact-page .page-title,
body.pp-stack-page .pp-stk-title,
body.pp-cart-page .entry-title,
body.pp-account-page .entry-title,
body.woocommerce-checkout .entry-title,
body.error404 .pp-404-title {
  font-weight: 600;
  letter-spacing: -.03em;
  color: var(--pp-navy);
}
body.lab-page .tr-library-head h2,
body.lab-page .tr-faq h2,
body.lab-page .tr-match-copy h2,
body.lab-page .tr-labs-head h2 {
  font-weight: 600;
  font-size: clamp(28px, 2.6vw, 36px);
  line-height: 1.12;
  letter-spacing: -.025em;
}
body.doc-page .doc-card .doc-title { font-weight: 600; letter-spacing: -.03em; color: var(--pp-navy); }
body.doc-page .doc-card h2 { font-weight: 600; color: var(--pp-navy); }
body.faq-page .faq-cat-head h2 { font-weight: 600; color: var(--pp-navy); }
body.contact-page .elementor h2,
body.pp-cart-page .pp-cart-empty__title,
body .ppcd__empty-title { font-weight: 600; letter-spacing: -.02em; color: var(--pp-navy); }
body.pp-account-page .pp-auth-card__title { font-weight: 600; letter-spacing: -.02em; color: var(--pp-navy); }

/* ---- 2. Navy primary buttons ---- */
body.pp-account-page .pp-auth-form button[type="submit"],
body.pp-account-page .pp-auth-form .woocommerce-button,
body.pp-account-page .woocommerce-Button,
html body .ppcd .ppcd__cta,
html body .ppcd__cta,
html body.pp-cart-page .pp-cart-empty .pp-cart-empty__cta,
body.error404 .pp-404-btn--solid,
body.lab-page .tr-primary-link,
body.contact-page .wpforms-submit,
body.pp-stack-page .pp-stk-dock-cta {
  background: var(--pp-navy);
  border-color: var(--pp-navy);
  color: var(--canvas);
  box-shadow: none;
}
body.pp-account-page .pp-auth-form button[type="submit"]:hover,
body.pp-account-page .woocommerce-Button:hover,
html body .ppcd .ppcd__cta:hover,
html body.pp-cart-page .pp-cart-empty .pp-cart-empty__cta:hover,
html body .ppcd__cta:hover,
body.error404 .pp-404-btn--solid:hover,
body.lab-page .tr-primary-link:hover,
body.contact-page .wpforms-submit:hover,
body.pp-stack-page .pp-stk-dock-cta:hover:not(:disabled) {
  background: var(--pp-navy-3);
  border-color: var(--pp-navy-3);
  color: var(--canvas);
}

/* ---- 3. Product search results ---- */
body.shop-page .pp-search-count { margin: 10px 0 0; text-align: center; font: 500 15px/1.4 var(--sans); color: var(--pp-slate); }

/* ---- 4. Test Results: hero lookup, step icons ---- */
body.lab-page .tr-hero-lookup {
  display: flex;
  align-items: center;
  gap: 6px;
  width: min(640px, 100%);
  height: 60px;
  margin: 28px auto 0;
  padding: 5px 5px 5px 20px;
  border: 1.5px solid var(--pp-line);
  border-radius: 999px;
  background: var(--canvas);
  box-shadow: 0 12px 32px -24px rgba(6, 20, 38, .35);
  transition: border-color .2s ease, box-shadow .2s ease;
}
body.lab-page .tr-hero-lookup:focus-within { border-color: var(--pp-navy); box-shadow: 0 0 0 4px var(--pp-sky); }
body.lab-page .tr-hero-lookup svg { flex: none; width: 20px; height: 20px; color: var(--pp-muted); }
body.lab-page .tr-hero-lookup input[type="search"] { flex: 1; min-width: 0; height: 48px; margin: 0; padding: 0 6px; border: 0; background: transparent; box-shadow: none; font: 500 16px/1 var(--sans); color: var(--pp-navy); -webkit-appearance: none; appearance: none; }
body.lab-page .tr-hero-lookup input[type="search"]:focus { outline: none; }
body.lab-page .tr-hero-lookup button { flex: none; height: 48px; padding: 0 24px; border: 0; border-radius: 999px; background: var(--pp-navy); color: var(--canvas); font: 600 15px/1 var(--sans); cursor: pointer; }
body.lab-page .tr-hero-lookup button:hover { background: var(--pp-navy-3); }
body.lab-page .tr-hero .tr-gates { margin-top: 28px; }
body.lab-page .tr-labs { padding: 56px 0 8px; }
body.lab-page .tr-match-steps li > span.tr-step-ico { display: grid; place-items: center; color: var(--pp-pastel); font-size: 0; }
body.lab-page .tr-match-steps li > span.tr-step-ico svg { width: 24px; height: 24px; }

/* ---- 5. Build a stack ---- */
body.pp-stack-page .pp-stk-card { border: 0; border-radius: 20px; box-shadow: inset 0 0 0 1px var(--pp-line); }
body.pp-stack-page .pp-stk-card.is-in-stack { box-shadow: inset 0 0 0 2px var(--pp-navy); }
body.pp-stack-page .pp-stk-media { aspect-ratio: 5 / 6; border-radius: 20px 20px 0 0; }
body.pp-stack-page .pp-stk-media:has(> img.pp-product-photo) { background: var(--pp-sky-strong); }
body.pp-stack-page .pp-stk-media img.pp-product-photo { transform: none; }
body.pp-stack-page .pp-card-stock { left: 10px; right: auto; top: 10px; min-height: 24px; padding: 0 9px; border: 0; box-shadow: 0 0 0 1px rgba(11, 26, 43, .06); font: 600 12px/1 var(--sans); }
body.pp-stack-page .pp-card-stock.is-in-stock > span { background: var(--pass-green-bright); }
body.pp-stack-page .pp-card-stock.is-sold-out > span { background: var(--pp-muted); }
body.pp-stack-page .pp-stk-name { font-weight: 600; color: var(--pp-navy); }
body.pp-stack-page .pp-stk-addbtn,
body.pp-stack-page .pp-stk-notifybtn {
  text-transform: none;
  letter-spacing: 0;
  font: 600 14px/1 var(--sans);
  border-radius: 999px;
}
body.pp-stack-page .pp-stk-addbtn { background: var(--pp-navy); border-color: var(--pp-navy); color: var(--canvas); }
body.pp-stack-page .pp-stk-addbtn:hover { background: var(--pp-navy-3); color: var(--canvas); }
body.pp-stack-page .pp-stk-notifybtn { background: var(--pp-sky); border-color: transparent; color: var(--pp-navy); }
body.pp-stack-page .pp-stk-group { grid-column: 1 / -1; display: flex; align-items: center; gap: 16px; margin: 12px 0 0; list-style: none; }
body.pp-stack-page .pp-stk-group h2 { margin: 0; font: 600 20px/1.3 var(--sans); color: var(--pp-slate); white-space: nowrap; }
body.pp-stack-page .pp-stk-group::after { content: ""; flex: 1; height: 1px; background: var(--pp-line); }
body.pp-stack-page .pp-stk-progress { font: 500 14px/1.4 var(--sans); letter-spacing: 0; text-transform: none; color: var(--pp-slate); }
/* Summary bar: a clean white card with the count, price, saving and CTA. */
body.pp-stack-page .pp-stk-dock-in {
  gap: 20px;
  padding: 10px 10px 10px 24px;
  border: 0;
  border-radius: 20px;
  background: rgba(255, 255, 255, .97);
  box-shadow: 0 0 0 1px rgba(11, 26, 43, .06), 0 20px 48px rgba(6, 20, 38, .18);
}
body.pp-stack-page .pp-stk-dock-count { font: 600 15px/1.2 var(--sans); color: var(--pp-navy); }
body.pp-stack-page .pp-stk-dock-price strong { font-weight: 600; color: var(--pp-navy); }
body.pp-stack-page .pp-stk-dock-save { background: var(--pp-mint); color: var(--pp-teal); font-weight: 600; }
body.pp-stack-page .pp-stk-dock-cta { min-height: 52px; padding: 0 26px; font: 600 15px/1 var(--sans); letter-spacing: 0; }
body.pp-stack-page .pp-stk-dock-cta:disabled { background: var(--pp-paper); color: var(--pp-slate); box-shadow: inset 0 0 0 1px var(--pp-line); opacity: 1; }

/* ---- 6. FAQ page: plain rows like the homepage, search, sentence case ---- */
body.faq-page .faq-list { display: block; border-top: 0; }
body.faq-page .faq-list details { margin: 0; border: 0; border-bottom: 1px solid var(--pp-line); border-radius: 0; background: none; box-shadow: none; }
body.faq-page .faq-list summary { padding: 20px 4px; font: 500 16px/1.45 var(--sans); color: var(--pp-navy); border-radius: 0; }
body.faq-page .faq-list summary:hover { background: var(--pp-sky); }
body.faq-page .faq-list .faq-a { padding: 0 4px 20px; font: 400 15px/1.65 var(--sans); color: var(--pp-slate); }
body.faq-page .faq-cat { margin-bottom: 40px; }
body.faq-page .faq-cat[hidden] { display: none; }
body.faq-page .faq-list details[hidden] { display: none; }
body.faq-page .faq-search {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 56px;
  margin: 0 0 32px;
  padding: 0 20px;
  border: 1.5px solid var(--pp-line);
  border-radius: 999px;
  background: var(--canvas);
  transition: border-color .2s ease, box-shadow .2s ease;
}
body.faq-page .faq-search:focus-within { border-color: var(--pp-navy); box-shadow: 0 0 0 4px var(--pp-sky); }
body.faq-page .faq-search svg { flex: none; width: 20px; height: 20px; color: var(--pp-muted); }
body.faq-page .faq-search input { flex: 1; min-width: 0; height: 48px; margin: 0; padding: 0 4px; border: 0; background: transparent; box-shadow: none; font: 500 16px/1 var(--sans); color: var(--pp-navy); }
body.faq-page .faq-search input:focus { outline: none; }
body.faq-page .faq-empty { margin: 0; padding: 24px 0; font: 500 15px/1.5 var(--sans); color: var(--pp-slate); }
body.faq-page .faq-help a:not(.link-arrow) { color: var(--pp-navy); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }

/* ---- 7. Contact: no big gap above the footer ---- */
body.contact-page .elementor > .e-con:last-child,
body.contact-page .elementor > .e-parent:last-child { padding-bottom: 48px; }
body.contact-page .pp-foot { margin-top: 48px; }

/* ---- 8. My Account (signed out): reasons to sign up ---- */
body.pp-account-page .pp-auth-perks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; max-width: 900px; margin: 28px auto 0; padding: 0; list-style: none; }
body.pp-account-page .pp-auth-perks li { display: flex; align-items: flex-start; gap: 14px; margin: 0; padding: 18px; border-radius: 16px; background: var(--canvas); box-shadow: inset 0 0 0 1px var(--pp-line); }
body.pp-account-page .pp-auth-perks .pp-perk-ico { display: grid; place-items: center; flex: none; width: 40px; height: 40px; border-radius: 50%; }
body.pp-account-page .pp-auth-perks .pp-perk-ico svg { width: 20px; height: 20px; }
body.pp-account-page .pp-auth-perks li:nth-child(1) .pp-perk-ico { background: var(--pp-sky); color: var(--pp-blue-deep); }
body.pp-account-page .pp-auth-perks li:nth-child(2) .pp-perk-ico { background: var(--pp-mint); color: var(--pp-teal); }
body.pp-account-page .pp-auth-perks li:nth-child(3) .pp-perk-ico { background: var(--pp-amber); color: var(--pp-amber-ink); }
body.pp-account-page .pp-auth-perks b { display: block; font: 600 15px/1.35 var(--sans); color: var(--pp-navy); }
body.pp-account-page .pp-auth-perks small { display: block; margin-top: 2px; font: 400 13px/1.5 var(--sans); color: var(--pp-slate); }

/* ---- 9. Legal pages: centred column with an "On this page" list ---- */
body.doc-page .doc-layout { display: grid; grid-template-columns: 220px minmax(0, 760px); gap: 40px; justify-content: center; align-items: start; }
body.doc-page .doc-layout .doc-card { max-width: none; margin: 0; }
body.doc-page .doc-toc { position: sticky; top: 100px; padding: 18px; border-radius: 16px; background: var(--canvas); box-shadow: inset 0 0 0 1px var(--pp-line); }
body.doc-page .doc-toc b { display: block; margin-bottom: 10px; font: 600 14px/1.3 var(--sans); color: var(--pp-navy); }
body.doc-page .doc-toc ol { margin: 0; padding: 0; list-style: none; }
body.doc-page .doc-toc li { margin: 0; }
body.doc-page .doc-toc a { display: block; padding: 6px 8px; border-radius: 8px; font: 400 13px/1.4 var(--sans); color: var(--pp-slate); text-decoration: none; }
body.doc-page .doc-toc a:hover, body.doc-page .doc-toc a.is-current { background: var(--pp-sky); color: var(--pp-navy); }
@media (max-width: 1080px) {
  body.doc-page .doc-layout { grid-template-columns: minmax(0, 760px); }
  body.doc-page .doc-toc { display: none; }
}

/* ---- 10. 404 ---- */
body.error404 .pp-404-btn { text-transform: none; }

/* ---- 11. Empty cart ---- */
body.pp-cart-page .entry-header { width: min(560px, calc(100% - 40px)); margin-inline: auto; text-align: center; }
body.pp-cart-page .entry-title { font-size: clamp(32px, 3vw, 40px); }

/* ---- 12. WooCommerce notices: one calm card style everywhere ---- */
body .woocommerce-message,
body .woocommerce-info,
body .woocommerce-error {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
  margin: 0 0 20px;
  padding: 14px 18px 14px 48px;
  border: 0;
  border-radius: 16px;
  background: var(--pp-sky);
  box-shadow: inset 0 0 0 1px rgba(31, 102, 193, .14);
  color: var(--pp-navy);
  font: 500 14px/1.5 var(--sans);
  list-style: none;
  position: relative;
}
body .woocommerce-message { background: var(--pp-mint); box-shadow: inset 0 0 0 1px rgba(15, 138, 132, .18); }
body .woocommerce-error { display: block; background: var(--error-wash); box-shadow: inset 0 0 0 1px rgba(179, 38, 30, .18); color: #7A1A14; }
body .woocommerce-error li { margin: 2px 0; }
body .woocommerce-message::before,
body .woocommerce-info::before,
body .woocommerce-error::before {
  position: absolute;
  top: 14px;
  left: 18px;
  width: 20px;
  height: 20px;
  margin: 0;
  content: "";
  background: currentColor;
  -webkit-mask: var(--pp-notice-ico) center / contain no-repeat;
  mask: var(--pp-notice-ico) center / contain no-repeat;
  font-family: inherit;
}
body .woocommerce-info { --pp-notice-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 8h.01'/%3E%3C/svg%3E"); }
body .woocommerce-message { --pp-notice-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m8 12.5 2.8 2.8L16 10'/%3E%3C/svg%3E"); }
body .woocommerce-error { --pp-notice-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v6M12 16.5h.01'/%3E%3C/svg%3E"); }
body .woocommerce-message .button,
body .woocommerce-info .button,
body .woocommerce-message a.wc-forward,
body .woocommerce-info a.wc-forward {
  order: 2;
  margin-left: auto;
  padding: 8px 14px;
  border: 0;
  border-radius: 999px;
  background: var(--canvas);
  box-shadow: inset 0 0 0 1px var(--pp-line);
  color: var(--pp-navy);
  font: 600 13px/1 var(--sans);
  text-decoration: none;
  float: none;
}
body .woocommerce-message .button:hover,
body .woocommerce-info .button:hover { background: var(--pp-mist); color: var(--pp-navy); }
/* Checkout: field errors in red, next to the field. */
body.woocommerce-checkout .form-row.woocommerce-invalid input.input-text,
body.woocommerce-checkout .form-row.woocommerce-invalid select { border-color: var(--error-red); box-shadow: 0 0 0 3px rgba(179, 38, 30, .1); }
body.woocommerce-checkout .form-row.woocommerce-invalid label { color: var(--error-red); }
body.woocommerce-checkout .checkout-inline-error-message,
body.woocommerce-checkout .woocommerce-error[role="alert"] li { color: var(--error-red); }
body.woocommerce-checkout .checkout-inline-error-message { margin: 6px 0 0; font: 500 13px/1.4 var(--sans); }

@media (max-width: 760px) {
  body.pp-account-page .pp-auth-perks { grid-template-columns: minmax(0, 1fr); }
  body.lab-page .tr-hero-lookup { height: 56px; }
  body.lab-page .tr-hero-lookup button { height: 44px; padding: 0 18px; }
}

/* ---- 13. Checkout summary: size and pack on one line ("10mg · 3 Vials") ---- */
body.woocommerce-checkout .pp-co-item__meta dl.variation { display: block; margin: 2px 0 0; }
body.woocommerce-checkout .pp-co-item__meta dl.variation dt { display: none; }
body.woocommerce-checkout .pp-co-item__meta dl.variation dd,
body.woocommerce-checkout .pp-co-item__meta dl.variation dd p { display: inline; margin: 0; font: 400 12.5px/1.5 var(--sans); color: var(--pp-muted); }
body.woocommerce-checkout .pp-co-item__meta dl.variation dd ~ dd::before { content: " · "; }

/* ---- 14. My Account orders: dates on one line, actions wrap ---- */
body.pp-account-page .woocommerce-orders-table__cell-order-date { white-space: nowrap; }
body.pp-account-page .woocommerce-orders-table__cell-order-actions { white-space: normal; }
body.pp-account-page .woocommerce-orders-table__cell-order-actions .button { margin: 2px 4px 2px 0; }
body.pp-account-page .woocommerce-MyAccount-content { min-width: 0; overflow-x: auto; }


/* ==================================================================
   Commerce pages v3 (2026-09-26): match the redesigned pages.
   Primary actions go navy (same as Test Results, stack, FAQ, contact);
   Prime Blue stays for focus rings and links. Page titles use the
   site title size. The fallback order page (not your order / not
   signed in) gets a proper centred card instead of raw text.
   ================================================================== */
html body.pp-cart-page .woocommerce .pp-cart-summary a.checkout-button,
html body.pp-cart-page a.pp-cart-empty__cta,
html body.pp-cart-page .woocommerce .pp-cart-has-changes .pp-cart-actions button.pp-cart-update__btn:not(:disabled),
html body.pp-checkout-page .woocommerce button.pp-co-confirm,
html body.pp-checkout-page .woocommerce form.woocommerce-form-login button.button[name="login"],
html body.pp-checkout-page .woocommerce .place-order button#place_order,
html body.pp-checkout-page .woocommerce button.pp-co-sum__action,
html body.pp-account-page .pp-acc-btn--primary,
html body.pp-order-received-page .btn-primary,
html body.pp-order-received-page button.pp-proof__submit:not(:disabled),
html body .pp-commerce .woocommerce .checkout-button,
html body .ppcd .ppcd__cta {
	background: var(--pp-navy) !important;
	border-color: var(--pp-navy) !important;
	color: var(--canvas) !important;
}
html body.pp-cart-page .woocommerce .pp-cart-summary a.checkout-button:hover,
html body.pp-cart-page a.pp-cart-empty__cta:hover,
html body.pp-checkout-page .woocommerce button.pp-co-confirm:hover,
html body.pp-checkout-page .woocommerce .place-order button#place_order:hover,
html body.pp-checkout-page .woocommerce button.pp-co-sum__action:hover,
html body.pp-account-page .pp-acc-btn--primary:hover,
html body.pp-order-received-page .btn-primary:hover,
html body.pp-order-received-page button.pp-proof__submit:not(:disabled):hover,
html body .ppcd .ppcd__cta:hover {
	background: var(--pp-navy-2) !important;
	border-color: var(--pp-navy-2) !important;
}
html body.pp-checkout-page .pp-co.is-active > .pp-co__head .pp-co__step,
html body.pp-checkout-page .pp-co-review.is-active .pp-co__step,
html body.pp-order-received-page .pp-or-card__step,
html body.pp-account-page .pp-acc-nav__avatar {
	background: var(--pp-navy) !important;
	border-color: var(--pp-navy) !important;
}
html body .pp-shipbar__fill { background: var(--pp-navy); }

/* Titles: same size and weight as the rest of the site, left-aligned
   with the content below. */
html body.pp-cart-page .entry-header{
	box-sizing: border-box;
	width: min(1240px, calc(100% - 48px));
	max-width: none;
	margin-inline: auto;
}
html body.pp-cart-page .entry-header .entry-title,
html body.pp-checkout-page .entry-header .entry-title {
	width: auto;
	text-align: left;
	font: 700 clamp(36px, 3.5vw, 54px)/1.04 var(--sans);
	letter-spacing: -.03em;
	color: var(--pp-navy);
}
html body.pp-account-page h1.pp-acc-head__title { font-weight: 700; letter-spacing: -.03em; }
body.pp-order-received-page h1.pp-or-hero__title{ font-weight: 700; letter-spacing: -.03em; }

/* Fallback order page: "Please log in to your account to view this order". */
html body.pp-order-received-page .woocommerce:not(:has(.pp-or-hero)) {
	box-sizing: border-box;
	max-width: 560px;
	margin: 72px auto 96px;
	padding: 32px;
	border: 1px solid var(--pp-line);
	border-radius: 24px;
	background: var(--canvas);
	text-align: center;
}
html body.pp-order-received-page .woocommerce:not(:has(.pp-or-hero)) > p:first-child {
	margin: 0 0 16px;
	font: 700 32px/1.15 var(--sans);
	letter-spacing: -.02em;
	color: var(--pp-navy);
}
html body.pp-order-received-page .woocommerce:not(:has(.pp-or-hero)) .woocommerce-info {
	margin: 0;
	border-radius: 14px;
	text-align: left;
}

/* Legal pages: title weight and size in line with the site titles. */
html body.doc-page .doc-card .doc-title { font: 700 36px/1.1 var(--sans); letter-spacing: -.03em; color: var(--pp-navy); }
@media (max-width: 899px) {
	html body.doc-page .doc-card .doc-title { font-size: 32px; }
}

/* Legal pages: English / Thai switch (pp-polish.js). */
html body.doc-page .doc-layout[hidden],
html body.doc-page .doc-card[hidden] { display: none !important; }
body.doc-page .doc-langbar{ display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px 16px; max-width: 980px; margin: 24px auto 20px; scroll-margin-top: 100px; }
html body.doc-page .doc-langbar__seg { display: inline-flex; padding: 4px; border-radius: 999px; background: var(--pp-paper); box-shadow: inset 0 0 0 1px var(--pp-line); }
body.doc-page .doc-langbar__seg button{ min-width: 112px; height: 40px; padding: 0 18px; border: 0; border-radius: 999px; background: none; box-shadow: none; font: 600 14px/1 var(--sans); color: var(--pp-ink-soft); cursor: pointer; transition: background-color .2s, color .2s; }
html body.doc-page .doc-langbar__seg button:hover { color: var(--pp-navy); background: none; }
html body.doc-page .doc-langbar__seg button.is-on { background: var(--pp-navy); color: var(--canvas); }
html body.doc-page .doc-langbar__seg button:focus-visible { outline: 2px solid var(--pp-blue); outline-offset: 2px; }
html body.doc-page .doc-langbar__note { font: 400 13px/1.4 var(--sans); color: var(--pp-muted); }
html body.doc-page .doc-th-note { margin: 0 0 24px; padding: 14px 16px; border-radius: 14px; background: var(--pp-amber); }
body.doc-page .doc-th-note p{ margin: 0; font: 400 14px/1.55 var(--sans); color: var(--pp-ink-soft); }
body.doc-page .doc-th-note p + p{ margin-top: 4px; }

/* ------------------------------------------------------------------
   Checkout v3 (2026-09-27): bigger, calmer form. 52px fields with 16px
   text (also stops iOS zoom), 14px navy labels, more air between fields,
   larger step headers, 20px card radius, navy step and buttons.
   ------------------------------------------------------------------ */
html body.pp-checkout-page .pp-co-main{ border-color: var(--pp-line); border-radius: 20px; box-shadow: none; }
body.pp-checkout-page .pp-co__head{ min-height: 76px; padding: 18px 28px; }
body.pp-checkout-page .pp-co__step{ width: 34px; height: 34px; font: 600 14px/1 var(--sans); }
html body.pp-checkout-page .pp-co.is-active > .pp-co__head .pp-co__step { box-shadow: 0 0 0 4px var(--pp-sky); }
body.pp-checkout-page .pp-checkout h3.pp-co__title{ font: 600 20px/1.25 var(--sans); letter-spacing: -.02em; color: var(--pp-navy); }
body.pp-checkout-page .pp-co__body{ padding: 8px 28px 28px 74px; }
body.pp-checkout-page .pp-co .woocommerce-billing-fields__field-wrapper,
body.pp-checkout-page .pp-co .woocommerce-shipping-fields__field-wrapper{ gap: 18px 16px; }
body.pp-checkout-page .pp-co label{ margin-bottom: 8px; font: 600 14px/1.3 var(--sans); color: var(--pp-navy); }
body.pp-checkout-page .pp-co input[type="text"],
body.pp-checkout-page .pp-co input[type="email"],
body.pp-checkout-page .pp-co input[type="tel"],
body.pp-checkout-page .pp-co input[type="password"],
body.pp-checkout-page .pp-co select,
body.pp-checkout-page .pp-co .select2-container .select2-selection--single{ height: 52px; min-height: 52px; padding: 0 16px; border: 1.5px solid var(--pp-line); border-radius: 12px; font: 400 16px/1.4 var(--sans); color: var(--pp-navy); }
body.pp-checkout-page .pp-co textarea{ min-height: 110px; padding: 14px 16px; border: 1.5px solid var(--pp-line); border-radius: 12px; font: 400 16px/1.5 var(--sans); }
html body.pp-checkout-page .pp-co input:focus,
html body.pp-checkout-page .pp-co textarea:focus,
html body.pp-checkout-page .pp-co select:focus { border-color: var(--pp-blue); box-shadow: 0 0 0 3px var(--pp-sky); }
body.pp-checkout-page .pp-co .select2-container--default .select2-selection--single .select2-selection__arrow{ height: 48px; right: 10px; }
body.pp-checkout-page .woocommerce button.pp-co-confirm{ min-height: 52px; padding: 0 32px; font: 600 16px/1 var(--sans); }
html body.pp-checkout-page .woocommerce .place-order button#place_order { min-height: 56px; font: 600 16px/1 var(--sans); }
@media (max-width: 899px) {
	body.pp-checkout-page .pp-co__head{ padding: 16px 18px; }
	body.pp-checkout-page .pp-co__body{ padding: 4px 18px 22px; }
	body.pp-checkout-page .pp-co .woocommerce-billing-fields__field-wrapper,
	body.pp-checkout-page .pp-co .woocommerce-shipping-fields__field-wrapper{ grid-template-columns: minmax(0, 1fr); }
	body.pp-checkout-page .woocommerce button.pp-co-confirm{ width: 100%; }
}

/* ------------------------------------------------------------------
   My account v3 (2026-09-27): orders as cards, like Test Results.
   ------------------------------------------------------------------ */
html body.pp-account-page .pp-ocards{ display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
body.pp-account-page .pp-ocard{ display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 20px; align-items: center; margin: 0; padding: 18px 20px; border: 1px solid var(--pp-line); border-radius: 20px; background: var(--canvas); transition: box-shadow .2s ease; }
html body.pp-account-page .pp-ocard:hover { box-shadow: 0 12px 28px rgba(6, 20, 38, .06); }
body.pp-account-page .pp-ocard__thumbs{ display: flex; min-width: 64px; }
body.pp-account-page .pp-ocard__thumbs img{ width: 56px; height: 68px; object-fit: cover; object-position: center; border-radius: 14px; background: var(--pp-paper); box-shadow: 0 0 0 2px var(--canvas); }
body.pp-account-page .pp-ocard__thumbs img + img{ margin-left: -28px; }
body.pp-account-page .pp-ocard__top{ display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0; }
body.pp-account-page .pp-ocard__no{ font: 600 17px/1.3 var(--sans); color: var(--pp-navy); text-decoration: none; }
html body.pp-account-page .pp-ocard__no:hover { color: var(--pp-blue-deep); }
body.pp-account-page .pp-ocard__items{ margin: 4px 0 0; overflow: hidden; font: 500 14px/1.4 var(--sans); color: var(--pp-ink-soft); text-overflow: ellipsis; white-space: nowrap; }
body.pp-account-page .pp-ocard__meta{ margin: 4px 0 0; font: 400 13px/1.4 var(--sans); color: var(--pp-muted); }
body.pp-account-page .pp-ocard__side{ display: grid; justify-items: end; gap: 10px; }
body.pp-account-page .pp-ocard__total{ font: 600 20px/1 var(--sans); letter-spacing: -.02em; color: var(--pp-navy); }
body.pp-account-page .pp-ocard__acts{ display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
body.pp-account-page .pp-ocard__acts .pp-acc-btn{ min-height: 40px; padding: 0 16px; border-radius: 999px; font: 600 14px/1 var(--sans); }
body.pp-account-page .pp-ocard--cancelled .pp-ocard__thumbs{ opacity: .6; }
@media (max-width: 699px) {
	body.pp-account-page .pp-ocard{ grid-template-columns: auto minmax(0, 1fr); padding: 16px; }
	body.pp-account-page .pp-ocard__side{ grid-column: 1 / -1; grid-template-columns: auto 1fr; align-items: center; justify-items: stretch; }
	body.pp-account-page .pp-ocard__acts{ justify-content: flex-end; }
}

/* ==================================================================
 * Site audit fixes (2026-09-27)
 * ================================================================== */
/* One keyboard focus ring everywhere (low specificity baseline) */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 2px solid rgba(65, 143, 222, .7); outline-offset: 2px; }
html body.single-product .single_add_to_cart_button:focus-visible,
html body #ast-scroll-top:focus-visible,
html body a.elementor-accordion-title:focus-visible,
html body .elementor-tab-title:focus-visible { outline: 2px solid rgba(65, 143, 222, .7) !important; outline-offset: 3px !important; }

/* Homepage FAQ titles wrap on phones instead of being cut mid-word */
html body .pp-home .elementor-tab-title,
.pp-home .elementor-tab-title a,
.pp-home a.elementor-accordion-title{ white-space: normal; overflow: visible; text-overflow: clip; }

/* Product page: navy buttons like the rest of the site */
html body.single-product .pp-v3 form.cart .single_add_to_cart_button{ background: var(--pp-navy); border-color: var(--pp-navy); color: var(--canvas); }
html body.single-product .pp-v3 form.cart .single_add_to_cart_button:hover { background: var(--pp-navy-2) !important; }
html body.single-product .pp-v3 .pv3-cert { border-color: var(--pp-line); background: var(--canvas); color: var(--pp-navy); }
html body.single-product .pp-v3 .pv3-cert:hover { border-color: var(--pp-navy); background: var(--pp-mist); color: var(--pp-navy); }

/* Back-to-top: navy */
html body #ast-scroll-top{ background: var(--pp-navy); color: var(--canvas); }

/* Footer links never touch the screen edge on phones */
@media (max-width: 600px) {
  .pp-foot a{ overflow-wrap: anywhere; }
}

/* ---- Audit fixes, round 2 (2026-09-27) ---- */

/* One FAQ look everywhere: the FAQ page's cards (product page + homepage) */
html body .p4-faq-list{ display: grid; gap: 10px; border-top: 0; }
html body .p4-faq-list details { border: 1px solid var(--pp-line); border-bottom: 1px solid var(--pp-line); border-radius: 16px; background: var(--canvas); transition: border-color .2s, background-color .2s; }
html body .p4-faq-list details[open] { border-color: var(--pp-sky-strong); background: var(--pp-paper); }
.p4-faq-list summary{ min-height: 0; padding: 18px 22px; font: 500 16px/1.4 var(--sans); color: var(--pp-navy); }
.p4-faq-list summary span{
  width: 28px;
  height: 28px;
  background: #EEF2F7 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B1A2B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / 16px no-repeat;
  transition: transform .2s cubic-bezier(.23, 1, .32, 1);
}
.p4-faq-list summary span::before,
.p4-faq-list summary span::after{ display: none; }
html body .p4-faq-list details[open] summary span { transform: rotate(180deg); background-color: var(--canvas); }
.p4-faq-list details > div{ padding: 0 22px 20px; }
.p4-faq-list details > div p{ max-width: 62ch; margin: 0 0 10px; font: 400 15px/1.65 var(--sans); }
html body .p4-faq-list summary:focus-visible { outline: 2px solid rgba(65, 143, 222, .7); outline-offset: -2px; border-radius: 16px; }

.pp-home .elementor-accordion{ display: grid; gap: 10px; border: 0; }
.pp-home .elementor-accordion .elementor-accordion-item{ border: 1px solid var(--pp-line); border-radius: 16px; background: var(--canvas); overflow: hidden; }
.pp-home .elementor-accordion .elementor-accordion-item + .elementor-accordion-item{ border-top: 1px solid var(--pp-line); }
.pp-home .elementor-accordion .elementor-tab-title{ padding: 18px 22px; border: 0; font: 500 16px/1.4 var(--sans); }
html body .pp-home .elementor-accordion .elementor-tab-title.elementor-active { background: var(--pp-paper); }
.pp-home .elementor-accordion .elementor-tab-content{ padding: 0 22px 20px; border: 0; background: var(--pp-paper); }

/* Focus on bordered pills and chips: a soft halo, no gap-then-outline */
html body .h4-btn--ghost:focus-visible,
html body .pv3-size:focus-visible,
html body .sp2-chip:focus-visible,
html body .trx-chip:focus-visible,
html body .pp-stk-chip:focus-visible,
html body .pp-acc-btn--quiet:focus-visible,
html body .btn-outline:focus-visible { outline: 0 !important; box-shadow: 0 0 0 3px rgba(65, 143, 222, .35) !important; }

/* Build a stack: search keeps its ring inside the box; phone bar is one card */
html body .pp-stack-page .pp-stk-search input:focus,
html body .pp-stack-page .pp-stk-search input:focus-visible { outline: 0 !important; box-shadow: none !important; }
html body .pp-stack-page .pp-stk-search:focus-within { border-color: var(--pp-blue); box-shadow: 0 0 0 3px var(--pp-sky); }
@media (max-width: 899px) {
  html body .pp-stack-page .pp-stk-dock .pp-stk-dock-in { padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
}

/* Homepage "Prime standard" rows: the colour strip sits inside a rounded card */
html body .pp-home .h4-std__row{ overflow: hidden; border-radius: 16px; }
@media (max-width: 899px) {
  .pp-home .h4-std{ margin-left: 20px; }
}

/* Test results: the sample's caption bar is solid, nothing shows through */
html body .pp-tr-main .trx-doc figcaption{ background: var(--pp-navy); color: rgba(255, 255, 255, .85); }

/* Legal pages on phones: no card inside the page padding; badge stays whole */
@media (max-width: 600px) {
  body.doc-page .doc-card{ padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
  body.doc-page .doc-card .doc-meta,
  body.doc-page .doc-card [class*="effective"]{ white-space: normal; letter-spacing: .04em; }
}

/* Footer on phones: same 20px side margin as the rest of the page */
@media (max-width: 699px) {
  .pp-foot--v5 .pp-f5__top{ padding-right: 4px; }
  .pp-foot--v5 .pp-f5__top a{ overflow-wrap: anywhere; }
}

/* ---- One page edge (2026-09-27): content lines up with the header's 48px
   edge at 1440 and caps at 1344px on wider screens. Phones keep their own
   gutters (the rules below start at 900px). ---- */
@media (min-width: 900px) {
  .sp2-wrap,
  .pp-stk-wrap,
  .trx-wrap,
  .brx-wrap,
  body.pp-cart-page .entry-header,
  body.pp-cart-page .woocommerce{ width: min(1344px, calc(100% - 96px)); max-width: none; }
  body.shop-page .site-content .ast-container{ width: min(1344px, calc(100% - 96px)); max-width: none; }
  body.pp-account-page .pp-acc{ width: min(1344px, calc(100% - 96px)); }
  .pp-foot .wrap{ max-width: 1440px; padding-inline: clamp(20px, 3.4vw, 48px); }
}
/* PDP pack cards: content starts at the top so the 1-vial card (no savings
   line) lines up with the 3, 5 and 10 vial cards. */
html body.single-product .pack-v3 .opt .opt-box{ justify-content: flex-start; }

/* Notices (2026-09-28): WooCommerce focuses a notice after a form save
   (tabindex -1), which drew the browser's blue focus ring around the
   card; and the icon sat at the top while one-line text was centred. */
body .woocommerce-message:focus,
body .woocommerce-info:focus,
body .woocommerce-error:focus,
body .woocommerce-notices-wrapper:focus,
body .woocommerce-NoticeGroup:focus { outline: none; }
body .woocommerce-message::before,
body .woocommerce-info::before { top: 50%; transform: translateY(-50%); }

/* Discount cap notice (Offers module, 2026-09-30): one quiet line under the
   discount rows in the cart summary, the checkout review and the drawer. */
.pp-offers-cap-note{ margin: 8px 0 0; padding: 8px 12px; border-radius: 10px; background: var(--blue-wash, #EAF2FC); color: var(--blue-deep, #134A8E); font-size: 13px; line-height: 1.45; font-weight: 500; }
.pp-offers-cap-note-row td{ padding-top: 0; border: 0; }
.ppcd__capline strong{ color: var(--slate, #3B4A5C); }

/* ---------- One button scale, site-wide (owner 2026-10-05) ----------
   XL 56/16 (hero, cart, sticky add) · L 52/16 (page buttons) · M 48/15
   (actions inside cards) · S 44/14 (chips, filters, size pills). Every
   button is a pill. Phones keep their own sizes from pp-mobile.css. */
@media (min-width: 900px) {
  /* L: page buttons */
  html body .pp-home .h4-btn,
  html body .pp-home .pp-faq-cta,
  html body .pp-home .h6-team__btn { min-height: 52px !important; padding: 0 28px !important; font-size: 16px !important; font-weight: 600 !important; }
  html body.pp-pdp .pv3-cert { font-size: 16px !important; }
  /* M: actions inside cards */
  html body .ppc.ppc button.ppc__add,
  html body .ppc.ppc a.ppc__notify { height: 48px; font-size: 15px; }
  html body .ppc.ppc .ppc__step { height: 48px; border-radius: 999px; }
  html body.pp-pdp .p5-more { height: 48px; font-size: 15px; }
  /* S: chips, filters and size pills */
  html body .shop-page .chip { min-height: 44px; font-size: 14px; font-weight: 500; }
  html body .sp2-page .sp2-chip { height: 44px; }
  html body .ppc.ppc button.ppc__size { min-height: 40px; font-size: 14px; }
  html body .ppc.ppc button.ppc__size.is-on { background: #E3EEFB; border-color: var(--pp-blue-deep); color: var(--pp-blue-deep); font-weight: 600; box-shadow: none; }
  html body .pp-stickybar__size { border-radius: 999px !important; }
  /* Batch COA chip on card photos: a real tap target. */
  html body .ppc.ppc .ppc__coa { height: 32px; padding: 0 12px; font-size: 13px; }
}
@media (min-width: 900px) {
  html body.shop-page .chip { min-height: 44px !important; font-size: 14px !important; font-weight: 500 !important; }
  html body .ppc.ppc .ppc__coa { font-size: 13px !important; }
}
html body .ppc.ppc .ppc__sizes:has(> :only-child) button.ppc__size { grid-column: 1 / -1; }

/* ---- Password reveal button, site-wide (owner 2026-10-05) ----
   WooCommerce's icon-font eye floated loose at the top of the field.
   One quiet 36px button inside the field, centred, with a line eye that
   turns into eye-off while the password shows. */
html body .password-input { position: relative; display: block; }
html body .password-input input { padding-right: 52px !important; }
html body .show-password-input { position: absolute !important; top: 50% !important; right: 8px !important; left: auto !important; bottom: auto !important; display: grid !important; place-items: center; width: 36px !important; height: 36px !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 8px !important; background: transparent !important; box-shadow: none !important; color: #5B6B7F !important; cursor: pointer; transform: translateY(-50%) !important; translate: none !important; font-size: 0 !important; line-height: 0 !important; transition: background .15s, color .15s; }
html body .show-password-input::before { content: none !important; display: none !important; }
html body .show-password-input::after { content: "" !important; display: block !important; width: 20px !important; height: 20px !important; margin: 0 !important; font-family: inherit !important; background: currentColor !important;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7-10-7-10-7Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat !important;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7-10-7-10-7Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat !important; }
html body .show-password-input.display-password::after {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.6 5.1A10.4 10.4 0 0 1 12 5c6.4 0 10 7 10 7a17.6 17.6 0 0 1-2.6 3.6M6.6 6.6A17.4 17.4 0 0 0 2 12s3.6 7 10 7a9.7 9.7 0 0 0 5.4-1.6'/%3E%3Cpath d='M9.9 9.9a3 3 0 0 0 4.2 4.2'/%3E%3Cpath d='m3 3 18 18'/%3E%3C/svg%3E") !important;
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.6 5.1A10.4 10.4 0 0 1 12 5c6.4 0 10 7 10 7a17.6 17.6 0 0 1-2.6 3.6M6.6 6.6A17.4 17.4 0 0 0 2 12s3.6 7 10 7a9.7 9.7 0 0 0 5.4-1.6'/%3E%3Cpath d='M9.9 9.9a3 3 0 0 0 4.2 4.2'/%3E%3Cpath d='m3 3 18 18'/%3E%3C/svg%3E") !important; }
html body .show-password-input:hover { background: #F2F5F9 !important; color: #0B1A2B !important; }
html body .show-password-input:focus-visible { outline: 2px solid #1F66C1 !important; outline-offset: 0; }

/* ---- Product card on phones (owner 2026-10-05): price leads, chips and
   controls get lighter so two cards side by side stay tidy. ---- */
@media (max-width: 600px) {
	html body .ppc.ppc .ppc__body .ppc__name { font-size: 16px !important; line-height: 21px !important; font-weight: 700 !important; }
	html body .ppc.ppc .ppc__from { margin-top: 2px; font-size: 12px !important; line-height: 15px !important; }
	html body .ppc.ppc .ppc__sizes { gap: 5px !important; margin-top: 10px !important; }
	html body .ppc.ppc .ppc__size { height: 30px !important; min-height: 30px !important; padding: 0 6px !important; border: 1px solid #D3DBE5 !important; border-radius: 999px !important; background: #fff !important; box-shadow: none !important; color: #31445A !important; font: 600 12.5px/1 var(--sans, Poppins, sans-serif) !important; }
	html body .ppc.ppc .ppc__size.is-on { border-color: #0B1A2B !important; background: #0B1A2B !important; color: #fff !important; }
	html body .ppc.ppc .ppc__size:disabled, html body .ppc.ppc .ppc__size[aria-disabled="true"] { background: #F6F8FB !important; color: #627180 !important; border-color: #E3E8EF !important; text-decoration: line-through; text-decoration-color: rgba(98, 113, 128, .6); }
	html body .ppc.ppc .ppc__price { margin-top: 10px !important; align-items: baseline; }
	html body .ppc.ppc .ppc__price strong { font-size: 21px !important; line-height: 1.1 !important; font-weight: 700 !important; letter-spacing: -.02em; color: #0B1A2B !important; }
	html body .ppc.ppc .ppc__per { font-size: 12px !important; color: #5B6B7F !important; }
	html body .ppc.ppc .ppc__was { font-size: 12px !important; }
	html body .ppc.ppc .ppc__ladder { margin-top: 8px !important; }
	html body .ppc.ppc .ppc__tiers { height: 4px !important; }
	html body .ppc.ppc .ppc__tlabels { margin-top: 4px !important; font-size: 12px !important; line-height: 13px !important; }
	html body .ppc.ppc .ppc__hint { margin-top: 6px !important; font-size: 12px !important; line-height: 15px !important; }
	html body .ppc.ppc .ppc__actions { padding-top: 10px !important; gap: 8px !important; }
	html body .ppc.ppc .ppc__step { height: 38px !important; min-height: 38px !important; }
	html body .ppc.ppc .ppc__step button { width: 30px !important; min-width: 30px !important; height: 38px !important; }
	html body .ppc.ppc .ppc__num { font-size: 14px !important; }
	html body .ppc.ppc .ppc__total { font-size: 12px !important; line-height: 1.25 !important; }
	html body .ppc.ppc .ppc__total b, html body .ppc.ppc .ppc__total strong { font-size: 14px !important; }
	html body .ppc.ppc .ppc__add { height: 42px !important; min-height: 42px !important; font-size: 14px !important; }
}

/* ---- Product card on phones, pass 2 (owner 2026-10-05): the per-vial
   price is a normal line again and the order total is the big number. ---- */
@media (max-width: 600px) {
	html body .ppc.ppc .ppc__price strong { font-size: 16px !important; line-height: 22px !important; font-weight: 700 !important; letter-spacing: 0; }
	html body .ppc.ppc .ppc__price { margin-top: 8px !important; }
	html body .ppc.ppc .ppc__step { grid-template-columns: 26px 24px 26px !important; width: 76px !important; height: 38px !important; }
	html body .ppc.ppc .ppc__step button { width: 26px !important; min-width: 26px !important; }
	html body .ppc.ppc .ppc__total { gap: 1px; font-size: 12px !important; line-height: 13px !important; color: #5B6B7F !important; }
	html body .ppc.ppc .ppc__total strong { font-size: 17px !important; line-height: 21px !important; font-weight: 700 !important; letter-spacing: -.01em; color: #0B1A2B !important; }
	/* Each discount label starts where its discount starts. */
	html body .ppc.ppc .ppc__tlabels > span { text-align: left; }
}
@container (max-width: 150px) {
	html body .ppc.ppc .ppc__total strong { font-size: 15px !important; }
}
/* No sticky blue after a tap on touch screens. */
@media (hover: none) {
	html body .ppc.ppc button.ppc__add:hover { background: var(--pp-navy, #0B1A2B); }
}

/* Cards: an empty lab-report row held 20px+ under the name. Hide it while
   no card in the same row/grid has a report, so siblings stay aligned. */
ul.products:not(:has(.ppc__report:not(.is-empty))) .ppc.ppc .ppc__report.is-empty,
.h4-row:not(:has(.ppc__report:not(.is-empty))) .ppc.ppc .ppc__report.is-empty,
.h4-track:not(:has(.ppc__report:not(.is-empty))) .ppc.ppc .ppc__report.is-empty { display: none !important; }
@media (max-width: 600px) {
	html body .ppc.ppc .ppc__desc:empty { display: none; }
	html body .ppc.ppc .ppc__sizes { margin-top: 12px !important; }
}
/* Touch screens: no hover tint left behind on the stepper or chips after a tap. */
@media (hover: none) {
	html body .ppc.ppc .ppc__step button:hover,
	html body .ppc.ppc .ppc__step button:focus:not(:focus-visible) { background: transparent !important; color: inherit; }
	html body .ppc.ppc .ppc__size:not(.is-on):hover { background: #fff !important; }
}

/* Real LINE and WhatsApp marks (pp_os_chat_logo) wherever they appear. */
.pp-os-lg { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; flex: none; }
.pp-os-lg svg { width: 19px; height: 19px; fill: #fff; stroke: none; }
.pp-os-lg--line { background: #06C755; }
.pp-os-lg--wa { background: #25D366; border-radius: 50%; }
.pp-os-lg--wa svg { width: 16px; height: 16px; }
html body .sp2-card__ico:has(.pp-os-lg), html body .sp2-route__ico:has(.pp-os-lg) { background: none !important; box-shadow: none !important; }
html body .sp2-card__ico .pp-os-lg { width: 52px; height: 52px; border-radius: 15px; }
html body .sp2-card__ico .pp-os-lg svg { width: 34px; height: 34px; }
html body .sp2-card__ico .pp-os-lg--wa { border-radius: 50%; }
html body .sp2-card__ico .pp-os-lg--wa svg { width: 30px; height: 30px; }
html body .sp2-route__ico .pp-os-lg { width: 100%; height: 100%; }

/* ---- Phone menu v4 (owner 2026-10-07, Virtus reference): the same
   right-hand sheet as the cart (pp-cart-drawer.css). "Menu" with account,
   cart and close; search; "Explore" pages; categories; a swipe row of best
   sellers; chat. ---- */
@media (max-width: 1080px) {
	html body nav.pp-dr {
		--g: 24px;
		top: 0; right: 0; bottom: auto; left: auto;
		width: 460px; max-width: calc(100% - 36px); height: 100dvh; max-height: none;
		margin: 0; padding: 0; gap: 0;
		overflow: hidden;
		border-radius: 24px 0 0 24px;
		background: #fff;
		box-shadow: -8px 8px 50px rgba(11, 26, 43, .10);
		opacity: 1;
		transform: translateX(calc(100% + 40px));
		transition: transform .3s cubic-bezier(.33, 0, 0, 1), visibility .3s;
	}
	html body nav.pp-dr.is-open { transform: none; }
	html body nav.pp-dr:focus { outline: 0; }
	html body.admin-bar nav.pp-dr { top: 32px; height: calc(100dvh - 32px); }

	.pp-dr__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex: none; padding: max(24px, env(safe-area-inset-top, 0px)) var(--g) 14px; }
	.pp-dr__title { margin: 0; font: 500 23px/1.2 var(--sans); letter-spacing: -.02em; color: #0B1A2B; }
	.pp-dr__icons { display: flex; align-items: center; gap: 2px; margin-right: -10px; }
	html body nav.pp-dr a.pp-dr__icon,
	html body nav.pp-dr .pp-drawer-close { display: grid; place-items: center; width: 44px; height: 44px; min-height: 44px; margin: 0; padding: 0; border: 0; border-radius: 50%; background: transparent; box-shadow: none; color: #0B1A2B; }
	html body nav.pp-dr a.pp-dr__icon::after,
	html body nav.pp-dr a.pp-dr__icon::before { content: none !important; display: none !important; }
	html body nav.pp-dr a.pp-dr__icon:hover,
	html body nav.pp-dr .pp-drawer-close:hover { background: #F1F4F8; color: #0B1A2B; }
	html body nav.pp-dr a.pp-dr__icon svg { width: 24px; height: 24px; }
	html body nav.pp-dr .pp-drawer-close svg { width: 24px; height: 24px; stroke-width: 1.7; }

	.pp-dr__body { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 4px 0 max(24px, env(safe-area-inset-bottom, 0px)); }

	.pp-dr__search { display: flex; align-items: center; gap: 10px; height: 44px; margin: 0 var(--g); padding: 0 16px; border-radius: 999px; background: #F1F4F8; color: #5B6B7F; }
	.pp-dr__search svg { width: 18px; height: 18px; flex: none; }
	html body .pp-dr__search input[type="search"] { flex: 1; min-width: 0; height: 100%; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; font: 400 16px/1 var(--sans); color: #0B1A2B; outline: none; }

	.pp-dr__label { margin: 22px var(--g) 4px; font: 600 12px/1.2 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: #7A8592; }
	html body nav.pp-dr ul.pp-dr__pages { display: block; flex-direction: column; margin: 0; padding: 0 var(--g); border: 0; list-style: none; }
	html body nav.pp-dr ul.pp-dr__pages li { margin: 0; border: 0; }
	html body nav.pp-dr ul.pp-dr__pages a { display: flex; align-items: center; justify-content: flex-start; min-height: 44px; margin: 0; padding: 0; border-radius: 0; background: none; font: 500 17px/1.2 var(--sans); letter-spacing: -.015em; color: #0B1A2B; }
	html body nav.pp-dr ul.pp-dr__pages a::after,
	html body nav.pp-dr ul.pp-dr__pages a::before { content: none !important; display: none !important; }
	html body nav.pp-dr ul.pp-dr__pages a:hover,
	html body nav.pp-dr ul.pp-dr__pages a[aria-current="page"] { color: #1F66C1; background: none; }

	.pp-dr__chips { display: flex; gap: 8px; margin: 10px var(--g) 0; }
	html body nav.pp-dr .pp-dr__chips a { flex: 1; display: flex; align-items: center; justify-content: center; height: 36px; padding: 0 10px; border-radius: 999px; background: #F1F4F8; box-shadow: none; color: #0B1A2B; font: 500 13.5px/1 var(--sans); }
	html body nav.pp-dr .pp-dr__chips a::after { content: none !important; }

	/* Most researched — big swipe cards, name and price over the photo */
	html body nav.pp-dr .pp-drawer-pop { margin: 24px 0 0; }
	html body nav.pp-dr .pp-drawer-pop__label { margin: 0 var(--g) 10px; font: 600 12px/1.2 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: #7A8592; }
	html body nav.pp-dr ul.pp-drawer-pop__row { display: flex; flex-direction: row; align-items: stretch; gap: 12px; margin: 0; padding: 0 var(--g) 6px; border: 0; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: var(--g); scrollbar-width: none; list-style: none; }
	html body nav.pp-dr ul.pp-drawer-pop__row::-webkit-scrollbar { display: none; }
	html body nav.pp-dr ul.pp-drawer-pop__row li { flex: none; width: 46%; max-width: 190px; margin: 0; border: 0; scroll-snap-align: start; }
	html body nav.pp-dr a.pp-drawer-pop__card { position: relative; display: block; min-height: 0; padding: 0; overflow: hidden; border-radius: 18px; background: #EAF2FC; color: #fff; aspect-ratio: 4 / 4.6; }
	html body nav.pp-dr a.pp-drawer-pop__card::before,
	html body nav.pp-dr a.pp-drawer-pop__card::after { content: none !important; }
	html body nav.pp-dr .pp-drawer-pop__media { position: absolute; inset: 0; display: block; }
	html body nav.pp-dr .pp-drawer-pop__media img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
	html body nav.pp-dr .pp-drawer-pop__media::after { content: ""; position: absolute; inset: 45% 0 0; background: linear-gradient(to top, rgba(6, 20, 38, .55), rgba(6, 20, 38, 0)); }
	html body nav.pp-dr .pp-drawer-pop__name,
	html body nav.pp-dr .pp-drawer-pop__price { position: absolute; left: 13px; right: 13px; z-index: 1; color: #fff; }
	html body nav.pp-dr .pp-drawer-pop__name { bottom: 31px; font: 500 14.5px/1.25 var(--sans); letter-spacing: -.01em; }
	html body nav.pp-dr .pp-drawer-pop__price { bottom: 12px; font: 400 12.5px/1.3 var(--sans); opacity: .92; }


	.pp-dr__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 24px var(--g) 0; padding-top: 16px; border-top: 1px solid #E8EDF3; }
	.pp-dr__foot-label { font: 400 13.5px/1.3 var(--sans); color: #5B6775; }
	.pp-dr__chat { display: flex; gap: 8px; }
	html body nav.pp-dr .pp-dr__chat a { display: inline-flex; padding: 0; min-height: 0; }
	html body nav.pp-dr .pp-dr__chat a::after { content: none !important; }
	html body nav.pp-dr .pp-dr__chat .pp-os-lg { width: 36px; height: 36px; border-radius: 11px; }
	html body nav.pp-dr .pp-dr__chat .pp-os-lg--wa { border-radius: 50%; }
	html body nav.pp-dr .pp-dr__chat .pp-os-lg svg { width: 24px; height: 24px; }
	html body nav.pp-dr .pp-dr__chat .pp-os-lg--wa svg { width: 21px; height: 21px; }
}
@media (max-width: 640px) {
	html body nav.pp-dr { --g: 19px; width: 100%; max-width: calc(100% - 14px); border-radius: 20px 0 0 20px; }
	html body.admin-bar nav.pp-dr { top: 0; height: 100dvh; z-index: 100001; }
	html body.admin-bar .pp-drawer-backdrop { z-index: 100000; }
	.pp-dr__head { padding-top: max(20px, env(safe-area-inset-top, 0px)); }
	.pp-dr__title { font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) { html body nav.pp-dr { transition-duration: .01ms; } }

/* ==== Press feedback, site-wide (owner 2026-10-05, design-eng pass) ====
   pp-motion.css owns the scale(.97) press on the main buttons. This block:
   1. turns off the grey tap flash on phones (our pressed states replace it);
   2. stops double-tap zoom on controls tapped fast (steppers felt rough);
   3. adds the press to controls pp-motion.css does not list;
   4. replaces the square colour block on quantity steppers with a soft
      round press under the icon. */
html { -webkit-tap-highlight-color: transparent; }
:where(button, [role="button"], a.button, .button, input[type="submit"], select, label, summary, .ppc__size, .pp-chat__item, .pp-dr__chips a) { touch-action: manipulation; }
@media (prefers-reduced-motion: no-preference) {
	html body .ppc.ppc button.ppc__add, html body .ppc.ppc .ppc__size, html body .pp-os .pp-os-btn, html body .pp-os-copy, html body .pp-os-chat,
	html body .pp-chat__btn, html body .pp-chat__item, html body .pp-coa-help a, html body .sp2-card, html body .pp-home .h6-btn, html body .pp-home .h6-team__btn,
	html body .pp-dr__chips a, html body.pp-stack-page .pp-stk-addbtn, html body .woocommerce-form-login__submit {
		transition-property: transform, background-color, border-color, color, box-shadow, opacity;
		transition-duration: 160ms;
		transition-timing-function: cubic-bezier(.23, 1, .32, 1);
	}
	html body .ppc.ppc button.ppc__add:active:not(:disabled), html body .pp-os .pp-os-btn:active, html body .pp-os-copy:active, html body .pp-os-chat:active,
	html body .pp-coa-help a:active, html body .pp-home .h6-btn:active, html body .pp-home .h6-team__btn:active, 	html body .woocommerce-form-login__submit:active { transform: scale(.97); }
	html body .ppc.ppc .ppc__size:active, html body .pp-dr__chips a:active, html body .sp2-card:active { transform: scale(.96); }
	html body .pp-chat__btn:active, html body .pp-chat__item:active .pp-chat__dot { transform: scale(.92); }
}
/* Quantity steppers (product cards): a round press under the icon, no block. */
html body .ppc.ppc .ppc__step > button { position: relative; isolation: isolate; transition: color .15s ease; }
html body .ppc.ppc .ppc__step > button::before {
	content: ""; position: absolute; z-index: -1; left: 50%; top: 50%; width: 30px; height: 30px; margin: -15px 0 0 -15px;
	border-radius: 50%; background: var(--pp-sky-strong, #D6E6FA); opacity: 0; transform: scale(.6);
	transition: opacity .18s ease, transform .2s cubic-bezier(.23, 1, .32, 1);
}
html body .ppc.ppc .ppc__step > button:hover:not(:disabled),
html body .ppc.ppc .ppc__step > button:active:not(:disabled) { background: transparent !important; }
html body .ppc.ppc .ppc__step > button:active:not(:disabled)::before { opacity: 1; transform: scale(1); transition-duration: .06s, .1s; }
html body .ppc.ppc .ppc__step > button:active svg { transform: scale(.88); }
@media (hover: hover) and (pointer: fine) {
	html body .ppc.ppc .ppc__step > button:hover:not(:disabled)::before { opacity: .55; transform: scale(1); }
}
/* Cart drawer + cart page steppers: same idea, a smaller press, no fill flash on touch. */
@media (hover: none) {
	html body.woocommerce-cart .pp-cart-qty button.pp-cart-qty__btn:hover { background: transparent; }
}
html body .pp-cart-page button.pp-cart-qty__btn:active:not(:disabled) { transform: scale(.9); }

/* Touch screens: hover lifts and nudges never stick after a tap (design-eng pass 2026-10-05).
   Generated from every :hover transform not already limited to mouse devices. */
@media (hover: none) {
	.batch-record-page .link-arrow:hover:not(:active) svg,
	.pp-br-main .brx-shop:hover:not(:active) svg,
	.pp-chat__btn:hover:not(:active),
	.pp-chat__item:hover:not(:active) .pp-chat__dot,
	html body.pp-co4-page button.pp-co4-upsell__add:hover:not(:active),
	html body.pp-co4-page .woocommerce .pp-co4 .place-order button#place_order:hover:not(:active),
	.pp-foot--v5 .pp-f5__social a:hover:not(:active),
	.pp-home .best-sellers .shop-all .elementor-button:hover:not(:active),
	.pp-home .product:hover:not(:active),
	.pp-home .h4-btn:hover:not(:active) svg,
	.pp-home .h4-link:hover:not(:active) svg,
	.pp-home .h4-reason:hover:not(:active),
	.pp-home .h6-btn:hover:not(:active) svg,
	.pp-ls-card:hover:not(:active),
	.pp-ls-card:hover:not(:active) .pp-ls-card__pic img,
	.pp-ls-card:hover:not(:active) .pp-ls-card__go svg,
	.contact-page .ct-support-action:hover:not(:active),
	.pp-account-page a.pp-acc-tile:hover:not(:active),
	.pp-account-page a.pp-acc-tile:hover:not(:active) .pp-acc-tile__go,
	html body.pp-account-page a.pp-acc-due:hover:not(:active),
	html body.pp-account-page a.pp-acc-tile:hover:not(:active),
	.pp-rv__star:hover:not(:active) svg,
	.coa-modal-close:hover:not(:active),
	html body.pp-pdp .p5-paper:hover:not(:active),
	.pp-account-page a.pp-ref-teaser:hover:not(:active),
	.sp2-page .seo-link:hover:not(:active) svg,
	.sp2-page .seo-guide:hover:not(:active) i svg,
	.shop-page ul.products li.product:hover:not(:active),
	.shop-page li.product:hover:not(:active) .product-media > img.pp-product-photo,
	.sp2-page .sp2-route:hover:not(:active),
	.sp2-page .sp2-card:hover:not(:active),
	.sp2-page .sp2-card:hover:not(:active) .sp2-card__cta svg,
	.sp2-page .ab-lab:hover:not(:active),
	.lab-page .tr-lab a:hover:not(:active) svg,
	.pp-tr-main .trx-card__shop:hover:not(:active) svg { transform: none; }
}

/* Product card: the quantity stepper and the Add button are one row, so they
   share one height at every width (owner 2026-10-05: stepper sat 4px short). */
html body .ppc.ppc { --ppc-ctl: 48px; }
@media (max-width: 899px) { html body .ppc.ppc { --ppc-ctl: 44px; } }
html body .ppc.ppc .ppc__actions { align-items: center !important; }
html body .ppc.ppc .ppc__step { height: var(--ppc-ctl) !important; min-height: var(--ppc-ctl) !important; }
html body .ppc.ppc .ppc__step > button { height: 100% !important; }
html body .ppc.ppc button.ppc__add, html body .ppc.ppc a.ppc__notify { height: var(--ppc-ctl) !important; min-height: var(--ppc-ctl) !important; }

/* ==== Detail audit fixes (2026-10-05, measured on 25 pages × phone/desktop) ==== */
/* Small text links: a 44px tall tap area without moving anything. */
html body .pp-foot--v5 .pp-f5__legal a, html body .p4-related-head a, html body .seo-link, html body .pp-404-home,
html body .pp-auth4-forgot a, html body .seo-crumbs a, html body .trx-strip a {
	padding-block: 10px !important; margin-block: -10px !important;
}
/* Card size chips stay 30px to look light; the tap area reaches 42px. */
html body .ppc.ppc .ppc__size { position: relative; }
html body .ppc.ppc .ppc__size::after { content: ""; position: absolute; inset: -6px -3px; }
/* Phone card stepper: wider − / + (they were 26px). */
@media (max-width: 600px) {
	html body .ppc.ppc .ppc__step { grid-template-columns: 34px 28px 34px !important; width: 96px !important; }
	html body .ppc.ppc .ppc__step button { width: 34px !important; min-width: 34px !important; }
}
/* Text under 11px raised to the 11px label floor; muted note readable on sky. */
html body .pp-home .h8-key small { font-size: 12px; }
html body .pp-v3 .pv3-flag small { font-size: 12px; }
html body.pp-pdp .pp-dcard__row.is-lead small { color: #4F5F72; }
@media (max-width: 600px) {
	html body .ppc.ppc .ppc__from, html body .ppc.ppc .ppc__hint { font-size: 12px !important; }
	html body .ppc.ppc .ppc__total > span { font-size: 12px !important; }
}

/* ==== Owner pass 2026-10-05 (late) ==== */
/* Top bar: brand blue with white text (navy on sky read weak). */
html body .pp-topbar { background: #1F66C1; border-bottom: 0; color: #fff; }
html body .pp-topbar a, html body .pp-topbar a:visited { color: #fff; text-decoration-color: rgba(255, 255, 255, .55); }
html body .pp-topbar a:hover { color: #fff; text-decoration-color: #fff; }

/* Quantity − / + hover: a small round tint centred on the sign, never a big
   disc touching the pill edge. Mouse only. */
html body.woocommerce-cart .pp-cart-qty button.pp-cart-qty__btn:hover, html body .pp-cart-page button.pp-cart-qty__btn:hover { background: transparent; border-color: transparent; }
@media (hover: hover) and (pointer: fine) {
	html body.woocommerce-cart .pp-cart-qty button.pp-cart-qty__btn:hover:not(:disabled),
	html body .pp-cart-page button.pp-cart-qty__btn:hover:not(:disabled) { background: radial-gradient(circle at center, var(--pp-sky, #EAF2FC) 12px, transparent 12.5px); color: var(--pp-navy, #0B1A2B); }
}

/* Back-to-top: a quiet white circle stacked above the chat button, never on it. */
html body #ast-scroll-top { right: 25px !important; width: 44px !important; height: 44px !important; line-height: 44px !important; padding: 0; display: grid; place-items: center; border-radius: 50% !important; background: #fff; color: var(--pp-navy, #0B1A2B); opacity: 1 !important; box-shadow: 0 0 0 1px rgba(11, 26, 43, .08), 0 10px 24px -12px rgba(6, 20, 38, .45); bottom: calc(86px + env(safe-area-inset-bottom, 0px)) !important; }
html body #ast-scroll-top:hover { background: var(--pp-sky, #EAF2FC); }
html body #ast-scroll-top .ast-icon, html body #ast-scroll-top svg { width: 14px; height: 14px; fill: currentColor; }
html body.pp-stickybar-on #ast-scroll-top { bottom: calc(162px + env(safe-area-inset-bottom, 0px)) !important; }
html body.ppcd-open #ast-scroll-top { opacity: 0; pointer-events: none; }

/* ==== WooCommerce leftovers (audit 2026-10-06) ==== */
/* One-line notices: the icon sits beside the text, centred, never above it. */
body div.woocommerce-error, body div.woocommerce-info, body div.woocommerce-message { display: flex; align-items: center; min-height: 52px; }
body div.woocommerce-error::before, body div.woocommerce-info::before, body div.woocommerce-message::before { top: 50%; transform: translateY(-50%); }
body .woocommerce-error a:not(.button), body .woocommerce-info a:not(.button):not(.wc-forward):not(.pp-notice-btn) { color: inherit; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
/* Sign-out confirm and "Confirm your email" actions: the site's pill. */
html body .woocommerce-info a.pp-notice-btn, html body .woocommerce-info .button { order: 2; margin-left: auto; display: inline-flex; align-items: center; height: 38px; padding: 0 16px; border: 0; border-radius: 999px; background: var(--pp-navy); box-shadow: none; color: #fff; font: 600 13px/1 var(--sans); text-decoration: none; }
html body .woocommerce-info a.pp-notice-btn:hover, html body .woocommerce-info .button:hover { background: var(--pp-navy-3, #1d3150); color: #fff; }
/* Empty category: room for the icon. */
html body .woocommerce-no-products-found .woocommerce-info { padding-left: 48px !important; }
/* Order screen for an unknown link: buttons stay a sensible width. */
html body .pp-os-gate .pp-os-gate__btns { max-width: 360px; margin-inline: auto; }
body ul.woocommerce-error:has(> li:only-child) { display: flex; align-items: center; min-height: 52px; }
body ul.woocommerce-error:has(> li:only-child)::before { top: 50%; transform: translateY(-50%); }
body ul.woocommerce-error:has(> li:only-child) > li { margin: 0; }
html body :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a.pp-notice-btn { order: 2; margin-left: auto; display: inline-flex; align-items: center; height: 38px; padding: 0 16px; border-radius: 999px; background: var(--pp-navy); color: #fff !important; font: 600 13px/1 var(--sans); text-decoration: none !important; }
