/* ==========================================================================
   Peptsche brand layer: makes the WooCommerce store match peptsche.com (Shopify / Dawn + peptsche.css).
   MOBILE FIRST: base rules are the 360-430px phone layout; desktop is added at 750px / 990px
   (Dawn's breakpoints). Values were measured off the live Shopify store; see ../../STYLE-MATCH.md.
   ========================================================================== */

:root {
	--ps-paper: #FFFFFF;
	--ps-ink: #0E0E0F;
	--ps-fg: #121212;
	--ps-body: rgba(18, 18, 18, .75);
	--ps-navy: #002147;
	--ps-navy-dk: #001633;
	--ps-tan: #D2B48C;
	--ps-tan-mid: #9C7A4E;
	--ps-tan-deep: #85663B;
	--ps-sand-lt: #D9BE9B;
	--ps-bone: #F4EFE8;
	--ps-bone-2: #EDE6DC;
	--ps-hair: #D8D4CE;
	--ps-line: rgba(14, 14, 15, .22);
	--ps-line-soft: rgba(11, 11, 12, .12);
	--ps-muted: rgba(14, 14, 15, .62);
	--ps-muted-2: #6E6A64;
	--ps-wa: #25D366;
	--ps-line-green: #06C755;
	--ps-display: Archivo, "IBM Plex Sans Thai", -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--ps-serif: "Instrument Serif", "Iowan Old Style", Georgia, serif;
	--ps-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, "IBM Plex Sans Thai", monospace;
	--ps-rail: 0px;
	--ps-pad: 15px;
}
@media (min-width: 750px) { :root { --ps-pad: 50px; } }
@media (min-width: 990px) { :root { --ps-rail: 64px; } }

/* ---------- base / safety ---------- */
html, body { max-width: 100%; overflow-x: hidden; }
@supports (overflow: clip) { html, body { overflow-x: clip; } }
body { -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; padding-left: var(--ps-rail); }
img, svg, video { max-width: 100%; height: auto; }
.wp-site-blocks { padding-top: 0; }
.wp-site-blocks > * { margin-block-start: 0; }
:where(a, button, input, select, textarea, summary) { -webkit-tap-highlight-color: rgba(0, 33, 71, .12); }
:focus-visible { outline: 2px solid var(--ps-navy); outline-offset: 2px; }
::selection { background: var(--ps-tan); color: var(--ps-ink); }
h1, h2, h3, h4, h5, h6 { color: var(--ps-fg); overflow-wrap: break-word; }
p, li, dd, td, th, h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; }
main { min-width: 0; }

/* ---------- label rail (desktop only, like Shopify where it is gone below 990px) ---------- */
.ps-rail { display: none; }
@media (min-width: 990px) {
	.ps-rail {
		position: fixed; left: 0; top: 0; bottom: 0; width: 64px; z-index: 100;
		display: flex; flex-direction: column; align-items: center; justify-content: space-between;
		padding: 22px 0; background: var(--ps-ink); color: var(--ps-bone); pointer-events: none;
	}
	.ps-rail__mark { writing-mode: vertical-rl; transform: rotate(180deg); font-size: 19px; letter-spacing: -.01em; line-height: 1; }
	.ps-rail__mark b { font-family: Inter, system-ui, sans-serif; font-weight: 700; letter-spacing: -.02em; }
	.ps-rail__mark i { font-family: var(--ps-display); font-style: italic; font-weight: 500; }
	.ps-rail__meta { writing-mode: vertical-rl; transform: rotate(180deg); font-family: var(--ps-mono); font-size: 9.5px; letter-spacing: .2em; text-transform: uppercase; opacity: .5; }
	.ps-rail__tick { width: 14px; height: 1px; background: var(--ps-bone); opacity: .3; }
	body.admin-bar .ps-rail { top: 32px; }
}

/* ---------- announcement bar ---------- */
.ps-announce { background: var(--ps-navy); color: #fff; min-height: 38px; display: flex; align-items: center; justify-content: center; padding: 0 var(--ps-pad); margin: 0 !important; }
.ps-announce__msg { margin: 0; font-family: var(--ps-display); font-size: 11px; font-weight: 600; letter-spacing: .14em; line-height: 1.3; text-transform: uppercase; text-align: center; padding: 6px 0; }

/* ---------- header (phone: logo row + nav row, no hamburger: zero-JS, instant menu) ---------- */
header.wp-block-template-part { position: relative; z-index: 30; background: var(--ps-paper); margin: 0; }
.ps-header { border-bottom: 1px solid var(--ps-line-soft); margin: 0 !important; }
.ps-header__in { position: relative; display: block !important; max-width: 1200px; margin: 0 auto; padding: 0; }
.ps-header__left { display: block !important; }
.ps-logo { display: flex; justify-content: center; align-items: center; height: 65px; width: max-content; margin: 0 auto; padding: 0 8px; }
.ps-logo img { height: 26px; width: auto; display: block; }
.ps-header__icons { position: absolute !important; top: 0; right: 10px; height: 65px; display: flex !important; align-items: center; gap: 4px !important; flex-wrap: nowrap; }

/* nav row: Shop / Lab Reports / Guides / Contact, centred under the logo */
.ps-nav { border-top: 1px solid var(--ps-line-soft); width: 100%; margin: 0 !important; }
.ps-nav .wp-block-navigation__container { display: flex; flex-wrap: nowrap; justify-content: center; gap: 0 !important; width: 100%; overflow-x: auto; scrollbar-width: none; }
.ps-nav .wp-block-navigation__container::-webkit-scrollbar { display: none; }
.ps-nav .wp-block-navigation-item { flex: 0 0 auto; }
.ps-nav .wp-block-navigation-item__content {
	display: flex; align-items: center; min-height: 44px; padding: 0 9px !important;
	font-family: var(--ps-display); font-size: 12.5px; font-weight: 500; letter-spacing: .02em; line-height: 1;
	color: var(--ps-ink) !important; text-decoration: none !important; white-space: nowrap;
}
.ps-nav .wp-block-navigation-item__content:hover,
.ps-nav .current-menu-item > .wp-block-navigation-item__content { color: var(--ps-tan-deep) !important; text-decoration: underline !important; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.ps-nav .wp-block-navigation__responsive-container-open, .ps-nav .wp-block-navigation__responsive-container-close { display: none !important; }
.ps-nav .wp-block-navigation__responsive-container { display: contents; position: static; }

/* chat pill */
.ps-chat {
	display: inline-flex; align-items: center; justify-content: center; height: 32px; padding: 0 14px;
	background: var(--ps-navy); color: #fff !important; border-radius: 999px; text-decoration: none !important;
	font-family: var(--ps-display); font-size: 12.5px; font-weight: 600; letter-spacing: .01em; line-height: 1; white-space: nowrap;
	position: relative;
}
.ps-chat::before { content: ""; position: absolute; inset: -6px -2px; } /* 44px tap area */
.ps-chat:hover { background: var(--ps-navy-dk); color: #fff; }

/* currency (desktop header only; phones get it in the footer + cart, like Shopify's footer selector) */
.ps-currency { display: none; }
.ps-currency .wcml-dropdown { width: auto; min-width: 0; margin: 0; }
.ps-currency .wcml-dropdown a.wcml-cs-item-toggle, .ps-currency .wcml-dropdown li a { font-family: var(--ps-mono); font-size: 12px; padding: 8px 26px 8px 10px; border: 1px solid var(--ps-line) !important; background-color: #fff; color: var(--ps-ink); border-radius: 0; line-height: 1.2; }
.ps-currency .wcml-dropdown .wcml-cs-submenu { border: 1px solid var(--ps-line); z-index: 40; }

/* search: Shopify hides it on phones */
.ps-search { display: none !important; }
.ps-search .wp-block-search__button { width: 44px; height: 44px; padding: 0; margin: 0; background: transparent !important; color: var(--ps-ink) !important; border: 0; display: grid; place-items: center; min-height: 0; }
.ps-search .wp-block-search__button svg { width: 20px; height: 20px; fill: currentColor; }

/* cart: bordered square, mono count */
.ps-cart .wc-block-mini-cart__button {
	display: inline-flex; align-items: center; gap: 6px; height: 34px; min-width: 44px; padding: 0 10px; justify-content: center;
	border: 1px solid var(--ps-ink); border-radius: 0; background: transparent; color: var(--ps-ink);
	font-family: var(--ps-mono); font-size: 12px; position: relative;
}
.ps-cart .wc-block-mini-cart__button::before { content: ""; position: absolute; inset: -5px 0; }
.ps-cart .wc-block-mini-cart__button:hover { background: var(--ps-bone); }
.ps-cart .wc-block-mini-cart__icon { width: 16px; height: 16px; }
.ps-cart .wc-block-mini-cart__quantity-badge { display: inline-flex; align-items: center; gap: 6px; }
.ps-cart .wc-block-mini-cart__badge { position: static; transform: none; background: none !important; color: var(--ps-ink) !important; font-family: var(--ps-mono); font-size: 12px; font-weight: 400; min-width: 0; height: auto; padding: 0; border: 0; box-shadow: none; }
.ps-cart .wc-block-mini-cart__badge:empty { display: none; }

@media (max-width: 380px) {
	.ps-header__icons { right: 6px; }
	.ps-chat { padding: 0 11px; font-size: 12px; }
	.ps-logo { justify-content: flex-start; margin: 0 0 0 10px; }
	.ps-nav .wp-block-navigation-item__content { padding: 0 7px !important; font-size: 12px; }
	.ps-nav .wp-block-navigation__container { justify-content: flex-start; }
}

@media (min-width: 750px) {
	.ps-search { display: block !important; }
}
@media (min-width: 990px) {
	.ps-header__in { display: flex !important; align-items: center; justify-content: space-between; min-height: 72px; padding: 14px 50px; }
	.ps-header__left { display: flex !important; align-items: center; gap: 28px; }
	.ps-logo { height: auto; margin: 0; padding: 0; }
	.ps-header__icons { position: static !important; height: auto; right: auto; gap: 6px !important; }
	.ps-nav { border-top: 0; width: auto; }
	.ps-nav .wp-block-navigation__container { justify-content: flex-start; overflow: visible; }
	.ps-nav .wp-block-navigation-item__content { min-height: 42px; padding: 0 12px !important; font-size: 13.5px; }
	.ps-chat { height: 36px; padding: 0 18px; font-size: 13px; margin-right: 6px; }
	.ps-currency { display: block; }
	.ps-cart .wc-block-mini-cart__button { height: 38px; padding: 0 14px; }
}

/* ---------- buttons (Dawn: black, square, 48px) ---------- */
.wp-element-button, .wp-block-button__link, .ps-btn,
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .single_add_to_cart_button,
.wc-block-components-button:not(.is-link), .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 48px; padding: 0 30px; border-radius: 0 !important; border: 1px solid var(--ps-fg);
	background: var(--ps-fg); color: #fff !important; text-decoration: none !important;
	font-family: var(--ps-display); font-size: 13.5px; font-weight: 500; letter-spacing: .405px; line-height: 1.2; text-align: center;
	box-shadow: none; transition: box-shadow .15s ease, background .15s ease;
}
.wp-element-button:hover, .wp-block-button__link:hover, .ps-btn:hover, .single_add_to_cart_button:hover,
.wc-block-components-button:not(.is-link):hover { background: var(--ps-fg); color: #fff; box-shadow: 0 0 0 1px var(--ps-fg); }

/* ---------- form fields: 16px+ so iOS never zooms on focus; square like Dawn ---------- */
input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="password"], input[type="search"], input[type="url"],
select, textarea, .wc-block-components-text-input input, .wc-block-components-combobox .components-combobox-control input {
	font-size: 16px !important; font-family: var(--ps-display); border-radius: 0 !important; color: var(--ps-fg);
}
input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="password"], input[type="search"], select, textarea {
	border: 1px solid rgba(18, 18, 18, .55);
}

/* ==========================================================================
   HOME
   ========================================================================== */
.ps-hero { padding: 26px 18px 40px !important; margin: 0 !important; background: var(--ps-paper); color: var(--ps-ink); max-width: none !important; }
.ps-hero > * { max-width: 1500px; margin-left: auto !important; margin-right: auto !important; }
.ps-kicker { margin: 0 0 12px !important; font-size: 11px; font-weight: 600; letter-spacing: .16em; line-height: 1.8; text-transform: uppercase; color: var(--ps-tan-deep); }
.ps-hero h1 {
	margin: 0 0 18px !important; max-width: none; font-family: var(--ps-display); font-weight: 700; color: var(--ps-ink);
	font-size: clamp(38px, 10.4vw, 60px); line-height: .94; letter-spacing: -.045em;
}
.ps-hero h1 em { display: block; font-family: var(--ps-serif); font-style: italic; font-weight: 400; letter-spacing: -.02em; }
.ps-hero__bar {
	display: flex; flex-direction: column; align-items: flex-start; gap: 14px;
	padding-bottom: 18px; margin: 0 0 18px !important; border-bottom: 1px solid var(--ps-ink);
}
.ps-hero__bar > * { margin: 0 !important; }
/* the plugin's goal line ("Looking for ___") restyled as Shopify's seek line */
.ps-hero .pgl { margin: 0 !important; padding: 0 !important; min-width: 0; max-width: 100%; overflow: hidden; font-family: var(--ps-display) !important; color: var(--ps-ink) !important; background: none !important; border: 0 !important; text-align: left !important; }
.ps-hero .pgl__in { display: inline-flex !important; align-items: baseline; flex-wrap: wrap; gap: .38em; font-size: clamp(22px, 6.2vw, 32px) !important; font-weight: 600 !important; line-height: 1.15 !important; letter-spacing: -.03em !important; color: var(--ps-ink) !important; }
.ps-hero .pgl__l { white-space: nowrap; font-weight: 600 !important; color: var(--ps-ink) !important; }
.ps-hero .pgl__a { width: .5em; height: .5em; flex: none; align-self: center; color: rgba(14, 14, 15, .55); }
.ps-hero .pgl__w { font-family: var(--ps-serif) !important; font-style: italic !important; font-weight: 400 !important; font-size: 1.16em !important; letter-spacing: -.01em !important; line-height: 1 !important; color: var(--ps-tan-mid) !important; }

.ps-coa {
	flex: none; display: inline-flex; align-items: center; gap: 10px; padding: 8px 14px 8px 8px; min-height: 44px;
	border: 1px solid var(--ps-ink); border-radius: 999px; color: var(--ps-ink) !important; text-decoration: none !important; background: transparent;
}
.ps-coa__tick { flex: none; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--ps-ink); color: #fff; }
.ps-coa__tick svg { width: 11px; height: 11px; }
.ps-coa__txt { display: flex; flex-direction: column; gap: 2px; }
.ps-coa__n { font-size: 11.5px; font-weight: 600; line-height: 1.2; letter-spacing: -.01em; white-space: nowrap; }
.ps-coa__s { font-size: 9.5px; letter-spacing: .14em; line-height: 1.2; text-transform: uppercase; color: rgba(14, 14, 15, .66); white-space: nowrap; }
.ps-coa__pct { flex: none; margin-left: 2px; padding-left: 12px; border-left: 1px solid var(--ps-line); font-family: var(--ps-serif); font-style: italic; font-size: 20px; line-height: 1; color: var(--ps-tan-deep); }
.ps-coa__pct:empty { display: none; } /* purity figure suspended (MP Oct 2): no empty divider/chip */

/* promo + team cards: phones = two portrait cards side by side */
.ps-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0 !important; }
.ps-cards--single { grid-template-columns: 1fr; }
.ps-card {
	--r: 18px; position: relative; display: flex; flex-direction: column; aspect-ratio: 1 / 1.6; min-width: 0;
	border-radius: var(--r); text-decoration: none !important; overflow: hidden;
	transition: transform .35s cubic-bezier(.2, .7, .3, 1), box-shadow .35s ease;
}
.ps-cards--single .ps-card { aspect-ratio: 4 / 3; }
.ps-card--promo { background: var(--ps-tan); color: #fff; border: 1px solid var(--ps-tan); --chs: var(--ps-navy); --ch: var(--ps-navy); --bb: var(--ps-navy); --bf: #fff; }
.ps-card--team { background: var(--ps-navy); color: #fff; border: 1px solid var(--ps-navy); --chs: var(--ps-tan); --ch: var(--ps-tan); --bb: #fff; --bf: var(--ps-navy); --cl: rgba(255, 255, 255, .45); }
a.ps-card:hover { transform: translateY(-3px); box-shadow: 0 18px 40px rgba(14, 14, 15, .12); }
.ps-card__in { flex: none; display: flex; flex-direction: column; align-items: flex-start; padding: 14px 14px 0; min-width: 0; }
.ps-card__in > * { margin: 0; }
.ps-card__kicker { display: block; margin: 0 0 7px !important; font-size: 10px; font-weight: 600; letter-spacing: .16em; line-height: 1.3; text-transform: uppercase; color: var(--chs); }
.ps-card__h { display: block; margin: 0; font-size: clamp(18px, 5.2vw, 23px); line-height: .98; letter-spacing: -.04em; font-weight: 700; color: inherit; }
.ps-card__h em, .ps-card__h i { font-family: var(--ps-serif); font-style: italic; font-weight: 400; letter-spacing: -.01em; color: var(--chs); }
.ps-card__sub { display: none; }
.ps-card__fig { position: relative; flex: 1 1 auto; min-height: 0; overflow: hidden; }
.ps-card__fig img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: center bottom; padding: 6% 8% 0; display: block; }
.ps-card__act { flex: none; margin-top: auto; display: flex; flex-direction: column; align-items: stretch; gap: 6px; padding: 10px 12px 12px; }
.ps-card__btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 7px; height: 36px; padding: 0 12px;
	background: var(--bb); color: var(--bf) !important; border: 1px solid var(--bb); border-radius: 999px;
	font-size: 12px; font-weight: 600; line-height: 1; letter-spacing: 0; text-decoration: none !important; white-space: nowrap; position: relative;
}
a.ps-card__btn::before { content: ""; position: absolute; inset: -4px 0; }
.ps-card__btn--ghost { background: transparent; color: #fff !important; border-color: var(--cl); }
a.ps-card__btn:hover { background: transparent; color: var(--bb) !important; }
a.ps-card__btn--ghost:hover { border-color: #fff; color: #fff !important; }
/* chat glyphs (Oct 16 2026): single-colour inline SVG, inherits the button text colour on every variant */
.ps-card__btn-ic, .ps-contact__btn svg { flex: none; width: 1.18em; height: 1.18em; margin: 0; fill: currentColor; display: block; }

@media (max-width: 380px) {
	.ps-hero .pgl__in { font-size: 21px !important; }
	.ps-coa__n { font-size: 10.5px; }
	.ps-coa__s { font-size: 9px; letter-spacing: .1em; }
	.ps-card__h { font-size: 17px; }
}
@media (min-width: 601px) and (max-width: 989px) {
	.ps-cards { grid-template-columns: 1fr; gap: 14px; }
	.ps-card { --r: 20px; aspect-ratio: 1024 / 526; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); grid-template-rows: 1fr auto; grid-template-areas: "in fig" "act fig"; }
	.ps-card__in { grid-area: in; padding: clamp(22px, 3.4vw, 34px) clamp(22px, 3.4vw, 34px) 0; }
	.ps-card__h { font-size: clamp(26px, 4vw, 38px); }
	.ps-card__h em { color: var(--ch); }
	.ps-card__sub { display: block; margin: 12px 0 0 !important; max-width: 30ch; font-size: 15px; line-height: 1.5; opacity: .78; }
	.ps-card__fig { grid-area: fig; border-radius: 0 calc(var(--r) - 1px) calc(var(--r) - 1px) 0; }
	.ps-card__fig img { object-position: right bottom; padding: 6% 5% 0 0; }
	.ps-card__act { grid-area: act; align-self: end; flex-direction: row; flex-wrap: wrap; gap: 8px; padding: 18px clamp(22px, 3.4vw, 34px) clamp(22px, 3.4vw, 34px); }
	.ps-card__btn { height: 42px; font-size: 13.5px; padding: 0 20px; }
}
@media (min-width: 990px) {
	.ps-hero { padding: 20px 20px 56px !important; }
	.ps-kicker { margin-bottom: 18px !important; }
	.ps-hero h1 { margin-bottom: 26px !important; max-width: 14ch; font-size: clamp(44px, 6.6vw, 108px); line-height: .92; margin-left: 0 !important; }
	.ps-hero__bar { flex-direction: row; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 18px 28px; padding-bottom: clamp(22px, 2.6vw, 34px); margin-bottom: clamp(22px, 2.6vw, 34px) !important; }
	.ps-hero .pgl__in { flex-wrap: nowrap; font-size: clamp(24px, 2.4vw, 40px) !important; }
	.ps-coa { gap: 14px; padding: 10px 20px 10px 11px; }
	.ps-coa__tick { width: 28px; height: 28px; }
	.ps-coa__tick svg { width: 13px; height: 13px; }
	.ps-coa__txt { gap: 3px; }
	.ps-coa__n { font-size: 13.5px; }
	.ps-coa__s { font-size: 10px; }
	.ps-coa__pct { font-size: 26px; padding-left: 16px; margin-left: 4px; color: var(--ps-tan-mid); }
	.ps-cards { gap: 20px; }
	.ps-card { --r: 24px; aspect-ratio: 1024 / 526; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); grid-template-rows: 1fr auto; grid-template-areas: "in fig" "act fig"; }
	.ps-cards--single .ps-card { aspect-ratio: 2.6 / 1; }
	.ps-card__in { grid-area: in; padding: clamp(18px, 2.4vw, 34px) clamp(18px, 2.4vw, 34px) 0; }
	.ps-card__kicker { font-size: 10.5px; margin-bottom: 12px !important; }
	.ps-card__h { font-size: clamp(22px, 2.3vw, 40px); }
	.ps-card__sub { display: block; margin: 12px 0 0 !important; max-width: 30ch; font-size: clamp(13px, 1.05vw, 16px); line-height: 1.5; opacity: .78; }
	.ps-card__fig { grid-area: fig; border-radius: 0 calc(var(--r) - 1px) calc(var(--r) - 1px) 0; }
	.ps-card__fig img { object-position: right bottom; padding: 6% 5% 0 0; }
	.ps-card__act { grid-area: act; align-self: end; flex-direction: row; flex-wrap: wrap; gap: 8px; padding: 18px clamp(18px, 2.4vw, 34px) clamp(18px, 2.4vw, 34px); }
	.ps-card__btn { height: clamp(38px, 3vw, 46px); padding: 0 clamp(16px, 1.5vw, 24px); font-size: clamp(12.5px, 1vw, 14px); gap: 8px; }
}
@media (min-width: 1060px) { .ps-card__h em { color: var(--ch); } }

/* marquee */
.ps-marq { background: var(--ps-bone); border-top: 1px solid var(--ps-line-soft); border-bottom: 1px solid var(--ps-line-soft); overflow: hidden; margin: 0 !important; max-width: none !important; }
.ps-marq__track { display: flex; align-items: center; width: max-content; padding: 16px 0; }
.ps-marq__track span { display: flex; align-items: center; white-space: nowrap; font-size: clamp(15px, 1.5vw, 20px); font-weight: 600; line-height: 1.8; letter-spacing: -.015em; color: var(--ps-ink); padding-right: 26px; }
.ps-marq__track span::after { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--ps-tan); margin-left: 26px; flex: none; }
@media (min-width: 750px) {
	.ps-marq__track { padding: 22px 0; }
	.ps-marq__track span { padding-right: 38px; }
	.ps-marq__track span::after { width: 9px; height: 9px; margin-left: 38px; }
}

/* featured compounds */
.ps-featured { max-width: 1200px; margin: 0 auto !important; padding: 27px var(--ps-pad); }
.ps-featured__h { margin: 0 0 25px !important; font-size: 24px; font-weight: 700; line-height: 1.08; letter-spacing: .6px; color: var(--ps-fg); }
@media (min-width: 750px) { .ps-featured { padding-top: 36px; padding-bottom: 36px; } .ps-featured__h { font-size: 24px; margin-bottom: 30px !important; } }

/* verification band (navy) with the plugin's featured COA */
.ps-ver { background: var(--ps-navy); color: var(--ps-bone); margin: 0 !important; max-width: none !important; }
.ps-ver__wrap { max-width: 1440px; margin: 0 auto; padding: 64px 20px; }
.ps-ver .pfc { margin: 0 !important; padding: 0 !important; background: none !important; border: 0 !important; color: var(--ps-bone) !important; }
.ps-ver .pfc__eyebrow { display: flex; align-items: center; gap: 9px; margin: 0 0 14px; font-size: 11px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: var(--ps-sand-lt) !important; opacity: 1; }
.ps-ver .pfc__eyebrow::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: currentColor; flex: none; }
.ps-ver .pfc__h { margin: 0 0 22px; max-width: 18ch; font-size: clamp(30px, 3.9vw, 50px); line-height: 1.08; letter-spacing: -.028em; font-weight: 600; color: var(--ps-bone) !important; }
.ps-ver .pfc__card { display: grid; grid-template-columns: 1fr; gap: 1px !important; padding: 0 !important; background: rgba(255, 255, 255, .15) !important; border: 1px solid rgba(255, 255, 255, .15) !important; border-radius: 0 !important; }
.ps-ver .pfc__card > div { background: var(--ps-navy); padding: 18px 22px; }
.ps-ver .pfc__card dt { font-size: 10px !important; letter-spacing: .18em; text-transform: uppercase; opacity: .6 !important; margin-bottom: 6px; color: var(--ps-bone); }
.ps-ver .pfc__card dd { font-family: var(--ps-mono); font-size: 18px; font-weight: 500 !important; color: var(--ps-sand-lt); }
.ps-ver .pfc__links { margin: 24px 0 0; display: flex; flex-wrap: wrap; gap: 10px; }
.ps-ver .pfc__links a { display: inline-flex; align-items: center; min-height: 48px; padding: 0 26px; background: var(--ps-bone); color: var(--ps-navy) !important; border: 1px solid var(--ps-bone); text-decoration: none !important; font-size: 13.5px; font-weight: 500; letter-spacing: .405px; }
.ps-ver .pfc__links a + a { background: transparent; color: var(--ps-bone) !important; border-color: rgba(244, 239, 232, .4); }
.ps-ver a { color: var(--ps-sand-lt); }
@media (min-width: 750px) { .ps-ver .pfc__card { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 990px) { .ps-ver__wrap { padding: 100px 40px; } }

/* bookend */
.ps-book { text-align: center; padding: 72px 20px; background: var(--ps-bone-2); border-top: 1px solid var(--ps-line-soft); margin: 0 !important; max-width: none !important; }
.ps-eyebrow { display: flex; align-items: center; justify-content: center; gap: 9px; margin: 0 0 14px; font-size: 11px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: var(--ps-tan-deep); }
.ps-eyebrow::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: currentColor; flex: none; }
.ps-book__h { font-size: clamp(34px, 5vw, 64px); line-height: 1.04; letter-spacing: -.035em; font-weight: 600; margin: 18px auto !important; max-width: 16ch; color: var(--ps-fg); }
.ps-book__h em { font-family: var(--ps-display); font-style: italic; font-weight: 500; }
.ps-book__p { color: var(--ps-muted-2); max-width: 46ch; margin: 0 auto 32px !important; }
.ps-book__cta { margin: 0; }
@media (min-width: 750px) { .ps-book { padding: 112px 40px; } }

/* ==========================================================================
   PRODUCT GRID (home "Featured Compounds", shop, categories, related)
   ========================================================================== */
.ps-grid, .ps-shop .wp-block-woocommerce-product-collection, .ps-pdp .wp-block-woocommerce-related-products, .ps-pdp .wp-block-woocommerce-product-collection { max-width: 1100px; margin-left: auto !important; margin-right: auto !important; }
.ps-grid .wc-block-product-template, .ps-pdp .wc-block-product-template {
	display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 0 !important; margin: 0 1px !important; padding: 0; list-style: none;
}
.ps-grid .wc-block-product, .ps-pdp .wc-block-product-template .wc-block-product {
	position: relative; background: var(--ps-paper); box-shadow: 0 0 0 1px var(--ps-hair); margin: 0 !important; padding: 0 0 20px !important; width: auto !important; max-width: none !important; text-align: left !important;
	display: flex; flex-direction: column;
}
.ps-grid .wc-block-product > *, .ps-pdp .wc-block-product-template .wc-block-product > * { margin-top: 0 !important; margin-bottom: 0 !important; }
.ps-grid .wc-block-components-product-image, .ps-pdp .wc-block-product .wc-block-components-product-image { position: relative; margin: 0 0 18px !important; aspect-ratio: 1 / 1; overflow: hidden; background: transparent; }
.ps-grid .wc-block-components-product-image img, .ps-pdp .wc-block-product .wc-block-components-product-image img {
	width: 100% !important; height: 100% !important; aspect-ratio: 1 / 1; object-fit: contain !important; mix-blend-mode: multiply; transition: transform .55s cubic-bezier(.2, .7, .3, 1);
}
.ps-grid .wc-block-product:hover .wc-block-components-product-image img { transform: translateY(-7px) scale(1.03); }
.ps-grid .wc-block-product .wp-block-post-title, .ps-pdp .wc-block-product .wp-block-post-title {
	margin: 0 20px 6px !important; font-family: var(--ps-display); font-size: 17px !important; font-weight: 600; line-height: 1.25; letter-spacing: -.3px; color: var(--ps-fg); text-align: left !important;
}
.ps-grid .wc-block-product .wp-block-post-title a, .ps-pdp .wc-block-product .wp-block-post-title a { color: inherit; text-decoration: none !important; }
.ps-grid .wc-block-product .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; } /* whole card is the tap target */
.ps-grid .wc-block-product:hover .wp-block-post-title a { text-decoration: underline !important; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.ps-grid .wc-block-components-product-price, .ps-pdp .wc-block-product .wc-block-components-product-price {
	display: block; position: relative; margin: 6px 20px 0 !important; padding: 14px 0 0 !important; border-top: 1px solid var(--ps-line-soft);
	font-family: var(--ps-mono) !important; font-size: 14px !important; letter-spacing: 1px; line-height: 1.5; color: var(--ps-fg); text-align: left !important; font-variant-numeric: tabular-nums;
}
.ps-grid .wc-block-components-product-price del, .ps-pdp .wc-block-product .wc-block-components-product-price del { color: var(--ps-muted-2); display: block; }
.ps-grid .wc-block-components-product-price ins { text-decoration: none; }
.ps-grid .wc-block-components-product-sale-badge, .ps-grid .wc-block-components-product-image .onsale, .ps-grid .wc-block-components-product-badge {
	position: absolute; left: 10px; bottom: 10px; top: auto; right: auto; z-index: 2; margin: 0; padding: 4px 9px; border-radius: 0; border: 1px solid var(--ps-tan); background: var(--ps-paper); color: var(--ps-tan-deep);
	font-family: var(--ps-mono); font-size: 9.5px; font-weight: 400; letter-spacing: .16em; text-transform: uppercase; line-height: 1.6;
}
.ps-grid .wp-block-query-pagination { margin-top: 30px !important; font-family: var(--ps-mono); font-size: 14px; }
.ps-grid .wp-block-query-pagination a, .ps-grid .wp-block-query-pagination span { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
@media (min-width: 750px) {
	.ps-grid .wc-block-product .wp-block-post-title, .ps-pdp .wc-block-product .wp-block-post-title { font-size: 20px !important; }
	.ps-grid .wc-block-components-product-price, .ps-pdp .wc-block-product .wc-block-components-product-price { padding-right: 56px !important; }
	.ps-grid .wc-block-components-product-price::after, .ps-pdp .wc-block-product .wc-block-components-product-price::after { content: "View \2192"; position: absolute; right: 0; bottom: 0; font-family: var(--ps-mono); font-size: 12px; letter-spacing: .04em; color: var(--ps-tan-deep); }
	.ps-lang-th .ps-grid .wc-block-components-product-price::after, .ps-lang-th .ps-pdp .wc-block-product .wc-block-components-product-price::after { content: "\0E14\0E39 \2192"; }
}
@media (min-width: 990px) {
	.ps-grid .wc-block-product-template, .ps-pdp .wc-block-product-template { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
	.ps-grid .wc-block-product, .ps-pdp .wc-block-product-template .wc-block-product { padding-bottom: 26px !important; }
}

/* shop / category archive */
.ps-shop { padding: 0 var(--ps-pad) 36px; }
.ps-shop__title { max-width: 1100px; margin: 26px auto 10px !important; font-size: 30px; font-weight: 700; letter-spacing: -.3px; line-height: 1.2; color: var(--ps-fg); }
.ps-shop__bar { max-width: 1100px; margin: 0 auto 15px !important; align-items: center; gap: 12px; font-size: 14px; }
.ps-shop__bar .woocommerce-ordering { margin: 0; }
.ps-shop__bar select { font-size: 16px !important; min-height: 44px; padding: 0 30px 0 10px; border: 1px solid var(--ps-line); background-color: #fff; max-width: 60vw; }
.ps-shop__bar .woocommerce-result-count { margin: 0; color: var(--ps-muted-2); font-size: 14px; white-space: nowrap; }
@media (min-width: 750px) { .ps-shop__title { font-size: 40px; margin-top: 40px !important; } }

/* ==========================================================================
   PRODUCT PAGE (Dawn main-product: stacked on phones)
   ========================================================================== */
.ps-pdp { padding: 0 var(--ps-pad) 36px; }
.ps-pdp .wc-block-breadcrumbs, .ps-pdp .woocommerce-breadcrumb { display: none; }
.ps-pdp__cols { display: block !important; max-width: 1100px; margin: 0 auto !important; gap: 0 !important; }
.ps-pdp__cols > .wp-block-column { flex-basis: auto !important; width: 100%; margin: 0 !important; }
.ps-pdp__media { padding-top: 5px; margin-bottom: 15px !important; }
.ps-pdp .woocommerce-product-gallery { position: relative; margin: 0; width: 100% !important; float: none !important; opacity: 1 !important; }
.ps-pdp .woocommerce-product-gallery__wrapper { margin: 0; }
.ps-pdp .woocommerce-product-gallery__image { border: 1px solid rgba(18, 18, 18, .05); background: var(--ps-paper); }
.ps-pdp .woocommerce-product-gallery__image a { display: block; }
.ps-pdp .woocommerce-product-gallery__image img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: contain; display: block; }
.ps-pdp .woocommerce-product-gallery .flex-control-thumbs { display: flex; gap: 8px; margin: 8px 0 0; padding: 0; list-style: none; }
.ps-pdp .woocommerce-product-gallery .flex-control-thumbs li { width: 72px; flex: none; }
.ps-pdp .woocommerce-product-gallery .flex-control-thumbs img { border: 1px solid rgba(18, 18, 18, .08); cursor: pointer; opacity: .6; }
.ps-pdp .woocommerce-product-gallery .flex-control-thumbs img.flex-active { opacity: 1; border-color: var(--ps-fg); }
.ps-pdp .woocommerce-product-gallery__trigger { position: absolute; top: 12px; left: 12px; right: auto; z-index: 3; width: 44px; height: 44px; display: grid; place-items: center; background: #fff; border: 1px solid rgba(18, 18, 18, .1); border-radius: 50%; text-indent: -9999px; overflow: hidden; }
.ps-pdp .woocommerce-product-gallery__trigger::before { content: ""; position: absolute; width: 12px; height: 12px; border: 1.5px solid var(--ps-fg); border-radius: 50%; top: 13px; left: 13px; }
.ps-pdp .woocommerce-product-gallery__trigger::after { content: ""; position: absolute; width: 6px; height: 1.5px; background: var(--ps-fg); transform: rotate(45deg); top: 27px; left: 24px; }
.ps-pdp .woocommerce-product-gallery__trigger img { display: none !important; }

.ps-pdp__info > * { margin-top: 0 !important; margin-bottom: 0 !important; }
.ps-pdp__vendor { margin: 10px 0 0 !important; font-size: 10px; font-weight: 400; letter-spacing: 1.3px; line-height: 1.2; text-transform: uppercase; color: var(--ps-body); }
.ps-pdp__title { margin: 0 0 15px !important; font-size: 30px !important; font-weight: 700; line-height: 1.3; letter-spacing: .6px; color: var(--ps-fg); }
.ps-pdp__price { margin: 0 0 15px !important; font-family: var(--ps-display); font-size: 18px; letter-spacing: 1px; line-height: 1.6; color: var(--ps-fg); }
.ps-pdp__price .wc-block-components-product-price, .ps-pdp__price .price { font-size: 18px !important; }
.ps-pdp__price del { color: var(--ps-body); font-size: 14px; margin-right: 10px; }
.ps-pdp__price ins { text-decoration: none; }
.ps-pdp__excerpt { margin: 0 0 20px !important; font-size: 15px; line-height: 1.7; }
.ps-pdp__excerpt p { margin: 0 0 10px; }

/* contact row (Shopify: "Have Questions? We are here to help." + WhatsApp / LINE) */
.ps-contact { margin: 10px 0 25px; }
.ps-contact__lead { margin: 0 0 12px; font-size: 15px; font-weight: 600; letter-spacing: .2px; line-height: 1.4; color: var(--ps-fg); }
.ps-contact__row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ps-contact__btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 52px; padding: 0 10px; border-radius: 0; text-decoration: none !important; color: #fff !important; font-family: var(--ps-mono); font-size: 14px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.ps-contact__btn--wa { background: var(--ps-wa); }
.ps-contact__btn--line { background: var(--ps-line-green); }
.ps-contact__btn:hover { filter: brightness(.94); color: #fff; }

/* add to cart: quantity row, then a full-width outline button (Shopify: outline "Add to cart") */
.ps-pdp form.cart { display: flex; flex-wrap: wrap; align-items: stretch; gap: 10px; margin: 0 0 15px !important; }
.ps-pdp form.cart .quantity { display: flex; align-items: stretch; height: 48px; border: 1px solid rgba(18, 18, 18, .55); width: 140px; flex: none; }
.ps-pdp form.cart .quantity .qty { width: 100%; height: 100%; border: 0 !important; text-align: center; font-size: 16px !important; font-family: var(--ps-display); padding: 0 6px; -moz-appearance: textfield; background: transparent; }
.ps-pdp form.cart .quantity .qty::-webkit-inner-spin-button, .ps-pdp form.cart .quantity .qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.ps-pdp form.cart .single_add_to_cart_button {
	flex: 1 1 100%; width: 100%; background: transparent !important; color: var(--ps-fg) !important; border: 1px solid var(--ps-fg); min-height: 48px; font-size: 15px; letter-spacing: 1px;
}
.ps-pdp form.cart .single_add_to_cart_button:hover { box-shadow: 0 0 0 1px var(--ps-fg); background: transparent; }
.ps-pdp form.cart .single_add_to_cart_button.loading { opacity: .6; }
.ps-pdp .wcml_currency_switcher, .ps-pdp .wcml-dropdown { display: none !important; }
.ps-pdp .stock { font-family: var(--ps-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; margin: 0 0 10px; }
.ps-pdp .stock.out-of-stock { color: var(--ps-muted-2); }
.ps-pdp__meta { font-size: 12px; color: var(--ps-muted-2); margin-top: 10px !important; }
.ps-pdp__meta a { color: var(--ps-muted-2); }

/* tabs: rounded bordered card, bone pill tab bar */
.ps-pdp__tabs, .ps-pdp .wp-block-woocommerce-product-details { max-width: 1100px; margin: 30px auto 0 !important; }
.ps-pdp .woocommerce-tabs { border: 1px solid var(--ps-hair); border-radius: 18px; padding: 10px; background: var(--ps-paper); }
.ps-pdp .woocommerce-tabs ul.wc-tabs { display: flex; gap: 4px; margin: 0 0 6px !important; padding: 4px !important; list-style: none; background: var(--ps-bone); border-radius: 999px; overflow-x: auto; scrollbar-width: none; border: 0; }
.ps-pdp .woocommerce-tabs ul.wc-tabs::-webkit-scrollbar { display: none; }
.ps-pdp .woocommerce-tabs ul.wc-tabs::before, .ps-pdp .woocommerce-tabs ul.wc-tabs li::before, .ps-pdp .woocommerce-tabs ul.wc-tabs li::after { display: none !important; }
.ps-pdp .woocommerce-tabs ul.wc-tabs li { flex: 0 0 auto; margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; border-radius: 999px; }
.ps-pdp .woocommerce-tabs ul.wc-tabs li a { display: flex; align-items: center; min-height: 44px; padding: 0 16px !important; border-radius: 999px; font-size: 13.5px; font-weight: 600; letter-spacing: .2px; color: var(--ps-body) !important; text-decoration: none !important; white-space: nowrap; }
.ps-pdp .woocommerce-tabs ul.wc-tabs li.active a { background: var(--ps-paper); color: var(--ps-fg) !important; box-shadow: 0 1px 2px rgba(14, 14, 15, .08); }
.ps-pdp .woocommerce-Tabs-panel { padding: 14px 10px 6px; margin: 0 !important; font-size: 15px; line-height: 1.75; }
.ps-pdp .woocommerce-Tabs-panel h2 { font-size: 20px; font-weight: 700; margin: 0 0 12px; letter-spacing: 0; }
.ps-pdp .woocommerce-Tabs-panel table { width: 100%; border-collapse: collapse; font-size: 14px; display: block; overflow-x: auto; }
.ps-pdp .woocommerce-Tabs-panel th, .ps-pdp .woocommerce-Tabs-panel td { padding: 10px 12px; border-bottom: 1px solid var(--ps-line-soft); text-align: left; }
.ps-pdp .woocommerce-Tabs-panel th { font-size: 10px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--ps-muted-2); }
@media (min-width: 750px) { .ps-pdp .woocommerce-tabs { padding: 16px; } .ps-pdp .woocommerce-Tabs-panel { padding: 20px 18px 10px; } }

/* related products */
.ps-pdp .wp-block-woocommerce-related-products, .ps-pdp > .wp-block-woocommerce-product-collection { margin-top: 50px !important; }
.ps-pdp .wp-block-woocommerce-related-products h2, .ps-pdp > .wp-block-woocommerce-product-collection > h2 { font-size: 24px !important; font-weight: 700; letter-spacing: .6px; margin: 0 0 25px !important; text-align: left !important; }
.ps-pdp .wc-block-product .wp-block-button, .ps-pdp .wc-block-product .wc-block-components-product-button { display: none !important; }

@media (min-width: 750px) {
	.ps-pdp__cols { display: flex !important; gap: 0 !important; align-items: flex-start; }
	.ps-pdp__media { flex: 0 0 65% !important; max-width: 65%; padding-top: 0; position: sticky; top: 20px; }
	.ps-pdp__info { flex: 0 0 35% !important; max-width: 35%; padding-left: 40px; }
	.ps-pdp__vendor { margin-top: 0 !important; }
	.ps-pdp__title { font-size: 40px !important; line-height: 1.3; }
}

/* ==========================================================================
   CART + CHECKOUT (blocks). Phone first: one column, big fields, 48px actions.
   ========================================================================== */
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { max-width: 1100px; margin-left: auto !important; margin-right: auto !important; padding: 0 var(--ps-pad); }
body.woocommerce-cart main h1, body.woocommerce-checkout main h1, .woocommerce-cart .wp-block-post-title, .woocommerce-checkout .wp-block-post-title {
	font-size: 30px !important; font-weight: 700; letter-spacing: .6px; line-height: 1.3; color: var(--ps-fg); max-width: 1100px; margin: 26px auto 20px !important; padding: 0 var(--ps-pad);
}
@media (min-width: 750px) { body.woocommerce-cart main h1, body.woocommerce-checkout main h1, .woocommerce-cart .wp-block-post-title, .woocommerce-checkout .wp-block-post-title { font-size: 40px !important; margin-top: 40px !important; } }
.wc-block-cart-items__header, .wc-block-cart-items th { font-size: 10px !important; font-weight: 400; letter-spacing: 1.3px; text-transform: uppercase; color: var(--ps-body); }
.wc-block-cart-items .wc-block-components-product-name { font-size: 15px; font-weight: 700; letter-spacing: .6px; color: var(--ps-fg); text-decoration: none; }
.wc-block-cart-item__image img { border: 1px solid rgba(18, 18, 18, .08); }
/* qty stepper (Cart + Mini-cart blocks): ONE 44px square outline around − n + (field border colour), trash centred beside it.
   WC draws the outline on the 107px-wide selector itself; our 44px buttons (2x44 + 40 input) overflowed it and the
   content-box input (44px + padding) made it 59px tall. Fixed width/height, border-box children, no own borders. */
.wc-block-cart-item__quantity { display: flex !important; align-items: center; gap: 10px; flex-wrap: nowrap; }
.wc-block-components-quantity-selector {
	box-sizing: border-box; display: inline-flex !important; align-items: stretch; flex: none; width: 134px !important; height: 44px !important; min-height: 0;
	margin: 0 !important; padding: 0; border: 1px solid rgba(18, 18, 18, .55) !important; border-radius: 0 !important; background: #fff; overflow: hidden;
}
.wc-block-components-quantity-selector::after { display: none !important; }
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
	box-sizing: border-box; flex: 0 0 44px; width: 44px; min-width: 44px !important; height: 100% !important; min-height: 0 !important; margin: 0; padding: 0 !important;
	border: 0 !important; border-radius: 0 !important; display: flex; align-items: center; justify-content: center; font-size: 18px; line-height: 1; color: var(--ps-fg); background: transparent; box-shadow: none;
}
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover:not(:disabled) { background: var(--ps-bone); }
.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
	box-sizing: border-box; flex: 1 1 auto; order: 0; width: auto; min-width: 0 !important; height: 100% !important; min-height: 0 !important; margin: 0; padding: 0 !important;
	border: 0 !important; border-radius: 0 !important; font-size: 16px !important; line-height: 42px; text-align: center; color: var(--ps-fg); background: transparent; box-shadow: none; -moz-appearance: textfield;
}
.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input::-webkit-inner-spin-button,
.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.wc-block-cart-item__remove-link { flex: none; width: 44px; min-height: 44px; margin: 0 !important; display: inline-flex !important; align-items: center; justify-content: center; font-size: 13px !important; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label, .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-size: 16px; font-weight: 700; color: var(--ps-fg); }
.wc-block-components-sidebar .wc-block-components-panel__button, .wc-block-components-totals-coupon .wc-block-components-panel__button { min-height: 44px; }
.wc-block-cart__submit-container .wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button { width: 100%; min-height: 48px; font-size: 15px; letter-spacing: 1px; }
.wc-block-cart__submit-container--sticky { background: #fff; box-shadow: 0 -1px 0 var(--ps-line-soft); }
.wc-block-components-text-input input, .wc-block-components-text-input.is-active input, .wc-block-components-form .wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input, .wc-blocks-components-select .wc-blocks-components-select__select {
	border-radius: 0 !important; border-color: rgba(18, 18, 18, .55) !important; min-height: 52px; font-size: 16px !important;
}
.wc-block-components-text-input label, .wc-blocks-components-select__label { font-size: 13px !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox] { width: 22px; height: 22px; border-radius: 0; }
.wc-block-components-checkbox label { min-height: 44px; align-items: center; }
.wc-block-components-radio-control__option { min-height: 44px; }
/* Checkout option rows (shipping + payment, Oct 8 2026): one compact ~56px row, radio / label / price centred.
   The 44px min-height sat on a content-box label with 16px top/bottom padding, so each box was 76px with an
   empty band under the label. border-box + flex centring keeps a 56px thumb target. */
body .wc-block-components-radio-control .wc-block-components-radio-control__option { box-sizing: border-box; min-height: 56px; display: flex; align-items: center; padding-top: 8px; padding-bottom: 8px; }
body .wc-block-components-radio-control .wc-block-components-radio-control__option-layout { flex: 1 1 auto; min-width: 0; }
body .wc-block-components-radio-control .wc-block-components-radio-control__label-group { align-items: center; }
body .wp-block-woocommerce-checkout .wc-block-components-shipping-rates-control__package .wc-block-components-radio-control .wc-block-components-radio-control__input,
body .wc-block-components-radio-control .wc-block-components-radio-control__input { top: 50%; transform: translateY(-50%); margin: 0; }
body .wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-content .peptsche-gw-desc { margin: 0; }
.wc-block-components-checkout-step__title { font-size: 18px !important; font-weight: 700; letter-spacing: .3px; color: var(--ps-fg); }
.wc-block-components-notice-banner { border-radius: 0; font-size: 14px; }
.wc-block-components-button.is-link, .wc-block-components-checkout-return-to-cart-button { min-height: 44px; display: inline-flex; align-items: center; color: var(--ps-fg); }

/* mini-cart drawer */
.wc-block-mini-cart__drawer .wc-block-components-drawer__content { font-family: var(--ps-display); }
.wc-block-mini-cart__title { font-size: 24px !important; font-weight: 700; letter-spacing: .3px; }
.wc-block-mini-cart__footer-actions .wc-block-components-button { min-height: 48px; }
.wc-block-mini-cart__footer-cart.wc-block-components-button { background: transparent !important; color: var(--ps-fg) !important; }
.wc-block-components-drawer__close { min-width: 44px; min-height: 44px; }

/* classic notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error { border-radius: 0; font-size: 14px; }

/* ==========================================================================
   FOOTER (plugin .pft): white, quiet, mono copyright (Shopify footer)
   ========================================================================== */
body .pft { background: var(--ps-paper); color: var(--ps-body); border-top: 1px solid var(--ps-line-soft); margin-top: 0; padding: 36px var(--ps-pad) 27px; font-size: 14px; line-height: 1.6; }
body .pft .pft__in { max-width: 1100px; grid-template-columns: 1fr 1fr; gap: 26px 20px; }
body .pft .pft__brand, body .pft .pft__acc { grid-column: 1 / -1; }
body .pft .pft__logo { margin: 0 0 8px; font-family: var(--ps-display); font-size: 20px; font-weight: 700; letter-spacing: -.02em; color: var(--ps-ink); }
body .pft .pft__logo a { color: inherit; }
body .pft .pft__ruo { font-size: 13px; margin: 0 0 14px; }
body .pft .pft__nav ul { gap: 0; }
body .pft .pft__nav a { display: flex; align-items: center; min-height: 44px; font-size: 13.5px; color: var(--ps-fg); }
body .pft .pft__nav a:hover { color: var(--ps-tan-deep); }
body .pft .poa__h { font-size: 10px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; opacity: .6; margin: 0 0 10px; }
body .pft .poa__list a { display: inline-flex; align-items: center; min-height: 44px; color: var(--ps-fg); }
body .pft .pft__copy { max-width: 1100px; margin: 26px auto 0; padding-top: 22px; border-top: 1px solid var(--ps-line-soft); font-family: var(--ps-mono); font-size: 11px; letter-spacing: .02em; text-align: center; opacity: .6; }
body .pft a { text-decoration: none; }
body .pft .trp-shortcode-switcher__wrapper { --border-radius: 0px; --font-size: 14px; }
body .pft .trp-language-item { min-height: 44px; }
@media (min-width: 990px) {
	body .pft { padding-top: 48px; }
	body .pft .pft__in { grid-template-columns: 1.4fr 1fr 1fr 1.4fr; gap: 2rem; }
	body .pft .pft__brand, body .pft .pft__acc { grid-column: auto; }
	body .pft .pft__nav a { min-height: 32px; }
	body .pft .pft__copy { text-align: left; }
}

/* TranslatePress floating language switcher: small, square, out of the thumb zone */
#trp-floater-ls { border-radius: 0 !important; box-shadow: 0 2px 10px rgba(14, 14, 15, .12) !important; font-family: var(--ps-display); }
#trp-floater-ls a, .trp-floater-ls-names a { min-height: 44px; display: flex !important; align-items: center; }

/* ==========================================================================
   AGE GATE (plugin markup, Shopify look: full-screen ink, pill buttons)
   ========================================================================== */
html.pg-lock::after { background: #0E0E0F !important; }
body .pg-overlay { background: #0E0E0F !important; backdrop-filter: none; padding: 20px 18px; overflow-y: auto; }
body .pg-dialog {
	background: transparent !important; color: var(--ps-bone) !important; box-shadow: none !important; border: 0 !important; border-radius: 0 !important;
	max-width: 560px; width: 100%; padding: 0 !important; margin: auto; text-align: left; font-family: var(--ps-mono);
}
body .pg-brand { font-family: var(--ps-display) !important; font-size: 26px !important; font-weight: 700; letter-spacing: -.02em; color: var(--ps-bone) !important; margin: 0 0 26px !important; }
body .pg-title { font-family: var(--ps-display) !important; font-size: clamp(38px, 7vw, 62px) !important; font-weight: 400 !important; letter-spacing: -.02em; line-height: 1.02 !important; color: var(--ps-bone) !important; margin: 0 0 16px !important; }
body .pg-intro { font-family: var(--ps-mono); font-size: 13px !important; line-height: 1.65; color: rgba(244, 239, 232, .72) !important; margin: 0 0 18px !important; }
body .pg-list { margin: 0 0 22px !important; padding: 0 !important; list-style: none; }
body .pg-list li { font-family: var(--ps-mono); font-size: 13px !important; line-height: 1.55; color: rgba(244, 239, 232, .85) !important; padding: 6px 0 6px 22px !important; position: relative; }
body .pg-list li::before { content: ""; position: absolute; left: 2px; top: 13px; width: 9px; height: 9px; border: 1px solid var(--ps-tan); border-radius: 50%; }
body .pg-actions { display: flex !important; flex-direction: column; gap: 10px !important; }
body .pg-actions .pg-enter, body #pg-enter { order: 1; }
body .pg-actions .pg-leave { order: 2; }
body .pg-enter, body #pg-enter {
	display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 50px; border-radius: 999px !important; border: 1px solid var(--ps-tan) !important;
	background: var(--ps-tan) !important; color: var(--ps-ink) !important; font-family: var(--ps-mono) !important; font-size: 13px !important; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; cursor: pointer;
}
body .pg-leave {
	display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 50px; border-radius: 999px !important; border: 1px solid rgba(244, 239, 232, .28) !important;
	background: transparent !important; color: var(--ps-bone) !important; font-family: var(--ps-mono) !important; font-size: 13px !important; letter-spacing: .08em; text-transform: uppercase; text-decoration: none !important;
}
body .pg-foot { font-family: var(--ps-mono); font-size: 11px !important; color: rgba(244, 239, 232, .5) !important; margin-top: 18px !important; }
body .pg-foot a { color: rgba(244, 239, 232, .75) !important; }
@media (min-width: 600px) { body .pg-actions { flex-direction: row; } body .pg-enter, body #pg-enter, body .pg-leave { width: auto; padding: 0 28px; } }

/* ==========================================================================
   THAI: IBM Plex Sans Thai, no negative tracking, taller lines, clean wrapping
   ========================================================================== */
:lang(th), .ps-lang-th {
	--ps-display: "IBM Plex Sans Thai", Archivo, "Noto Sans Thai", Tahoma, sans-serif;
}
:lang(th) body, body.ps-lang-th {
	font-family: "IBM Plex Sans Thai", Archivo, "Noto Sans Thai", Tahoma, sans-serif; line-height: 1.75; letter-spacing: 0;
	line-break: strict; word-break: normal; overflow-wrap: anywhere;
}
.ps-lang-th :is(h1, h2, h3, h4, p, li, a, span, dd, dt, button, label) { letter-spacing: 0 !important; }
.ps-lang-th :is(h1, h2, h3, h4) { line-height: 1.35 !important; word-break: normal; overflow-wrap: anywhere; text-wrap: pretty; }
.ps-lang-th .ps-hero h1 { font-size: clamp(32px, 8.6vw, 54px); line-height: 1.25 !important; }
.ps-lang-th .ps-hero h1 em { font-family: "IBM Plex Sans Thai", sans-serif; font-style: normal; font-weight: 500; color: var(--ps-tan-mid); }
.ps-lang-th .ps-card__h { line-height: 1.3; font-size: clamp(16px, 4.6vw, 21px); }
.ps-lang-th .ps-card__h em, .ps-lang-th .ps-book__h em { font-family: inherit; font-style: normal; }
.ps-lang-th .ps-kicker, .ps-lang-th .ps-announce__msg, .ps-lang-th .ps-eyebrow, .ps-lang-th .ps-card__kicker, .ps-lang-th .ps-coa__s { text-transform: none; letter-spacing: .02em !important; }
.ps-lang-th .ps-announce__msg { font-size: 12.5px; }
.ps-lang-th .ps-coa__n, .ps-lang-th .ps-coa__s { white-space: normal; }
.ps-lang-th .ps-hero .pgl__w { font-family: "IBM Plex Sans Thai", sans-serif !important; font-style: normal !important; font-weight: 500 !important; font-size: 1em !important; }
.ps-lang-th .ps-nav .wp-block-navigation-item__content { font-size: 13px; }
.ps-lang-th .ps-contact__btn { font-family: var(--ps-display); }
.ps-lang-th .ps-book__h, .ps-lang-th .pfc__h { line-height: 1.3; }
@media (min-width: 990px) { .ps-lang-th .ps-hero h1 { font-size: clamp(44px, 5.4vw, 88px); } }

/* ---------- motion ---------- */
@media (prefers-reduced-motion: reduce) {
	.ps-card, .ps-grid .wc-block-components-product-image img { transition: none; }
	a.ps-card:hover { transform: none; }
}

/* ---------- fixes after first mobile comparison ---------- */
/* home sections are full-bleed (they sit inside post-content, which adds root padding + 726px max) */
body .entry-content > .ps-hero, body .entry-content > .ps-marq, body .entry-content > .ps-featured,
body .entry-content > .ps-ver, body .entry-content > .ps-book, body .wp-block-post-content > .ps-hero, body .wp-block-post-content > .ps-marq,
body .wp-block-post-content > .ps-featured, body .wp-block-post-content > .ps-ver, body .wp-block-post-content > .ps-book {
	max-width: none !important; width: auto !important;
	margin-left: calc(-1 * var(--wp--style--root--padding-left, 15px)) !important;
	margin-right: calc(-1 * var(--wp--style--root--padding-right, 15px)) !important;
	margin-top: 0 !important; margin-bottom: 0 !important;
}
body .wp-block-post-content > .ps-featured { max-width: none !important; }
.ps-featured > * { max-width: 1100px; margin-left: auto; margin-right: auto; }
.ps-hero > * { max-width: 1500px; }
body.home main, body.page main { margin-top: 0 !important; }
body.home .wp-block-post-content, body.home .entry-content { padding-top: 0; }
/* goal line: one row, word window sized to the space left (Shopify keeps "Looking for ↳ word" on one line) */
.ps-hero .pgl__in { flex-wrap: nowrap !important; max-width: 100%; }
.ps-hero .pgl__win { flex: 1 1 auto; min-width: 0 !important; height: 1.25em !important; }
.ps-hero .pgl__w { top: .04em !important; }
/* account icon from the nav block: Shopify shows none */
.ps-header .wp-block-woocommerce-customer-account { display: none !important; }
/* TranslatePress floating switcher replaced by the header EN/TH switch */
.trp-floating-switcher, #trp-floater-ls { display: none !important; }
.ps-lang { position: absolute; left: 6px; top: 0; height: 65px; display: flex; align-items: center; }
.ps-lang__i { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; min-height: 44px; padding: 0 4px; font-family: var(--ps-mono); font-size: 11.5px; letter-spacing: .06em; color: var(--ps-muted-2) !important; text-decoration: none !important; }
.ps-lang__i.is-on { color: var(--ps-ink) !important; font-weight: 600; }
.ps-lang__i + .ps-lang__i { border-left: 1px solid var(--ps-line-soft); min-height: 16px; height: 44px; }
.ps-header__icons .ps-lang { position: fixed; } /* overridden below; keeps the switch out of the icon flex row on phones */
.ps-header__icons { left: 0; right: 0 !important; justify-content: space-between !important; padding: 0 10px 0 4px; pointer-events: none; }
.ps-header__icons > * { pointer-events: auto; }
.ps-header__icons .ps-lang { position: static; height: auto; margin-right: auto; }
@media (max-width: 380px) { .ps-header__icons { padding: 0 6px 0 2px; } .ps-lang__i { min-width: 32px; } .ps-logo { justify-content: center; margin: 0 auto; } }
@media (min-width: 990px) {
	.ps-header__icons { padding: 0; pointer-events: auto; justify-content: flex-end !important; }
	.ps-header__icons .ps-lang { margin-right: 8px; }
}
/* announcement fits one line on 390px+ phones */
@media (max-width: 430px) { .ps-announce__msg { font-size: 10.5px; letter-spacing: .09em; } }

/* PDP round 2: Shopify order Quantity -> contact -> Add to cart; stepper buttons */
.ps-pdp form.cart::before { content: "Quantity"; flex: 0 0 100%; margin: 0 0 -2px; font-size: 13px; letter-spacing: .4px; line-height: 1.4; color: var(--ps-body); }
.ps-lang-th .ps-pdp form.cart::before { content: "\0E08\0E33\0E19\0E27\0E19"; }
.ps-pdp form.cart .ps-contact { flex: 1 1 100%; margin: 14px 0 6px; }
.ps-pdp form.cart .quantity { width: 140px; }
.ps-qty-btn { flex: 0 0 44px; width: 44px; height: 100%; border: 0; background: transparent; color: var(--ps-fg); font-size: 20px; line-height: 1; cursor: pointer; padding: 0; display: grid; place-items: center; }
.ps-qty-btn:hover { background: var(--ps-bone); }
.ps-pdp form.cart .quantity .qty { min-width: 0; }
/* long descriptions: clamped on phones with a "Read more" (content stays in the DOM) */
.woocommerce-Tabs-panel.is-clamped { max-height: 900px; overflow: hidden; position: relative; }
.woocommerce-Tabs-panel.is-clamped::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 120px; background: linear-gradient(rgba(255,255,255,0), #fff); pointer-events: none; }
.ps-more { display: flex; width: 100%; min-height: 48px; margin: 8px 0 4px; align-items: center; justify-content: center; background: transparent; border: 1px solid var(--ps-fg); color: var(--ps-fg); font-family: var(--ps-display); font-size: 14px; font-weight: 500; letter-spacing: .4px; cursor: pointer; }
/* featured heading: beat global h2 sizes */
body .ps-featured h2.ps-featured__h { font-size: 24px !important; line-height: 1.3; }
/* goal line: full-width row so the word window gets the remaining space */
.ps-hero .pgl__in { display: flex !important; width: 100%; }
.ps-hero .pgl__l { opacity: 1 !important; }

/* PDP trust badges + info cards (Shopify: stacked rounded boxes under the buttons) */
.ps-trust { margin: 22px 0 0; }
.ps-trust ul { list-style: none; margin: 0; padding: 0; }
.ps-trust__list { display: grid; gap: 8px; }
.ps-trust__b { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 8px 12px; border: 1px solid var(--ps-hair); border-radius: 10px; font-size: 13px; font-weight: 600; letter-spacing: .2px; color: var(--ps-fg); }
.ps-trust svg { width: 18px; height: 18px; flex: none; color: var(--ps-fg); }
.ps-info { margin-top: 14px !important; border: 1px solid var(--ps-hair); border-radius: 14px; }
.ps-info__c { padding: 16px 16px 14px; }
.ps-info__c + .ps-info__c { border-top: 1px solid var(--ps-hair); }
.ps-info__h { display: flex; align-items: center; gap: 10px; margin: 0 0 6px; font-size: 14px; font-weight: 700; color: var(--ps-fg); line-height: 1.3; }
.ps-info__h svg { width: 26px; height: 26px; padding: 4px; border: 1px solid var(--ps-hair); border-radius: 8px; }
.ps-info__p { margin: 0 0 4px; font-size: 13px; line-height: 1.55; color: var(--ps-body); }
.ps-info__a { display: inline-flex; align-items: center; min-height: 36px; font-size: 13px; font-weight: 600; color: var(--ps-navy) !important; text-decoration: none !important; }
.ps-related__h { font-size: 24px !important; font-weight: 700; letter-spacing: .6px; margin: 0 0 25px !important; color: var(--ps-fg); }
.ps-pdp .ps-related { margin-top: 50px !important; }
/* Quantity label (beat WooCommerce's form.cart clearfix ::before) */
body .ps-pdp form.cart::before { content: "Quantity" !important; display: block !important; flex: 0 0 100%; }
body.ps-lang-th .ps-pdp form.cart::before { content: "\0E08\0E33\0E19\0E27\0E19" !important; }
body .ps-pdp form.cart::after { display: none !important; }

/* checkout header (simplified, like Shopify checkout: logo + cart) */
.ps-co-header { border-bottom: 1px solid var(--ps-line-soft); background: #fff; }
.ps-co-header__in { max-width: 1100px; margin: 0 auto; padding: 0 var(--ps-pad); min-height: 64px; align-items: center; }
.ps-co-header .ps-logo { margin: 0; padding: 0; height: 64px; }
.ps-co-header .wc-block-cart-link { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; color: var(--ps-ink); }
/* shop bar: Shopify shows no page title on the catalogue, just the bar */
body.post-type-archive-product .ps-shop__title { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; margin: 0 !important; }
body.post-type-archive-product .ps-shop { padding-top: 15px; }
.ps-shop__bar { flex-wrap: nowrap !important; min-width: 0; }
.ps-shop__bar > * { min-width: 0; }
.ps-shop__bar .woocommerce-ordering { flex: 0 1 auto; }
.ps-shop__bar .woocommerce-result-count { flex: 0 1 auto; overflow: hidden; text-overflow: ellipsis; font-size: 13px; }
/* cart lines: Shopify shows no description, just name, price, qty */
.wc-block-cart .wc-block-components-product-metadata__description, .wc-block-mini-cart__drawer .wc-block-components-product-metadata__description, .wc-block-checkout .wc-block-components-product-metadata__description { display: none; }

/* QA round: tap targets + overflow */
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { padding-left: 0 !important; padding-right: 0 !important; box-sizing: border-box; }
.ps-grid .wc-block-product .wp-block-post-title a, .ps-pdp .wc-block-product .wp-block-post-title a { display: inline-block; padding: 12px 0; margin: -12px 0; }
body .pft .pft__logo a { display: inline-flex; align-items: center; min-height: 44px; }
body .ps-pdp .woocommerce-product-gallery__trigger { width: 44px !important; height: 44px !important; }
body .ps-pdp .woocommerce-product-gallery__trigger::before { top: 13px; left: 13px; }
.ps-info__a { min-height: 44px; }
.woocommerce-Tabs-panel a, .ps-book__p a, .pfc a, .poa a, .wc-block-components-checkbox__label a, .wc-block-checkout__terms a { padding-block: 12px; } /* inline links: larger hit area, no layout change */
.wc-block-components-address-form__address_2-toggle { display: inline-flex !important; align-items: center; min-height: 44px; }
.woocommerce-Tabs-panel td a, .woocommerce-Tabs-panel th a { padding-block: 15px; }
.ps-hero .pgl { display: block !important; align-self: stretch; width: 100%; }
@media (min-width: 990px) { .ps-hero .pgl { width: auto; flex: 1 1 auto; align-self: center; } }
/* desktop round: PDP column widths, WCML dropdown out of flow */
.ps-pdp .wp-block-woocommerce-product-image-gallery { max-width: none !important; width: 100%; }
.ps-pdp__cols > .wp-block-column { box-sizing: border-box; }
.ps-currency .wcml-dropdown { position: relative; }
.ps-currency .wcml-dropdown > ul, .ps-currency .wcml-dropdown li { margin: 0; padding: 0; list-style: none; }
.ps-currency .wcml-cs-submenu { position: absolute !important; top: 100%; left: 0; right: 0; background: #fff; margin: 0; padding: 0; }

/* Mobile QA (staging): last two sub-44px targets in cart + checkout */
.wc-block-cart .wc-block-components-product-name, .wc-block-checkout .wc-block-components-product-name { display: inline-block; padding: 12px 0; margin: -12px 0; }
.wc-block-checkout [class*="address_2-hidden-input"], .wc-block-checkout [class*="address_2-toggle"] { min-height: 44px; display: inline-flex; align-items: center; padding-block: 0; }
/* shop bar: sort select was clipped (wrapper shrank below the select's width) */
.ps-shop__bar .wc-block-catalog-sorting { flex: 0 0 auto !important; text-align: left; }
.ps-shop__bar .woocommerce-ordering { display: block; }
.ps-shop__bar select { width: auto; max-width: calc(100vw - 140px); }
.ps-shop__bar .wp-block-woocommerce-product-results-count { flex: 0 1 auto; min-width: 0; text-align: right; }
/* cart heading (Shopify main-cart-items title-wrapper) */
.ps-cart-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; max-width: 1100px; margin-inline: auto; }
.ps-cart-head .wp-block-post-title { margin: 0 !important; }
.ps-cart-head__cont { display: inline-flex; align-items: center; min-height: 44px; font-size: 15px; color: var(--ps-fg); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }

/* Age gate, closer to Shopify's mobile gate: centred head, square ticks, buttons side by side.
   The plugin's .pg-btn {flex:1 1 140px} made the buttons 140px tall in our column layout. */
body .pg-overlay { align-items: center; }
body .pg-brand { text-transform: none !important; font-weight: 500 !important; text-align: center; letter-spacing: 0 !important; margin-bottom: 14px !important; }
body .pg-title { text-align: center; font-size: clamp(34px, 9vw, 52px) !important; margin-bottom: 18px !important; }
body .pg-intro { text-align: center; }
body .pg-list li { border-top: 0 !important; padding: 7px 0 7px 32px !important; }
body .pg-list li::before { left: 0; top: 9px; width: 16px; height: 16px; border: 1px solid rgba(244, 239, 232, .6); border-radius: 2px; transform: none; }
body .pg-actions { flex-direction: row !important; flex-wrap: nowrap !important; justify-content: center; gap: 12px !important; margin: 26px 0 18px !important; }
body .pg-actions .pg-leave { order: 1; }
body .pg-actions .pg-enter, body #pg-enter { order: 2; }
body .pg-btn, body .pg-enter, body #pg-enter, body .pg-leave { flex: 0 1 auto !important; width: auto !important; min-width: 132px; min-height: 46px; padding: 0 26px !important; letter-spacing: .02em; text-transform: none !important; font-weight: 500; }
body .pg-foot { text-align: center; line-height: 1.6; }
/* gate list: plain bullets, not empty boxes (they are statements, not tickable checkboxes) */
body .pg-list li { padding-left: 22px !important; }
body .pg-list li::before { top: 15px; left: 4px; width: 6px; height: 6px; border: 0; border-radius: 50%; background: var(--ps-tan); }

/* ==========================================================================
   ALIGNMENT (Kevin, Oct 2): ONE shared centred container from 750px up.
   --ps-max = 1100px content (Dawn page-width 1200 minus 2 x 50px, the width Shopify uses for its header,
   grid, cart and footer); side gutter = --ps-pad (50px). Everything is centred in the area right of the
   64px rail (body padding-left). Backgrounds stay full-bleed, as on Shopify. Phones (<750px) unchanged.
   ========================================================================== */
:root { --ps-max: 1100px; }
@media (min-width: 750px) {
	/* 1. hero: every row starts on the container's left edge (margin % resolves against the hero's content box) */
	body .ps-hero { padding-left: var(--ps-pad) !important; padding-right: var(--ps-pad) !important; }
	body .ps-hero > * { max-width: var(--ps-max) !important; margin-left: max(0px, calc((100% - var(--ps-max)) / 2)) !important; margin-right: 0 !important; box-sizing: border-box; }
	/* 2. featured: heading and grid share the container */
	body .ps-featured { padding-left: var(--ps-pad) !important; padding-right: var(--ps-pad) !important; }
	body .ps-featured > * { max-width: var(--ps-max) !important; margin-left: auto !important; margin-right: auto !important; }
	/* 3. grid: flex rows so an incomplete last row is centred (15 products / 4 columns = 4+4+4+3) */
	body .ps-grid .wc-block-product-template { display: flex !important; flex-wrap: wrap; justify-content: center; }
	body .ps-grid .wc-block-product-template > .wc-block-product { flex: 0 0 50%; box-sizing: border-box; }
	/* 4. verification band: content on the container */
	body .ps-ver__wrap { max-width: calc(var(--ps-max) + 2 * var(--ps-pad)) !important; padding-left: var(--ps-pad) !important; padding-right: var(--ps-pad) !important; box-sizing: border-box; }
	body .ps-ver .pfc { max-width: none !important; width: 100%; }
	/* 5. CTA band + footer: same gutter and container as everything else */
	body .ps-book { padding-left: var(--ps-pad) !important; padding-right: var(--ps-pad) !important; }
	body .ps-book > .ps-eyebrow, body .ps-book > .ps-book__cta { max-width: var(--ps-max); margin-left: auto !important; margin-right: auto !important; }
	body .pft .pft__in, body .pft .pft__copy { max-width: var(--ps-max) !important; margin-left: auto !important; margin-right: auto !important; }
	/* other pages on the same container */
	body .entry-content > .plr { max-width: var(--ps-max) !important; }
	.ps-pdp { padding-top: 36px; }
}
@media (min-width: 990px) {
	body .ps-hero > h1 { max-width: 14ch !important; }
	body .ps-grid .wc-block-product-template > .wc-block-product { flex-basis: 25%; }
	/* 4. two columns like Shopify's band: copy + buttons left, lab card right */
	body .ps-ver .pfc { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: auto auto auto auto 1fr; column-gap: clamp(40px, 5vw, 80px); align-items: start; }
	body .ps-ver .pfc > * { grid-column: 1; }
	body .ps-ver .pfc > .pfc__card { grid-column: 2; grid-row: 1 / -1; align-self: center; margin: 0 !important; }
	body .ps-ver .pfc > .pfc__links { margin-top: 10px; }
	/* 6. header: logo/nav on the container's left edge, controls on its right edge, one even 12px rhythm,
	   all controls 38px tall on one centre line */
	body .ps-header__in { max-width: calc(var(--ps-max) + 2 * var(--ps-pad)) !important; padding-left: var(--ps-pad) !important; padding-right: var(--ps-pad) !important; box-sizing: border-box; }
	body .ps-header__icons { gap: 12px !important; align-items: center; }
	body .ps-header__icons > * { margin: 0 !important; display: flex; align-items: center; }
	body .ps-header__icons .ps-lang { margin-right: 0 !important; height: 38px; }
	body .ps-lang__i { min-height: 38px; height: 38px; }
	body .ps-lang__i + .ps-lang__i { height: 20px; min-height: 20px; }
	body .ps-chat { height: 38px; margin: 0; }
	body .ps-currency .wcml-dropdown a.wcml-cs-item-toggle { height: 38px; display: flex; align-items: center; box-sizing: border-box; padding-top: 0; padding-bottom: 0; }
	body .ps-search .wp-block-search__button { width: 38px; height: 38px; }
	body .ps-cart .wc-block-mini-cart__button { height: 38px; box-sizing: border-box; }
}
/* cart heading: the title kept the old page-title padding and sat 50px right of the cart table */
.ps-cart-head .wp-block-post-title { padding-left: 0 !important; padding-right: 0 !important; }

/* Product tabs (Kevin, Oct 2): WooCommerce's `ul.tabs li a {display:inline-block}` beat our flex rule, so the
   labels sat on the baseline, 18px above centre. Labels are now centred both ways in a 44px pill, the track
   has the same 4px all round, and the panel heading sits 20px+ below the track. */
body .ps-pdp .woocommerce-tabs ul.wc-tabs, body .ps-pdp .woocommerce-tabs ul.tabs { display: flex !important; align-items: center; gap: 4px; padding: 4px !important; margin: 0 !important; line-height: 1; }
body .ps-pdp .woocommerce-tabs ul.tabs li { display: flex !important; align-items: center; line-height: 1 !important; height: 44px; }
body .ps-pdp .woocommerce-tabs ul.tabs li a {
	display: inline-flex !important; align-items: center; justify-content: center; box-sizing: border-box;
	height: 44px; min-height: 44px; padding: 0 18px !important; line-height: 1.2 !important; text-align: center;
}
body.ps-lang-th .ps-pdp .woocommerce-tabs ul.tabs li a { line-height: 1.3 !important; padding: 0 16px !important; }
body .ps-pdp .woocommerce-tabs .woocommerce-Tabs-panel { padding: 22px 8px 8px !important; }
body .ps-pdp .woocommerce-tabs .woocommerce-Tabs-panel > h2:first-child, body .ps-pdp .woocommerce-tabs .woocommerce-Tabs-panel > :first-child { margin-top: 0 !important; }
body .ps-pdp .woocommerce-tabs .woocommerce-Tabs-panel h2 { margin: 0 0 12px !important; line-height: 1.3; }
@media (min-width: 750px) { body .ps-pdp .woocommerce-tabs .woocommerce-Tabs-panel { padding: 26px 14px 10px !important; } }
/* the phone "Read full description" toggle belongs to the description tab only */
.woocommerce-Tabs-panel[style*="display: none"] + .ps-more, .woocommerce-Tabs-panel[hidden] + .ps-more { display: none !important; }
/* lab table: words were split mid-word ("Janoshi|k", "Septembe|r"); keep words whole and let the table scroll */
body .ps-pdp .woocommerce-Tabs-panel th, body .ps-pdp .woocommerce-Tabs-panel td { overflow-wrap: normal !important; word-break: normal !important; hyphens: none; }
body .ps-pdp .woocommerce-Tabs-panel td { min-width: 8em; }

/* Trust ticker v3 (Oct 2, iPhone fix): no wide moving layer. The track itself never moves. Without JS each
   equal-width set slides -100% of its own width (lockstep); theme.js adds .is-px plus --ps-marq-w (the measured
   set width) and moves each ITEM by that distance, so every animated layer is narrower than the screen. iOS
   Safari does not fully paint very wide animated layers (the old 6,181px track on a 390px phone went blank and
   stalled). 32.31s per set = 42s / 1.3 (Jason, Oct 2: 30% faster, about 32px/s on phones). */
.ps-marq { position: relative; isolation: isolate; }
.ps-marq__track { display: flex; flex-wrap: nowrap; width: max-content; animation: none !important; transform: none !important; will-change: auto; }
.ps-marq__set { display: flex; flex: none; align-items: center; margin: 0; animation: psSet 32.31s linear infinite; will-change: transform; -webkit-backface-visibility: hidden; backface-visibility: hidden; }
.ps-marq__set > span { flex: none; }
@keyframes psSet { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-100%, 0, 0); } }
.ps-marq.is-px .ps-marq__set { animation: none; will-change: auto; }
.ps-marq.is-px .ps-marq__set > span { animation: psItem 32.31s linear infinite; will-change: transform; -webkit-backface-visibility: hidden; backface-visibility: hidden; }
@keyframes psItem { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(calc(-1 * var(--ps-marq-w, 0px)), 0, 0); } }
/* pause on hover only with a real mouse: on iPhone a tap makes :hover stick, which froze the strip */
@media (hover: hover) and (pointer: fine) {
	.ps-marq:hover .ps-marq__set, .ps-marq:hover .ps-marq__set > span { animation-play-state: paused; }
}
/* reduced motion: never a full stop (Kevin), just a much slower drift: 4x slower (168s / 1.3), about 8px/s on phones */
@media (prefers-reduced-motion: reduce) {
	.ps-marq__set { animation-duration: 129.23s; }
	.ps-marq.is-px .ps-marq__set > span { animation-duration: 129.23s; }
}

/* ==========================================================================
   FOOTER "Official accounts" (Kevin, Oct 2): chat buttons + first-row alignment
   ========================================================================== */
body .pft .pft__in { align-items: start; }
body .pft .poa--footer { margin: 0; }
body .pft .poa--footer .poa__h { display: flex; align-items: center; min-height: 32px; margin: 0 0 8px; line-height: 1; }
body .pft .poa--footer .poa__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
body .pft .poa--footer .poa__i { display: grid; gap: 6px; margin: 0; }
body .pft .poa--footer .poa__list a.poa__btn {
	display: flex; align-items: center; gap: 10px; width: 100%; min-height: 48px; padding: 0 16px; box-sizing: border-box;
	border: 1px solid var(--ps-line); border-radius: 0; background: var(--ps-paper); color: var(--ps-ink);
	font-family: var(--ps-display); font-size: 14px; font-weight: 500; line-height: 1.2; text-decoration: none;
	transition: border-color .15s ease, background-color .15s ease;
}
body .pft .poa--footer .poa__list a.poa__btn:hover { border-color: var(--ps-ink); background: var(--ps-bone); color: var(--ps-ink); }
body .pft .poa--footer .poa__list a.poa__btn:focus-visible { outline: 2px solid var(--ps-ink); outline-offset: 2px; }
body .pft .poa--footer .poa__ico { flex: none; width: 1.18em; height: 1.18em; color: inherit; fill: currentColor; } /* Oct 16 2026: single-colour glyph, inherits text colour */
body .pft .poa--footer .poa__meta { display: flex; align-items: center; gap: 12px; min-height: 18px; }
body .pft .poa--footer .poa__handle { font-family: var(--ps-mono); font-size: 12px; letter-spacing: .02em; color: var(--ps-muted); opacity: 1; }
body .pft .poa--footer .poa__qr { display: none; }
body .pft .poa--footer .poa__only { margin: 14px 0 0; font-size: 13px; color: var(--ps-body); opacity: 1; }
@media (min-width: 990px) {
	body .pft .poa--footer .poa__list a.poa__btn { min-height: 44px; }
	body .pft .poa--footer .poa__qr { display: block; width: 76px; height: 76px; image-rendering: pixelated; border: 1px solid var(--ps-line-soft); }
	/* first rows of all four columns share one 32px line: logo, first nav links, column heading */
	body .pft .pft__logo { margin: 0 0 8px; line-height: 1; }
	body .pft .pft__logo a { min-height: 32px; }
	body .pft .pft__nav li:first-child a { min-height: 32px; }
	/* optical baseline match to the 13.5px nav text (measured with tests/footer_check.js) */
	body .pft .poa--footer .poa__h { box-sizing: border-box; padding-bottom: 6px; }
}

/* ==========================================================================
   PROMO CARDS v2 (Kevin, Oct 2): live proportions inside the 1100px container
   - card height is content-driven: live's 1024/526 shape is only a min-height (from the .ps-cards container
     width); the old fixed aspect-ratio + overflow: hidden cut the CTAs off when cards got narrower (1100 container)
   - type scales with the CARD width (container query units), measured on live: heading ~5% of card width,
     sub ~2.3%, text block ~53% / art ~47%
   - box art: whole image, object-fit contain, vertically centred, never cropped
   - navy card has no art, so its text runs the full card width
   - phones: cards stacked, CTAs full width, 48px tall
   ========================================================================== */
body .ps-cards { container-type: inline-size; display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; margin-top: 0 !important; margin-bottom: 0 !important; }
body .ps-cards .ps-card {
	container-type: inline-size; --pad: 5.5cqw;
	display: grid; aspect-ratio: auto; min-width: 0; min-height: auto; height: auto; align-self: stretch;
	grid-template-columns: minmax(0, 58fr) minmax(0, 42fr); grid-template-rows: 1fr auto; grid-template-areas: "in fig" "act act";
	overflow: hidden; overflow: clip;
}
body .ps-cards .ps-card--team { grid-template-columns: minmax(0, 1fr); grid-template-areas: "in" "act"; }
body .ps-cards .ps-card .ps-card__in { grid-area: in; display: flex; flex-direction: column; align-items: flex-start; min-width: 0; padding: 22px 20px 0; }
body .ps-cards .ps-card .ps-card__kicker { margin: 0 0 10px !important; font-size: 10px; }
body .ps-cards .ps-card .ps-card__h { display: block; max-width: none; font-size: clamp(22px, 7cqw, 30px); line-height: 1; }
body .ps-cards .ps-card .ps-card__h em { color: var(--ch); }
body .ps-cards .ps-card .ps-card__sub { display: block; margin: 10px 0 0 !important; max-width: 34ch; font-size: clamp(13px, 3.8cqw, 15px); line-height: 1.5; opacity: .82; }
body .ps-cards .ps-card .ps-card__fig { grid-area: fig; position: relative; display: block; min-height: 150px; height: auto; aspect-ratio: auto; margin: 0; border-radius: 0; overflow: visible; }
body .ps-cards .ps-card .ps-card__fig img { position: absolute; inset: 0; width: 100%; height: 100%; padding: 14px 12px 0 0; box-sizing: border-box; object-fit: contain; object-position: center center; }
body .ps-cards .ps-card .ps-card__act { grid-area: act; align-self: end; display: flex; flex-direction: column; align-items: stretch; gap: 10px; margin: 0; padding: 18px 20px 20px; }
body .ps-cards .ps-card .ps-card__btn { width: 100%; height: 48px; padding: 0 20px; font-size: 14px; gap: 8px; box-sizing: border-box; }
body .ps-cards .ps-card .ps-card__btn-ic { width: 18px; height: 18px; }
body .ps-cards .ps-card--team .ps-card__act { padding-top: 20px; }
/* tablet + desktop: live layout (text left, art right, CTAs bottom-left) */
@media (min-width: 601px) {
	body .ps-cards .ps-card { min-height: calc(100cqw * 526 / 1024); grid-template-columns: minmax(0, 53fr) minmax(0, 47fr); grid-template-rows: 1fr auto; grid-template-areas: "in fig" "act fig"; }
	body .ps-cards .ps-card--team { grid-template-columns: minmax(0, 1fr); grid-template-areas: "in" "act"; }
	body .ps-cards .ps-card .ps-card__in { padding: max(20px, var(--pad)) max(20px, var(--pad)) 0; }
	body .ps-cards .ps-card .ps-card__kicker { font-size: 10.5px; margin-bottom: max(10px, 2.1cqw) !important; }
	body .ps-cards .ps-card .ps-card__h { font-size: clamp(22px, 5.05cqw, 40px); line-height: .98; }
	body .ps-cards .ps-card .ps-card__sub { margin-top: max(10px, 1.9cqw) !important; max-width: 40cqw; font-size: clamp(13px, 2.3cqw, 16px); }
	body .ps-cards .ps-card--team .ps-card__sub { max-width: 46cqw; }
	body .ps-cards .ps-card .ps-card__fig { min-height: 0; }
	body .ps-cards .ps-card .ps-card__fig img { padding: 5% 5% 5% 0; }
	body .ps-cards .ps-card .ps-card__act { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px; padding: max(16px, 3cqw) max(20px, var(--pad)) max(20px, var(--pad)); }
	body .ps-cards .ps-card .ps-card__btn { width: auto; height: 44px; padding: 0 clamp(18px, 3.4cqw, 24px); font-size: clamp(13px, 2.2cqw, 14px); }
}
@media (min-width: 990px) {
	body .ps-cards { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; }
	body .ps-cards .ps-card { min-height: calc((100cqw - 20px) / 2 * 526 / 1024); }
	body .ps-cards.ps-cards--single { grid-template-columns: minmax(0, 1fr); }
	body .ps-cards.ps-cards--single .ps-card { min-height: calc(100cqw / 2.6); }
}
/* Thai: no italic serif, taller line box */
body.ps-lang-th .ps-cards .ps-card .ps-card__h { line-height: 1.25; letter-spacing: 0; }
body.ps-lang-th .ps-cards .ps-card .ps-card__sub { line-height: 1.6; }

/* ==========================================================================
   LAB REPORTS HUB + REPORT PAGES (.plr-page, Oct 3): mobile first
   brand: ink #0E0E0F text, navy rules, tan accents, IBM Plex Mono for dates/codes/figures
   ========================================================================== */
.plr-page { --plr-line: var(--ps-line-soft); color: var(--ps-ink); overflow-wrap: break-word; }
.plr-page > p, .plr-page li { line-height: 1.65; }
.plr-page h2 { margin: 36px 0 14px; font-size: clamp(20px, 5vw, 26px); line-height: 1.2; letter-spacing: -.02em; }
.plr-page h3 { margin: 0 0 14px; font-size: 16px; line-height: 1.4; font-weight: 600; }
.plr-page time, .plr-page code { white-space: nowrap; font-family: var(--ps-mono); font-size: .92em; letter-spacing: 0; }
.plr-page code { padding: 1px 5px; background: var(--ps-bone); border: 1px solid var(--plr-line); border-radius: 0; color: var(--ps-ink); }
.plr-page a { color: var(--ps-navy); text-decoration: underline; text-decoration-color: var(--ps-tan); text-underline-offset: 3px; }
.plr-page a:hover { text-decoration-color: var(--ps-navy); }

/* tables: full width, light rules, left/top aligned */
.plr-page table { width: 100%; max-width: 100%; margin: 0 0 24px; border-collapse: collapse; border: 1px solid var(--plr-line); font-size: 14px; line-height: 1.5; table-layout: auto; }
.plr-page th, .plr-page td { padding: 10px 12px; text-align: left; vertical-align: top; border: 1px solid var(--plr-line); overflow-wrap: anywhere; word-break: normal; }
.plr-page thead th { background: var(--ps-bone); border-bottom: 1px solid var(--ps-navy); font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--ps-navy); }
.plr-page tbody th { font-weight: 600; }
/* inline links in tables + link rows: 44px tap height without changing row layout */
.plr-page td a, .plr-links a, .plr-report-img figcaption a { display: inline-flex; align-items: center; min-height: 44px; }
.plr-page td a { margin: -10px 0; }

/* per-test facts: label column ~40%, long Thai labels wrap anywhere */
.plr-facts { font-size: 14px; }
.plr-facts th[scope="row"] { width: 40%; font-weight: 500; color: var(--ps-body); background: #FCFAF7; overflow-wrap: anywhere; }
.plr-facts td { color: var(--ps-ink); }
.plr-facts td a { margin: 0; }
.plr-facts small { display: block; margin-top: 2px; font-size: 12px; line-height: 1.5; color: var(--ps-muted); }

/* lot / task anchors: not hidden under the header when jumped to (#lot-2l8886) */
.plr-lot, .plr-task { scroll-margin-top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--ps-sticky-h, 0px) + 20px); }
.plr-lot { margin-top: 36px; padding-top: 20px; border-top: 1px solid var(--ps-navy); }
.plr-lot > h2 { margin-top: 0; }
.plr-task { margin: 20px 0 0; padding-left: 14px; border-left: 3px solid var(--ps-tan); }

/* report image */
.plr-report-img { max-width: 720px; margin: 8px 0 28px; }
.plr-report-img img { display: block; box-sizing: border-box; width: 100%; max-width: 100%; height: auto; border: 1px solid var(--ps-line); background: #fff; }
.plr-report-img figcaption { margin-top: 4px; font-size: 13px; }

/* intro notes + link rows + field glossary */
.plr-verify { padding: 12px 14px; background: var(--ps-bone); border-left: 3px solid var(--ps-tan); }
.plr-links { display: flex; flex-wrap: wrap; align-items: center; gap: 0 10px; }
.plr-fields { margin: 0 0 24px; padding-left: 1.2em; }
.plr-fields li { margin: 0 0 10px; }
.plr-fields li::marker { color: var(--ps-tan-deep); }

/* research-use line (explainer, guides, lab-report pages) */
.peptsche-ruo { margin: 36px 0 0 !important; padding-top: 14px; border-top: 1px solid var(--ps-line-soft); font-family: var(--ps-mono); font-size: 12px; line-height: 1.6; letter-spacing: .02em; color: var(--ps-muted); }

/* hub + lots tables on small phones: one card per row (4 columns don't fit at 390) */
@media (max-width: 479px) {
	.plr-hub, .plr-lots { border: 0; }
	.plr-hub thead, .plr-lots thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
	.plr-hub tbody, .plr-lots tbody { display: grid; gap: 10px; }
	.plr-hub tr, .plr-lots tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 2px 12px; padding: 12px 14px; border: 1px solid var(--ps-line); border-left: 3px solid var(--ps-tan); background: #fff; }
	.plr-hub th, .plr-hub td, .plr-lots td { display: block; padding: 0; border: 0; background: none; }
	/* hub: product + date on top, then the lot link and the product's report link as full-width rows */
	.plr-hub th[scope="row"] { grid-column: 1; font-size: 15px; }
	.plr-hub td:nth-of-type(2) { grid-column: 2; grid-row: 1; color: var(--ps-muted); font-size: 13px; }
	.plr-hub td:nth-of-type(1), .plr-hub td:nth-of-type(3) { grid-column: 1 / -1; }
	/* lots: lot + date on top, the Janoshik test links below */
	.plr-lots td:nth-of-type(1) { grid-column: 1; font-weight: 600; }
	.plr-lots td:nth-of-type(2) { grid-column: 2; grid-row: 1; color: var(--ps-muted); font-size: 13px; }
	.plr-lots td:nth-of-type(3) { grid-column: 1 / -1; }
	.plr-hub td a, .plr-lots td a { margin: 0; }
	.plr-hub td:nth-of-type(1) a, .plr-hub td:nth-of-type(3) a { display: flex; width: 100%; justify-content: space-between; border-top: 1px solid var(--ps-line-soft); }
	.plr-hub td:nth-of-type(1) a::after, .plr-hub td:nth-of-type(3) a::after { content: "→"; color: var(--ps-tan-deep); text-decoration: none; }
	.plr-facts th, .plr-facts td { padding: 9px 10px; }
}
@media (min-width: 750px) {
	.plr-page h3 { font-size: 17px; }
	.plr-page th, .plr-page td { padding: 11px 14px; }
}
/* Thai: no uppercase/tracking on table heads, a little more line height */
body.ps-lang-th .plr-page thead th { text-transform: none; letter-spacing: .02em; font-size: 12.5px; }
body.ps-lang-th .plr-page th, body.ps-lang-th .plr-page td { line-height: 1.6; }
body.ps-lang-th .peptsche-ruo { letter-spacing: 0; }

/* HERO GOAL LINE (Oct 4, Jason): "Looking for:" (colon, no arrow) + rotating word on the label's baseline.
   The plugin's word window was an overflow:hidden inline-block of absolute words, so its baseline was its bottom
   edge and the word sat high. Now: an inline-grid with every word in-flow in one cell (plus an invisible strut),
   so the window has a real text baseline; clip-path does the clipping (it doesn't affect baseline or layout).
   Height = one line of the word font for every word: no jump while rotating. */
.ps-hero .pgl__a { display: none !important; }
.ps-hero .pgl__l::after { content: ":"; }
.ps-hero .pgl__in { align-items: baseline !important; gap: .3em; }
.ps-hero .pgl__win {
	display: inline-grid !important; align-self: baseline; position: relative; flex: 1 1 auto; min-width: 0 !important;
	height: auto !important; overflow: visible !important; clip-path: inset(0 -.25em 0 0); vertical-align: baseline;
	font-family: var(--ps-serif); font-style: italic; font-weight: 400; font-size: 1.16em; line-height: 1.2; letter-spacing: -.01em;
}
.ps-hero .pgl__win::before { content: "Hg"; grid-area: 1 / 1; width: 0; overflow: hidden; visibility: hidden; white-space: nowrap; }
.ps-hero .pgl__win .pgl__w { position: static !important; grid-area: 1 / 1; top: auto !important; font-size: 1em !important; line-height: inherit !important; white-space: nowrap; }
.ps-lang-th .ps-hero .pgl__win { font-family: "IBM Plex Sans Thai", sans-serif; font-style: normal; font-weight: 500; font-size: 1em; line-height: 1.5; }
.ps-lang-th .ps-hero .pgl__win::before { content: "ก้ญู"; }
