/*
Theme Name: UPA Precision
Description: Storefront theme for Ultimate Precision Anabolics.
Version: 0.2.0
Requires at least: 6.4
Requires PHP: 8.0
License: GPL-2.0-or-later
Text Domain: upa-precision
*/

/* Hallmark · macrostructure: Specimen Lightbox (custom) · tone: clinical / instrument · anchor hue: oxide red 28° on blue-black 245°
 * theme: custom · vibe: "dark instrument room, lit specimen table" · display: Bricolage Grotesque · body: Geist · readouts: Geist Mono
 * axes: dark / grotesk-sans / warm · pre-emit critique: P5 H4 E4 S5 R4 V5
 */

/* ═══ Tokens ═══════════════════════════════════════════════════════════
   The room is dark; products sit on lit panels the same grey as the photos.
   Text colours are scoped variables, so any light card flips them in one place. */
:root {
	/* Light room: the page is the photo grey, so products sit straight on it.
	   (Names kept from v0.2: --void is the page, --deck a raised surface, --bone the ink.) */
	--void: #E6EBEF;
	--deck: #F4F6F8;
	--deck-2: #FFFFFF;
	--deck-3: #DCE2E7;
	--lit: #E6EBEF;
	--lit-2: #FFFFFF;
	--lit-ink: #18202B;
	--lit-ink-2: #4A5566;
	--lit-rule: #D3DAE1;
	--bone: #18202B;
	--fog: #4A5566;
	--mute: #687482;
	--line: rgba(24, 32, 43, .12);
	--line-2: rgba(24, 32, 43, .24);
	--red: #8A3A2E;
	--red-d: #6E2C23;
	--red-hi: #8A3A2E;
	--ring: #2F5A8F;
	--ring-hi: #2F5A8F;
	--ok: #2E6B45;
	/* The blue of the logo's ring — header accent only (4.4:1 on white). */
	--logo-blue: #1F7AB8;

	/* scoped text */
	--tx: var(--bone);
	--tx-2: var(--fog);
	--tx-3: var(--mute);
	--rule: var(--line);
	--rule-2: var(--line-2);
	--field: var(--deck);
	--link: var(--ring-hi);
	--accent-tx: var(--red-hi);

	--ease: cubic-bezier(.22, .8, .16, 1);
	--f-d: "Bricolage Grotesque", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
	--f-b: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
	--f-m: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;
	--gut: 40px;
	--max: 1360px;
	--r: 2px;
	--hd-h: 84px;
	--hd-sub: 52px;
	/* Everything that sticks below the header offsets by the full two-row height. */
	--hd-total: calc(var(--hd-h) + var(--hd-sub));
}

/* Light scope: anywhere forms, long text or plugin output need ink on paper. */
.upat-light,
.upat-page__body,
.upat-page--builder,
body.upat.woocommerce-checkout #customer_details,
body.upat.woocommerce-checkout #order_review,
body.upat.woocommerce-account .woocommerce-MyAccount-content,
body.upat.woocommerce-account .woocommerce-MyAccount-navigation,
body.upat .woocommerce form.login,
body.upat .woocommerce form.register,
body.upat .woocommerce form.checkout_coupon,
body.upat .woocommerce-form-track-order,
body.upat .wp-block-woocommerce-cart,
body.upat .wp-block-woocommerce-checkout,
body.upat div.product .woocommerce-tabs,
body.upat .woocommerce-message,
body.upat .woocommerce-info,
body.upat .woocommerce-error,
body.upat .wc-block-components-notice-banner,
.upat-clock,
body.upat ul.woocommerce-order-overview,
body.upat .woocommerce-bacs-bank-details,
body.upat .woocommerce-order-details,
body.upat .woocommerce-customer-details,
body.upat .woocommerce-cart-form,
body.upat .cart-collaterals,
body.upat .select2-dropdown {
	--tx: var(--lit-ink);
	--tx-2: var(--lit-ink-2);
	--tx-3: #6B7685;
	--rule: var(--lit-rule);
	--rule-2: #B9C3CD;
	--field: #FFFFFF;
	--link: #2F5A8F;
	--accent-tx: var(--red-d);
	color: var(--tx);
	background: var(--lit-2);
}

/* ═══ Base ═══════════════════════════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--hd-total) + 24px); background: var(--void); }
html, body { overflow-x: clip; }
body {
	margin: 0;
	background: var(--void);
	color: var(--tx);
	font: 400 16px/1.6 var(--f-b);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
/* Fine grain over the whole room, fixed so it never repaints on scroll. */
body::after {
	content: ""; position: fixed; inset: 0; z-index: 90; pointer-events: none; opacity: .03; mix-blend-mode: multiply;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
img, svg, video { max-width: 100%; height: auto; }
a { color: var(--link); text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: var(--tx); }
h1, h2, h3, h4 { font-family: var(--f-d); font-style: normal; font-weight: 700; line-height: 1.04; letter-spacing: -.03em; margin: 0; text-wrap: balance; color: var(--tx); overflow-wrap: anywhere; min-width: 0; }
p { margin: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
::selection { background: var(--red); color: #fff; }
:focus-visible { outline: 2px solid var(--ring-hi); outline-offset: 3px; }
.upat-light :focus-visible, .upat-page__body :focus-visible { outline-color: var(--ring); }
.upat-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.upat-skip { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--bone); color: var(--void); padding: 10px 16px; }
.upat-skip:focus { top: 12px; color: var(--void); }
.upat-wrap { max-width: var(--max); margin-inline: auto; padding-inline: max(var(--gut), env(safe-area-inset-left, 0px)) max(var(--gut), env(safe-area-inset-right, 0px)); }
.upat-ic { width: 20px; height: 20px; flex: none; }
.upat-lock { overflow: hidden; }
.upat-num { font-family: var(--f-m); font-variant-numeric: tabular-nums; letter-spacing: -.01em; }

/* ═══ Controls ═══════════════════════════════════════════════════════════ */
.upat-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 14px;
	min-height: 52px; padding: 0 22px; border: 0; border-radius: var(--r);
	background: var(--red); color: #fff; font: 600 15px/1 var(--f-b); letter-spacing: .005em;
	text-decoration: none; white-space: nowrap; cursor: pointer;
	transition: background-color 240ms var(--ease), transform 240ms var(--ease);
}
.upat-btn:hover { background: var(--red-d); color: #fff; }
.upat-btn:active { transform: translateY(1px); }
.upat-btn .upat-ic { width: 18px; height: 18px; transition: transform 320ms var(--ease); }
.upat-btn:hover .upat-ic { transform: translateX(3px); }
.upat-btn--ghost { background: transparent; color: var(--tx); box-shadow: inset 0 0 0 1px var(--rule-2); }
.upat-btn--ghost:hover { background: var(--deck-2); color: var(--tx); }
.upat-link {
	display: inline-flex; align-items: center; gap: 10px; color: var(--tx); font: 600 15px/1 var(--f-b);
	text-decoration: none; padding-block: 10px; border-bottom: 1px solid var(--rule-2);
	transition: border-color 240ms var(--ease), gap 320ms var(--ease);
}
.upat-link:hover { color: var(--tx); border-color: var(--tx); gap: 14px; }
.upat-link .upat-ic { width: 17px; height: 17px; }
.upat-add {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 64px; min-height: 40px; padding: 0 14px; border-radius: var(--r);
	color: var(--tx); box-shadow: inset 0 0 0 1px var(--rule-2);
	font: 600 13px/1 var(--f-b); text-decoration: none; white-space: nowrap;
	transition: background-color 240ms var(--ease), color 240ms var(--ease), box-shadow 240ms var(--ease);
}
.upat-add:hover, .upat-add.added { background: var(--red); color: #fff; box-shadow: none; }
.upat-add.loading { opacity: .6; pointer-events: none; }
.upat-chip {
	display: inline-flex; align-items: center; min-height: 38px; padding: 0 14px; border-radius: var(--r);
	background: transparent; color: var(--tx); font: 500 14px/1 var(--f-b); text-decoration: none;
	box-shadow: inset 0 0 0 1px var(--rule-2); white-space: nowrap;
	transition: box-shadow 200ms var(--ease), background-color 200ms var(--ease);
}
.upat-chip:hover { box-shadow: inset 0 0 0 1px var(--tx); color: var(--tx); }
.upat-chip.is-on { background: var(--bone); color: #fff; box-shadow: none; }
/* Product photos share the page grey; a hairline keeps each one framed. */
body.upat ul.products li.product a img, .upat-spec__stage, body.upat div.product div.images, .upat-reel__it .upat-lit, .upat-srow__th, .upat-sr-row .upat-lit, .upat-ix__im { outline: 1px solid var(--line); outline-offset: -1px; }
.upat-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.upat-iconbtn {
	display: inline-flex; align-items: center; justify-content: center;
	width: 44px; height: 44px; border: 0; border-radius: var(--r); background: transparent;
	color: var(--tx); cursor: pointer; text-decoration: none; flex: none;
	transition: background-color 200ms var(--ease);
}
.upat-iconbtn:hover { background: var(--deck-2); color: var(--tx); }
kbd { font: 500 11px/1 var(--f-m); padding: 4px 6px; border-radius: 3px; box-shadow: inset 0 0 0 1px var(--rule-2); color: var(--tx-2); }

/* Lit panel: a product photo's own grey, with calibration corner marks. */
.upat-lit { position: relative; background: var(--lit); }
.upat-marks::before, .upat-marks::after {
	content: ""; position: absolute; width: 14px; height: 14px; pointer-events: none; z-index: 2;
	border: 0 solid rgba(24, 32, 43, .42);
}
.upat-marks::before { top: 10px; left: 10px; border-top-width: 1px; border-left-width: 1px; }
.upat-marks::after { bottom: 10px; right: 10px; border-bottom-width: 1px; border-right-width: 1px; }

/* ═══ Header ═════════════════════════════════════════════════════════════ */
.upat-hd-wrap { position: sticky; top: 0; z-index: 40; }
.admin-bar .upat-hd-wrap { top: 32px; }
.upat-hd {
	background: rgba(255, 255, 255, .94); border-bottom: 1px solid var(--line);
	-webkit-backdrop-filter: saturate(1.3) blur(14px); backdrop-filter: saturate(1.3) blur(14px);
}
.upat-hd__bar { display: flex; align-items: center; gap: 32px; height: var(--hd-h); transition: height 320ms var(--ease); }
.upat-hd-wrap.is-scrolled .upat-hd__bar { height: 68px; }
.upat-hd__menu { display: none; }

/* Brand: the logo, a hairline, then the full name as a quiet caption. */
.upat-brand { display: flex; align-items: center; gap: 18px; flex: none; text-decoration: none; color: var(--fog); }
.upat-brand__name {
	padding-left: 18px; border-left: 1px solid var(--line);
	font: 500 13px/1.25 var(--f-b); letter-spacing: .01em; color: var(--mute); white-space: nowrap;
	transition: opacity 240ms var(--ease);
}
.upat-brand:hover .upat-brand__name { color: var(--fog); }
.upat-hd-wrap.is-scrolled .upat-brand__name { opacity: 0; }

/* Second row: categories left, help right. Desktop only. */
.upat-hd__sub { border-top: 1px solid var(--line); }
.upat-hd__subin { display: flex; align-items: stretch; gap: 24px; height: var(--hd-sub); transition: height 320ms var(--ease); }
.upat-hd-wrap.is-scrolled .upat-hd__subin { height: 46px; }
.upat-hd__help { display: flex; align-items: stretch; margin-left: auto; }
.upat-hd__aux {
	display: inline-flex; align-items: center; gap: 9px; padding: 0 16px; position: relative;
	color: var(--fog); font: 500 13.5px/1 var(--f-b); text-decoration: none; white-space: nowrap;
	transition: color 200ms var(--ease);
}
.upat-hd__aux .upat-ic { width: 18px; height: 18px; color: var(--mute); transition: color 200ms var(--ease); }
.upat-hd__aux + .upat-hd__aux::before { content: ""; position: absolute; left: 0; top: 14px; bottom: 14px; width: 1px; background: var(--line); }
.upat-hd__aux:last-child { padding-right: 0; }
.upat-hd__aux:hover { color: var(--bone); }
.upat-hd__aux:hover .upat-ic { color: var(--logo-blue); }
.upat-hd__wa b { color: var(--bone); font-weight: 600; font-size: 13.5px; }

/* Logo: the real file, shown large on the white header. */
.upat-plate { display: block; flex: none; line-height: 0; border-radius: var(--r); }
/* Logo artwork: mark occupies x 73–606, y 154–529 of a 680×684 canvas. */
.upat-logo-crop { --lh: 64px; display: block; position: relative; overflow: hidden; width: calc(var(--lh) * 1.4213); height: var(--lh); transition: width 320ms var(--ease), height 320ms var(--ease); }
.upat-logo-crop .upat-logo { position: absolute; max-width: none; width: auto; height: calc(var(--lh) * 1.824); left: calc(var(--lh) * -.1947); top: calc(var(--lh) * -.4107); }
.upat-hd-wrap.is-scrolled .upat-hd__bar .upat-logo-crop { --lh: 50px; }
.upat-ft__brand .upat-logo-crop { --lh: 72px; }
.upat-logo--text { font: 800 18px/1 var(--f-d); color: var(--lit-ink); height: auto; }

.upat-hd__cats { display: flex; align-items: stretch; gap: 0; min-width: 0; height: 100%; margin-left: -14px; }
.upat-nl {
	position: relative; display: flex; align-items: center; color: var(--bone); text-decoration: none;
	font: 500 15px/1 var(--f-b); letter-spacing: -.005em; padding: 0 14px; white-space: nowrap; transition: color 200ms var(--ease);
}
.upat-nl::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: -1px; height: 2px; background: var(--logo-blue); transform: scaleX(0); transform-origin: left; transition: transform 360ms var(--ease); }
.upat-nl:hover { color: var(--logo-blue); }
.upat-nl:hover::after { transform: scaleX(.35); }
.upat-nl.is-cur { color: var(--bone); }
.upat-nl.is-cur::after { transform: scaleX(1); }

.upat-hd__act { display: flex; align-items: center; justify-content: flex-end; gap: 4px; flex: 1; min-width: 0; }
.upat-find {
	display: inline-flex; align-items: center; gap: 12px; height: 44px; padding: 0 10px 0 14px; margin-right: auto; flex: 0 1 400px;
	border: 0; border-radius: var(--r); background: var(--deck); box-shadow: inset 0 0 0 1px var(--line);
	color: var(--fog); font: 500 14px/1 var(--f-b); cursor: pointer; min-width: 240px; text-decoration: none;
	transition: box-shadow 200ms var(--ease), color 200ms var(--ease);
}
.upat-find:hover { box-shadow: inset 0 0 0 1px var(--line-2); color: var(--bone); }
.upat-find span { flex: 1; text-align: left; }
.upat-hd__link {
	display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 12px; border-radius: var(--r);
	color: var(--fog); font: 500 14px/1 var(--f-b); text-decoration: none; white-space: nowrap;
	transition: color 200ms var(--ease);
}
.upat-hd__link { color: var(--bone); font-weight: 600; padding: 0 16px; position: relative; }
.upat-hd__link .upat-ic { color: var(--fog); transition: color 200ms var(--ease); }
.upat-hd__link + .upat-hd__link::before { content: ""; position: absolute; left: 0; top: 10px; bottom: 10px; width: 1px; background: var(--line); }
.upat-hd__link:hover { color: var(--logo-blue); }
.upat-hd__link:hover .upat-ic { color: var(--logo-blue); }
.upat-cartbtn .upat-ic { width: 19px; height: 19px; }
.upat-cartbtn {
	position: relative; display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 7px 0 16px; margin-left: 12px;
	border-radius: var(--r); background: var(--bone); color: var(--void); font: 600 14px/1 var(--f-b); text-decoration: none;
	transition: background-color 240ms var(--ease);
}
.upat-cartbtn { color: #fff; }
.upat-cartbtn:hover { color: #fff; background: #2C3747; }
.upat-cart-count {
	min-width: 30px; height: 32px; padding: 0 8px; border-radius: 1px; background: rgba(255, 255, 255, .16);
	display: inline-flex; align-items: center; justify-content: center; font: 600 13px/1 var(--f-m); font-variant-numeric: tabular-nums;
}
.upat-cartbtn .upat-cart-count:not([data-count="0"]) { background: var(--red); color: #fff; }

/* ═══ Search overlay ═════════════════════════════════════════════════════ */
.upat-search { position: fixed; inset: 0; z-index: 70; }
.upat-search__bk { position: absolute; inset: 0; background: rgba(24, 32, 43, .34); opacity: 0; transition: opacity 260ms var(--ease); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.upat-search__p {
	position: relative; margin: 0 auto; max-width: 980px; max-height: 100dvh; overflow-y: auto; overscroll-behavior: contain;
	background: var(--deck); box-shadow: 0 0 0 1px var(--line), 0 40px 120px -40px rgba(0, 0, 0, .8);
	padding: calc(28px + env(safe-area-inset-top, 0px)) 32px 32px;
	transform: translateY(-24px); opacity: 0; transition: transform 380ms var(--ease), opacity 260ms var(--ease);
}
.upat-search.is-open .upat-search__bk { opacity: 1; }
.upat-search.is-open .upat-search__p { transform: none; opacity: 1; }
.upat-search__f { display: flex; align-items: center; gap: 14px; border-bottom: 1px solid var(--line-2); padding-bottom: 14px; }
.upat-search__f > .upat-ic { width: 26px; height: 26px; color: var(--fog); }
.upat-search__f input[type="search"] {
	flex: 1; min-width: 0; height: 64px; border: 0; background: transparent; outline: none; color: var(--bone);
	font: 600 clamp(1.5rem, 1rem + 2vw, 2.4rem)/1 var(--f-d); letter-spacing: -.025em;
}
.upat-search__f input::placeholder { color: var(--mute); }
.upat-search__f input::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; }
.upat-search__res { margin-top: 8px; }
.upat-search__res:empty { display: none; }
.upat-sr-row {
	display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 18px; align-items: center;
	padding: 10px 8px; border-bottom: 1px solid var(--line); color: var(--bone); text-decoration: none;
	transition: background-color 160ms var(--ease);
}
.upat-sr-row:hover, .upat-sr-row:focus-visible, .upat-sr-row.is-active { background: var(--deck-2); color: var(--bone); outline: none; }
.upat-sr-row .upat-lit { width: 64px; height: 64px; display: flex; align-items: center; justify-content: center; }
.upat-sr-row img { width: 88%; height: 88%; object-fit: contain; }
.upat-sr-row b { display: block; font: 700 17px/1.2 var(--f-d); letter-spacing: -.015em; }
.upat-sr-row small { display: block; font-size: 13px; color: var(--fog); margin-top: 2px; }
.upat-sr-row .p { font: 500 15px/1 var(--f-m); }
.upat-search__all { display: flex; justify-content: flex-end; padding-top: 14px; }
.upat-search__msg { padding: 18px 8px; color: var(--fog); font-size: 15px; }
.upat-search__quick { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 32px; margin-top: 28px; }
.upat-search__h { font: 500 12px/1 var(--f-m); color: var(--mute); margin-bottom: 14px; letter-spacing: .02em; }
.upat-search__cats { list-style: none; margin: 0; padding: 0; }
.upat-search__cats a { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); color: var(--bone); text-decoration: none; font: 600 16px/1.2 var(--f-d); }
.upat-search__cats a:hover { color: var(--red-hi); }
.upat-search__cats small { font: 500 12px/1.4 var(--f-m); color: var(--mute); }
.upat-search__x { margin-left: auto; }

/* ═══ Drawer (tablet + phone menu) ═══════════════════════════════════════ */
.upat-drawer { position: fixed; inset: 0; z-index: 60; }
.upat-drawer__bk { position: absolute; inset: 0; background: rgba(24, 32, 43, .34); opacity: 0; transition: opacity 260ms var(--ease); }
.upat-drawer__p {
	position: absolute; top: 0; bottom: 0; left: 0; width: min(400px, 90vw);
	background: var(--deck); box-shadow: 1px 0 0 var(--line); overflow-y: auto; overscroll-behavior: contain;
	padding: calc(14px + env(safe-area-inset-top, 0px)) 20px calc(24px + env(safe-area-inset-bottom, 0px)) max(20px, env(safe-area-inset-left, 0px));
	transform: translateX(-102%); transition: transform 360ms var(--ease);
	display: flex; flex-direction: column; gap: 22px;
}
.upat-drawer.is-open .upat-drawer__bk { opacity: 1; }
.upat-drawer.is-open .upat-drawer__p { transform: none; }
.upat-drawer__top { display: flex; align-items: center; justify-content: space-between; }
.upat-drawer__top .upat-logo-crop { --lh: 52px; }
.upat-drawer__h { font: 500 12px/1 var(--f-m); color: var(--mute); margin: 0 0 6px; }
.upat-drawer__cats, .upat-drawer__links { list-style: none; margin: 0; padding: 0; }
.upat-drawer__cats a {
	display: flex; align-items: center; justify-content: space-between; min-height: 60px; padding: 0 4px;
	font: 700 24px/1 var(--f-d); letter-spacing: -.025em; color: var(--bone); text-decoration: none; border-bottom: 1px solid var(--line);
}
.upat-drawer__cats a[aria-current="page"] { color: var(--red-hi); }
.upat-drawer__cats a small { font: 500 12px/1 var(--f-m); color: var(--mute); }
.upat-drawer__links { display: grid; gap: 2px; }
.upat-drawer__links a { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 0 4px; color: var(--fog); text-decoration: none; font-weight: 500; }
.upat-drawer__links a:hover { color: var(--bone); }

/* Plugin widgets this theme replaces: WP Chat App's button and the
   dynamic-pricing plugin's own discount table. */
.upat .wa__btn_popup, .upat .wa__popup_chat_box, .upat .wa__stt, .upat [class*="wdp_bulk_table"], .upat [class*="wdp_pricing_table"] { display: none !important; }

/* ═══ Main + reveal ══════════════════════════════════════════════════════ */
.upat-main { display: block; min-height: 50vh; }
.upat-js .upat-reveal.is-pending { opacity: 0; transform: translateY(16px); }
.upat-js .upat-reveal.is-in { opacity: 1; transform: none; transition: opacity 700ms var(--ease) var(--d, 0ms), transform 800ms var(--ease) var(--d, 0ms); }

/* ═══ Homepage · hero: the specimen viewer ═══════════════════════════════ */
.upat-hero { position: relative; padding-block: 56px 0; }
.upat-hero::before {
	content: ""; position: absolute; z-index: 0; pointer-events: none; right: -10%; top: -20%; width: 70%; height: 120%;
	background: radial-gradient(closest-side, rgba(255, 255, 255, .7), transparent 70%);
}
.upat-hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 56px; align-items: stretch; }
.upat-hero__copy { display: flex; flex-direction: column; gap: 32px; padding-top: 12px; min-width: 0; }
.upat-hero h1 {
	font-size: clamp(3.2rem, 1.2rem + 6.4vw, 7.4rem); font-weight: 800; line-height: .9; letter-spacing: -.04em; word-spacing: .04em;
	font-variation-settings: "wdth" 86, "opsz" 96;
}
.upat-hero h1 span { display: block; color: var(--red-hi); }
.upat-lede { font-size: 18px; line-height: 1.6; color: var(--fog); max-width: 44ch; }
.upat-hero__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 28px; margin-top: 8px; }

.upat-spec { display: flex; flex-direction: column; min-width: 0; }
.upat-spec__stage { aspect-ratio: 4 / 5; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.upat-spec__stage img { width: 82%; height: 82%; object-fit: contain; transition: opacity 260ms var(--ease), transform 600ms var(--ease); }
.upat-spec.is-swap .upat-spec__stage img { opacity: 0; transform: scale(.97); }
.upat-spec__tag { position: absolute; z-index: 3; left: 18px; bottom: 16px; font: 500 12px/1 var(--f-m); color: var(--lit-ink-2); }
.upat-spec__info { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 20px; align-items: end; padding: 18px 0 0; }
.upat-spec__nm { font: 700 clamp(1.4rem, 1.1rem + .9vw, 1.9rem)/1.05 var(--f-d); letter-spacing: -.03em; color: var(--bone); text-decoration: none; }
.upat-spec__nm:hover { color: var(--bone); text-decoration: underline; text-decoration-thickness: 1px; }
.upat-spec__sb { grid-column: 1; font-size: 14px; color: var(--fog); line-height: 1.4; }
.upat-spec__pr { grid-column: 2; grid-row: 1; justify-self: end; font: 500 22px/1 var(--f-m); color: var(--bone); white-space: nowrap; }
.upat-spec__info .upat-btn { grid-column: 2; grid-row: 2; min-height: 44px; padding: 0 18px; }

.upat-reel { position: relative; z-index: 1; margin-top: 48px; border-top: 1px solid var(--line-2); }
.upat-reel__h { display: flex; justify-content: space-between; gap: 16px; padding: 14px 0; font: 500 12px/1 var(--f-m); color: var(--mute); }
.upat-reel__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; background: var(--line); border-block: 1px solid var(--line); }
.upat-reel__it {
	position: relative; display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 14px; align-items: center; padding: 14px 16px 14px 14px;
	background: var(--void); color: var(--bone); text-decoration: none; border: 0; width: 100%; text-align: left; cursor: pointer; height: 100%;
	transition: background-color 200ms var(--ease);
}
.upat-reel__it:hover, .upat-reel__it.is-on { background: var(--deck); color: var(--bone); }
.upat-reel__it .upat-lit { width: 56px; height: 56px; display: flex; align-items: center; justify-content: center; }
.upat-reel__it img { width: 86%; height: 86%; object-fit: contain; }
.upat-reel__it b { display: block; font: 600 15px/1.2 var(--f-d); letter-spacing: -.01em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.upat-reel__it small { display: block; font: 500 13px/1.3 var(--f-m); color: var(--fog); margin-top: 3px; }
.upat-reel__it.is-on b { color: var(--red-hi); }
.upat-reel__it::after { content: ""; position: absolute; left: 0; right: 0; top: -1px; height: 2px; background: var(--red-hi); transform: scaleX(0); transform-origin: left; transition: transform 400ms var(--ease); }
.upat-reel__it.is-on::after { transform: scaleX(1); }

/* ═══ Homepage · sections ════════════════════════════════════════════════ */
.upat-sec { padding-block: 128px 0; }
.upat-sec__h { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 24px 56px; align-items: end; margin-bottom: 40px; }
.upat-sec__h h2 { font-size: clamp(2.2rem, 1.2rem + 3vw, 4rem); font-weight: 800; letter-spacing: -.045em; line-height: .95; font-variation-settings: "wdth" 86, "opsz" 72; }
.upat-sec__h p { font-size: 16px; color: var(--fog); max-width: 52ch; justify-self: end; text-align: right; }
.upat-sec__h p a { color: var(--bone); }

/* The index: categories as a typeset list, with the product lighting up on hover. */
.upat-index { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line-2); }
.upat-ix {
	position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 4fr) 120px 140px; gap: 32px; align-items: center;
	min-height: 132px; padding: 18px 0; border-bottom: 1px solid var(--line); color: var(--bone); text-decoration: none;
}
.upat-ix::before { content: ""; position: absolute; inset: 0 calc(var(--gut) * -1); background: var(--deck); opacity: 0; transition: opacity 260ms var(--ease); z-index: -1; }
.upat-ix:hover { color: var(--bone); }
.upat-ix:hover::before { opacity: 1; }
.upat-ix__nm { font: 700 clamp(2rem, 1.2rem + 2.4vw, 3.6rem)/.95 var(--f-d); letter-spacing: -.045em; font-variation-settings: "wdth" 84, "opsz" 72; transition: transform 500ms var(--ease), color 260ms var(--ease); }
.upat-ix:hover .upat-ix__nm { transform: translateX(10px); color: var(--red-hi); }
.upat-ix__bl { font-size: 15px; line-height: 1.5; color: var(--fog); }
.upat-ix__n { font: 500 13px/1 var(--f-m); color: var(--mute); text-align: right; }
.upat-ix__n b { display: block; font: 500 26px/1 var(--f-m); color: var(--bone); margin-bottom: 6px; }
.upat-ix__im { width: 140px; height: 104px; display: flex; align-items: center; justify-content: center; overflow: hidden; opacity: 0; transform: translateX(-12px); transition: opacity 320ms var(--ease), transform 500ms var(--ease); }
.upat-ix__im img { width: 80%; height: 86%; object-fit: contain; }
.upat-ix:hover .upat-ix__im { opacity: 1; transform: none; }
.upat-index__all .upat-ix__nm { color: var(--fog); }
@media (hover: none) { .upat-ix__im { opacity: 1; transform: none; } }

/* The strength section */
.upat-str { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 56px; align-items: start; }
.upat-str__copy { position: sticky; top: calc(var(--hd-total) + 32px); display: flex; flex-direction: column; gap: 18px; }
.upat-str__copy h2 { font-size: clamp(2.2rem, 1.2rem + 3vw, 4rem); font-weight: 800; letter-spacing: -.045em; line-height: .95; font-variation-settings: "wdth" 86, "opsz" 72; }
.upat-str__copy p { color: var(--fog); max-width: 38ch; }
.upat-str__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line-2); }
.upat-srow { display: grid; grid-template-columns: 96px minmax(0, 3fr) minmax(0, 5fr); gap: 28px; align-items: center; padding: 22px 0 26px; border-bottom: 1px solid var(--line); color: var(--bone); text-decoration: none; }
.upat-srow:hover { color: var(--bone); }
.upat-srow:hover .upat-srow__tx b { color: var(--red-hi); }
.upat-srow__th { width: 96px; height: 96px; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.upat-srow__th img { width: 86%; height: 86%; object-fit: contain; }
.upat-srow__tx { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.upat-srow__tx b { font: 700 24px/1.05 var(--f-d); letter-spacing: -.03em; transition: color 200ms var(--ease); }
.upat-srow__tx span { font-size: 13px; color: var(--fog); line-height: 1.4; }

/* How paying works: four readings along one rule. */
.upat-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); position: relative; }
.upat-steps::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 12px; background: repeating-linear-gradient(to right, var(--line-2) 0 1px, transparent 1px 2.5%); border-top: 1px solid var(--bone); }
.upat-steps li { position: relative; display: flex; flex-direction: column; gap: 12px; padding: 40px 32px 0 0; }
.upat-steps li::before { content: ""; position: absolute; left: 0; top: -6px; width: 11px; height: 11px; border-radius: 50%; background: var(--void); box-shadow: inset 0 0 0 2px var(--bone); }
.upat-steps li:first-child::before { background: var(--red-hi); box-shadow: 0 0 0 4px var(--void), 0 0 0 5px var(--red-hi); }
.upat-steps .n { font: 500 13px/1 var(--f-m); color: var(--mute); }
.upat-steps b { font: 700 24px/1.1 var(--f-d); letter-spacing: -.025em; }
.upat-steps li > span:last-child { font-size: 15px; line-height: 1.55; color: var(--fog); max-width: 30ch; }

/* ═══ The strength scale ═════════════════════════════════════════════════ */
.upat-scale { position: relative; height: 30px; border-top: 1px solid var(--tx); margin: 6px 22px 0 8px; }
.upat-scale::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 5px; background: repeating-linear-gradient(to right, var(--tx-3) 0 1px, transparent 1px 10%); }
.upat-mk { position: absolute; left: var(--x); top: -6px; width: 11px; height: 11px; border-radius: 50%; background: var(--void); box-shadow: inset 0 0 0 2px var(--tx); transform: translateX(-50%); }
.upat-light .upat-mk, .upat-lit .upat-mk { background: var(--lit-2); }
.upat-mk.is-on { background: var(--red-hi); box-shadow: 0 0 0 3px var(--void), 0 0 0 4px var(--red-hi); }
.upat-mk.is-out { box-shadow: inset 0 0 0 1px var(--tx-3); background: transparent; }
.upat-ml { position: absolute; left: var(--x); top: 12px; transform: translateX(-50%); font: 500 12px/1 var(--f-m); font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--tx-2); }
.upat-ml.is-on { color: var(--accent-tx); }
.upat-ml.is-out { color: var(--tx-3); text-decoration: line-through; }

.upat-strength { display: flex; flex-direction: column; gap: 14px; margin: 6px 0 26px; }
.upat-strength__h { font: 500 12px/1 var(--f-m); color: var(--tx-3); letter-spacing: .02em; }
.upat-strength .upat-scale { margin-inline: 8px 26px; }
.upat-opts { display: grid; grid-template-columns: repeat(min(var(--n), 3), minmax(0, 1fr)); gap: 8px; }
.upat-opt {
	display: flex; flex-direction: column; gap: 6px; min-height: 64px; padding: 12px 14px; border-radius: var(--r);
	background: transparent; box-shadow: inset 0 0 0 1px var(--rule-2); color: var(--tx); text-decoration: none;
	transition: box-shadow 200ms var(--ease), background-color 200ms var(--ease);
}
.upat-opt b { font: 700 18px/1 var(--f-d); letter-spacing: -.02em; }
.upat-opt span { font: 500 13px/1 var(--f-m); color: var(--tx-2); }
.upat-opt:hover { box-shadow: inset 0 0 0 1px var(--tx); color: var(--tx); }
.upat-opt.is-on { box-shadow: inset 0 0 0 2px var(--red-hi); background: rgba(231, 122, 102, .08); }
.upat-opt.is-out span { color: var(--tx-3); }

/* ═══ Shop archive ═══════════════════════════════════════════════════════ */
.upat-wc { padding-block: 32px 112px; }
.upat-crumbs { font: 500 12px/1.4 var(--f-m); color: var(--mute); margin-bottom: 22px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.upat-crumbs a { color: var(--fog); text-decoration: none; }
.upat-crumbs a:hover { color: var(--bone); }
.upat-crumb-sep { color: var(--mute); }
.upat-arch-h { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px 32px; flex-wrap: wrap; padding-bottom: 28px; margin-bottom: 24px; border-bottom: 1px solid var(--line-2); }
.upat-arch-h h1 { font-size: clamp(2.8rem, 1.4rem + 4.4vw, 6rem); font-weight: 800; letter-spacing: -.045em; line-height: .9; font-variation-settings: "wdth" 82, "opsz" 96; }
.upat-arch-h__n { font: 500 13px/1 var(--f-m); color: var(--fog); padding-bottom: 8px; }
.upat-catbar { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 28px; }
body.upat .woocommerce-result-count { margin: 0 0 22px; font: 500 12px/1 var(--f-m); color: var(--mute); float: none; }
body.upat .woocommerce-ordering { float: none; margin: 0 0 22px; }
body.upat .upat-wc--archive .woocommerce-result-count { display: inline-block; }
body.upat .upat-wc--archive .woocommerce-ordering { display: inline-block; margin-left: 16px; vertical-align: middle; }
body.upat select, body.upat .woocommerce-ordering select, body.upat select.orderby {
	height: 44px; padding: 0 38px 0 14px; border: 0; box-shadow: inset 0 0 0 1px var(--rule-2); border-radius: var(--r);
	background-color: var(--field); color: var(--tx); font-size: 14px;
	-webkit-appearance: none; appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%23A6B0BC' stroke-width='1.6'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 14px center;
}

body.upat ul.products {
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 20px;
	margin: 0 0 40px; padding: 0; list-style: none;
}
body.upat ul.products::before, body.upat ul.products::after { display: none; }
body.upat ul.products li.product,
body.upat ul.products[class*="columns-"] li.product,
body.upat ul.products[class*="columns-"] li.product:nth-child(2n),
body.upat ul.products[class*="columns-"] li.product.first,
body.upat ul.products[class*="columns-"] li.product.last {
	float: none; width: auto; clear: none; margin: 0; position: relative;
	display: flex; flex-direction: column; min-width: 0;
}
body.upat ul.products li.product a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; flex: 1; color: var(--tx); text-decoration: none; }
body.upat ul.products li.product a img {
	width: 100%; aspect-ratio: 1; object-fit: contain; margin: 0 0 16px; background: var(--lit); padding: 9%; border-radius: var(--r);
	transition: transform 700ms var(--ease), filter 400ms var(--ease);
}
body.upat ul.products li.product:hover a img { transform: scale(1.015); filter: brightness(1.04); }
body.upat ul.products li.product .woocommerce-loop-product__title,
body.upat ul.products li.product h2.upat-card__name { font: 700 19px/1.15 var(--f-d); letter-spacing: -.025em; padding: 0; margin: 0; color: var(--tx); }
body.upat ul.products li.product:hover h2.upat-card__name { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
body.upat .upat-card__sub { font-size: 13px; line-height: 1.45; color: var(--tx-2); padding: 4px 0 0; }
body.upat ul.products li.product .upat-scale { margin: 18px 22px 0 6px; }
body.upat ul.products li.product .upat-ml { font-size: 11px; }
body.upat ul.products li.product .price {
	display: block; margin: auto 0 0; padding: 18px 96px 0 0; color: var(--tx); font: 500 18px/1 var(--f-m);
}
body.upat ul.products li.product .price del { color: var(--tx-3); font-size: 13px; margin-right: 6px; }
body.upat ul.products li.product .price ins { text-decoration: none; }
body.upat ul.products li.product .star-rating { margin: 8px 0 0; font-size: 12px; }
body.upat ul.products li.product .button {
	position: absolute; right: 0; bottom: -4px; margin: 0;
	display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 0 14px; border-radius: var(--r);
	background: transparent; color: var(--tx); box-shadow: inset 0 0 0 1px var(--rule-2); font: 600 13px/1 var(--f-b);
	transition: background-color 240ms var(--ease), color 240ms var(--ease), box-shadow 240ms var(--ease);
}
body.upat ul.products li.product .button:hover, body.upat ul.products li.product .button.added { background: var(--red); color: #fff; box-shadow: none; opacity: 1; }
body.upat ul.products li.product .button.loading::after { display: none; }
body.upat ul.products li.product .button.loading { opacity: .6; }
body.upat ul.products li.product .added_to_cart { position: absolute; right: 0; bottom: 44px; font-size: 13px; font-weight: 600; padding: 0; color: var(--link); }
body.upat ul.products li.product.outofstock .button { color: var(--tx-3); }
body.upat ul.products li.product.outofstock img { opacity: .5; }
.upat-badge, body.upat span.onsale {
	position: absolute; top: 12px; left: 12px; z-index: 2; min-height: 0; min-width: 0; margin: 0; line-height: 1;
	background: var(--lit-ink); color: var(--lit-2); font: 500 11px/1 var(--f-m); padding: 6px 8px; border-radius: 1px;
}
body.upat span.onsale { background: var(--red); color: #fff; left: auto; right: 12px; }
body.upat nav.woocommerce-pagination ul { border: 0; display: flex; justify-content: center; gap: 4px; }
body.upat nav.woocommerce-pagination ul li { border: 0; }
body.upat nav.woocommerce-pagination ul li a, body.upat nav.woocommerce-pagination ul li span {
	min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--r);
	background: transparent; box-shadow: inset 0 0 0 1px var(--line-2); color: var(--bone); font: 500 14px/1 var(--f-m);
}
body.upat nav.woocommerce-pagination ul li a:hover { background: var(--deck-2); color: var(--bone); }
body.upat nav.woocommerce-pagination ul li span.current { background: var(--bone); color: #fff; box-shadow: none; }
.upat-catdesc { margin-top: 80px; padding-top: 32px; border-top: 1px solid var(--line); max-width: 72ch; color: var(--fog); }
.upat-catdesc h2, .upat-catdesc h3 { color: var(--bone); }

/* ═══ Single product ═════════════════════════════════════════════════════ */
body.upat div.product { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 64px; align-items: start; position: relative; }
body.upat div.product div.images, body.upat div.product div.summary { float: none; width: auto; margin: 0; }
body.upat div.product div.images { background: var(--lit); border-radius: var(--r); padding: 7%; position: sticky; top: calc(var(--hd-total) + 20px); }
body.upat div.product div.images::before, body.upat div.product div.images::after {
	content: ""; position: absolute; width: 18px; height: 18px; pointer-events: none; z-index: 2; border: 0 solid rgba(24, 32, 43, .4);
}
body.upat div.product div.images::before { top: 14px; left: 14px; border-top-width: 1px; border-left-width: 1px; }
body.upat div.product div.images::after { bottom: 14px; right: 14px; border-bottom-width: 1px; border-right-width: 1px; }
body.upat div.product div.images .flex-control-thumbs { display: flex; gap: 8px; margin-top: 16px; }
body.upat div.product div.images .flex-control-thumbs li { width: 68px; float: none; }
body.upat div.product div.images .flex-control-thumbs li img { background: var(--lit-2); opacity: .6; border-radius: 1px; }
body.upat div.product div.images .flex-control-thumbs li img.flex-active { opacity: 1; box-shadow: 0 0 0 1px var(--lit-ink); }
body.upat .woocommerce-product-gallery__trigger { top: 16px; right: 16px; }
body.upat div.product div.summary { padding-top: 4px; }
body.upat div.product .product_title { font-size: clamp(2.2rem, 1.4rem + 2.4vw, 3.8rem); font-weight: 800; letter-spacing: -.04em; line-height: .95; margin-bottom: 18px; font-variation-settings: "wdth" 84, "opsz" 96; }
body.upat div.product .product_title .upat-title-sub { display: block; margin-top: 12px; font: 500 16px/1.4 var(--f-b); letter-spacing: 0; color: var(--fog); font-variation-settings: normal; }
body.upat div.product p.price, body.upat div.product span.price { color: var(--bone); font: 500 clamp(1.7rem, 1.4rem + .8vw, 2.2rem)/1 var(--f-m); letter-spacing: -.02em; margin: 0 0 22px; }
body.upat div.product .stock { font: 500 13px/1 var(--f-m); margin: -8px 0 22px; }
body.upat div.product .stock.in-stock { color: var(--ok); }
body.upat div.product .stock.out-of-stock { color: var(--red-hi); }
body.upat .woocommerce-product-details__short-description { color: var(--fog); margin-bottom: 22px; }
body.upat div.product form.cart { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 18px; }
body.upat div.product form.cart::before, body.upat div.product form.cart::after { display: none; }
body.upat .quantity .qty, body.upat div.product form.cart .quantity input.qty {
	width: 88px; height: 56px; border: 0; box-shadow: inset 0 0 0 1px var(--rule-2); border-radius: var(--r); text-align: center; font: 500 17px/1 var(--f-m); background: var(--field); color: var(--tx);
}
body.upat div.product form.cart .quantity { float: none; margin: 0; }
body.upat div.product form.cart .button, body.upat .single_add_to_cart_button {
	flex: 1 1 220px; float: none; min-height: 56px; border-radius: var(--r); background: var(--red); color: #fff; font: 600 16px/1 var(--f-b);
	transition: background-color 240ms var(--ease), transform 240ms var(--ease);
}
body.upat div.product form.cart .button:hover { background: var(--red-d); opacity: 1; }
body.upat div.product form.cart .button:active { transform: translateY(1px); }
body.upat div.product form.cart table.variations { margin-bottom: 10px; }
body.upat div.product form.cart table.variations th, body.upat div.product form.cart table.variations td { padding: 6px 12px 6px 0; border: 0; background: none; }
.upat-eft-note { display: flex; gap: 12px; align-items: flex-start; padding: 16px 0; border-block: 1px solid var(--line); font-size: 14px; color: var(--fog); margin-bottom: 20px; }
.upat-eft-note .upat-ic { color: var(--bone); margin-top: 1px; }
.upat-eft-note a { color: var(--bone); }
body.upat div.product .product_meta { font: 500 12px/1.5 var(--f-m); color: var(--mute); display: flex; flex-direction: column; gap: 4px; padding-top: 4px; }
body.upat div.product .product_meta a { color: var(--fog); }
body.upat div.product .woocommerce-tabs, body.upat div.product .related, body.upat div.product .upsells { grid-column: 1 / -1; }
body.upat div.product .woocommerce-tabs { border-radius: var(--r); padding: 8px 48px 44px; margin-top: 40px; }
body.upat div.product .woocommerce-tabs ul.tabs { display: flex; gap: 4px; padding: 0; margin: 0 0 28px; border-bottom: 1px solid var(--rule); overflow-x: auto; scrollbar-width: none; }
body.upat div.product .woocommerce-tabs ul.tabs::before, body.upat div.product .woocommerce-tabs ul.tabs li::before, body.upat div.product .woocommerce-tabs ul.tabs li::after { display: none; }
body.upat div.product .woocommerce-tabs ul.tabs li { background: none; border: 0; border-radius: 0; margin: 0; padding: 0; }
body.upat div.product .woocommerce-tabs ul.tabs li a { display: block; padding: 20px 14px 14px; font: 600 15px/1 var(--f-b); color: var(--tx-2); border-bottom: 2px solid transparent; white-space: nowrap; text-decoration: none; }
body.upat div.product .woocommerce-tabs ul.tabs li.active a { color: var(--tx); border-bottom-color: var(--red); }
body.upat div.product .woocommerce-tabs .panel { margin: 0; max-width: 76ch; background: transparent; }
body.upat div.product .woocommerce-tabs .panel > h2:first-child { display: none; }
body.upat div.product .woocommerce-tabs .panel h2, body.upat div.product .woocommerce-tabs .panel h3 { color: var(--tx); }
body.upat .related > h2, body.upat .upsells > h2 { font-size: clamp(2rem, 1.2rem + 2vw, 3rem); font-weight: 800; letter-spacing: -.045em; margin: 96px 0 32px; font-variation-settings: "wdth" 86, "opsz" 72; }

/* Prices: proportional figures in body text, mono in readouts. */
body.upat .woocommerce-tabs .amount, body.upat .upat-page__body .amount { font-variant-numeric: normal; }
/* The tag list runs to dozens of entries per product; category and brand stay. */
body.upat div.product .product_meta .tagged_as { display: none; }
/* Any other table a plugin places in the product summary. */
body.upat div.product .summary table:not(.variations) { border-collapse: collapse; margin: 6px 0 22px; font-size: 14px; width: 100%; box-shadow: inset 0 0 0 1px var(--line-2); }
body.upat div.product .summary table:not(.variations) th, body.upat div.product .summary table:not(.variations) td { padding: 11px 16px; border: 0; border-top: 1px solid var(--line); text-align: left; color: var(--bone); background: transparent; font-family: var(--f-m); font-weight: 500; }
body.upat div.product .summary table:not(.variations) thead th, body.upat div.product .summary table:not(.variations) tr:first-child th { border-top: 0; background: var(--deck); color: var(--fog); font: 500 12px/1.3 var(--f-m); }

/* Phone buy bar */
.upat-buybar { display: none; }

/* ═══ Prose (product descriptions, pages) ════════════════════════════════ */
.upat-prose { font-size: 16px; line-height: 1.7; }
.upat-prose > * + * { margin-top: 1em; }
.upat-prose h2 { font-size: 1.6rem; margin-top: 1.6em; }
.upat-prose h3 { font-size: 1.25rem; margin-top: 1.4em; }
.upat-prose ul, .upat-prose ol { padding-left: 1.3em; }
.upat-prose li + li { margin-top: .35em; }
.upat-prose table { width: 100%; border-collapse: collapse; display: block; overflow-x: auto; }
.upat-prose th, .upat-prose td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--rule); }
body.upat div.product .woocommerce-tabs .panel [style*="font-size"] { max-width: 100%; }
body.upat div.product .woocommerce-tabs .panel img { max-width: 100%; height: auto; }

/* ═══ Pages, cart, checkout, account ═════════════════════════════════════ */
.upat-page { padding-block: 40px 112px; }
.upat-page__h { margin-bottom: 36px; padding-bottom: 28px; border-bottom: 1px solid var(--line-2); }
.upat-page__h h1 { font-size: clamp(2.6rem, 1.4rem + 3.6vw, 5.2rem); font-weight: 800; letter-spacing: -.055em; line-height: .92; font-variation-settings: "wdth" 82, "opsz" 96; }
.upat-page__body.upat-prose { border-radius: var(--r); padding: 48px; max-width: 900px; }
.upat-page--shop .upat-page__body { background: transparent; color: var(--bone); --tx: var(--bone); --tx-2: var(--fog); --tx-3: var(--mute); --rule: var(--line); --rule-2: var(--line-2); --link: var(--ring-hi); --field: var(--deck); padding: 0; max-width: none; }
.upat-page--builder { padding-block: 0; }
.upat-page__body input[type="text"], .upat-page__body input[type="email"], .upat-page__body input[type="tel"], .upat-page__body input[type="search"], .upat-page__body input[type="number"], .upat-page__body input[type="password"], .upat-page__body textarea, .upat-page__body select {
	max-width: 100%; min-height: 50px; padding: 12px 16px; border: 0; box-shadow: inset 0 0 0 1px var(--rule-2); border-radius: var(--r); background-color: var(--field); color: var(--tx); font-size: 16px;
}
.upat-page__body input:focus, .upat-page__body textarea:focus, .upat-page__body select:focus { outline: none; box-shadow: inset 0 0 0 1.5px var(--ring), 0 0 0 3px rgba(92, 134, 189, .22); }
.upat-page__body button:not([class*="wc-block"]):not(.upat-copy):not(.upat-iconbtn), .upat-page__body input[type="submit"] {
	min-height: 50px; padding: 0 26px; border: 0; border-radius: var(--r); background: var(--red); color: #fff; font: 600 15px/1 var(--f-b); cursor: pointer;
}
.upat-page__body button:not([class*="wc-block"]):not(.upat-copy):not(.upat-iconbtn):hover, .upat-page__body input[type="submit"]:hover { background: var(--red-d); }
.upat-meta { color: var(--fog); font: 500 12px/1.4 var(--f-m); margin-top: 12px; }
.upat-404 { padding-block: 80px 128px; }
.upat-404 h1 { font-size: clamp(3rem, 1.4rem + 5vw, 6.4rem); font-weight: 800; letter-spacing: -.055em; line-height: .9; }
.upat-404 p { color: var(--fog); margin-top: 18px; max-width: 48ch; }
.upat-404 .upat-btn { margin-block: 32px 40px; }

body.upat .woocommerce-notices-wrapper:empty { display: none; }
body.upat .woocommerce-message, body.upat .woocommerce-info, body.upat .woocommerce-error {
	border: 0; border-left: 3px solid var(--ok); border-radius: var(--r); padding: 16px 20px 16px 52px; margin: 0 0 24px;
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; list-style: none;
}
body.upat .woocommerce-info { border-left-color: var(--ring); }
body.upat .woocommerce-error { border-left-color: var(--red); }
body.upat .woocommerce-message::before { color: #2E6B45; top: 16px; }
body.upat .woocommerce-info::before { color: #2F5A8F; top: 16px; }
body.upat .woocommerce-error::before { color: var(--red); top: 16px; }
body.upat .woocommerce-message::after, body.upat .woocommerce-info::after { display: none; }
body.upat .woocommerce-message .button, body.upat .woocommerce-info .button { order: 2; float: none; }
body.upat .woocommerce-message a:not(.button), body.upat .woocommerce-info a:not(.button) { color: var(--link); }

body.upat .woocommerce a.button, body.upat .woocommerce button.button, body.upat .woocommerce input.button,
body.upat a.button, body.upat button.button, body.upat input.button, body.upat #respond input#submit {
	display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 22px; border-radius: var(--r);
	background: var(--tx); color: #fff; font: 600 15px/1 var(--f-b); border: 0; text-decoration: none;
	transition: background-color 240ms var(--ease), opacity 240ms var(--ease);
}
.upat-light a.button, .upat-light button.button, body.upat .woocommerce-message a.button, body.upat .woocommerce-info a.button,
body.upat .woocommerce-MyAccount-content a.button, body.upat .woocommerce-MyAccount-content button.button,
body.upat .woocommerce form.login button.button, body.upat .woocommerce form.register button.button,
body.upat .woocommerce-checkout #order_review button.button, body.upat form.checkout_coupon button.button { background: var(--lit-ink); color: #fff; }
body.upat .woocommerce a.button:hover, body.upat .woocommerce button.button:hover, body.upat a.button:hover, body.upat button.button:hover { opacity: .88; }
body.upat .woocommerce a.button.alt, body.upat .woocommerce button.button.alt, body.upat #place_order, body.upat .checkout-button {
	background: var(--red); color: #fff; min-height: 58px; font-size: 16px;
}
body.upat .woocommerce a.button.alt:hover, body.upat .woocommerce button.button.alt:hover, body.upat #place_order:hover { background: var(--red-d); opacity: 1; }

body.upat .woocommerce form .form-row { margin: 0 0 16px; padding: 0; }
body.upat .woocommerce form .form-row label { font: 600 14px/1.3 var(--f-b); margin-bottom: 6px; display: block; color: var(--tx); }
body.upat .woocommerce form .form-row .input-text, body.upat .woocommerce form .form-row select,
body.upat .woocommerce-page form .form-row .input-text, body.upat .select2-container .select2-selection--single {
	min-height: 50px; padding: 12px 14px; border: 0; box-shadow: inset 0 0 0 1px var(--rule-2); border-radius: var(--r); background-color: var(--field); color: var(--tx); font-size: 16px; line-height: 1.4;
}
body.upat .select2-container .select2-selection--single { display: flex; align-items: center; background: #fff; box-shadow: inset 0 0 0 1px #B9C3CD; }
body.upat .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--lit-ink); }
body.upat .select2-container--default .select2-selection--single .select2-selection__arrow { height: 48px; right: 8px; }
body.upat .select2-dropdown { border-color: #B9C3CD; }
body.upat .woocommerce form .form-row .input-text:focus, body.upat .woocommerce form .form-row select:focus { outline: none; box-shadow: inset 0 0 0 1.5px var(--ring), 0 0 0 3px rgba(92, 134, 189, .22); }
body.upat .woocommerce form .form-row textarea { min-height: 110px; }
body.upat .woocommerce form .form-row.woocommerce-invalid .input-text { box-shadow: inset 0 0 0 1.5px var(--red); }
body.upat.woocommerce-checkout #customer_details, body.upat.woocommerce-checkout #order_review,
body.upat.woocommerce-account .woocommerce-MyAccount-content, body.upat.woocommerce-account .woocommerce-MyAccount-navigation,
body.upat .woocommerce form.login, body.upat .woocommerce form.register {
	border-radius: var(--r); padding: 36px; border: 0; margin-top: 0;
}
body.upat .woocommerce form.checkout_coupon { border: 0; border-radius: var(--r); padding: 20px 24px; }
body.upat.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); grid-template-rows: auto 1fr; gap: 16px 24px; align-items: start; }
body.upat.woocommerce-checkout form.checkout > * { grid-column: 1 / -1; }
body.upat.woocommerce-checkout form.checkout > #customer_details { grid-column: 1; grid-row: 1 / span 2; }
body.upat.woocommerce-checkout form.checkout > #order_review_heading { grid-column: 2; grid-row: 1; margin: 0; font-size: 26px; letter-spacing: -.03em; }
body.upat.woocommerce-checkout form.checkout > #order_review { grid-column: 2; grid-row: 2; margin-top: 0; position: sticky; top: calc(var(--hd-total) + 20px); }
body.upat.woocommerce-checkout #customer_details .col-1, body.upat.woocommerce-checkout #customer_details .col-2 { float: none; width: 100%; }
body.upat.woocommerce-checkout #customer_details h3 { font-size: 24px; margin: 0 0 20px; letter-spacing: -.03em; }
body.upat table.shop_table { border: 0; border-radius: 0; border-collapse: collapse; margin: 0 0 20px; width: 100%; }
body.upat table.shop_table th, body.upat table.shop_table td { border: 0; border-top: 1px solid var(--rule); padding: 12px 0; background: transparent; }
body.upat table.shop_table thead th { border-top: 0; color: var(--tx-2); font: 500 12px/1.3 var(--f-m); }
body.upat table.shop_table .amount { font-family: var(--f-m); font-weight: 500; }
body.upat table.shop_table tfoot .order-total th, body.upat table.shop_table tfoot .order-total td { font: 700 18px/1.2 var(--f-d); border-top: 2px solid var(--tx); }
body.upat.woocommerce-checkout #order_review table.shop_table img { width: 56px !important; height: 56px !important; max-width: 56px; object-fit: contain; background: var(--lit); padding: 4px; margin: 0 12px 0 0; float: left; border-radius: 1px; }
body.upat.woocommerce-checkout #order_review table.shop_table td.product-name { font: 600 14px/1.35 var(--f-b); }
body.upat.woocommerce-checkout #payment { background: #fff; border-radius: var(--r); box-shadow: inset 0 0 0 1px var(--rule); }
body.upat.woocommerce-checkout #payment ul.payment_methods { border-bottom-color: var(--rule); padding: 16px; }
body.upat.woocommerce-checkout #payment div.payment_box { background: var(--lit-2); border-radius: var(--r); color: var(--tx-2); font-size: 14px; }
body.upat.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--lit-2); }
body.upat.woocommerce-checkout #payment div.form-row { padding: 16px; }
body.upat .woocommerce-terms-and-conditions-wrapper { font-size: 14px; }

/* Cart (block) — brand the block's own controls without restructuring it. */
body.upat .wp-block-woocommerce-cart { border-radius: var(--r); padding: 36px; }
body.upat .wc-block-components-button:not(.is-link) { border-radius: var(--r); min-height: 54px; font-weight: 600; }
body.upat .wc-block-cart__submit-button, body.upat .wc-block-components-checkout-place-order-button { background: var(--red) !important; color: #fff !important; }
body.upat .wc-block-components-product-name { font-family: var(--f-d); font-weight: 700; color: var(--tx); letter-spacing: -.015em; }
body.upat .wc-block-components-quantity-selector { border-radius: var(--r); }
body.upat .wc-block-components-product-price, body.upat .wc-block-components-totals-item__value { font-family: var(--f-m); }
body.upat .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
body.upat .wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-weight: 700; }
body.upat .wc-block-cart-items__row .wc-block-cart-item__image img { background: var(--lit); }
body.upat .wp-block-woocommerce-empty-cart-block { color: var(--tx); }

/* Account */
body.upat.woocommerce-account .woocommerce { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 24px; align-items: start; }
body.upat.woocommerce-account .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
body.upat.woocommerce-account .woocommerce-MyAccount-navigation, body.upat.woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
body.upat.woocommerce-account .woocommerce-MyAccount-navigation { padding: 12px; }
body.upat .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
body.upat .woocommerce-MyAccount-navigation a { display: block; padding: 12px 14px; border-radius: var(--r); color: var(--tx); text-decoration: none; font-weight: 500; }
body.upat .woocommerce-MyAccount-navigation a:hover { background: #fff; }
body.upat .woocommerce-MyAccount-navigation .is-active a { background: var(--lit-ink); color: #fff; font-weight: 600; }
body.upat.woocommerce-account:not(.logged-in) .woocommerce { display: block; }
body.upat .woocommerce .u-columns.col2-set { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
body.upat .woocommerce .u-columns.col2-set .col-1, body.upat .woocommerce .u-columns.col2-set .col-2 { float: none; width: auto; }
body.upat .woocommerce .u-columns h2 { color: var(--bone); font-size: 28px; letter-spacing: -.03em; margin-bottom: 16px; }

/* ═══ Order received: Order Clock + bank details ═════════════════════════ */
.upat-clock { list-style: none; margin: 0 0 24px; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-radius: var(--r); overflow: hidden; }
.upat-clock li { padding: 20px 22px 22px; display: flex; flex-direction: column; gap: 6px; border-right: 1px solid var(--rule); min-width: 0; }
.upat-clock li:last-child { border-right: 0; }
.upat-clock .n { font: 500 13px/1 var(--f-m); color: var(--tx-3); }
.upat-clock b { font: 700 17px/1.2 var(--f-d); letter-spacing: -.015em; }
.upat-clock li > span:last-child { font-size: 13px; color: var(--tx-2); line-height: 1.45; }
.upat-clock li.is-done .n { color: var(--tx); }
.upat-clock li.is-now { background: #fff; box-shadow: inset 0 3px 0 var(--red); }
.upat-clock li.is-now .n { color: var(--red); }
.upat-clock--compact li { padding: 14px 18px; flex-direction: row; align-items: baseline; gap: 10px; }
@media (max-width: 700px) { .upat-clock--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); } .upat-clock--compact li { border-right: 1px solid var(--rule); padding: 12px 14px; } .upat-clock--compact li:nth-child(even) { border-right: 0; } .upat-clock--compact li:nth-child(-n+2) { border-bottom: 1px solid var(--rule); } }
.upat-pop { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin: 0 0 32px; }
.upat-pop span { color: var(--fog); font-size: 14px; }
body.upat .woocommerce-order { display: flex; flex-direction: column; gap: 24px; }
body.upat .woocommerce-thankyou-order-received { font: 800 clamp(2rem, 1.2rem + 2.4vw, 3.4rem)/.98 var(--f-d); letter-spacing: -.045em; margin: 0; color: var(--bone); }
body.upat ul.woocommerce-order-overview {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 0; margin: 0; padding: 0; border-radius: var(--r); list-style: none; overflow: hidden;
}
body.upat ul.woocommerce-order-overview li { float: none; margin: 0; padding: 18px 22px; border: 0; border-right: 1px solid var(--rule); font: 500 12px/1.4 var(--f-m); color: var(--tx-2); text-transform: none; }
body.upat ul.woocommerce-order-overview li strong { display: block; margin-top: 6px; font: 700 18px/1.2 var(--f-d); color: var(--tx); }
body.upat .woocommerce-bacs-bank-details { border-radius: var(--r); padding: 32px 36px; }
body.upat .woocommerce-bacs-bank-details h2, body.upat .woocommerce-bacs-bank-details h3 { font-size: 24px; margin: 0 0 14px; letter-spacing: -.03em; }
body.upat ul.wc-bacs-bank-details { list-style: none; margin: 0; padding: 0; display: block; }
body.upat ul.wc-bacs-bank-details li { float: none; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin: 0; padding: 14px 0; border: 0; border-top: 1px solid var(--rule); font-size: 14px; color: var(--tx-2); text-transform: none; }
body.upat ul.wc-bacs-bank-details li strong { font: 500 20px/1.2 var(--f-m); color: var(--tx); letter-spacing: 0; }
.upat-copy { margin-left: auto; min-height: 40px; padding: 0 16px; border: 0; border-radius: var(--r); background: #fff; box-shadow: inset 0 0 0 1px var(--rule-2); color: var(--tx); font: 600 13px/1 var(--f-b); cursor: pointer; }
.upat-copy:hover { box-shadow: inset 0 0 0 1px var(--tx); }
body.upat .woocommerce-order-details, body.upat .woocommerce-customer-details { border-radius: var(--r); padding: 32px 36px; }
body.upat .woocommerce-order-details h2, body.upat .woocommerce-customer-details h2 { font-size: 24px; margin-bottom: 14px; letter-spacing: -.03em; }
body.upat .woocommerce-customer-details address { border: 0; padding: 0; }

/* ═══ Footer ═════════════════════════════════════════════════════════════ */
.upat-ft { margin-top: 128px; border-top: 1px solid var(--line-2); color: var(--fog); font-size: 14px; }
.upat-ft a { color: var(--bone); text-decoration: none; }
.upat-ft a:hover { color: var(--red-hi); }
.upat-ft a.upat-btn, .upat-ft a.upat-btn:hover { color: #fff; }
.upat-ft__call { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px 48px; align-items: end; padding-block: 72px 64px; border-bottom: 1px solid var(--line); }
.upat-ft__call p { font: 800 clamp(2.4rem, 1.2rem + 3.8vw, 5.4rem)/.92 var(--f-d); letter-spacing: -.04em; word-spacing: .04em; color: var(--bone); font-variation-settings: "wdth" 82, "opsz" 96; max-width: 14ch; }
.upat-ft__call p span { color: var(--mute); }
.upat-ft__in { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 3fr) minmax(0, 3fr); gap: 40px; padding-block: 48px; }
.upat-ft__brand { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; max-width: 40ch; line-height: 1.6; }
.upat-ft__nav { display: flex; flex-direction: column; gap: 12px; }
.upat-ft__h { font: 500 12px/1 var(--f-m); color: var(--mute); margin-bottom: 6px; letter-spacing: .02em; }
.upat-ft__base { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-block: 22px 32px; border-top: 1px solid var(--line); font: 500 12px/1.4 var(--f-m); color: var(--mute); }

/* ═══ Bulk pricing: the quantity ladder ═════════════════════════════════ */
.upat-ladder { margin: 0 0 22px; }
.upat-ladder__h { font: 500 12px/1 var(--f-m); color: var(--tx-3); letter-spacing: .02em; margin-bottom: 12px; }
.upat-ladder__list { list-style: none; margin: 0; padding: 0; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 1px; background: var(--rule-2); box-shadow: 0 0 0 1px var(--rule-2); }
.upat-rung {
	position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; width: 100%; height: 100%;
	padding: 14px 14px 13px; border: 0; background: var(--void); color: var(--tx); text-align: left; cursor: pointer;
	transition: background-color 200ms var(--ease);
}
.upat-rung:hover { background: var(--deck); }
.upat-rung .q { font: 500 12px/1 var(--f-m); color: var(--tx-2); }
.upat-rung .p { font: 500 19px/1 var(--f-m); letter-spacing: -.02em; }
.upat-rung .s { font: 600 12px/1 var(--f-b); color: var(--tx-3); }
.upat-rung::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: var(--red-hi); transform: scaleX(0); transform-origin: left; transition: transform 360ms var(--ease); }
.upat-rung.is-on { background: var(--deck-2); }
.upat-rung.is-on::before { transform: scaleX(1); }
.upat-rung.is-on .s { color: var(--red-hi); }
.upat-ladder__sum { margin-top: 12px; font: 500 13px/1.5 var(--f-m); color: var(--tx-2); min-height: 1.5em; }
.upat-ladder__sum b { color: var(--tx); font-weight: 500; }
.upat-ladder__sum em { font-style: normal; color: var(--ok); }
body.upat ul.products li.product .upat-card__tier { margin: 6px 0 0; padding-right: 96px; font: 500 12px/1.3 var(--f-m); color: var(--tx-3); }
body.upat ul.products li.product .upat-card__tier .amount { color: var(--tx-2); }

.upat-nudge { margin: 0 0 20px; padding: 18px 22px; background: var(--deck); box-shadow: inset 2px 0 0 var(--red-hi); }
.upat-nudge__h { font: 500 12px/1 var(--f-m); color: var(--mute); margin-bottom: 8px; }
.upat-nudge ul { list-style: none; margin: 0; padding: 0; }
.upat-nudge li { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 0; border-top: 1px solid var(--line); color: var(--fog); font-size: 14px; }
.upat-nudge li:first-child { border-top: 0; }
.upat-nudge li b { color: var(--bone); font-family: var(--f-d); margin-right: 6px; }
.upat-nudge .amount { color: var(--bone); font-family: var(--f-m); }

/* ═══ The U.P.A desk (WhatsApp composer) ═════════════════════════════════ */
.upat-chat { position: fixed; right: max(20px, env(safe-area-inset-right, 0px)); bottom: calc(20px + env(safe-area-inset-bottom, 0px)); z-index: 50; display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
.upat-chat__fab {
	display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 20px 0 16px; border: 0; border-radius: var(--r);
	background: var(--bone); color: #fff; font: 600 15px/1 var(--f-b); cursor: pointer;
	box-shadow: 0 18px 40px -18px rgba(24, 32, 43, .55); transition: transform 300ms var(--ease), background-color 200ms var(--ease);
}
.upat-chat__fab:hover { background: #2C3747; transform: translateY(-2px); }
.upat-chat__fab[aria-expanded="true"] { background: var(--deck-2); color: var(--bone); box-shadow: inset 0 0 0 1px var(--line-2); }
.upat-chat__p {
	width: min(400px, calc(100vw - 32px)); max-height: min(640px, calc(100dvh - 120px)); display: flex; flex-direction: column;
	background: var(--deck-2); box-shadow: 0 0 0 1px var(--line-2), 0 40px 80px -30px rgba(24, 32, 43, .45);
	transform-origin: bottom right; transform: translateY(10px) scale(.98); opacity: 0; transition: transform 320ms var(--ease), opacity 220ms var(--ease);
}
.upat-chat__p[hidden] { display: none; }
.upat-chat.is-open .upat-chat__p { transform: none; opacity: 1; }
.upat-chat__hd { display: flex; align-items: center; gap: 12px; padding: 14px 10px 14px 18px; border-bottom: 1px solid var(--line); }
.upat-chat__id { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.upat-chat__id b { font: 700 17px/1.1 var(--f-d); color: var(--bone); letter-spacing: -.015em; }
.upat-chat__id small { font: 500 12px/1.2 var(--f-m); color: var(--mute); }
.upat-chat__log { flex: 1; overflow-y: auto; padding: 18px; display: flex; flex-direction: column; gap: 10px; min-height: 96px; overscroll-behavior: contain; }
.upat-bub { align-self: flex-start; max-width: 88%; padding: 11px 14px; background: var(--deck-2); color: var(--bone); font-size: 14px; line-height: 1.5; box-shadow: inset 2px 0 0 var(--ring-hi); }
.upat-bub a { color: var(--ring-hi); }
.upat-bub { background: var(--deck); }
.upat-bub--me { align-self: flex-end; background: var(--bone); color: #fff; box-shadow: none; font-weight: 500; }
.upat-js .upat-bub.is-new { animation: upat-bub 380ms var(--ease) both; }
@keyframes upat-bub { from { opacity: 0; transform: translateY(6px); } }
.upat-chat__topics { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 18px 14px; }
.upat-topic { min-height: 36px; padding: 0 12px; border: 0; border-radius: var(--r); background: transparent; box-shadow: inset 0 0 0 1px var(--line-2); color: var(--bone); font: 500 13px/1.2 var(--f-b); cursor: pointer; text-align: left; transition: box-shadow 200ms var(--ease), background-color 200ms var(--ease); }
.upat-topic:hover { box-shadow: inset 0 0 0 1px var(--bone); }
.upat-topic.is-on { background: var(--bone); color: #fff; box-shadow: none; }
.upat-chat__f { display: flex; flex-direction: column; gap: 10px; padding: 14px 18px 18px; border-top: 1px solid var(--line); }
.upat-chat__f textarea { width: 100%; resize: vertical; min-height: 92px; padding: 12px 14px; border: 0; border-radius: var(--r); background: var(--void); box-shadow: inset 0 0 0 1px var(--line-2); color: var(--bone); font: 400 15px/1.5 var(--f-b); }
.upat-chat__f textarea:focus { outline: none; box-shadow: inset 0 0 0 1.5px var(--ring-hi); }
.upat-chat__f .upat-btn { width: 100%; }

/* ═══ Responsive: laptop / landscape tablet ══════════════════════════════ */
@media (max-width: 1280px) {
	.upat-find { min-width: 0; width: 44px; flex: none; padding: 0; justify-content: center; margin-right: 0; background: transparent; box-shadow: none; color: var(--bone); }
	.upat-find span, .upat-find kbd { display: none; }
}
@media (max-width: 1180px) {
	:root { --gut: 28px; }
	:root { --hd-sub: 0px; }
	.upat-hd__cats, .upat-hd__desk, .upat-hd__sub { display: none; }
	.upat-hd__menu { display: inline-flex; margin-left: -10px; }
	.upat-hd__bar { gap: 12px; }
	.upat-hero__grid { gap: 40px; }
	.upat-reel__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.upat-reel__list li:nth-child(n+4) { display: none; }
	.upat-ix { grid-template-columns: minmax(0, 5fr) minmax(0, 4fr) 100px; }
	.upat-ix__im { display: none; }
	body.upat ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	body.upat div.product { gap: 40px; }
}

/* ═══ Portrait tablet ════════════════════════════════════════════════════ */
@media (max-width: 960px) {
	.upat-sec { padding-block: 96px 0; }
	.upat-hero { padding-top: 36px; }
	.upat-hero__grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
	.upat-hero__copy { gap: 24px; }
	.upat-hero__cta { margin-top: 8px; }
	.upat-spec__stage { aspect-ratio: 16 / 11; }
	.upat-sec__h { grid-template-columns: minmax(0, 1fr); }
	.upat-sec__h p { justify-self: start; text-align: left; }
	.upat-ix { grid-template-columns: minmax(0, 1fr) 90px; gap: 6px 24px; min-height: 0; padding: 22px 0; }
	.upat-ix__bl { grid-column: 1; grid-row: 2; }
	.upat-ix__n { grid-column: 2; grid-row: 1 / span 2; }
	.upat-str { grid-template-columns: minmax(0, 1fr); gap: 32px; }
	.upat-str__copy { position: static; }
	.upat-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 48px; }
	.upat-steps::before { display: none; }
	.upat-steps li { border-top: 1px solid var(--bone); padding-top: 28px; }
	.upat-steps li::before { display: none; }
	body.upat div.product { grid-template-columns: minmax(0, 1fr); gap: 32px; }
	body.upat div.product > * { min-width: 0; max-width: 100%; }
	body.upat div.product div.images { position: relative; top: 0; }
	body.upat div.product .woocommerce-tabs { padding: 4px 28px 32px; }
	body.upat.woocommerce-checkout form.checkout { grid-template-columns: minmax(0, 1fr); }
	body.upat.woocommerce-checkout form.checkout > #customer_details,
	body.upat.woocommerce-checkout form.checkout > #order_review_heading,
	body.upat.woocommerce-checkout form.checkout > #order_review { grid-column: 1; grid-row: auto; position: static; margin-top: 0; }
	body.upat.woocommerce-account .woocommerce { grid-template-columns: minmax(0, 1fr); }
	.upat-ft__call { grid-template-columns: minmax(0, 1fr); }
	.upat-ft__in { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.upat-ft__brand { grid-column: 1 / -1; }
	.upat-clock { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.upat-clock li:nth-child(2) { border-right: 0; }
	.upat-clock li:nth-child(-n+2) { border-bottom: 1px solid var(--rule); }
	.upat-search__quick { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}

/* ═══ Phone ══════════════════════════════════════════════════════════════ */
@media (max-width: 700px) {
	:root { --gut: 16px; --hd-h: 72px; }
	body { font-size: 16px; }
	.upat-hd__bar, .upat-hd-wrap.is-scrolled .upat-hd__bar { height: var(--hd-h); gap: 4px; }
	.upat-hd__bar > .upat-plate { margin-right: auto; }
	.upat-brand__name { display: none; }
	.upat-cartbtn { margin-left: 4px; }
	.upat-cartbtn .upat-ic { width: 18px; height: 18px; }
	.upat-logo-crop, .upat-hd-wrap.is-scrolled .upat-hd__bar .upat-logo-crop { --lh: 52px; }
	.upat-cartbtn { padding: 0 5px 0 10px; min-height: 42px; gap: 6px; }
	.upat-cartbtn__t { display: none; }
	.upat-cart-count { height: 30px; min-width: 28px; }

	.upat-search__p { padding: calc(14px + env(safe-area-inset-top, 0px)) 16px 24px; min-height: 100dvh; }
	.upat-search__f input[type="search"] { height: 56px; font-size: 22px; }
	.upat-sr-row { grid-template-columns: 52px minmax(0, 1fr) auto; gap: 12px; padding: 10px 0; }
	.upat-sr-row .upat-lit { width: 52px; height: 52px; }
	.upat-sr-row b { font-size: 15px; }

	.upat-hero { padding-top: 24px; }
	.upat-hero h1 { font-size: clamp(2.9rem, 1rem + 10vw, 4.4rem); }
	.upat-lede { font-size: 16px; }
	.upat-hero__cta .upat-btn { flex: 1 1 100%; }
	.upat-spec__stage { aspect-ratio: 1; }
	.upat-spec__info { grid-template-columns: minmax(0, 1fr); }
	.upat-spec__pr { grid-column: 1; grid-row: auto; justify-self: start; font-size: 20px; margin-top: 4px; }
	.upat-spec__info .upat-btn { grid-column: 1; grid-row: auto; width: 100%; min-height: 50px; margin-top: 10px; }
	.upat-reel { margin-top: 36px; }
	.upat-reel__list { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-inline: calc(var(--gut) * -1); padding-inline: var(--gut); background: none; gap: 0; border: 0; }
	.upat-reel__list::-webkit-scrollbar { display: none; }
	.upat-reel__list li, .upat-reel__list li:nth-child(n+4) { display: block; flex: 0 0 72%; scroll-snap-align: start; border-block: 1px solid var(--line); border-right: 1px solid var(--line); }
	.upat-reel__list li:first-child { border-left: 1px solid var(--line); }

	.upat-sec { padding-block: 80px 0; }
	.upat-sec__h { margin-bottom: 24px; }
	.upat-ix { grid-template-columns: minmax(0, 1fr) auto; padding: 18px 0; }
	.upat-ix__nm { font-size: 34px; }
	.upat-ix__bl { font-size: 14px; }
	.upat-ix__n b { font-size: 20px; }
	.upat-ix::before { display: none; }
	.upat-srow { grid-template-columns: 64px minmax(0, 1fr); gap: 4px 16px; padding: 18px 0 22px; }
	.upat-srow__th { width: 64px; height: 64px; grid-row: span 2; }
	.upat-srow__tx b { font-size: 20px; }
	.upat-srow .upat-scale { grid-column: 2; margin: 16px 26px 0 6px; }
	.upat-steps { grid-template-columns: minmax(0, 1fr); row-gap: 0; }
	.upat-steps li { padding: 22px 0 24px; border-top: 1px solid var(--line-2); }
	.upat-steps li:first-child { border-top-color: var(--bone); }

	.upat-wc { padding-block: 20px 80px; }
	.upat-arch-h { padding-bottom: 20px; margin-bottom: 18px; }
	.upat-catbar { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(var(--gut) * -1); padding-inline: var(--gut); scrollbar-width: none; }
	.upat-catbar::-webkit-scrollbar { display: none; }
	body.upat .upat-wc--archive .woocommerce-ordering { margin-left: 0; display: block; }
	body.upat .woocommerce-ordering select { width: 100%; }
	body.upat ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 12px; }
	body.upat ul.products li.product a img { margin-bottom: 12px; padding: 7%; }
	body.upat ul.products li.product .woocommerce-loop-product__title, body.upat ul.products li.product h2.upat-card__name { font-size: 16px; }
	body.upat .upat-card__sub { font-size: 12px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
	body.upat ul.products li.product .upat-scale { margin: 14px 20px 0 6px; }
	body.upat ul.products li.product .price { padding: 14px 0 0; font-size: 15px; }
	body.upat ul.products li.product .upat-card__tier { padding-right: 0; }
	body.upat ul.products li.product .button { position: static; margin: 12px 0 0; min-height: 44px; width: 100%; }
	body.upat ul.products li.product .added_to_cart { position: static; display: block; text-align: center; margin: 8px 0 0; }

	body.upat div.product div.images { padding: 5%; }
	body.upat div.product form.cart .button { flex: 1 1 0; min-width: 0; }
	body.upat div.product form.cart .quantity input.qty { width: 76px; }
	body.upat div.product .woocommerce-tabs { padding: 0 16px 24px; margin-inline: calc(var(--gut) * -1); }
	body.upat div.product .woocommerce-tabs ul.tabs li a { padding: 18px 10px 12px; font-size: 14px; }
	.upat-opts { grid-template-columns: repeat(min(var(--n), 2), minmax(0, 1fr)); }
	.upat-ladder__list { grid-auto-flow: row; grid-auto-columns: auto; }
	.upat-rung { flex-direction: row; align-items: baseline; justify-content: space-between; padding: 14px; }
	.upat-rung .q { min-width: 3.6em; }
	.upat-rung .p { margin-left: auto; font-size: 17px; }
	.upat-rung .s { min-width: 5em; text-align: right; }
	.upat-rung::before { right: auto; bottom: 0; width: 2px; height: auto; transform: scaleY(0); transform-origin: top; }
	.upat-rung.is-on::before { transform: scaleY(1); }

	.upat-buybar {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 44; display: flex; align-items: center; gap: 12px;
		padding: 10px var(--gut) calc(10px + env(safe-area-inset-bottom, 0px)); background: rgba(255, 255, 255, .96); border-top: 1px solid var(--line-2);
		-webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
		transform: translateY(110%); transition: transform 320ms var(--ease); visibility: hidden;
	}
	.upat-buybar.is-on { transform: none; visibility: visible; }
	.upat-buybar__p { display: flex; flex-direction: column; min-width: 0; flex: 1; }
	.upat-buybar__p span { font-size: 12px; color: var(--fog); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.upat-buybar__p b { font: 500 19px/1.2 var(--f-m); color: var(--bone); }
	.upat-buybar .upat-btn { min-height: 48px; }

	.upat-nudge li { flex-direction: column; align-items: flex-start; }
	.upat-page { padding-block: 24px 80px; }
	.upat-page__h { margin-bottom: 24px; padding-bottom: 20px; }
	.upat-page__body.upat-prose { padding: 24px 18px; margin-inline: calc(var(--gut) * -1); }
	body.upat.woocommerce-checkout #customer_details, body.upat.woocommerce-checkout #order_review,
	body.upat.woocommerce-account .woocommerce-MyAccount-content, body.upat.woocommerce-account .woocommerce-MyAccount-navigation,
	body.upat .woocommerce form.login, body.upat .woocommerce form.register,
	body.upat .wp-block-woocommerce-cart, body.upat .woocommerce-bacs-bank-details,
	body.upat .woocommerce-order-details, body.upat .woocommerce-customer-details { padding: 22px 16px; }
	body.upat .woocommerce form .form-row-first, body.upat .woocommerce form .form-row-last { float: none; width: 100%; }
	body.upat .woocommerce .u-columns.col2-set { grid-template-columns: 1fr; }
	body.upat ul.woocommerce-order-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.upat-clock { grid-template-columns: 1fr; }
	.upat-clock li { flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; border-right: 0; border-bottom: 1px solid var(--rule); padding: 14px 16px; }
	.upat-clock li > span:last-child { flex-basis: 100%; padding-left: 26px; }
	.upat-pop .upat-btn { width: 100%; }

	.upat-chat { right: 12px; bottom: calc(12px + env(safe-area-inset-bottom, 0px)); }
	.upat-chat__fab { min-height: 48px; width: 48px; padding: 0; justify-content: center; }
	.upat-chat__fab span { display: none; }
	.upat-chat.is-open { left: 0; right: 0; bottom: 0; }
	.upat-chat.is-open .upat-chat__fab { display: none; }
	.upat-chat__p { width: 100%; max-height: 88dvh; padding-bottom: env(safe-area-inset-bottom, 0px); transform-origin: bottom center; }
	.single-product .upat-chat:not(.is-open) { bottom: calc(84px + env(safe-area-inset-bottom, 0px)); }

	.upat-ft { margin-top: 96px; }
	.upat-ft__call { padding-block: 48px 40px; }
	.upat-ft__call .upat-btn { width: 100%; }
	.upat-ft__in { gap: 32px; padding-block: 36px; }
}

@media (max-width: 380px) {
	body.upat ul.products li.product .button { font-size: 12px; padding: 0 8px; }
	.upat-ix__nm { font-size: 28px; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: 1ms !important; animation-duration: 1ms !important; }
	.upat-js .upat-reveal.is-pending { opacity: 1; transform: none; }
}

@media print {
	.upat-hd-wrap, .upat-buybar, .upat-drawer, .upat-search, .upat-ft, .upat-chat { display: none !important; }
	body { background: #fff; color: #000; }
	body::after { display: none; }
}

/* ═══════════════════════════════════════════════════════════════════════
   v0.3 · "Formulary" — the look layer. Clean, light, high-quality retail:
   white page, grey photo tiles with soft corners, Newsreader serif
   headlines over Instrument Sans, oxide red as the one strong colour.
   Everything below overrides the earlier layers on purpose.
   ═══════════════════════════════════════════════════════════════════════ */
:root {
	--void: #FFFFFF;
	--deck: #F4F5F7;
	--deck-2: #FFFFFF;
	--deck-3: #E9ECEF;
	--lit: #E6EBEF;
	--bone: #141A22;
	--fog: #545E6B;
	--mute: #6E7884;
	--line: rgba(20, 26, 34, .10);
	--line-2: rgba(20, 26, 34, .20);
	--red: #8A3A2E;
	--red-d: #6E2C23;
	--red-hi: #8A3A2E;
	--f-d: "Newsreader", "Iowan Old Style", Georgia, serif;
	--f-b: "Instrument Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
	--f-m: "Instrument Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
	--r: 8px;
	--r-lg: 14px;
	--max: 1320px;
	--shadow: 0 1px 2px rgba(20, 26, 34, .04), 0 12px 32px -18px rgba(20, 26, 34, .22);
}
body::after { display: none; }
body { font-feature-settings: "tnum" 0; }
h1, h2, h3, h4 { font-family: var(--f-d); font-weight: 500; letter-spacing: -.02em; font-variation-settings: normal; }
.upat-num, body.upat .price, body.upat .amount { font-variant-numeric: tabular-nums; }

/* Calibration marks and hairline photo frames belong to v0.2; soft tiles replace them. */
.upat-marks::before, .upat-marks::after,
body.upat div.product div.images::before, body.upat div.product div.images::after { display: none; }
body.upat ul.products li.product a img, .upat-spec__stage, body.upat div.product div.images,
.upat-reel__it .upat-lit, .upat-srow__th, .upat-sr-row .upat-lit, .upat-ix__im { outline: 0; }

/* Controls */
.upat-btn { border-radius: var(--r); font-weight: 600; letter-spacing: 0; }
.upat-chip, .upat-add, .upat-opt, .upat-topic, .upat-copy, .upat-iconbtn, kbd { border-radius: var(--r); }
body.upat .woocommerce a.button, body.upat .woocommerce button.button, body.upat a.button, body.upat button.button,
body.upat div.product form.cart .button, body.upat .single_add_to_cart_button, body.upat .quantity .qty,
body.upat .woocommerce form .form-row .input-text, body.upat select, body.upat .select2-container .select2-selection--single,
body.upat .wc-block-components-button:not(.is-link), body.upat .wc-block-components-quantity-selector { border-radius: var(--r) !important; }
.upat-light, .upat-page__body, body.upat .wp-block-woocommerce-cart, body.upat.woocommerce-checkout #customer_details,
body.upat.woocommerce-checkout #order_review, .upat-clock, body.upat .woocommerce-bacs-bank-details,
body.upat .woocommerce-order-details, body.upat .woocommerce-customer-details, body.upat ul.woocommerce-order-overview,
body.upat .woocommerce-message, body.upat .woocommerce-info, body.upat .woocommerce-error,
body.upat.woocommerce-account .woocommerce-MyAccount-content, body.upat.woocommerce-account .woocommerce-MyAccount-navigation,
body.upat .woocommerce form.login, body.upat .woocommerce form.register { border-radius: var(--r-lg); }
.upat-light, .upat-page__body, body.upat .wp-block-woocommerce-cart, body.upat.woocommerce-checkout #customer_details,
body.upat.woocommerce-checkout #order_review, body.upat.woocommerce-account .woocommerce-MyAccount-content,
body.upat .woocommerce form.login, body.upat .woocommerce form.register { background: var(--deck); }
.upat-page--shop .upat-page__body { background: transparent; }

/* Header */
.upat-hd { background: rgba(255, 255, 255, .96); }
.upat-find { border-radius: var(--r); background: var(--deck); box-shadow: none; height: 46px; flex-basis: 440px; }
.upat-find:hover { box-shadow: inset 0 0 0 1px var(--line-2); }
.upat-cartbtn { border-radius: var(--r); background: var(--bone); }
.upat-cart-count { border-radius: 6px; }
.upat-hd__sub { background: #FAFBFC; }
.upat-nl { font-weight: 500; }

/* Sections */
.upx-sec { padding-block: 112px; }
.upx-sec--tint { background: var(--deck); }
.upx-sec__h { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px 32px; flex-wrap: wrap; margin-bottom: 36px; }
.upx-sec__h h2 { font-size: clamp(2.1rem, 1.5rem + 1.8vw, 3.3rem); line-height: 1.02; letter-spacing: -.025em; }
.upx-more { display: inline-flex; align-items: center; gap: 10px; font: 600 15px/1 var(--f-b); color: var(--bone); text-decoration: none; padding-bottom: 6px; border-bottom: 1px solid var(--line-2); transition: gap 300ms var(--ease), border-color 200ms var(--ease); }
.upx-more:hover { gap: 14px; color: var(--bone); border-color: var(--bone); }
.upx-more .upat-ic { width: 17px; height: 17px; }

/* Hero */
.upx-hero { padding-block: 64px 96px; background: linear-gradient(180deg, #FFFFFF 0%, #FFFFFF 60%, var(--deck) 60%, var(--deck) 100%); }
.upx-hero__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 64px; align-items: center; }
.upx-hero__copy { display: flex; flex-direction: column; gap: 26px; min-width: 0; padding-bottom: 40px; }
.upx-hero h1 { font-size: clamp(2.9rem, 1.4rem + 4.2vw, 5.6rem); line-height: .98; letter-spacing: -.03em; font-weight: 500; max-width: 15ch; }
.upx-lede { font-size: 18px; line-height: 1.6; color: var(--fog); max-width: 46ch; }
.upx-search {
	display: flex; align-items: center; gap: 14px; height: 64px; padding: 0 8px 0 22px; max-width: 560px;
	background: #fff; border-radius: 12px; box-shadow: inset 0 0 0 1px var(--line-2), var(--shadow);
	color: var(--mute); text-decoration: none; font: 500 16px/1 var(--f-b);
	transition: box-shadow 240ms var(--ease);
}
.upx-search:hover { box-shadow: inset 0 0 0 1.5px var(--bone), var(--shadow); color: var(--fog); }
.upx-search .upat-ic { width: 22px; height: 22px; color: var(--bone); }
.upx-search__ph { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.upx-search__go { display: inline-flex; align-items: center; height: 48px; padding: 0 22px; border-radius: 9px; background: var(--red); color: #fff; font-weight: 600; }
.upx-pop { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; font-size: 14px; color: var(--mute); margin-top: -8px; }
.upx-pop a { color: var(--bone); font-weight: 500; text-decoration: underline; text-decoration-color: var(--line-2); text-underline-offset: 4px; }
.upx-pop a:hover { text-decoration-color: var(--bone); color: var(--bone); }
.upx-trust { list-style: none; margin: 10px 0 0; padding: 22px 0 0; border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; max-width: 600px; }
.upx-trust li { display: flex; gap: 12px; align-items: flex-start; min-width: 0; }
.upx-trust .upat-ic { width: 22px; height: 22px; color: var(--red); flex: none; margin-top: 1px; }
.upx-trust span { display: flex; flex-direction: column; gap: 2px; font-size: 13px; color: var(--mute); line-height: 1.35; }
.upx-trust b { font: 600 14px/1.25 var(--f-b); color: var(--bone); }

.upx-stage { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.upx-spec { position: relative; }
.upx-spec__img { display: flex; align-items: center; justify-content: center; aspect-ratio: 1; border-radius: 20px; background: var(--lit); overflow: hidden; box-shadow: var(--shadow); }
.upx-spec__img img { width: 86%; height: 86%; object-fit: contain; transition: opacity 260ms var(--ease), transform 700ms var(--ease); }
.upx-spec__img:hover img { transform: scale(1.025); }
.upx-spec.is-swap .upx-spec__img img { opacity: 0; transform: scale(.98); }
.upx-spec__card {
	position: absolute; left: 18px; bottom: 18px; right: 18px; max-width: 420px;
	display: flex; flex-direction: column; gap: 4px; padding: 18px 20px; border-radius: 14px;
	background: rgba(255, 255, 255, .92); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	box-shadow: 0 10px 30px -14px rgba(20, 26, 34, .35);
}
.upx-spec__tag { font: 600 12px/1 var(--f-b); color: var(--red); letter-spacing: .02em; margin-bottom: 4px; }
.upx-spec__nm { font: 500 26px/1.1 var(--f-d); letter-spacing: -.015em; color: var(--bone); text-decoration: none; }
.upx-spec__nm:hover { color: var(--bone); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.upx-spec__sb { font-size: 14px; color: var(--fog); }
.upx-spec__row { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 10px; }
.upx-spec__pr { font: 600 20px/1 var(--f-b); color: var(--bone); font-variant-numeric: tabular-nums; }
.upx-spec__row .upat-btn { min-height: 44px; padding: 0 18px; font-size: 14px; }
.upx-reel { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.upx-reel__it { display: block; width: 100%; aspect-ratio: 1; padding: 0; border: 0; border-radius: 12px; background: var(--lit); cursor: pointer; overflow: hidden; box-shadow: inset 0 0 0 2px transparent; transition: box-shadow 220ms var(--ease), transform 300ms var(--ease); }
.upx-reel__it img { width: 100%; height: 100%; object-fit: contain; padding: 10%; mix-blend-mode: multiply; }
.upx-reel__it:hover { transform: translateY(-2px); }
.upx-reel__it.is-on { box-shadow: inset 0 0 0 2px var(--bone); }

/* Categories */
.upx-cats { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.upx-cat { display: flex; flex-direction: column; height: 100%; border-radius: 16px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); text-decoration: none; color: var(--bone); overflow: hidden; transition: box-shadow 300ms var(--ease), transform 400ms var(--ease); }
.upx-cat:hover { color: var(--bone); transform: translateY(-3px); box-shadow: inset 0 0 0 1px var(--line), var(--shadow); }
.upx-cat__img { display: flex; align-items: center; justify-content: center; aspect-ratio: 16 / 11; background: var(--lit); overflow: hidden; }
.upx-cat__img img { width: 72%; height: 86%; object-fit: contain; transition: transform 700ms var(--ease); }
.upx-cat:hover .upx-cat__img img { transform: scale(1.04); }
.upx-cat__tx { display: flex; flex-direction: column; gap: 6px; padding: 20px 22px 24px; }
.upx-cat__nm { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; font: 500 28px/1.1 var(--f-d); letter-spacing: -.015em; }
.upx-cat__nm small { font: 500 13px/1 var(--f-b); color: var(--mute); letter-spacing: 0; white-space: nowrap; }
.upx-cat__bl { font-size: 14px; line-height: 1.5; color: var(--fog); }

/* Product cards (every grid on the site) */
body.upat ul.products { gap: 28px 20px; }
body.upat ul.products li.product,
body.upat ul.products[class*="columns-"] li.product { background: #fff; border-radius: 16px; padding: 10px 10px 16px; box-shadow: inset 0 0 0 1px var(--line); transition: box-shadow 300ms var(--ease), transform 400ms var(--ease); }
.upx-sec--tint body.upat ul.products li.product, .upx-sec--tint ul.products li.product { box-shadow: none; }
body.upat ul.products li.product:hover { transform: translateY(-3px); box-shadow: inset 0 0 0 1px var(--line), var(--shadow); }
body.upat ul.products li.product a img { border-radius: 10px; margin: 0 0 16px; padding: 8%; }
body.upat ul.products li.product:hover a img { transform: none; filter: none; }
body.upat ul.products li.product a.woocommerce-LoopProduct-link { padding: 0 6px; }
body.upat ul.products li.product .woocommerce-loop-product__title,
body.upat ul.products li.product h2.upat-card__name { font: 600 16px/1.3 var(--f-b); letter-spacing: -.005em; }
body.upat ul.products li.product:hover h2.upat-card__name { text-decoration: none; }
body.upat .upat-card__sub { font-size: 13px; color: var(--mute); }
body.upat ul.products li.product .price { font: 600 17px/1 var(--f-b); padding: 16px 0 0; }
body.upat ul.products li.product .upat-card__tier { padding-right: 0; font: 500 12.5px/1.3 var(--f-b); color: var(--ok); }
body.upat ul.products li.product .upat-card__tier .amount { color: var(--ok); font-weight: 600; }
body.upat ul.products li.product .button { position: static; margin: 14px 6px 0; min-height: 44px; border-radius: var(--r); background: var(--bone); color: #fff; box-shadow: none; font-size: 14px; }
body.upat ul.products li.product .button:hover, body.upat ul.products li.product .button.added { background: var(--red); }
body.upat ul.products li.product .added_to_cart { position: static; display: block; text-align: center; margin: 10px 0 0; }
body.upat ul.products li.product .upat-scale { margin: 16px 20px 0 6px; }
.upat-badge { border-radius: 6px; font-family: var(--f-b); }

/* Bulk band */
.upx-bulk { background: var(--red); color: #fff; padding-block: 104px; overflow: hidden; }
.upx-bulk__in { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 64px; align-items: center; }
.upx-bulk__copy { display: flex; flex-direction: column; align-items: flex-start; gap: 22px; }
.upx-bulk__copy h2 { color: #fff; font-size: clamp(2.4rem, 1.4rem + 3vw, 4.4rem); line-height: 1; letter-spacing: -.03em; max-width: 13ch; }
.upx-bulk__copy p { color: rgba(255, 255, 255, .82); font-size: 17px; line-height: 1.6; max-width: 46ch; }
.upx-btn--light { background: #fff; color: var(--red); }
.upx-btn--light:hover { background: #F6ECEA; color: var(--red-d); }
.upx-bulk__card { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 6px 22px; align-items: center; padding: 22px; border-radius: 20px; background: #fff; color: var(--bone); text-decoration: none; box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .45); transform: rotate(-1.5deg); transition: transform 500ms var(--ease); }
.upx-bulk__card:hover { transform: rotate(0); color: var(--bone); }
.upx-bulk__img { grid-row: span 2; width: 120px; height: 120px; border-radius: 12px; background: var(--lit); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.upx-bulk__img img { width: 88%; height: 88%; object-fit: contain; }
.upx-bulk__nm { font: 500 24px/1.1 var(--f-d); }
.upx-bulk__rows { display: flex; flex-direction: column; }
.upx-bulk__r { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 12px; align-items: baseline; padding: 9px 0; border-top: 1px solid var(--line); font-size: 14px; color: var(--fog); }
.upx-bulk__r b { font: 600 17px/1 var(--f-b); color: var(--bone); font-variant-numeric: tabular-nums; }
.upx-bulk__r em { font-style: normal; font-weight: 600; font-size: 12.5px; color: var(--mute); }
.upx-bulk__r.is-best b, .upx-bulk__r.is-best em { color: var(--ok); }

/* Steps */
.upx-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; counter-reset: s; }
.upx-steps li { display: flex; flex-direction: column; gap: 10px; padding: 26px 24px 28px; border-radius: 16px; background: var(--deck); }
.upx-steps .n { font: 400 64px/1 var(--f-d); color: var(--red); letter-spacing: -.03em; margin-bottom: 14px; }
.upx-steps b { font: 600 18px/1.25 var(--f-b); }
.upx-steps li > span:last-child { font-size: 15px; line-height: 1.55; color: var(--fog); }

/* Archive, product, pages: serif titles at a calmer weight */
.upat-arch-h { border-bottom: 0; padding-bottom: 8px; }
.upat-arch-h h1, .upat-page__h h1, body.upat div.product .product_title, .upat-404 h1 { font-weight: 500; letter-spacing: -.025em; line-height: 1.02; }
.upat-page__h { border-bottom: 0; padding-bottom: 0; }
body.upat div.product .product_title .upat-title-sub { font-family: var(--f-b); }
body.upat div.product div.images { border-radius: 20px; }
body.upat div.product p.price, body.upat div.product span.price { font: 600 clamp(1.6rem, 1.3rem + .6vw, 2rem)/1 var(--f-b); }
.upat-ladder__list { border-radius: 12px; overflow: hidden; }
.upat-rung { background: #fff; }
.upat-rung .p { font-family: var(--f-b); font-weight: 600; }
.upat-rung.is-on { background: #FBF3F1; }
.upat-crumbs { font-family: var(--f-b); }
.upat-catbar .upat-chip { min-height: 40px; }
.upat-nudge { border-radius: 12px; background: #FBF3F1; box-shadow: none; }
.upat-eft-note { border: 0; background: var(--deck); border-radius: 12px; padding: 14px 16px; }

/* Footer */
.upat-ft { background: var(--deck); border-top: 0; margin-top: 0; }
.upat-ft__call { border-bottom: 1px solid var(--line); }
.upat-ft__call p { font-weight: 500; letter-spacing: -.025em; }
.upat-ft__call p span { color: var(--red); }

/* Chat desk */
.upat-chat__fab { border-radius: 999px; padding: 0 20px 0 16px; }
.upat-chat__p { border-radius: 18px; overflow: hidden; }
.upat-bub { border-radius: 12px; box-shadow: none; }

@media (max-width: 1280px) {
	.upat-find { width: auto; min-width: 0; padding: 0 14px; justify-content: flex-start; background: var(--deck); color: var(--fog); margin-right: auto; flex: 1 1 360px; }
	.upat-find span { display: block; }
}
@media (max-width: 700px) {
	.upat-find { flex: 0 0 44px; width: 44px; padding: 0; justify-content: center; background: transparent; color: var(--bone); margin-right: 0; }
	.upat-find span, .upat-find kbd { display: none; }
}
@media (max-width: 1180px) {
	.upx-hero__grid { gap: 40px; }
	.upx-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.upx-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
	.upx-hero { padding-block: 32px 64px; background: #fff; }
	.upx-hero__grid { grid-template-columns: minmax(0, 1fr); }
	.upx-hero__copy { padding-bottom: 0; }
	.upx-hero h1 { max-width: 14ch; }
	.upx-bulk__in { grid-template-columns: minmax(0, 1fr); gap: 40px; }
	.upx-bulk__card { max-width: 520px; transform: none; }
	.upx-sec { padding-block: 80px; }
}
@media (max-width: 700px) {
	.upx-hero h1 { font-size: clamp(2.5rem, 1.2rem + 7vw, 3.4rem); }
	.upx-lede { font-size: 16px; }
	.upx-search { height: 58px; padding-left: 16px; }
	.upx-search__go { height: 44px; padding: 0 16px; }
	.upx-trust { grid-template-columns: minmax(0, 1fr); gap: 14px; }
	.upx-spec__img { border-radius: 16px; }
	.upx-spec__card { position: relative; left: auto; right: auto; bottom: auto; max-width: none; margin-top: -28px; margin-inline: 12px; }
	.upx-spec__nm { font-size: 22px; }
	.upx-reel { gap: 8px; }
	.upx-reel__it { border-radius: 10px; }
	.upx-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.upx-cat { border-radius: 14px; }
	.upx-cat__tx { padding: 14px 14px 16px; }
	.upx-cat__nm { flex-direction: column; align-items: flex-start; gap: 4px; font-size: 21px; }
	.upx-cat__bl { display: none; }
	.upx-sec { padding-block: 64px; }
	.upx-sec__h { margin-bottom: 22px; }
	body.upat ul.products li.product, body.upat ul.products[class*="columns-"] li.product { padding: 6px 6px 12px; border-radius: 14px; }
	body.upat ul.products li.product .button { margin: 12px 4px 0; }
	.upx-bulk { padding-block: 72px; }
	.upx-bulk__card { grid-template-columns: 84px minmax(0, 1fr); padding: 16px; }
	.upx-bulk__img { width: 84px; height: 84px; }
	.upx-bulk__nm { font-size: 20px; }
	.upx-steps { grid-template-columns: minmax(0, 1fr); gap: 12px; }
	.upx-steps li { flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 4px 16px; padding: 20px; }
	.upx-steps .n { font-size: 40px; margin: 0; }
	.upx-steps li > span:last-child { flex-basis: 100%; }
}

/* ═══════════════════════════════════════════════════════════════════════
   v0.4 · "Megastore" — deal-led retail. Grey ground, white cards, Oswald
   uppercase headings over Figtree, logo blue for search and add to cart,
   deal red for the cart and savings, green for bulk prices, a black
   category bar. Overrides every layer above on purpose.
   ═══════════════════════════════════════════════════════════════════════ */
:root {
	--mx-ground: #F2F3F5;
	--mx-card: #FFFFFF;
	--mx-ink: #15191E;
	--mx-mute: #646B75;
	--mx-line: #E1E4E8;
	--mx-blue: #1F7AB8;
	--mx-blue-d: #16568A;
	--mx-red: #A63A2A;
	--mx-red-d: #86301F;
	--mx-green: #1C7A4A;
	--mx-pink: #F3B6AC;
	--void: #FFFFFF;
	--deck: #F2F3F5;
	--bone: #15191E;
	--fog: #646B75;
	--mute: #646B75;
	--red: #A63A2A;
	--red-d: #86301F;
	--ok: #1C7A4A;
	--logo-blue: #1F7AB8;
	--f-d: "Oswald", "Arial Narrow", Impact, sans-serif;
	--f-b: "Figtree", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
	--f-m: "Figtree", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
	--r: 10px;
	--r-lg: 14px;
	--mx-r-xl: 20px;
	--mx-shadow: 0 1px 2px rgba(21, 25, 30, .05), 0 10px 28px -16px rgba(21, 25, 30, .28);
	--max: 1360px;
}
body.upat { background: var(--mx-ground); color: var(--mx-ink); font-family: var(--f-b); }
h1, h2, h3, h4 { font-family: var(--f-d); font-weight: 600; text-transform: uppercase; letter-spacing: .005em; line-height: 1.02; }
.upat-arch-h h1, .upat-page__h h1, .upat-404 h1 { font-weight: 600; letter-spacing: .005em; }
body.upat div.product .product_title { font-family: var(--f-d); font-weight: 600; text-transform: uppercase; letter-spacing: .005em; }
body.upat div.product .product_title .upat-title-sub { text-transform: none; font-weight: 500; }

/* Buttons */
.upat-btn { background: var(--mx-blue); color: #fff; border-radius: var(--r); font-weight: 700; }
.upat-btn:hover { background: var(--mx-blue-d); color: #fff; }
body.upat .woocommerce a.button, body.upat .woocommerce button.button, body.upat a.button, body.upat button.button,
body.upat div.product form.cart .button, body.upat .single_add_to_cart_button,
body.upat .wc-block-components-button:not(.is-link) { background: var(--mx-blue) !important; color: #fff !important; font-weight: 700; }
body.upat .woocommerce a.button:hover, body.upat .woocommerce button.button:hover, body.upat a.button:hover, body.upat button.button:hover,
body.upat div.product form.cart .button:hover, body.upat .wc-block-components-button:not(.is-link):hover { background: var(--mx-blue-d) !important; }
.umx-btn { display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 24px; border-radius: 12px; font: 700 16px/1 var(--f-b); text-decoration: none; white-space: nowrap; transition: background-color 200ms ease, transform 200ms ease; }
.umx-btn .upat-ic { width: 18px; height: 18px; }
.umx-btn--white { background: #fff; color: var(--mx-red); }
.umx-btn--blue { background: var(--mx-blue); color: #fff; }
.umx-btn--blue:hover { background: var(--mx-blue-d); color: #fff; }
.umx-pill { display: inline-flex; align-items: center; align-self: flex-start; min-height: 30px; padding: 0 14px; border-radius: 999px; background: #fff; color: var(--mx-red); font: 800 12.5px/1 var(--f-b); letter-spacing: .06em; text-transform: uppercase; }
.umx-pill--red { background: var(--mx-red); color: #fff; }

/* ── Header ─────────────────────────────────────────────────────────────── */
.umx-util { background: #fff; border-bottom: 1px solid var(--mx-line); font-size: 13px; color: var(--mx-mute); }
.umx-util__in { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 38px; }
.umx-util p { display: flex; align-items: center; gap: 10px; margin: 0; white-space: nowrap; }
.umx-util b { color: var(--mx-ink); font-weight: 700; }
.umx-util a { color: var(--mx-ink); font-weight: 600; text-decoration: none; }
.umx-util a:hover { color: var(--mx-blue); }
.umx-util__r { gap: 22px !important; }

.upat-hd { background: #fff; border-bottom: 0; -webkit-backdrop-filter: none; backdrop-filter: none; }
.upat-hd-wrap { box-shadow: 0 1px 0 var(--mx-line); }
.umx-hd__bar, .upat-hd-wrap.is-scrolled .umx-hd__bar { display: flex; align-items: center; gap: 28px; height: auto; padding-block: 14px; }
.upat-hd-wrap.is-scrolled .umx-hd__bar { padding-block: 8px; }
.upat-hd-wrap { overflow-anchor: none; }
/* Product cards v2: all white, photo on white, even 16px inner spacing,
   names reserve two lines so prices and buttons line up across a row. */
body.upat ul.products li.product,
body.upat ul.products[class*="columns-"] li.product { padding: 16px; gap: 0; background: #fff; }
body.upat ul.products li.product a.woocommerce-LoopProduct-link { padding: 0; }
body.upat ul.products li.product a img,
body.upat ul.products li.product a img.attachment-woocommerce_thumbnail { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; margin: 0 0 14px; padding: 4%; border-radius: 0; background: transparent; mix-blend-mode: normal; }
body.upat ul.products li.product h2.upat-card__name { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.5em; }
body.upat ul.products li.product .upat-card__sub { min-height: 1.4em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.upat ul.products li.product .upat-scale { margin: 18px 22px 8px 6px; }
body.upat ul.products li.product .button { width: 100%; margin: 16px 0 0; }
body.upat ul.products li.product .added_to_cart { margin: 10px 0 0; color: var(--mx-blue-d); font-weight: 700; }
.umx-save { top: 16px; left: 16px; }
.upat-mk.is-on { background: var(--mx-blue); box-shadow: 0 0 0 3px #fff, 0 0 0 4px var(--mx-blue); }
.upat-ml.is-on { color: var(--mx-blue-d); font-weight: 700; }
.upat-opt.is-on, .upat-opt[aria-current] { box-shadow: inset 0 0 0 2px var(--mx-blue); }
/* Product page, cart and search photos sit on white too. */
body.upat div.product div.images, body.upat div.product div.images img,
body.upat .woocommerce-product-gallery__image, body.upat .flex-control-thumbs img,
.upat-sr-row .upat-lit, .upat-bulk__img, .umx-bulk__img, .wc-block-cart-item__image img, body.upat .woocommerce-checkout-review-order-table img { background: #fff !important; }
.umx-bulk__img img { mix-blend-mode: normal; }
.umx-circle img.is-blend { width: 72%; height: 72%; object-fit: contain; mix-blend-mode: normal; filter: drop-shadow(0 8px 10px rgba(21, 25, 30, .18)); }
@media (max-width: 700px) {
	body.upat ul.products li.product, body.upat ul.products[class*="columns-"] li.product { padding: 10px; }
	body.upat ul.products li.product .button { margin-top: 12px; }
	.umx-save { top: 10px; left: 10px; }
	body.upat ul.products li.product .upat-scale { margin: 16px 18px 6px 4px; }
}

/* Product cards v3: every card in a grid is the same height, and every
   Add to cart button is the same size with the same padding, pinned to
   the bottom of its card. */
body.upat ul.products { align-items: stretch; grid-auto-rows: 1fr; }
body.upat ul.products::before, body.upat ul.products::after { display: none !important; }
body.upat ul.products li.product,
body.upat ul.products[class*="columns-"] li.product { display: flex !important; flex-direction: column; height: 100%; margin: 0 !important; float: none !important; width: auto !important; box-sizing: border-box; }
body.upat ul.products li.product a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; flex: 1 1 auto; }
body.upat ul.products li.product .price { margin-top: auto; }
body.upat ul.products li.product a.woocommerce-LoopProduct-link:not(:has(.upat-card__tier)) .price { margin-bottom: calc(6px + 1.3em); }
body.upat ul.products li.product .upat-card__tier { min-height: 1.3em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.upat ul.products li.product .button,
body.upat ul.products li.product a.button,
body.upat ul.products li.product .add_to_cart_button,
body.upat ul.products li.product .product_type_variable,
body.upat ul.products li.product .product_type_simple {
	flex: none; box-sizing: border-box; display: flex !important; align-items: center; justify-content: center;
	width: 100% !important; height: 48px; min-height: 48px; margin: 16px 0 0 !important; padding: 0 16px !important;
	border: 0 !important; border-radius: 10px !important; font: 700 15px/1 var(--f-b) !important; letter-spacing: 0;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: center;
}
body.upat ul.products li.product .button.loading { opacity: .7; }
body.upat ul.products li.product .button::after { margin-left: 8px; }
body.upat ul.products li.product .added_to_cart { display: none !important; }
@media (max-width: 700px) {
	body.upat ul.products li.product .button,
	body.upat ul.products li.product a.button,
	body.upat ul.products li.product .add_to_cart_button { height: 44px; min-height: 44px; margin-top: 12px !important; padding: 0 10px !important; font-size: 14px !important; }
}

/* Product cards v4: fixed slots so every card is identical in size.
   Photo frame is a fixed square; name 2 lines; descriptor 1 line; the
   strength-scale row is reserved even when a product has no scale. */
.umx-thumb { position: relative; display: block; width: 100%; aspect-ratio: 1 / 1; margin: 0 0 14px; overflow: hidden; }
body.upat ul.products li.product .umx-thumb img,
body.upat ul.products li.product a .umx-thumb img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none; aspect-ratio: auto; margin: 0 !important; padding: 5% !important; box-sizing: border-box; object-fit: contain; background: transparent; opacity: 1; }
body.upat ul.products li.product h2.upat-card__name { height: 2.5em; min-height: 0; margin: 0; line-height: 1.25; }
body.upat ul.products li.product .upat-card__sub { height: 1.45em; min-height: 0; margin: 4px 0 0; line-height: 1.45; }
body.upat ul.products li.product .upat-scale { height: 30px; margin: 18px 22px 8px 6px; }
body.upat ul.products li.product a.woocommerce-LoopProduct-link:not(:has(.upat-scale)) .upat-card__sub { margin-bottom: 57px; }
body.upat ul.products li.product .price { margin-top: 0; padding-top: 14px; height: 38px; box-sizing: border-box; line-height: 24px; }
body.upat ul.products li.product .upat-card__tier { height: 1.3em; margin: 6px 0 0; }
body.upat ul.products li.product a.woocommerce-LoopProduct-link:not(:has(.upat-card__tier)) .price { margin-bottom: calc(6px + 1.3em); }
/* Out of stock: same card, quiet photo, grey button. */
body.upat ul.products li.product.outofstock { opacity: 1; filter: none; background: #fff; }
body.upat ul.products li.product.outofstock .umx-thumb img { opacity: .45 !important; }
body.upat ul.products li.product.outofstock .button { background: #E9ECEF !important; color: var(--mx-ink) !important; }
body.upat ul.products li.product.outofstock .button:hover { background: #DDE1E6 !important; }
.upat-badge { top: 16px !important; left: 16px !important; padding: 0 10px !important; min-height: 26px !important; display: inline-flex !important; align-items: center; border-radius: 7px !important; font: 800 12px/1 var(--f-b) !important; }

/* My account: menu fixed on the left, content on the right, anything else
   (notices, plugin extras) full width above, so nothing can push the menu
   into the wrong column. */
body.upat.woocommerce-account .upat-page__h h1, body.upat.woocommerce-cart .upat-page__h h1, body.upat.woocommerce-checkout .upat-page__h h1 { font-size: clamp(2rem, 1.4rem + 2vw, 3rem); }
body.upat.woocommerce-account .upat-page__body { background: transparent !important; box-shadow: none !important; padding: 0 !important; }
body.upat.woocommerce-account.logged-in .woocommerce { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 24px; align-items: start; }
body.upat.woocommerce-account.logged-in .woocommerce > * { grid-column: 1 / -1; }
body.upat.woocommerce-account.logged-in .woocommerce > .woocommerce-MyAccount-navigation { grid-column: 1; grid-row: 2; position: sticky; top: 180px; padding: 10px; border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px var(--mx-line); }
body.upat.woocommerce-account.logged-in .woocommerce > .woocommerce-MyAccount-content { grid-column: 2; grid-row: 2; padding: 28px 32px; border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px var(--mx-line); }
body.upat .woocommerce-MyAccount-navigation li a { display: flex; align-items: center; min-height: 46px; padding: 0 14px; border-radius: 10px; color: var(--mx-ink); font-weight: 600; text-decoration: none; }
body.upat .woocommerce-MyAccount-navigation li a:hover { background: var(--mx-ground); color: var(--mx-ink); }
body.upat .woocommerce-MyAccount-navigation .is-active a { background: var(--mx-ink); color: #fff; }
body.upat .woocommerce-MyAccount-navigation-link--downloads { display: none; }
body.upat .woocommerce-MyAccount-content > p:first-child { font-size: 17px; color: var(--mx-ink); }
body.upat .woocommerce-MyAccount-content p { max-width: 70ch; line-height: 1.6; }
body.upat .woocommerce-MyAccount-content a:not(.button) { color: var(--mx-blue-d); font-weight: 600; }
@media (max-width: 960px) {
	body.upat.woocommerce-account.logged-in .woocommerce { grid-template-columns: minmax(0, 1fr); }
	body.upat.woocommerce-account.logged-in .woocommerce > .woocommerce-MyAccount-navigation { grid-column: 1; grid-row: 2; position: static; }
	body.upat.woocommerce-account.logged-in .woocommerce > .woocommerce-MyAccount-content { grid-column: 1; grid-row: 3; padding: 22px 18px; }
	body.upat .woocommerce-MyAccount-navigation ul { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; }
	body.upat .woocommerce-MyAccount-navigation li { flex: none; }
	body.upat .woocommerce-MyAccount-navigation li a { min-height: 44px; white-space: nowrap; }
}

/* Product descriptions: the stored content restyled in the store's look
   (inline colours and emoji are removed in inc/descriptions.php). */
.umx-desc { max-width: 980px; color: var(--mx-ink); font: 400 16px/1.65 var(--f-b); }
.umx-desc > .product-description-wrapper { display: flex; flex-direction: column; gap: 36px; }
.umx-desc h2 { margin: 0 0 16px; font: 600 clamp(1.3rem, 1rem + .9vw, 1.7rem)/1.1 var(--f-d); text-transform: uppercase; letter-spacing: .01em; color: var(--mx-ink); }
.umx-desc h3, .umx-desc h4 { margin: 0 0 6px; font: 800 16.5px/1.3 var(--f-b); text-transform: none; letter-spacing: 0; color: var(--mx-ink); }
.umx-desc p { margin: 0; color: var(--mx-mute); }
.umx-desc strong { color: var(--mx-ink); font-weight: 800; }
.umx-desc .product-header { padding: 0 0 22px; border-bottom: 1px solid var(--mx-line); }
.umx-desc .umx-desc__title { margin: 0 0 6px; color: var(--mx-ink); font: 600 clamp(1.4rem, 1.1rem + 1vw, 1.9rem)/1.1 var(--f-d); text-transform: uppercase; letter-spacing: .01em; }
.umx-desc .product-header p:not(.umx-desc__title) { color: var(--mx-blue-d); font-weight: 700; font-size: 15px; }
/* Benefits: three white cards with a blue top bar. */
.umx-desc .seo-keywords > div, .umx-desc .mechanism-cards, .umx-desc .usage-section > div { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 14px; }
.umx-desc .benefit-card { padding: 20px; border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px var(--mx-line); border-top: 4px solid var(--mx-blue); }
/* Features: list with green ticks. */
.umx-desc .indications-section ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.umx-desc .indications-section li { position: relative; padding: 14px 16px 14px 48px; border-radius: 12px; background: #fff; box-shadow: inset 0 0 0 1px var(--mx-line); color: var(--mx-mute); }
.umx-desc .indications-section li::before { content: ""; position: absolute; left: 16px; top: 16px; width: 20px; height: 20px; border-radius: 50%; background: var(--mx-green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 13px no-repeat; }
.umx-desc .indications-section li strong { display: block; margin-bottom: 2px; }
/* How it works: numbered cards. */
.umx-desc .mechanism-cards { counter-reset: mech; }
.umx-desc .mechanism-cards > div { position: relative; padding: 20px 20px 20px 64px; border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px var(--mx-line); counter-increment: mech; }
.umx-desc .mechanism-cards > div::before { content: counter(mech); position: absolute; left: 18px; top: 18px; width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--mx-ink); color: #fff; font: 700 15px/1 var(--f-d); }
/* Usage: three stat tiles. */
.umx-desc .step-card { padding: 18px 20px; border-radius: 14px; background: #EAF2F8; }
.umx-desc .step-card h4 { margin: 0 0 4px; font: 700 12.5px/1.2 var(--f-b); letter-spacing: .06em; text-transform: uppercase; color: var(--mx-blue-d); }
.umx-desc .step-card p { color: var(--mx-ink); font: 800 17px/1.35 var(--f-b); }
/* Technical specifications: a clean two-column table. */
.umx-desc div:has(> .detail-item) { display: grid; grid-template-columns: minmax(0, 1fr); border-radius: 14px; overflow: hidden; background: #fff; box-shadow: inset 0 0 0 1px var(--mx-line); }
.umx-desc .detail-item { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 16px; padding: 13px 18px; border-top: 1px solid var(--mx-line); }
.umx-desc .detail-item:first-child { border-top: 0; }
.umx-desc .detail-item p { margin: 0; }
.umx-desc .detail-item p:last-child { color: var(--mx-ink); font-weight: 600; }
/* Safety notice: quiet note. */
.umx-desc .professional-notice { padding: 18px 20px; border-radius: 14px; background: #FBF6EA; box-shadow: inset 0 0 0 1px #EFE3C4; }
.umx-desc .professional-notice h3 { font-size: 15px; }
.umx-desc { max-width: 1040px; }
@media (min-width: 701px) {
	.umx-desc .mechanism-cards > div { padding: 64px 20px 20px; }
	.umx-desc .mechanism-cards > div::before { left: 20px; top: 20px; }
}
.umx-desc .professional-notice p { font-size: 14.5px; }
.umx-desc ul:not(.indications-section ul) { padding-left: 1.2em; }
@media (max-width: 700px) {
	.umx-desc { font-size: 15.5px; }
	.umx-desc > .product-description-wrapper { gap: 28px; }
	.umx-desc .usage-section > div { grid-template-columns: minmax(0, 1fr); }
	.umx-desc .detail-item { grid-template-columns: minmax(0, 1fr); gap: 2px; }
}

/* Mobile bottom bar: Home, Shop (all categories), Search, Help, Cart. */
.umx-tabbar { display: none; }
@media (max-width: 960px) {
	.umx-tabbar {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr));
		padding: 6px 4px calc(6px + env(safe-area-inset-bottom, 0px)); background: rgba(255, 255, 255, .97);
		box-shadow: 0 -1px 0 var(--mx-line), 0 -10px 24px -18px rgba(21, 25, 30, .4);
		-webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
	}
	.umx-tabbar a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-height: 54px; border-radius: 12px; color: var(--mx-ink); text-decoration: none; font: 700 11.5px/1 var(--f-b); }
	.umx-tabbar a .upat-ic { width: 24px; height: 24px; }
	.umx-tabbar a[aria-current="page"], .umx-tabbar a[aria-expanded="true"] { color: var(--mx-blue-d); background: #EAF2F8; }
	.umx-tabbar a:active { transform: scale(.96); }
	.umx-tabbar__ic { position: relative; display: inline-flex; }
	.umx-tabbar__cart .upat-ic { color: var(--mx-red); }
	.umx-tabbar .upat-cart-count { position: absolute; top: -7px; right: -12px; min-width: 20px !important; height: 20px !important; padding: 0 5px !important; border-radius: 999px !important; background: var(--mx-red) !important; color: #fff !important; font: 800 11px/20px var(--f-b) !important; text-align: center; }
	.umx-tabbar .upat-cart-count[data-count="0"] { display: none; }
	body.upat { padding-bottom: calc(68px + env(safe-area-inset-bottom, 0px)); }
	.upat-chat__fab, .umx-chat-hide { display: none !important; }
	.upat-chat.is-open { bottom: 0; z-index: 60; }
	.upat-buybar { bottom: calc(66px + env(safe-area-inset-bottom, 0px)) !important; }
	.single-product .upat-chat:not(.is-open) { bottom: auto; }
	.upat-drawer__cats a { min-height: 56px; font-size: 17px; }
	/* Preview only: keep the draft-preview strip small and above the bottom bar. */
	#wpvibe-preview-banner { bottom: calc(68px + env(safe-area-inset-bottom, 0px)) !important; padding: 6px 10px !important; font-size: 12px !important; }
	#wpvibe-preview-banner [class*="info"] { display: none !important; }
}

/* Accessibility pass: link contrast on grey, finger-sized tap targets. */
.umx-more { color: var(--mx-blue-d); padding-block: 12px; }
.umx-promo--white .umx-promo__link { color: var(--mx-blue-d); }
body.upat .upat-ft__call .upat-btn { background: #fff; color: var(--mx-blue-d); }
.umx-util a { display: inline-flex; align-items: center; min-height: 38px; }
.upat-ft__nav a { display: flex; align-items: center; min-height: 40px; }
.upat-ft__nav { gap: 0 !important; }
.umx-hd__bar { transition: padding 260ms ease; }
.upat-hd-wrap.is-scrolled { box-shadow: 0 1px 0 var(--mx-line), 0 8px 24px -16px rgba(21, 25, 30, .35); }
body.upat a:focus-visible, body.upat button:focus-visible, body.upat input:focus-visible, body.upat select:focus-visible, body.upat [tabindex]:focus-visible { outline: 3px solid var(--mx-blue); outline-offset: 2px; }
.umx-nav a:focus-visible, .umx-promo--red:focus-visible, .umx-promo--blue:focus-visible { outline-color: #fff; outline-offset: -4px; }

/* Logo — much bigger. Mark-only crop of the real file. */
.umx-logo .upat-logo-crop { --lh: 124px; }
.upat-hd-wrap.is-scrolled .umx-logo .upat-logo-crop { --lh: 80px; }
body.upat ul.products li.product a img { mix-blend-mode: multiply; }
.upat-ft__brand .upat-logo-crop { --lh: 120px; }
.upat-drawer__top .upat-logo-crop { --lh: 72px; }

.umx-search { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; height: 56px; padding: 4px; border: 2px solid var(--mx-blue); border-radius: 12px; background: #fff; }
.umx-search input[type="search"] { flex: 1; min-width: 0; height: 100%; padding: 0 16px; border: 0; background: transparent; box-shadow: none; outline: none; font: 500 16px/1 var(--f-b); color: var(--mx-ink); }
.umx-search input[type="search"]::placeholder { color: #8A919B; }
.umx-search:focus-within { box-shadow: 0 0 0 4px rgba(31, 122, 184, .18); }
.umx-search button { display: inline-flex; align-items: center; gap: 8px; height: 100%; padding: 0 22px; border: 0; border-radius: 8px; background: var(--mx-blue); color: #fff; font: 700 15px/1 var(--f-b); cursor: pointer; transition: background-color 200ms ease; }
.umx-search button:hover { background: var(--mx-blue-d); }
.umx-search button .upat-ic { width: 18px; height: 18px; }
.umx-findbtn { display: none; }

.umx-hd .upat-hd__act { flex: none; gap: 6px; }
.umx-hd .upat-hd__link { color: var(--mx-ink); font-weight: 700; font-size: 15px; }
.umx-hd .upat-hd__link .upat-ic { color: var(--mx-ink); width: 22px; height: 22px; }
.umx-hd .upat-hd__link:hover, .umx-hd .upat-hd__link:hover .upat-ic { color: var(--mx-blue); }
.umx-cart, .upat-cartbtn.umx-cart { min-height: 56px; padding: 0 10px 0 18px; margin-left: 4px; border-radius: 12px; background: var(--mx-red); color: #fff; font: 700 15px/1 var(--f-b); }
.umx-cart:hover { background: var(--mx-red-d); color: #fff; }
.umx-cart .upat-ic { width: 22px; height: 22px; }
.umx-cart .upat-cart-count, .upat-cartbtn.umx-cart .upat-cart-count:not([data-count="0"]) { min-width: 30px; height: 30px; border-radius: 999px; background: #fff; color: var(--mx-red); font: 800 13px/1 var(--f-b); }

.umx-nav { background: var(--mx-ink); }
.umx-nav__in { display: flex; align-items: stretch; gap: 0; height: 52px; overflow-x: auto; scrollbar-width: none; }
.umx-nav__in::-webkit-scrollbar { display: none; }
.umx-nav a { position: relative; display: flex; align-items: center; padding: 0 18px; color: #fff; font: 600 15px/1 var(--f-d); letter-spacing: .06em; text-transform: uppercase; text-decoration: none; white-space: nowrap; transition: background-color 200ms ease; }
.umx-nav a:first-child { margin-left: -18px; }
.umx-nav a:hover { background: rgba(255, 255, 255, .08); color: #fff; }
.umx-nav a.is-cur { box-shadow: inset 0 -3px 0 var(--mx-blue); }
.umx-nav a.umx-nav__deal { margin-left: auto; color: var(--mx-pink); }
.umx-nav a.umx-nav__deal:hover { color: #fff; }

/* ── Homepage ───────────────────────────────────────────────────────────── */
.umx-hero { padding-block: 24px 8px; }
.umx-hero__grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 20px; }
.umx-hero__side { display: grid; grid-template-rows: 1fr 1fr; gap: 20px; min-width: 0; }
.umx-promo { position: relative; display: flex; overflow: hidden; border-radius: var(--mx-r-xl); text-decoration: none; isolation: isolate; transition: transform 300ms ease, box-shadow 300ms ease; }
.umx-promo:hover { transform: translateY(-2px); box-shadow: var(--mx-shadow); }
.umx-promo__copy { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.umx-promo__art { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.umx-cut { position: absolute; width: auto; max-width: none; object-fit: contain; filter: drop-shadow(0 24px 30px rgba(0, 0, 0, .28)); }

.umx-promo--red { min-height: 470px; padding: 48px; background: var(--mx-red) radial-gradient(120% 90% at 85% 60%, #C04A37 0%, rgba(166, 58, 42, 0) 60%); color: #fff; align-items: center; }
.umx-promo--red .umx-promo__copy { max-width: 54%; gap: 20px; }
.umx-promo--red h1 { color: #fff; font-size: clamp(2.8rem, 1.2rem + 3.6vw, 4.75rem); line-height: .96; font-weight: 700; }
.umx-promo__lede { font-size: 17px; line-height: 1.5; color: rgba(255, 255, 255, .88); max-width: 34ch; }
.umx-promo--red .umx-btn { align-self: flex-start; }
.umx-promo--red:hover .umx-btn--white { transform: translateX(2px); }
.umx-promo--red .umx-promo__art { left: 50%; }
.umx-cut--a { height: 66%; left: 2%; bottom: 10%; transform: rotate(-8deg); }
.umx-cut--b { height: 58%; right: 2%; bottom: 4%; transform: rotate(9deg); }
.umx-circle img.is-blend { width: 100%; height: 100%; object-fit: cover; }

.umx-promo--blue, .umx-promo--white { padding: 28px; align-items: flex-start; min-height: 225px; }
.umx-promo--blue { background: var(--mx-blue); color: #fff; }
.umx-promo--white { background: #fff; color: var(--mx-ink); box-shadow: inset 0 0 0 1px var(--mx-line); }
.umx-promo--blue .umx-promo__copy, .umx-promo--white .umx-promo__copy { max-width: 58%; gap: 8px; }
.umx-kick { font: 800 12.5px/1 var(--f-b); letter-spacing: .08em; text-transform: uppercase; opacity: .85; }
.umx-promo--white .umx-kick { color: var(--mx-red); opacity: 1; }
.umx-promo--blue h2 { color: #fff; font-size: clamp(1.7rem, 1rem + 1.3vw, 2.3rem); }
.umx-promo--white h2 { color: var(--mx-ink); font-size: clamp(1.4rem, .9rem + 1vw, 1.9rem); }
.umx-promo__link { display: inline-flex; align-items: center; gap: 8px; margin-top: 6px; font: 600 14px/1.35 var(--f-b); }
.umx-promo--blue .umx-promo__link { color: rgba(255, 255, 255, .9); }
.umx-promo--white .umx-promo__link { color: var(--mx-blue); font-weight: 700; }
.umx-promo__link .upat-ic { width: 16px; height: 16px; }
.umx-cut--pen { height: 104%; right: -6%; bottom: -10%; transform: rotate(-14deg); border-radius: 12px; filter: drop-shadow(0 20px 26px rgba(0, 0, 0, .3)); }
.umx-cut--rec { height: 96%; right: 2%; bottom: -8%; filter: drop-shadow(0 18px 22px rgba(21, 25, 30, .22)); }

.umx-sec { padding-block: 44px 8px; }
.umx-sec__h { display: flex; align-items: baseline; justify-content: space-between; gap: 12px 24px; flex-wrap: wrap; margin-bottom: 20px; }
.umx-sec__h h2 { font-size: clamp(1.8rem, 1.2rem + 1.4vw, 2.6rem); color: var(--mx-ink); }
.umx-more { display: inline-flex; align-items: center; gap: 8px; color: var(--mx-blue); font: 700 15px/1 var(--f-b); text-decoration: none; }
.umx-more:hover { color: var(--mx-blue-d); gap: 12px; }
.umx-more .upat-ic { width: 16px; height: 16px; }

.umx-circles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 20px; }
.umx-circles a { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; text-decoration: none; color: var(--mx-ink); }
.umx-circle { display: flex; align-items: center; justify-content: center; width: 100%; max-width: 160px; aspect-ratio: 1; margin-bottom: 8px; border-radius: 50%; background: #fff; box-shadow: var(--mx-shadow); overflow: hidden; transition: transform 300ms ease, box-shadow 300ms ease; }
.umx-circle img { width: 72%; height: 72%; object-fit: contain; filter: drop-shadow(0 8px 10px rgba(21, 25, 30, .18)); transition: transform 400ms ease; }
.umx-circle img.is-blend { mix-blend-mode: multiply; filter: none; }
.umx-circles a:hover .umx-circle { transform: translateY(-3px); box-shadow: 0 0 0 3px var(--mx-blue), var(--mx-shadow); }
.umx-circles a:hover .umx-circle img { transform: scale(1.06); }
.umx-circle__nm { font: 600 17px/1.1 var(--f-d); letter-spacing: .05em; text-transform: uppercase; }
.umx-circles small { font-size: 13px; color: var(--mx-mute); }

.umx-bulk { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 40px; align-items: center; padding: 44px; border-radius: var(--mx-r-xl); background: #fff; box-shadow: inset 0 0 0 1px var(--mx-line); }
.umx-bulk__copy { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.umx-bulk__copy h2 { font-size: clamp(2rem, 1.2rem + 2vw, 3.2rem); color: var(--mx-ink); }
.umx-bulk__copy p { font-size: 16.5px; line-height: 1.6; color: var(--mx-mute); max-width: 48ch; margin: 0; }
.umx-bulk__card { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 8px 22px; align-items: center; padding: 22px; border-radius: 16px; background: var(--mx-ground); color: var(--mx-ink); text-decoration: none; }
.umx-bulk__card:hover { color: var(--mx-ink); box-shadow: 0 0 0 2px var(--mx-blue); }
.umx-bulk__img { grid-row: span 2; width: 112px; height: 112px; border-radius: 12px; background: #fff; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.umx-bulk__img img { width: 88%; height: 88%; object-fit: contain; mix-blend-mode: multiply; }
.umx-bulk__nm { display: flex; flex-direction: column; gap: 4px; font: 600 22px/1.05 var(--f-d); text-transform: uppercase; letter-spacing: .02em; }
.umx-bulk__nm small { font: 500 12.5px/1 var(--f-b); text-transform: none; letter-spacing: 0; color: var(--mx-mute); }
.umx-bulk__rows { display: flex; flex-direction: column; }
.umx-bulk__r { display: grid; grid-template-columns: minmax(0, 1fr) auto 76px; gap: 12px; align-items: baseline; padding: 9px 0; border-top: 1px solid var(--mx-line); font-size: 14px; color: var(--mx-mute); }
.umx-bulk__r b { font: 800 18px/1 var(--f-b); color: var(--mx-ink); font-variant-numeric: tabular-nums; }
.umx-bulk__r em { font-style: normal; font-weight: 800; font-size: 13px; text-align: right; color: var(--mx-mute); }
.umx-bulk__r:not(:first-child) em { color: var(--mx-red); }
.umx-bulk__r.is-best b { color: var(--mx-green); }

.umx-trust { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.umx-trust li { display: flex; }
.umx-trust li, .umx-trust li > a { gap: 14px; align-items: center; }
.umx-trust li { padding: 20px; border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px var(--mx-line); }
.umx-trust li > a { display: flex; color: inherit; text-decoration: none; }
.umx-trust__ic { flex: none; display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 12px; background: #E8F1F8; color: var(--mx-blue); }
.umx-trust__ic .upat-ic { width: 24px; height: 24px; }
.umx-trust li > span:last-child, .umx-trust a > span:last-child { display: flex; flex-direction: column; gap: 3px; font-size: 13.5px; line-height: 1.35; color: var(--mx-mute); }
.umx-trust b { font: 800 15px/1.2 var(--f-b); color: var(--mx-ink); }

.umx-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.umx-steps li { display: flex; flex-direction: column; gap: 8px; padding: 24px; border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px var(--mx-line); }
.umx-steps .n { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; margin-bottom: 6px; border-radius: 50%; background: var(--mx-ink); color: #fff; font: 700 18px/1 var(--f-d); }
.umx-steps b { font: 800 17px/1.25 var(--f-b); }
.umx-steps li > span:last-child { font-size: 15px; line-height: 1.55; color: var(--mx-mute); }
#how-to-pay { padding-bottom: 64px; }

/* ── Product cards (every grid on the site) ─────────────────────────────── */
body.upat ul.products { gap: 18px; }
body.upat ul.products li.product:hover { transform: translateY(-3px); box-shadow: inset 0 0 0 1px var(--mx-line), var(--mx-shadow); }
body.upat ul.products li.product { border-radius: 14px; box-shadow: inset 0 0 0 1px var(--mx-line); }
body.upat ul.products li.product h2.upat-card__name { font: 700 17px/1.25 var(--f-b); text-transform: none; letter-spacing: 0; color: var(--mx-ink); }
body.upat .upat-card__sub { font-size: 13px; color: var(--mx-mute); }
body.upat ul.products li.product .price { font: 800 24px/24px var(--f-b); color: var(--mx-ink); }
body.upat ul.products li.product .price del { font-size: 15px; font-weight: 600; color: var(--mx-mute); }
body.upat ul.products li.product .upat-card__tier { font: 700 13.5px/1.3 var(--f-b); color: var(--mx-green); }
body.upat ul.products li.product .upat-card__tier .amount { color: var(--mx-green); font-weight: 800; }
body.upat ul.products li.product .button.added { background: var(--mx-green) !important; }
.umx-save { position: absolute; z-index: 2; display: inline-flex; align-items: center; min-height: 26px; padding: 0 10px; border-radius: 7px; background: var(--mx-red); color: #fff; font: 800 12px/1 var(--f-b); letter-spacing: .02em; }
.upat-badge { background: var(--mx-ink); color: #fff; }

/* ── Shop, product and pages ────────────────────────────────────────────── */
.upat-arch-h h1 { font-size: clamp(2.2rem, 1.4rem + 2vw, 3.4rem); }
.upat-catbar .upat-chip { background: #fff; color: var(--mx-ink); box-shadow: inset 0 0 0 1px var(--mx-line); font-weight: 700; }
.upat-catbar .upat-chip[aria-current], .upat-catbar .upat-chip.is-on, .upat-catbar .upat-chip:hover { background: var(--mx-ink); color: #fff; box-shadow: none; }
body.upat div.product div.images { background: #fff; box-shadow: inset 0 0 0 1px var(--mx-line); }
body.upat div.product p.price, body.upat div.product span.price { font: 800 clamp(1.8rem, 1.4rem + .8vw, 2.3rem)/1 var(--f-b); color: var(--mx-ink); }
.upat-rung.is-on { background: #EAF4EE; }
.upat-rung.is-on .p, .upat-rung .s { color: var(--mx-green); }
.upat-nudge { background: #FBEDEA; }
.upat-light, .upat-page__body, body.upat .wp-block-woocommerce-cart, body.upat.woocommerce-checkout #customer_details,
body.upat.woocommerce-checkout #order_review, body.upat.woocommerce-account .woocommerce-MyAccount-content,
body.upat .woocommerce form.login, body.upat .woocommerce form.register { background: #fff; box-shadow: inset 0 0 0 1px var(--mx-line); }
.upat-page--shop .upat-page__body { background: transparent; box-shadow: none; }

/* ── Footer ─────────────────────────────────────────────────────────────── */
.upat-ft { background: #fff; border-top: 1px solid var(--mx-line); }
.upat-ft__call { background: var(--mx-blue); color: #fff; border-radius: var(--mx-r-xl); margin-top: 48px; padding: 32px 40px; border-bottom: 0; align-items: center; }
.upat-ft__call p { color: #fff; font: 700 clamp(1.8rem, 1.2rem + 1.6vw, 2.6rem)/1.05 var(--f-d); text-transform: uppercase; letter-spacing: .01em; }
.upat-ft__call p span { color: #fff; opacity: .75; }
.upat-ft__call .upat-btn { background: #fff; color: var(--mx-blue); }
.upat-ft__call .upat-btn:hover { background: #EAF2F8; color: var(--mx-blue-d); }
.upat-ft__h { font: 600 14px/1 var(--f-d); letter-spacing: .08em; text-transform: uppercase; color: var(--mx-ink); }
.upat-ft__nav a:hover { color: var(--mx-blue); }

/* Chat desk */
.upat-chat__fab { background: var(--mx-green); color: #fff; }

/* ── Responsive ─────────────────────────────────────────────────────────── */
@media (max-width: 1180px) {
	.umx-hd__bar { gap: 18px; }
	.umx-logo .upat-logo-crop { --lh: 88px; }
	.umx-hd .upat-hd__desk { display: none; }
	.upat-hd__menu { display: inline-flex; }
	.umx-promo--red { min-height: 400px; padding: 36px; }
	.umx-promo--red .umx-promo__copy { max-width: 60%; }
	.umx-circles { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 16px; }
	.umx-trust { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.umx-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
	.umx-util__in > p:first-child { display: none; }
	.umx-util__in { justify-content: center; }
	.umx-search { display: none; }
	.umx-findbtn { display: inline-flex; color: var(--mx-ink); }
	.umx-findbtn .upat-ic { width: 24px; height: 24px; }
	.umx-hd__bar > .upat-plate { margin-right: auto; }
	.umx-hero__grid { grid-template-columns: minmax(0, 1fr); }
	.umx-hero__side { grid-template-rows: none; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.umx-bulk { grid-template-columns: minmax(0, 1fr); padding: 32px; }
	.upat-ft__call { margin-inline: var(--gut); }
}
@media (max-width: 700px) {
	.umx-util { font-size: 12.5px; }
	.umx-util__r a:first-child { display: none; }
	.umx-hd__bar, .upat-hd-wrap.is-scrolled .umx-hd__bar { gap: 4px; padding-block: 8px; }
	.umx-logo .upat-logo-crop { --lh: 78px; }
	.upat-hd-wrap.is-scrolled .umx-logo .upat-logo-crop { --lh: 54px; }
	.umx-cart, .upat-cartbtn.umx-cart { min-height: 46px; padding: 0 6px 0 12px; gap: 8px; }
	.umx-cart .upat-cartbtn__t { display: none; }
	.umx-nav__in { height: 46px; }
	.umx-nav a { padding: 0 14px; font-size: 14px; }
	.umx-nav a:first-child { margin-left: -14px; }
	.umx-nav a.umx-nav__deal { margin-left: 0; }

	.umx-hero { padding-top: 14px; }
	.umx-hero__grid, .umx-hero__side { gap: 12px; }
	.umx-hero__side { grid-template-columns: minmax(0, 1fr); }
	.umx-promo--red { min-height: 0; padding: 28px 22px 210px; align-items: flex-start; border-radius: 18px; }
	.umx-promo--red .umx-promo__copy { max-width: none; gap: 14px; }
	.umx-promo--red h1 { font-size: clamp(2.5rem, 1.2rem + 7vw, 3.2rem); }
	.umx-promo__lede { font-size: 15.5px; }
	.umx-promo--red .umx-promo__art { left: 0; }
	.umx-cut--a { height: 210px; left: auto; right: 36%; bottom: -14px; }
	.umx-cut--b { height: 190px; right: 4%; bottom: -18px; }
	.umx-promo--blue, .umx-promo--white { min-height: 150px; padding: 22px; border-radius: 18px; }
	.umx-promo--blue .umx-promo__copy, .umx-promo--white .umx-promo__copy { max-width: 62%; }

	.umx-sec { padding-top: 32px; }
	.umx-circles { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-inline: calc(var(--gut) * -1); padding: 4px var(--gut) 8px; }
	.umx-circles::-webkit-scrollbar { display: none; }
	.umx-circles li { flex: 0 0 31%; scroll-snap-align: start; }
	.umx-circle__nm { font-size: 14.5px; }
	.umx-circles small { font-size: 12px; }

	body.upat ul.products { gap: 10px; }
	body.upat ul.products li.product .price { font-size: 20px; }
	body.upat ul.products li.product .upat-card__tier { font-size: 12.5px; }
	.umx-save { font-size: 11px; min-height: 22px; padding: 0 7px; }
	.upat-badge { top: 10px !important; left: 10px !important; min-height: 22px !important; font-size: 11px !important; padding: 0 7px !important; }

	.umx-bulk { padding: 22px 18px; gap: 24px; }
	.umx-bulk__card { grid-template-columns: 80px minmax(0, 1fr); padding: 14px; }
	.umx-bulk__img { width: 80px; height: 80px; }
	.umx-trust, .umx-steps { grid-template-columns: minmax(0, 1fr); gap: 10px; }
	.umx-trust li { padding: 16px; }
	.upat-ft__call { padding: 26px 20px; }
	.upat-ft__brand .upat-logo-crop { --lh: 96px; }
}
@media (max-width: 380px) {
	.umx-save { top: 12px; left: 12px; font-size: 10.5px; padding: 0 6px; }
	.umx-promo--red h1 { font-size: 2.3rem; }
}

/* Header logo lockup: the U.P.A mark (cropped from the real logo file,
   mark sits at x140–660, y166–449 of the 756×761 artwork), a hairline,
   then the full name set beside it. */
.umx-logo { display: inline-flex !important; align-items: center; gap: 18px; text-decoration: none; line-height: 1; }
.umx-logo .upat-logo-crop, .upat-hd-wrap.is-scrolled .umx-logo .upat-logo-crop { --lh: 64px; width: calc(var(--lh) * 1.837); height: var(--lh); }
.upat-hd-wrap.is-scrolled .umx-logo .upat-logo-crop { --lh: 48px; }
.umx-logo .upat-logo-crop .upat-logo { height: calc(var(--lh) * 2.689); left: calc(var(--lh) * -.4947); top: calc(var(--lh) * -.5866); }
.umx-word { padding-left: 18px; border-left: 1px solid var(--mx-line); color: var(--mx-ink); font: 700 21px/1.12 var(--f-b); letter-spacing: -.01em; white-space: nowrap; transition: font-size 260ms ease; }
.upat-hd-wrap.is-scrolled .umx-word { font-size: 17px; }
@media (max-width: 1180px) {
	.umx-logo .upat-logo-crop { --lh: 54px; }
	.umx-word { font-size: 18px; }
}
@media (max-width: 700px) {
	.umx-logo { gap: 10px; }
	.umx-logo .upat-logo-crop, .upat-hd-wrap.is-scrolled .umx-logo .upat-logo-crop { --lh: 40px; }
	.umx-word { padding-left: 9px; font-size: 13px; }
	.upat-hd-wrap.is-scrolled .umx-word { font-size: 13px; }
	.umx-logo { gap: 9px; margin-right: auto; }
	.umx-hd .upat-hd__act { gap: 2px; }
	.umx-cart, .upat-cartbtn.umx-cart { padding: 0 6px 0 9px; gap: 5px; margin-left: 2px; }
	.umx-cart .upat-cart-count { min-width: 26px; height: 26px; }
}
@media (max-width: 360px) { .umx-word { display: none; } }

/* Exact product names (no capitals forced, no shortening). */
body.upat div.product .product_title { text-transform: none !important; font: 700 clamp(1.7rem, 1.2rem + 1.4vw, 2.5rem)/1.15 var(--f-b) !important; letter-spacing: -.01em; }
body.upat ul.products li.product h2.upat-card__name { height: 3.75em !important; -webkit-line-clamp: 3; font-size: 16px; }
body.upat ul.products li.product a.woocommerce-LoopProduct-link:not(:has(.upat-scale)) h2.upat-card__name { margin-bottom: 57px; }
body.upat ul.products li.product .upat-card__sub { display: none; }
.umx-bulk__nm { text-transform: none; font: 800 19px/1.2 var(--f-b); letter-spacing: 0; }
@media (max-width: 700px) {
	body.upat ul.products li.product h2.upat-card__name { font-size: 14.5px; height: 5em !important; -webkit-line-clamp: 4; }
}

/* ── Product page alignment ──────────────────────────────────────────── */
body.upat div.product { align-items: start; }
body.upat div.product div.images { position: relative !important; top: auto !important; margin: 0 !important; align-self: start; z-index: 0; }
.upat-rung { box-shadow: none; }
.upat-rung::before { background: var(--mx-blue) !important; }
.upat-rung.is-on { background: #EAF2F8 !important; }
.upat-rung.is-on .p { color: var(--mx-blue-d) !important; }
.upat-rung .s { color: var(--mx-green) !important; font-weight: 700; }
.upat-rung.is-on .s { color: var(--mx-blue-d) !important; }
body.upat .upat-eft-note { display: flex; align-items: flex-start; gap: 12px; margin: 22px 0 0; padding: 16px 18px; border-radius: 12px; background: #fff; box-shadow: inset 0 0 0 1px var(--mx-line); }
body.upat .upat-eft-note .upat-ic { flex: none; width: 22px; height: 22px; margin-top: 1px; color: var(--mx-blue); }
body.upat .upat-eft-note p { margin: 0; font-size: 14.5px; line-height: 1.5; color: var(--mx-mute); }
body.upat .upat-eft-note a { color: var(--mx-blue-d); font-weight: 700; }
@media (max-width: 960px) {
	body.upat div.product div.images { position: relative !important; top: 0 !important; }
}

/* Homepage trust strip and footer: even rhythm, no white gap. */
.umx-trust li { min-height: 92px; }
main > .umx-sec:last-child, .upat-main > .umx-sec:last-of-type { padding-bottom: 56px; }
.upat-ft { background: var(--mx-ground); border-top: 0; margin-top: 0; }
.upat-ft__call { margin-top: 0; }
.upat-ft__in, .upat-ft__base { background: transparent; }
.upat .wa__widget_container, .upat [class*="wa__"] { display: none !important; }
.upat-ft__brand .upat-logo-crop, .upat-ft .upat-ft__brand .upat-logo-crop { --lh: 170px; }
@media (max-width: 700px) { .upat-ft__brand .upat-logo-crop, .upat-ft .upat-ft__brand .upat-logo-crop { --lh: 130px; } }

/* ── Order desk (the WhatsApp helper): UPA's own look ───────────────────
   Bottom-LEFT, a dark ink card with a blue headset tile and a live dot;
   the panel opens as a ticket with a blue header and list-style topics. */
.upat-chat { left: max(20px, env(safe-area-inset-left, 0px)); right: auto; align-items: flex-start; flex-direction: column; }
.upat-chat__p { order: 1; }
.upat-chat__fab { order: 2; }
.upat-chat__fab, .upat-chat__fab:hover {
	display: inline-flex; align-items: center; gap: 12px; min-height: 0; padding: 8px 18px 8px 8px; border-radius: 16px;
	background: var(--mx-ink); color: #fff; box-shadow: 0 14px 30px -14px rgba(21, 25, 30, .55);
}
.upat-chat__fab:hover { transform: translateY(-2px); background: #232A33; }
.upat-chat__fab[aria-expanded="true"] { background: #fff; color: var(--mx-ink); box-shadow: inset 0 0 0 1px var(--mx-line), 0 14px 30px -14px rgba(21, 25, 30, .4); }
.umx-desk__ic { flex: none; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 12px; background: var(--mx-blue); color: #fff; }
.umx-desk__ic .upat-ic { width: 22px; height: 22px; }
.umx-desk__tx { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; text-align: left; }
.umx-desk__tx b { font: 600 16px/1 var(--f-d); letter-spacing: .06em; text-transform: uppercase; }
.umx-desk__tx small { display: inline-flex; align-items: center; gap: 6px; font: 500 12.5px/1 var(--f-b); opacity: .8; }
.umx-desk__tx i { width: 8px; height: 8px; border-radius: 50%; background: #3DDC84; box-shadow: 0 0 0 3px rgba(61, 220, 132, .22); }
.upat-chat__p { margin-bottom: 12px; border-radius: 18px; overflow: hidden; background: #fff; box-shadow: 0 0 0 1px var(--mx-line), 0 30px 60px -24px rgba(21, 25, 30, .45); transform-origin: bottom left; }
.upat-chat__hd { align-items: flex-start; padding: 18px 12px 18px 20px; border-bottom: 0; background: var(--mx-blue); color: #fff; }
.upat-chat__hd { align-items: center !important; gap: 14px !important; background: linear-gradient(135deg, #128C7E 0%, #075E54 100%) !important; }
.umx-status { display: inline-flex; align-items: center; gap: 7px; }
.umx-status i { flex: none; width: 8px; height: 8px; border-radius: 50%; background: #3DDC84; box-shadow: 0 0 0 3px rgba(61, 220, 132, .25); }
.umx-status.is-offline i { background: #B8BEC6; box-shadow: 0 0 0 3px rgba(184, 190, 198, .25); }
.upat-chat__hd .umx-status.is-online i { background: #7CFFB2; animation: umx-live 2s ease-in-out infinite; }
@keyframes umx-live { 50% { box-shadow: 0 0 0 6px rgba(124, 255, 178, 0); } }
@media (prefers-reduced-motion: reduce) { .upat-chat__hd .umx-status.is-online i { animation: none; } }
.umx-desk__tx > small i { display: none; }
.umx-desk__tx .umx-status i { display: inline-block; }
.umx-hours { display: grid; gap: 0; margin: 4px 0 0; padding: 10px 14px; border-radius: 12px; background: #F6F8F7; box-shadow: inset 0 0 0 1px var(--mx-line); }
.umx-hours > div { display: flex; justify-content: space-between; gap: 12px; padding: 5px 0; font: 500 13.5px/1.3 var(--f-b); color: var(--mx-mute); }
.umx-hours dt, .umx-hours dd { margin: 0; }
.umx-hours > div.is-today { color: var(--mx-ink); font-weight: 800; }
.umx-hours > div.is-today dt::after { content: " · today"; color: #128C7E; font-weight: 700; }
.umx-wa { flex: none; display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; padding-right: 14px; border-right: 1px solid rgba(255, 255, 255, .28); color: #fff; box-sizing: content-box; }
.umx-wa svg { width: 34px; height: 34px; }
.upat-chat__hd .upat-iconbtn { color: #fff; }
.upat-chat__hd .upat-iconbtn:hover { background: rgba(255, 255, 255, .14); }
.upat-chat__id b { font: 700 22px/1 var(--f-d); letter-spacing: .02em; text-transform: uppercase; color: #fff; }
.upat-chat__id small { color: rgba(255, 255, 255, .85); font: 500 13px/1.4 var(--f-b); }
.upat-chat__id .umx-desk__kick { font: 800 11px/1 var(--f-b); letter-spacing: .14em; color: rgba(255, 255, 255, .7); }
.upat-chat__log { padding: 16px 18px 6px; min-height: 0; }
.upat-bub { background: var(--mx-ground); color: var(--mx-ink); border-radius: 4px 14px 14px 14px; box-shadow: none; }
.upat-chat__topics { flex-direction: column; flex-wrap: nowrap; gap: 0; padding: 6px 12px 12px; }
.upat-topic { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 46px; padding: 0 12px; border-radius: 10px; box-shadow: none; background: transparent; color: var(--mx-ink); font: 600 14.5px/1.25 var(--f-b); text-align: left; }
.upat-topic::after { content: ""; flex: none; width: 8px; height: 8px; margin-left: 12px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); opacity: .45; }
.upat-topic + .upat-topic { border-top: 1px solid var(--mx-line); border-radius: 0; }
.upat-topic:hover { background: var(--mx-ground); }
.upat-topic.is-on { background: #EAF2F8; color: var(--mx-blue-d); box-shadow: inset 3px 0 0 var(--mx-blue); }
.upat-chat__f { border-top: 1px solid var(--mx-line); background: #FAFBFC; }
.upat-chat__f textarea { background: #fff; box-shadow: inset 0 0 0 1px var(--mx-line); border-radius: 10px; }
.upat-chat__f textarea:focus { box-shadow: inset 0 0 0 2px var(--mx-blue); }
.upat-chat__f .upat-btn { background: var(--mx-ink); color: #fff; min-height: 50px; border-radius: 12px; }
.upat-chat__f .upat-btn:hover { background: #232A33; }
@media (max-width: 960px) {
	.upat-chat.is-open { left: 0; right: 0; }
	.upat-chat__p { width: 100%; margin: 0; border-radius: 18px 18px 0 0; }
}

/* ═══ QA pass 20 Oct — every page at 390 / 768 / 1440 ═══════════════════ */

/* Homepage promos: text and product photos never overlap. */
.umx-promo--blue .umx-promo__copy, .umx-promo--white .umx-promo__copy { max-width: 54%; }
.umx-promo--blue .umx-promo__art, .umx-promo--white .umx-promo__art { left: 50%; }
.umx-cut--pen { height: 92%; right: -10%; bottom: -6%; }
.umx-cut--rec { height: 82%; right: 0; bottom: -4%; }
@media (max-width: 1180px) {
	.umx-promo--red .umx-promo__copy { max-width: 52%; }
	.umx-promo--red .umx-promo__art { left: 54%; }
	.umx-cut--a { height: 58%; left: 0; bottom: 14%; }
	.umx-cut--b { height: 50%; right: 0; bottom: 6%; }
	.umx-cut--pen { height: 76%; right: -20%; bottom: -4%; }
	.umx-cut--rec { height: 72%; right: -2%; bottom: -4%; }
}
@media (max-width: 700px) {
	.umx-promo--red .umx-promo__copy { max-width: none; }
	.umx-promo--red .umx-promo__art { left: 0; }
	.umx-cut--a { height: 210px; left: auto; right: 36%; bottom: -14px; }
	.umx-cut--b { height: 190px; right: 4%; bottom: -18px; }
	.umx-promo--blue .umx-promo__copy, .umx-promo--white .umx-promo__copy { max-width: 58%; }
	.umx-promo--blue .umx-promo__art, .umx-promo--white .umx-promo__art { left: 55%; }
	.umx-cut--pen { height: 120%; right: -30%; bottom: -14%; }
	.umx-cut--rec { height: 92%; right: -6%; bottom: -8%; }
}

/* Category circles on phone: the first circle starts inside the margin. */
@media (max-width: 700px) {
	.umx-circles { scroll-padding-inline: var(--gut); }
	.umx-circles li { flex: 0 0 29%; }
}

/* Product cards on phone: no strength slider (too small to use there),
   so the cards are shorter and the gap above the price closes. */
@media (max-width: 700px) {
	body.upat ul.products li.product .upat-scale { display: none; }
	body.upat ul.products li.product a.woocommerce-LoopProduct-link:not(:has(.upat-scale)) h2.upat-card__name,
	body.upat ul.products li.product h2.upat-card__name { margin-bottom: 0; }
}

/* Bulk example card: rows never wrap; on phone the photo sits on top. */
.umx-bulk__r { grid-template-columns: minmax(0, 1fr) auto 72px; white-space: nowrap; }
.umx-bulk__r > span:first-child { white-space: nowrap; }
@media (max-width: 700px) {
	.umx-bulk__card { grid-template-columns: 64px minmax(0, 1fr); gap: 12px 14px; }
	.umx-bulk__img { width: 64px; height: 64px; grid-row: auto; }
	.umx-bulk__rows { grid-column: 1 / -1; }
	.umx-bulk__nm { font-size: 16px; }
}

/* Product page: gallery shows one photo at a time, tabs line up with the page. */
body.upat div.product .woocommerce-product-gallery .flex-viewport { overflow: hidden; border-radius: 14px; }
body.upat div.product .flex-control-thumbs { display: flex; gap: 10px; margin: 12px 0 0; padding: 0; }
body.upat div.product .flex-control-thumbs li { width: 76px !important; float: none !important; margin: 0 !important; }
body.upat div.product .flex-control-thumbs img { border-radius: 10px; box-shadow: inset 0 0 0 1px var(--mx-line); opacity: .7; }
body.upat div.product .flex-control-thumbs img.flex-active { opacity: 1; box-shadow: 0 0 0 2px var(--mx-blue); }
body.upat div.product .woocommerce-tabs { margin-inline: 0 !important; border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px var(--mx-line); }
body.upat div.product .woocommerce-tabs ul.tabs li a { font: 700 15px/1 var(--f-b); }
body.upat div.product .woocommerce-tabs ul.tabs li.active a { color: var(--mx-ink); box-shadow: inset 0 -3px 0 var(--mx-blue); }
body.upat div.product .woocommerce-tabs ul.tabs li a::after { display: none !important; }
body.upat div.product .woocommerce-tabs ul.tabs li, body.upat div.product .woocommerce-tabs ul.tabs li a { border-color: transparent !important; }
body.upat div.product .woocommerce-tabs ul.tabs li::before, body.upat div.product .woocommerce-tabs ul.tabs li::after { display: none !important; }

/* Cart: product names in the store font; the bulk nudge as a green offer. */
body.upat .wc-block-components-product-name { font: 700 15.5px/1.3 var(--f-b) !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--mx-ink) !important; text-decoration: none !important; }
body.upat .wc-block-cart-item__image img { border-radius: 10px; }
.upat-nudge { padding: 18px 20px; border-radius: 14px; background: #EAF4EE !important; box-shadow: inset 0 0 0 1px #CFE6D7 !important; }
.upat-nudge__h { font: 800 12px/1 var(--f-b) !important; letter-spacing: .08em; text-transform: uppercase; color: var(--mx-green) !important; }
.upat-nudge li { color: var(--mx-ink) !important; font-size: 14.5px !important; }
.upat-nudge li b { font-family: var(--f-b) !important; font-weight: 800; }
.upat-nudge .amount { font-family: var(--f-b) !important; font-weight: 800; color: var(--mx-green) !important; }
.upat-nudge .upat-add, .upat-nudge button, .upat-nudge a.button { min-height: 40px; padding: 0 16px; border: 0 !important; border-radius: 10px !important; background: var(--mx-green) !important; color: #fff !important; font: 700 14px/1 var(--f-b) !important; box-shadow: none !important; }

/* Checkout: the 4 steps as a calm row; coupon and notices in house style. */
.upat-clock--compact { margin: 0 0 20px; border-radius: 14px; background: #fff !important; box-shadow: inset 0 0 0 1px var(--mx-line) !important; }
.upat-clock--compact li { align-items: center !important; gap: 10px !important; padding: 14px 16px !important; border-color: var(--mx-line) !important; background: transparent !important; box-shadow: none !important; }
.upat-clock--compact .n { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 26px; height: 26px; border-radius: 50%; background: #EAF2F8; color: var(--mx-blue-d) !important; font: 800 13px/1 var(--f-b) !important; }
.upat-clock--compact li.is-now .n { background: var(--mx-blue); color: #fff !important; }
.upat-clock--compact b { font: 700 14.5px/1.2 var(--f-b) !important; letter-spacing: 0 !important; text-transform: none; }
body.upat .woocommerce-info, body.upat .woocommerce-message, body.upat .woocommerce-error { border: 0 !important; border-radius: 14px !important; background: #fff !important; box-shadow: inset 0 0 0 1px var(--mx-line) !important; color: var(--mx-ink) !important; padding: 16px 20px !important; }
body.upat .woocommerce-info::before, body.upat .woocommerce-message::before, body.upat .woocommerce-error::before { display: none !important; }
body.upat .woocommerce-info, body.upat .woocommerce-message { border-left: 4px solid var(--mx-blue) !important; }
body.upat .wc-block-components-product-metadata__description { display: none; }
body.upat.woocommerce-checkout .upat-chat:not(.is-open) { display: none; }

/* Text pages (terms, privacy, returns): readable article layout. */
body.upat .upat-prose { max-width: 860px; padding: 40px 48px !important; font-size: 16.5px; line-height: 1.7; color: #3A4048; }
body.upat .upat-prose h1 { margin: 0 0 18px; font: 600 clamp(1.9rem, 1.4rem + 1.6vw, 2.6rem)/1.05 var(--f-d); text-transform: uppercase; border: 0; }
body.upat .upat-prose h2 { margin: 34px 0 10px; padding: 0; border: 0 !important; font: 700 20px/1.3 var(--f-b) !important; text-transform: none !important; letter-spacing: 0; color: var(--mx-ink); }
body.upat .upat-prose h3 { margin: 24px 0 8px; font: 700 17px/1.35 var(--f-b); text-transform: none; color: var(--mx-ink); }
body.upat .upat-prose p { margin: 0 0 14px; }
body.upat .upat-prose ul, body.upat .upat-prose ol { margin: 0 0 16px; padding-left: 1.3em; }
body.upat .upat-prose li { margin: 0 0 6px; }
body.upat .upat-prose a { color: var(--mx-blue-d); font-weight: 600; }
body.upat .upat-prose hr { border: 0; border-top: 1px solid var(--mx-line); margin: 28px 0; }
body.upat .upat-page--builder .upat-page__h:has(+ .upat-page__body h1) { display: none; }
body.upat.woocommerce-checkout .woocommerce-terms-and-conditions h1 { font: 700 18px/1.3 var(--f-b) !important; text-transform: none; }
/* Same article look for the Elementor-built text pages. */
body.upat .upat-page--builder .upat-page__body { max-width: 860px; padding: 40px 48px !important; border-radius: 16px; background: #fff !important; box-shadow: inset 0 0 0 1px var(--mx-line) !important; font: 400 16.5px/1.7 var(--f-b); color: #3A4048; }
body.upat .upat-page--builder .upat-page__body h1 { margin: 0 0 18px; font: 600 clamp(1.9rem, 1.4rem + 1.6vw, 2.6rem)/1.05 var(--f-d) !important; text-transform: uppercase; }
body.upat .upat-page--builder .upat-page__body h2 { margin: 30px 0 8px !important; font: 700 20px/1.3 var(--f-b) !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--mx-ink) !important; }
body.upat .upat-page--builder .upat-page__body h3 { font: 700 17px/1.35 var(--f-b) !important; text-transform: none !important; color: var(--mx-ink); }
body.upat .upat-page--builder .upat-page__body p, body.upat .upat-page--builder .upat-page__body li { font: 400 16.5px/1.7 var(--f-b) !important; color: #3A4048 !important; }
body.upat .upat-page--builder .upat-page__body p { margin: 0 0 14px !important; }
body.upat .upat-page--builder .elementor-divider, body.upat .upat-page--builder hr { display: none !important; }
body.upat .upat-page--builder .e-con, body.upat .upat-page--builder .e-con-inner { padding: 0 !important; --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; }
@media (max-width: 700px) {
	body.upat .upat-page--builder .upat-page__body { padding: 26px 20px !important; }
	body.upat .upat-page--builder .upat-page__body p, body.upat .upat-page--builder .upat-page__body li { font-size: 15.5px !important; }
	body.upat .upat-page--builder .upat-page__body h2 { font-size: 18px !important; }
}
/* Category bar: when it scrolls sideways, a fade + arrow on the edge shows
   there is more; the fade moves to whichever side still has more. */
.umx-nav { position: relative; }
.umx-nav::before, .umx-nav::after { content: ""; position: absolute; top: 0; bottom: 0; z-index: 2; width: 56px; pointer-events: none; opacity: 0; transition: opacity 200ms ease; }
.umx-nav::before { left: 0; background: linear-gradient(90deg, var(--mx-ink) 30%, rgba(21, 25, 30, 0)); }
.umx-nav::after {
	right: 0; background: linear-gradient(270deg, var(--mx-ink) 40%, rgba(21, 25, 30, 0));
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E"), linear-gradient(270deg, var(--mx-ink) 40%, rgba(21, 25, 30, 0));
	background-repeat: no-repeat; background-position: right 10px center, 0 0; background-size: 18px 18px, 100% 100%;
}
.umx-nav.has-more-r::after { opacity: 1; animation: umx-nudge 1.6s ease-in-out 2; }
.umx-nav.has-more-l::before { opacity: 1; }
@keyframes umx-nudge { 0%, 100% { background-position: right 10px center, 0 0; } 50% { background-position: right 4px center, 0 0; } }
@media (prefers-reduced-motion: reduce) { .umx-nav.has-more-r::after { animation: none; } }

/* Category circles: same "there is more" hint, plus tappable arrows. */
.umx-hscroll { position: relative; }
.umx-hscroll__btn { display: none; }
@media (max-width: 1180px) {
	.umx-hscroll::before, .umx-hscroll::after { content: ""; position: absolute; top: 0; bottom: 40px; z-index: 2; width: 48px; pointer-events: none; opacity: 0; transition: opacity 200ms ease; }
	.umx-hscroll::before { left: calc(var(--gut) * -1); background: linear-gradient(90deg, var(--mx-ground) 20%, rgba(242, 243, 245, 0)); }
	.umx-hscroll::after { right: calc(var(--gut) * -1); background: linear-gradient(270deg, var(--mx-ground) 20%, rgba(242, 243, 245, 0)); }
	.umx-hscroll.has-more-r::after, .umx-hscroll.has-more-l::before { opacity: 1; }
	.umx-hscroll__btn { position: absolute; top: calc(50% - 40px); z-index: 3; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%; background: var(--mx-ink); color: #fff; box-shadow: 0 8px 20px -8px rgba(21, 25, 30, .5); cursor: pointer; opacity: 0; pointer-events: none; transition: opacity 200ms ease, transform 200ms ease; }
	.umx-hscroll__btn .upat-ic { width: 18px; height: 18px; }
	.umx-hscroll__btn--l { left: -6px; }
	.umx-hscroll__btn--l .upat-ic { transform: rotate(180deg); }
	.umx-hscroll__btn--r { right: -6px; }
	.umx-hscroll.has-more-r .umx-hscroll__btn--r, .umx-hscroll.has-more-l .umx-hscroll__btn--l { opacity: 1; pointer-events: auto; }
	.umx-hscroll.has-more-r .umx-hscroll__btn--r { animation: umx-poke 1.6s ease-in-out 2; }
	/* Tablet: the circles become a sideways row too, so the hint has a job. */
	.umx-circles { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-inline: calc(var(--gut) * -1); padding: 4px var(--gut) 8px; scroll-padding-inline: var(--gut); }
	.umx-circles::-webkit-scrollbar { display: none; }
	.umx-circles li { flex: 0 0 20%; scroll-snap-align: start; }
}
@media (max-width: 700px) { .umx-circles li { flex: 0 0 29%; } }
@keyframes umx-poke { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(-5px); } }
@media (prefers-reduced-motion: reduce) { .umx-hscroll.has-more-r .umx-hscroll__btn--r { animation: none; } }

/* Track-your-order page (Bob Go tracking form): one clean card, no nested
   boxes or blank spacer rows. */
body.upat .upat-page__h:has(+ .upat-page__body .bobgo-tracking) h1 { font-size: clamp(2rem, 1.4rem + 2vw, 3rem); }
body.upat .upat-page__body:has(.bobgo-tracking) { max-width: 720px; padding: 0 !important; background: transparent !important; box-shadow: none !important; }
body.upat .bobgo-tracking, body.upat .bobgo-tracking .bobgo-card { margin: 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; }
body.upat #mc-search-container { padding: 32px 36px !important; border-radius: 16px !important; background: #fff !important; box-shadow: inset 0 0 0 1px var(--mx-line) !important; text-align: left; }
body.upat #mc-search-container .clearfix, body.upat #tracking-form > div { display: none !important; }
body.upat #mc-search-container h2 { margin: 0 0 6px !important; font: 700 19px/1.35 var(--f-b) !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--mx-ink); text-align: left !important; }
body.upat #mc-search-container h2::after { content: "You'll find it in the email we sent when your order shipped."; display: block; margin-top: 6px; font: 400 15px/1.5 var(--f-b); color: var(--mx-mute); }
body.upat #tracking-form { display: flex !important; gap: 10px; margin: 20px 0 0 !important; padding: 0 !important; }
body.upat #mc-tracking-number { flex: 1; min-width: 0; height: 52px !important; margin: 0 !important; padding: 0 16px !important; border: 2px solid var(--mx-line) !important; border-radius: 12px !important; background: #fff !important; font: 500 16px/1 var(--f-b) !important; color: var(--mx-ink); box-shadow: none !important; width: auto !important; max-width: none !important; }
body.upat #mc-tracking-number:focus { outline: none; border-color: var(--mx-blue) !important; box-shadow: 0 0 0 4px rgba(31, 122, 184, .15) !important; }
body.upat #mc-track-button { flex: none; height: 52px !important; margin: 0 !important; padding: 0 26px !important; border: 0 !important; border-radius: 12px !important; background: var(--mx-blue) !important; color: #fff !important; font: 700 16px/1 var(--f-b) !important; cursor: pointer; width: auto !important; }
body.upat #mc-track-button:hover { background: var(--mx-blue-d) !important; }
body.upat .bobgo-tracking-shipment .bobgo-card, body.upat #mc-tracking-container .bobgo-card { margin-top: 16px !important; padding: 24px !important; border-radius: 16px !important; background: #fff !important; box-shadow: inset 0 0 0 1px var(--mx-line) !important; }
body.upat .bobgo-tracking .section-heading-header { font: 700 17px/1.3 var(--f-b) !important; color: var(--mx-ink); }
body.upat .bobgo-tracking .status-badge { border-radius: 999px !important; background: #EAF4EE !important; color: var(--mx-green) !important; font-weight: 700; }
@media (max-width: 700px) {
	body.upat #mc-search-container { padding: 22px 18px !important; }
	body.upat #tracking-form { flex-direction: column; }
	body.upat #mc-track-button { width: 100% !important; }
}

/* Text pages + tracking page: centred reading column, not stuck to the left. */
body.upat .upat-page--builder .upat-page__body, body.upat .upat-prose, body.upat .upat-page__body:has(.bobgo-tracking) { margin-inline: auto !important; }
body.upat .upat-page__h:has(+ .upat-page__body .bobgo-tracking) { max-width: 720px; margin-inline: auto; }
body.upat .upat-page--builder { padding-top: 32px; }
body.upat .upat-page--builder .upat-page__h { max-width: 820px; margin: 0 auto 20px; padding: 0; }
body.upat .upat-page--builder .upat-page__h h1 { font-size: clamp(2rem, 1.4rem + 2vw, 3rem); }
body.upat .upat-page--builder .upat-page__body ul { padding-left: 1.2em; }
body.upat .upat-page--builder .upat-page__body li { margin-bottom: 6px; }
body.upat .upat-page--builder .upat-page__body li::marker { color: var(--mx-blue); }
body.upat .upat-page--builder .upat-page__body { max-width: 820px; padding: 48px 56px !important; }
body.upat .upat-page--builder .upat-page__body h1 { padding-bottom: 20px; margin-bottom: 24px !important; border-bottom: 1px solid var(--mx-line) !important; }
body.upat .upat-page--builder .upat-page__body h2 { padding-top: 6px; }
body.upat .upat-page--builder .upat-page__body h2.umx-page-title { margin: 0 0 24px !important; padding: 0 0 20px; border-bottom: 1px solid var(--mx-line) !important; font: 600 clamp(1.9rem, 1.4rem + 1.6vw, 2.6rem)/1.05 var(--f-d) !important; text-transform: uppercase !important; letter-spacing: .005em !important; }
body.upat .upat-page--builder .upat-page__body h2.umx-page-title strong { font-weight: inherit; }
body.upat .upat-page--builder .upat-page__body strong { color: var(--mx-ink); }
@media (max-width: 700px) {
	body.upat .upat-page--builder { padding-top: 16px; }
	body.upat .upat-page--builder .upat-page__body { padding: 26px 20px !important; }
}

/* Phone menu: category rows in the store font. */
.upat-drawer__cats a { font: 700 16.5px/1.2 var(--f-b) !important; text-transform: none; color: var(--mx-ink); }
.upat-drawer__cats small { color: var(--mx-mute); font-weight: 600; }
@media (max-width: 700px) {
	body.upat .upat-prose { padding: 26px 20px !important; margin-inline: 0 !important; font-size: 15.5px; }
	body.upat .upat-prose h2 { font-size: 18px !important; margin-top: 28px; }
}
body.upat .woocommerce-error::before { color: var(--mx-red) !important; }
body.upat .woocommerce-info a, body.upat .woocommerce-message a { color: var(--mx-blue-d); font-weight: 700; }
body.upat.woocommerce-checkout h3, body.upat.woocommerce-checkout #ship-to-different-address, body.upat.woocommerce-checkout #ship-to-different-address label { font: 700 18px/1.3 var(--f-b) !important; text-transform: none !important; letter-spacing: 0 !important; }
body.upat.woocommerce-checkout #customer_details h3:first-child, body.upat.woocommerce-checkout #order_review_heading { font: 600 24px/1.1 var(--f-d) !important; text-transform: uppercase !important; letter-spacing: .01em !important; }
body.upat .woocommerce-checkout-review-order-table th, body.upat .woocommerce-checkout-review-order-table td { font-size: 14.5px; }

/* Forms: show-password eye is a quiet icon, not a red block. */
body.upat .password-input { position: relative; display: block; }
body.upat .show-password-input { position: absolute !important; top: 50% !important; right: 8px !important; transform: translateY(-50%); width: 40px; height: 40px; padding: 0 !important; border: 0 !important; border-radius: 8px !important; background: transparent !important; color: var(--mx-mute) !important; box-shadow: none !important; min-height: 0 !important; }
body.upat .show-password-input:hover { background: var(--mx-ground) !important; color: var(--mx-ink) !important; }
body.upat .woocommerce form .form-row input.input-text, body.upat .woocommerce form .form-row textarea, body.upat .woocommerce form .form-row select { border-radius: 10px !important; }

/* Account (signed out): log in and register side by side on big screens. */
@media (min-width: 961px) {
	body.upat.woocommerce-account:not(.logged-in) .u-columns.col2-set { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
}
body.upat.woocommerce-account:not(.logged-in) h2 { font-size: clamp(1.4rem, 1.1rem + 1vw, 1.9rem); }

/* Card price: bigger retail price, same fixed slot height on every card. */
body.upat ul.products li.product .price { font: 800 30px/32px var(--f-b); height: 46px; letter-spacing: -.01em; }
body.upat ul.products li.product .price del { font-size: 17px; }
body.upat ul.products li.product .upat-card__tier { font-size: 14px; }
@media (max-width: 700px) {
	body.upat ul.products li.product .price { font-size: 24px; line-height: 28px; height: 42px; }
	body.upat ul.products li.product .upat-card__tier { font-size: 12.5px; }
}

/* Chat: hide button (×) on the chat button; hidden state is a small round tab. */
.upat-chat { position: fixed; }
.upat-chat__fab { position: relative; }
.umx-chat-hide {
	order: 3; position: absolute; left: calc(100% - 14px); bottom: calc(100% - 14px); z-index: 2;
	display: flex; align-items: center; justify-content: center; width: 26px; height: 26px; padding: 0; border: 0; border-radius: 50%;
	background: #fff; color: var(--mx-ink); box-shadow: 0 0 0 1px var(--mx-line), 0 4px 10px -4px rgba(21, 25, 30, .4); cursor: pointer;
}
.umx-chat-hide::after { content: ""; position: absolute; inset: -9px; } /* 44px tap area */
.umx-chat-hide:hover { background: var(--mx-ground); }
.umx-chat-hide:focus-visible { outline: 2px solid var(--mx-blue); outline-offset: 2px; }
.upat-chat.is-open .umx-chat-hide, .upat-chat.is-mini .umx-chat-hide { display: none; }
.upat-chat.is-mini .upat-chat__fab { padding: 6px; border-radius: 50%; gap: 0; }
.upat-chat.is-mini .umx-desk__tx { display: none; }
.upat-chat.is-mini .umx-desk__ic { border-radius: 50%; background: #25D366; }

/* Product gallery: swipe like Instagram. Dots under the photo, arrows on the sides. */
body.upat div.product .woocommerce-product-gallery { position: relative; }
body.upat div.product .woocommerce-product-gallery .flex-viewport { touch-action: pan-y; cursor: grab; }
body.upat div.product .woocommerce-product-gallery .flex-control-paging {
	display: flex; justify-content: center; gap: 2px; margin: 14px 0 2px; padding: 0; list-style: none; position: static; width: auto; text-align: center;
}
body.upat div.product .woocommerce-product-gallery .flex-control-paging li { margin: 0; float: none; width: auto; }
body.upat div.product .woocommerce-product-gallery .flex-control-paging a {
	display: block; position: relative; width: 24px; height: 24px; font-size: 0; color: transparent; cursor: pointer; background: none; box-shadow: none; text-indent: -999px; overflow: hidden;
}
body.upat div.product .woocommerce-product-gallery .flex-control-paging a::before {
	content: ""; position: absolute; left: 50%; top: 50%; width: 7px; height: 7px; margin: -3.5px 0 0 -3.5px; border-radius: 50%; background: #C5CCD3; transition: background .2s, transform .2s;
}
body.upat div.product .woocommerce-product-gallery .flex-control-paging a.flex-active::before { background: var(--mx-blue); transform: scale(1.25); }
body.upat div.product .woocommerce-product-gallery .flex-direction-nav { margin: 0; padding: 0; list-style: none; }
body.upat div.product .woocommerce-product-gallery .flex-direction-nav a {
	position: absolute; top: calc(50% - 40px); z-index: 3; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; margin: 0;
	border-radius: 50%; background: rgba(255, 255, 255, .92); box-shadow: 0 0 0 1px var(--mx-line), 0 6px 16px -8px rgba(21, 25, 30, .45);
	font-size: 0; color: transparent; overflow: hidden; opacity: 1; transition: opacity .2s, transform .2s;
}
body.upat div.product .woocommerce-product-gallery .flex-direction-nav a::before {
	content: ""; width: 10px; height: 10px; border: solid var(--mx-ink); border-width: 0 2.4px 2.4px 0; transform: rotate(135deg); margin-left: 4px;
}
body.upat div.product .woocommerce-product-gallery .flex-direction-nav .flex-prev { left: 12px; }
body.upat div.product .woocommerce-product-gallery .flex-direction-nav .flex-next { right: 12px; }
body.upat div.product .woocommerce-product-gallery .flex-direction-nav .flex-next::before { transform: rotate(-45deg); margin: 0 4px 0 0; }
body.upat div.product .woocommerce-product-gallery .flex-direction-nav a.flex-disabled { opacity: 0 !important; pointer-events: none; }
body.upat div.product .woocommerce-product-gallery .flex-direction-nav a:hover { transform: scale(1.06); }
body.upat div.product .woocommerce-product-gallery .flex-direction-nav a:focus-visible { outline: 2px solid var(--mx-blue); outline-offset: 2px; }
@media (hover: none) { body.upat div.product .woocommerce-product-gallery .flex-direction-nav { display: none; } }
body.upat div.product .woocommerce-product-gallery .flex-control-thumbs { display: none !important; }

/* Account → Addresses: two equal cards, title and edit link on one line. */
body.upat .woocommerce-MyAccount-content .woocommerce-Addresses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; width: auto; margin: 18px 0 0; }
body.upat .woocommerce-MyAccount-content .woocommerce-Addresses::before, body.upat .woocommerce-MyAccount-content .woocommerce-Addresses::after { content: none; display: none; }
body.upat .woocommerce-MyAccount-content .woocommerce-Addresses > .woocommerce-Address { float: none !important; width: auto !important; max-width: none; margin: 0 !important; padding: 20px 22px; border-radius: 14px; background: var(--mx-ground); box-shadow: inset 0 0 0 1px var(--mx-line); }
body.upat .woocommerce-MyAccount-content .woocommerce-Address-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 0 0 12px; }
body.upat .woocommerce-MyAccount-content .woocommerce-Address-title::before, body.upat .woocommerce-MyAccount-content .woocommerce-Address-title::after { content: none; display: none; }
body.upat .woocommerce-MyAccount-content .woocommerce-Address-title h2 { margin: 0; font-size: 22px; float: none; }
body.upat .woocommerce-MyAccount-content .woocommerce-Address-title a.edit { float: none; display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border-radius: 10px; background: #fff; box-shadow: inset 0 0 0 1px var(--mx-line); color: var(--mx-blue); font: 700 14px/1 var(--f-b); text-decoration: none; white-space: nowrap; }
body.upat .woocommerce-MyAccount-content .woocommerce-Address-title a.edit:hover { box-shadow: inset 0 0 0 1px var(--mx-blue); }
body.upat .woocommerce-MyAccount-content .woocommerce-Address address { margin: 0; font-style: normal; color: var(--mx-mute); line-height: 1.6; }
@media (max-width: 760px) { body.upat .woocommerce-MyAccount-content .woocommerce-Addresses { grid-template-columns: minmax(0, 1fr); } }

/* 404: one card with search and categories, then popular products. */
.umx-404 { padding-block: 40px 8px; }
.umx-404__card { padding: clamp(28px, 5vw, 56px); border-radius: 22px; background: #fff; box-shadow: 0 0 0 1px var(--mx-line); }
.umx-404__code { margin: 0 0 6px; font: 700 clamp(4.5rem, 2.5rem + 8vw, 9rem)/.85 var(--f-d); color: var(--mx-red); letter-spacing: -.01em; }
.umx-404 h1 { margin: 0; font-size: clamp(1.9rem, 1.2rem + 2.4vw, 3rem); color: var(--mx-ink); overflow-wrap: anywhere; }
.umx-404__lead { max-width: 52ch; margin: 14px 0 0; color: var(--mx-mute); }
.umx-404__search { display: flex; gap: 8px; max-width: 620px; margin: 26px 0 0; }
.umx-404__search input[type=search] { flex: 1 1 auto; min-width: 0; min-height: 52px; padding: 0 16px; border: 1.5px solid var(--mx-line); border-radius: 12px; background: #fff; font: 500 16px/1 var(--f-b); color: var(--mx-ink); }
.umx-404__search input[type=search]:focus { outline: none; border-color: var(--mx-blue); box-shadow: 0 0 0 3px rgba(31, 122, 184, .18); }
.umx-404__search .upat-btn { min-height: 52px; flex: none; }
.umx-404__cats { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 0; padding: 0; list-style: none; }
.umx-404__cats a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: 999px; background: var(--mx-ground); color: var(--mx-ink); font: 700 14.5px/1 var(--f-b); text-decoration: none; white-space: nowrap; transition: background .2s; }
.umx-404__cats a small { font-weight: 600; color: var(--mx-mute); }
.umx-404__cats a:hover { background: #E6E9ED; }
.umx-404__cats a.is-all { background: var(--mx-ink); color: #fff; }
.umx-404__cats a.is-all .upat-ic { width: 16px; height: 16px; }
.umx-404__help { margin: 24px 0 0; padding-top: 20px; border-top: 1px solid var(--mx-line); color: var(--mx-mute); }
.umx-404__help a { color: #128C7E; font-weight: 700; }
@media (max-width: 520px) { .umx-404__search { flex-direction: column; } .umx-404__search .upat-btn { width: 100%; justify-content: center; } }

/* Hero products: float gently, and lean toward the mouse.
   Float uses the separate `translate` property so each photo keeps its own tilt. */
.umx-promo { --px: 0; --py: 0; }
.umx-promo__art { transform: perspective(900px) translate3d(calc(var(--px) * 14px), calc(var(--py) * 10px), 0) rotateY(calc(var(--px) * 6deg)) rotateX(calc(var(--py) * -5deg)); transition: transform .6s cubic-bezier(.16, 1, .3, 1); will-change: transform; }
.umx-promo.is-tracking .umx-promo__art { transition-duration: .12s; }
@keyframes umx-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -12px; } }
.umx-cut { animation: umx-float 6s ease-in-out infinite; }
.umx-cut--b { animation-duration: 7s; animation-delay: -2.5s; }
.umx-cut--pen { animation-duration: 6.5s; animation-delay: -1.2s; }
.umx-cut--rec { animation-duration: 7.5s; animation-delay: -3.4s; }
.umx-promo:hover .umx-cut { filter: drop-shadow(0 34px 34px rgba(0, 0, 0, .3)); }
@media (prefers-reduced-motion: reduce) {
	.umx-cut { animation: none; }
	.umx-promo__art { transform: none !important; }
}

/* Product cards: lift on hover, photo floats up and leans toward the mouse,
   button gets a light sweep. Transform-only, so card sizes never change. */
body.upat ul.products li.product { --px: 0; --py: 0; transition: transform .45s cubic-bezier(.16, 1, .3, 1), box-shadow .45s cubic-bezier(.16, 1, .3, 1); }
body.upat ul.products li.product .umx-thumb { display: block; perspective: 700px; }
body.upat ul.products li.product .umx-thumb img { transition: transform .6s cubic-bezier(.16, 1, .3, 1), filter .45s; transform-origin: 50% 60%; }
body.upat ul.products li.product.is-tracking .umx-thumb img { transition-duration: .15s, .45s; }
@media (hover: hover) and (pointer: fine) {
	body.upat ul.products li.product:hover { transform: translateY(-6px); box-shadow: 0 0 0 1px var(--mx-line), 0 28px 50px -28px rgba(21, 25, 30, .38); }
	body.upat ul.products li.product:hover .umx-thumb img {
		transform: translate3d(calc(var(--px) * 8px), calc(-10px + var(--py) * 6px), 0) scale(1.06) rotateY(calc(var(--px) * 8deg)) rotateX(calc(var(--py) * -6deg));
		filter: drop-shadow(0 18px 18px rgba(21, 25, 30, .18));
	}
}
body.upat ul.products li.product .button { position: relative; overflow: hidden; }
body.upat ul.products li.product .button::after {
	content: ""; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%; pointer-events: none;
	background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .35), transparent); transform: skewX(-18deg); transition: left .7s cubic-bezier(.16, 1, .3, 1);
}
body.upat ul.products li.product:hover .button::after { left: 130%; }
body.upat ul.products li.product .umx-save { transition: transform .45s cubic-bezier(.16, 1, .3, 1); }
body.upat ul.products li.product:hover .umx-save { transform: translateY(-2px) scale(1.04); }
/* Scroll-in: cards rise in a quick wave (added by JS only, so no-JS still shows everything). */
body.upat ul.products.umx-reveal li.product { opacity: 0; translate: 0 24px; transition: opacity .7s cubic-bezier(.16, 1, .3, 1), translate .7s cubic-bezier(.16, 1, .3, 1), transform .45s cubic-bezier(.16, 1, .3, 1), box-shadow .45s; transition-delay: calc(var(--i, 0) * 70ms), calc(var(--i, 0) * 70ms), 0s, 0s; }
body.upat ul.products.umx-reveal li.product.is-in { opacity: 1; translate: 0 0; }
/* Woo's default red "Sale!" tag clashes with the save pill; the struck-out price already shows the sale. */
body.upat ul.products li.product .onsale { display: none; }
@media (prefers-reduced-motion: reduce) {
	body.upat ul.products li.product, body.upat ul.products li.product .umx-thumb img { transition: none; }
	body.upat ul.products.umx-reveal li.product { opacity: 1; translate: none; }
	body.upat ul.products li.product .button::after { display: none; }
}

/* ── Account dashboard ─────────────────────────────────────────────── */
.umx-acct { display: grid; gap: 18px; }
.umx-acct h2, .umx-acct h3 { margin: 0; color: var(--mx-ink); }
.umx-acct__hi { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 24px; align-items: end; padding: 28px; border-radius: 18px; background: var(--mx-ink); color: #fff; isolation: isolate; }
.umx-acct__hi::before { content: ""; position: absolute; z-index: -1; right: -80px; top: -120px; width: 340px; height: 340px; border-radius: 50%; background: radial-gradient(closest-side, rgba(166, 58, 42, .75), transparent); }
.umx-acct__hi::after { content: ""; position: absolute; z-index: -1; left: 30%; bottom: -160px; width: 300px; height: 300px; border-radius: 50%; background: radial-gradient(closest-side, rgba(31, 122, 184, .45), transparent); }
.umx-acct__hi h2 { color: #fff; font-size: clamp(1.7rem, 1.2rem + 1.6vw, 2.5rem); overflow-wrap: anywhere; }
.umx-acct__hi p { margin: 10px 0 0; color: rgba(255, 255, 255, .78); max-width: 46ch; }
.umx-acct__kick { margin: 0 0 8px !important; font: 800 12px/1 var(--f-b); letter-spacing: .14em; text-transform: uppercase; color: var(--mx-pink) !important; }
.umx-acct__stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0; }
.umx-acct__stats div { padding: 14px; border-radius: 12px; background: rgba(255, 255, 255, .08); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12); }
.umx-acct__stats dt { font: 600 12px/1.2 var(--f-b); color: rgba(255, 255, 255, .7); }
.umx-acct__stats dd { margin: 6px 0 0; font: 600 26px/1 var(--f-d); color: #fff; white-space: nowrap; }
.umx-acct__card { padding: 22px; border-radius: 16px; background: #fff; box-shadow: inset 0 0 0 1px var(--mx-line); }
.umx-acct__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.umx-acct__head h3 { font-size: 22px; }
.umx-acct__sub { margin: 6px 0 0 !important; color: var(--mx-mute); font-size: 15px; }
.umx-acct__more { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; color: var(--mx-blue) !important; font: 700 14px/1 var(--f-b); text-decoration: none; white-space: nowrap; }
.umx-acct__more .upat-ic { width: 16px; height: 16px; }
.umx-acct__ord { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.umx-acct__num { margin: 0 !important; font-size: 16px !important; }
.umx-acct__num span { color: var(--mx-mute); margin-left: 6px; }
.umx-acct__tot { margin: 0 !important; font: 800 22px/1 var(--f-b); color: var(--mx-ink); }
.umx-acct__items { margin: 8px 0 0 !important; color: var(--mx-mute); font-size: 14.5px; }
.umx-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 20px 0 0; padding: 0; list-style: none; counter-reset: s; }
.umx-steps li { position: relative; display: flex; flex-direction: column; align-items: center; gap: 8px; font: 700 13px/1 var(--f-b); color: var(--mx-mute); text-align: center; }
.umx-steps li::before { content: ""; position: absolute; top: 8px; left: -50%; right: 50%; height: 3px; background: var(--mx-line); z-index: 0; }
.umx-steps li:first-child::before { display: none; }
.umx-steps__dot { position: relative; z-index: 1; width: 19px; height: 19px; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 3px var(--mx-line); }
.umx-steps li.is-done, .umx-steps li.is-now { color: var(--mx-ink); }
.umx-steps li.is-done::before, .umx-steps li.is-now::before { background: var(--mx-green); }
.umx-steps li.is-done .umx-steps__dot { background: var(--mx-green); box-shadow: none; }
.umx-steps li.is-done .umx-steps__dot::after { content: ""; position: absolute; left: 6px; top: 3px; width: 5px; height: 9px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.umx-steps li.is-now .umx-steps__dot { box-shadow: inset 0 0 0 3px var(--mx-green), 0 0 0 5px rgba(28, 122, 74, .16); animation: umx-pulse 2s ease-in-out infinite; }
@keyframes umx-pulse { 50% { box-shadow: inset 0 0 0 3px var(--mx-green), 0 0 0 9px rgba(28, 122, 74, .06); } }
.umx-acct__line { margin: 16px 0 0 !important; padding: 12px 14px; border-radius: 10px; background: var(--mx-ground); font-size: 15px; }
.umx-acct__btns { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.umx-acct__btns .upat-btn { min-height: 48px; }
.umx-acct__ghost { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 16px; border-radius: 12px; background: #fff; box-shadow: inset 0 0 0 1.5px var(--mx-line); color: var(--mx-ink) !important; font: 700 15px/1 var(--f-b); text-decoration: none; white-space: nowrap; transition: box-shadow .2s; }
.umx-acct__ghost:hover { box-shadow: inset 0 0 0 1.5px var(--mx-ink); }
.umx-acct__ghost--wa { color: #0B6B5E !important; box-shadow: inset 0 0 0 1.5px rgba(18, 140, 126, .4); }
.umx-acct__ghost .upat-ic, .umx-acct__btns .upat-btn .upat-ic { width: 18px; height: 18px; }
/* Quick order */
.umx-quick__list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.umx-quick__row { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 8px 10px 8px 8px; border-radius: 12px; box-shadow: inset 0 0 0 1px var(--mx-line); transition: box-shadow .2s, background .2s; }
.umx-quick__row.is-picked { background: #F1F7FC; box-shadow: inset 0 0 0 1.5px var(--mx-blue); }
.umx-quick__row.is-added { background: #EAF4EE; box-shadow: inset 0 0 0 1.5px var(--mx-green); }
.umx-quick__row.is-failed { box-shadow: inset 0 0 0 1.5px var(--mx-red); }
.umx-quick__img { display: block; width: 64px; height: 64px; border-radius: 10px; overflow: hidden; background: #fff; }
.umx-quick__img img { width: 100%; height: 100%; object-fit: contain; }
.umx-quick__info { display: grid; gap: 4px; min-width: 0; }
.umx-quick__nm { color: var(--mx-ink) !important; font: 700 15px/1.3 var(--f-b) !important; text-decoration: none; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.umx-quick__nm:hover { color: var(--mx-blue) !important; }
.umx-quick__pr { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; font: 800 16px/1 var(--f-b); color: var(--mx-ink); }
.umx-quick__pr del { font-size: 13px; color: var(--mx-mute); font-weight: 600; }
.umx-quick__pr ins { text-decoration: none; }
.umx-quick__pr small { font: 600 12.5px/1 var(--f-b); color: var(--mx-green); }
.umx-qty { display: inline-flex; align-items: center; border-radius: 12px; background: var(--mx-ground); padding: 3px; }
.umx-qty button { width: 40px; height: 40px; border: 0; border-radius: 10px; background: transparent; color: var(--mx-ink); font: 600 20px/1 var(--f-b); cursor: pointer; padding: 0; min-height: 0; }
.umx-qty button:hover { background: #fff; }
.umx-qty button:focus-visible, .umx-qty input:focus-visible { outline: 2px solid var(--mx-blue); outline-offset: 1px; }
.umx-qty input { width: 44px; height: 40px; border: 0 !important; background: transparent !important; text-align: center; font: 700 16px/1 var(--f-b); color: var(--mx-ink); padding: 0 !important; box-shadow: none !important; -moz-appearance: textfield; }
.umx-qty input::-webkit-inner-spin-button, .umx-qty input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.umx-quick__foot { position: sticky; bottom: 12px; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 14px; padding: 12px 12px 12px 16px; border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px var(--mx-line), 0 16px 30px -22px rgba(21, 25, 30, .45); }
.umx-quick__sum { margin: 0 !important; color: var(--mx-mute); font-size: 15px; }
.umx-quick__foot .upat-btn { min-height: 48px; }
.umx-quick__foot .upat-btn[disabled] { opacity: .45; cursor: not-allowed; }
.umx-quick__foot .upat-btn.is-busy { opacity: .7; }
/* Shortcut tiles */
.umx-acct__tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.umx-acct__tiles a { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 12px; row-gap: 3px; align-items: center; padding: 16px; border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px var(--mx-line); color: var(--mx-ink) !important; text-decoration: none; transition: transform .35s cubic-bezier(.16, 1, .3, 1), box-shadow .35s; }
.umx-acct__tiles a:hover { transform: translateY(-3px); box-shadow: inset 0 0 0 1px var(--mx-line), 0 18px 30px -22px rgba(21, 25, 30, .4); }
.umx-acct__tiles .upat-ic { grid-row: 1 / 3; width: 40px; height: 40px; padding: 9px; border-radius: 10px; background: var(--mx-ground); }
.umx-acct__tiles b { font: 700 15px/1.2 var(--f-b); }
.umx-acct__tiles small { font: 500 13px/1.3 var(--f-b); color: var(--mx-mute); }
.umx-acct__tiles a.is-wa .upat-ic { background: #E3F5EF; color: #0B6B5E; }
/* Orders list: "Order again" button looks secondary next to View. */
body.upat .woocommerce-orders-table .woocommerce-button.order-again { background: #fff !important; color: var(--mx-ink) !important; box-shadow: inset 0 0 0 1.5px var(--mx-line) !important; margin-left: 6px; }
@media (max-width: 960px) { .umx-acct__hi { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 640px) {
	.umx-acct__hi { padding: 22px 18px; }
	.umx-acct__stats dd { font-size: 22px; }
	.umx-acct__card { padding: 16px; }
	.umx-acct__tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.umx-quick__row { grid-template-columns: 52px minmax(0, 1fr); }
	.umx-quick__img { width: 52px; height: 52px; }
	.umx-qty { grid-column: 1 / -1; justify-self: end; }
	.umx-quick__foot { bottom: 76px; }
	.umx-quick__foot .upat-btn { width: 100%; justify-content: center; }
	.umx-acct__btns > * { flex: 1 1 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) { .umx-steps li.is-now .umx-steps__dot { animation: none; } }
/* Shield the dashboard from the generic account-page list, link and button styles. */
body.upat .woocommerce-MyAccount-content .umx-acct p { max-width: none; }
body.upat .woocommerce-MyAccount-content .umx-acct__hi p { max-width: 46ch; }
body.upat .woocommerce-MyAccount-content .umx-steps li { margin: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; min-height: 0; }
body.upat .woocommerce-MyAccount-content .umx-acct .upat-btn,
body.upat .woocommerce-MyAccount-content .umx-acct .upat-btn:hover { display: inline-flex; align-items: center; gap: 8px; padding: 0 20px; border: 0; border-radius: 12px; background: var(--mx-blue) !important; color: #fff !important; font: 700 15px/1 var(--f-b) !important; text-decoration: none; box-shadow: none !important; }
body.upat .woocommerce-MyAccount-content .umx-acct .upat-btn:hover { background: var(--mx-blue-d) !important; }
body.upat .woocommerce-MyAccount-content .umx-acct .upat-btn[disabled] { background: #9FB9CD !important; opacity: 1; }
body.upat .woocommerce-MyAccount-content .umx-qty button,
body.upat .woocommerce-MyAccount-content .umx-qty button:hover { width: 40px !important; height: 40px !important; min-height: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 10px !important; background: transparent !important; color: var(--mx-ink) !important; box-shadow: none !important; font: 600 20px/1 var(--f-b) !important; }
body.upat .woocommerce-MyAccount-content .umx-qty button:hover { background: #fff !important; }
body.upat .woocommerce-MyAccount-content .umx-acct__tiles a, body.upat .woocommerce-MyAccount-content .umx-acct__ghost { font-weight: 700; }

/* ── Product page polish ───────────────────────────────────────────── */
body.upat div.product .product_title .umx-t2 { display: block; margin-top: 8px; font: 600 clamp(1.05rem, .9rem + .5vw, 1.4rem)/1.25 var(--f-b); color: var(--mx-mute); letter-spacing: 0; text-transform: none; }
body.upat div.product p.price, body.upat div.product span.price { margin: 18px 0 10px !important; font: 800 clamp(2.6rem, 1.9rem + 1.8vw, 3.6rem)/1 var(--f-b) !important; letter-spacing: -.025em; color: var(--mx-ink); }
body.upat div.product p.price del { font-size: .5em; color: var(--mx-mute); font-weight: 600; margin-right: 10px; }
body.upat div.product p.price ins { text-decoration: none; color: var(--mx-red); }
.umx-pricechip { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 20px !important; padding: 8px 14px 8px 8px; border-radius: 999px; background: #EAF4EE; color: var(--mx-green); font: 600 14px/1 var(--f-b); }
.umx-pricechip b { padding: 6px 10px; border-radius: 999px; background: var(--mx-green); color: #fff; font-weight: 800; }
body.upat div.product .onsale { display: none; }
/* Gallery: soft stage glow, photo floats and leans toward the mouse. */
body.upat div.product .woocommerce-product-gallery .flex-viewport, body.upat div.product .woocommerce-product-gallery__wrapper { background: radial-gradient(60% 55% at 50% 52%, #F4F6F8 0%, #fff 70%); }
body.upat div.product div.images { --px: 0; --py: 0; }
body.upat div.product .woocommerce-product-gallery__image { perspective: 1000px; }
body.upat div.product .woocommerce-product-gallery__image { overflow: hidden; }
body.upat div.product .woocommerce-product-gallery__image:not(.flex-active-slide) img { transform: none !important; }
body.upat div.product .woocommerce-product-gallery__image img {
	transform: translate3d(calc(var(--px) * 10px), calc(var(--py) * 8px), 0) rotateY(calc(var(--px) * 7deg)) rotateX(calc(var(--py) * -5deg)) scale(calc(1 + (var(--hov, 0) * .04)));
	transition: transform .7s cubic-bezier(.16, 1, .3, 1);
	mix-blend-mode: multiply;
	animation: umx-float 7s ease-in-out infinite;
}
body.upat div.product div.images.is-tracking { --hov: 1; }
body.upat div.product div.images.is-tracking .woocommerce-product-gallery__image img { transition-duration: .15s; }
/* Price ladder: lift on hover, a "Best value" tag on the top tier. */
body.upat div.product .upat-rung { position: relative; transition: transform .35s cubic-bezier(.16, 1, .3, 1), background .2s, box-shadow .2s; }
@media (hover: hover) { body.upat div.product .upat-rung:not(.is-on):hover { background: #F6F8FA !important; } }
body.upat div.product .upat-ladder__list li:last-child .upat-rung::after { content: "Best value"; position: absolute; top: 10px; right: 10px; padding: 4px 8px; border-radius: 999px; background: var(--mx-red); color: #fff; font: 800 10.5px/1 var(--f-b); letter-spacing: .08em; text-transform: uppercase; }
/* Add to cart: light sweep on hover, press-in on click. */
body.upat div.product form.cart .single_add_to_cart_button { position: relative; overflow: hidden; transition: transform .2s, background .2s; }
body.upat div.product form.cart .single_add_to_cart_button::after { content: ""; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%; pointer-events: none; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .35), transparent); transform: skewX(-18deg); transition: left .8s cubic-bezier(.16, 1, .3, 1); }
body.upat div.product form.cart .single_add_to_cart_button:hover::after { left: 130%; }
body.upat div.product form.cart .single_add_to_cart_button:active { transform: scale(.98); }
@media (prefers-reduced-motion: reduce) {
	body.upat div.product .woocommerce-product-gallery__image img { animation: none; transform: none; }
}

/* ── Shop / category pages ─────────────────────────────────────────── */
.umx-shophero { position: relative; overflow: hidden; isolation: isolate; display: flex; align-items: center; min-height: 230px; margin: 14px 0 0; padding: clamp(26px, 4vw, 44px); border-radius: 22px; background: var(--mx-ink); color: #fff; }
.umx-shophero::before { content: ""; position: absolute; z-index: -1; right: 8%; top: -40%; width: 520px; height: 520px; border-radius: 50%; background: radial-gradient(closest-side, rgba(166, 58, 42, .8), transparent); animation: umx-drift 14s ease-in-out infinite alternate; }
.umx-shophero::after { content: ""; position: absolute; z-index: -1; left: 30%; bottom: -70%; width: 480px; height: 480px; border-radius: 50%; background: radial-gradient(closest-side, rgba(31, 122, 184, .5), transparent); animation: umx-drift 18s ease-in-out infinite alternate-reverse; }
@keyframes umx-drift { from { translate: 0 0; } to { translate: -60px 30px; } }
.umx-shophero__copy { position: relative; z-index: 2; max-width: 56%; }
.umx-shophero__kick { margin: 0 0 10px; font: 800 12px/1 var(--f-b); letter-spacing: .14em; text-transform: uppercase; color: var(--mx-pink); }
.umx-shophero h1 { margin: 0; color: #fff; font-size: clamp(2.6rem, 1.6rem + 3.6vw, 5rem); line-height: .95; overflow-wrap: anywhere; }
.umx-shophero__lede { margin: 14px 0 0; max-width: 48ch; color: rgba(255, 255, 255, .8); font-size: 16px; }
.umx-shophero__lede b { color: #fff; }
.umx-shophero__art { position: absolute; z-index: 1; inset: 0 0 0 52%; pointer-events: none; }
.umx-shophero .umx-shophero__art img.umx-shophero__img { position: absolute; height: 78%; width: auto !important; max-width: none !important; aspect-ratio: auto; bottom: 6%; filter: drop-shadow(0 24px 26px rgba(0, 0, 0, .45)); }
.umx-shophero__img--a { left: 2%; height: 74%; rotate: -8deg; }
.umx-shophero__img--b { left: 38%; height: 70%; bottom: 2%; animation-delay: -2s; animation-duration: 7s; }
.umx-shophero__img--c { right: 2%; height: 80%; rotate: 6deg; animation-delay: -4s; animation-duration: 8s; }
/* Banner product tiles: white cards so any product photo sits cleanly on the dark banner. */
@keyframes umx-tilefloat { 0%, 100% { translate: 0 0; } 50% { translate: 0 -10px; } }
/* The tiles share the right-hand area as a row, so they always fit inside the banner. */
.umx-shophero .umx-shophero__art { display: flex; align-items: center; justify-content: center; padding: 24px 28px 24px 0; }
.umx-shophero__tile { position: relative; flex: 0 1 30%; max-width: 180px; min-width: 0; aspect-ratio: 1; margin: 0 6px; padding: 6px; border-radius: 20px; overflow: hidden; background: #fff; box-shadow: 0 30px 50px -24px rgba(0, 0, 0, .65), inset 0 0 0 1px rgba(255, 255, 255, .6); animation: umx-tilefloat 6.5s ease-in-out infinite; }
.umx-shophero__tile img { display: block; width: 100% !important; height: 100% !important; max-width: none; object-fit: contain; mix-blend-mode: multiply; scale: 1.12; }
.umx-shophero__tile--1 { rotate: -7deg; animation-delay: -1s; }
.umx-shophero__tile--2 { rotate: 3deg; z-index: 2; scale: 1.12; animation-duration: 7.5s; animation-delay: -3s; }
.umx-shophero__tile--3 { rotate: 8deg; animation-delay: -5s; }
/* Category "About this range": heading on the left, text on the right,
   first paragraph as a lead and the closing sign-off as a highlighted tagline. */
.umx-about { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: clamp(24px, 4vw, 56px); margin: 48px 0 8px; padding: clamp(24px, 4vw, 48px); border-radius: 22px; background: #fff; box-shadow: inset 0 0 0 1px var(--mx-line); }
.umx-about__side { align-self: start; position: sticky; top: 140px; }
.umx-about__kick { margin: 0 0 10px; font: 800 12px/1 var(--f-b); letter-spacing: .14em; text-transform: uppercase; color: var(--mx-red); }
.umx-about h2 { margin: 0; font-size: clamp(2rem, 1.4rem + 2vw, 3.2rem); color: var(--mx-ink); overflow-wrap: anywhere; }
.umx-about__btn { margin-top: 22px; min-height: 46px; }
body.upat .umx-about__text { max-width: 64ch; margin: 0; padding: 0; background: none; box-shadow: none; }
body.upat .umx-about__text p { margin: 0 0 16px; color: var(--mx-mute); font-size: 16.5px; line-height: 1.7; }
body.upat .umx-about__text p:first-child { color: var(--mx-ink); font-size: clamp(1.1rem, 1rem + .4vw, 1.3rem); line-height: 1.55; font-weight: 600; }
body.upat .umx-about__text p:last-child:not(:first-child) { margin: 26px 0 0; padding: 18px 20px; border-left: 4px solid var(--mx-red); border-radius: 0 12px 12px 0; background: var(--mx-ground); color: var(--mx-ink); font-weight: 700; line-height: 1.5; }
@media (max-width: 860px) {
	.umx-about { grid-template-columns: minmax(0, 1fr); }
	.umx-about__side { position: static; }
	.umx-about__btn { display: none; }
}

/* Cut-out photos: no white card, the product itself floats with a shadow. */
.umx-shophero__art.is-cut .umx-shophero__tile { padding: 0; border-radius: 0; background: none; box-shadow: none; overflow: visible; max-width: 210px; flex-basis: 33%; margin: 0 -.5%; }
.umx-shophero__art.is-cut .umx-shophero__tile img { mix-blend-mode: normal; scale: 1.15; filter: drop-shadow(0 22px 24px rgba(0, 0, 0, .55)); }
.umx-shophero__art.is-cut .umx-shophero__tile--2 { scale: 1.2; }
@media (max-width: 760px) {
	.umx-shophero__art.is-cut .umx-shophero__tile { max-width: 130px; }
	.umx-shophero .umx-shophero__art { padding: 10px 20px 22px; }
	.umx-shophero__tile { max-width: 104px; padding: 7px; border-radius: 14px; }
}
@media (prefers-reduced-motion: reduce) { .umx-shophero__tile { animation: none; } }
.umx-shophero { --px: 0; --py: 0; }
.umx-shophero__art { transform: perspective(900px) translate3d(calc(var(--px) * 16px), calc(var(--py) * 10px), 0) rotateY(calc(var(--px) * 6deg)); transition: transform .6s cubic-bezier(.16, 1, .3, 1); }
.umx-shophero.is-tracking .umx-shophero__art { transition-duration: .12s; }
@media (prefers-reduced-motion: reduce) { .umx-shophero__art { transform: none !important; } .umx-shophero__img { animation: none; } }
/* Category chips with counts */
body.upat .umx-shopcats { margin-top: 16px; }
body.upat .umx-shopcats .upat-catbar { display: flex; gap: 8px; flex-wrap: nowrap; margin: 0; padding: 4px 2px; overflow-x: auto; scrollbar-width: none; }
body.upat .umx-shopcats .upat-catbar::-webkit-scrollbar { display: none; }
body.upat .umx-shopcats .upat-chip { flex: none; display: inline-flex; align-items: center; gap: 8px; min-height: 46px; padding: 0 18px; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1px var(--mx-line); color: var(--mx-ink); font: 700 15px/1 var(--f-b); text-decoration: none; white-space: nowrap; transition: box-shadow .2s, transform .3s cubic-bezier(.16, 1, .3, 1); }
body.upat .umx-shopcats .upat-chip small { padding: 4px 7px; border-radius: 999px; background: var(--mx-ground); color: var(--mx-mute); font: 700 12px/1 var(--f-b); }
body.upat .umx-shopcats .upat-chip:hover { transform: translateY(-2px); box-shadow: inset 0 0 0 1.5px var(--mx-ink); }
body.upat .umx-shopcats .upat-chip.is-on { background: var(--mx-ink); color: #fff; box-shadow: none; }
body.upat .umx-shopcats .upat-chip.is-on small { background: rgba(255, 255, 255, .16); color: #fff; }
/* Toolbar: count · in-stock switch · sort, in one white bar */
body.upat .upat-wc--archive .woocommerce-notices-wrapper:empty { display: none; }
body.upat .upat-wc--archive .woocommerce-result-count { float: none; margin: 0; color: var(--mx-mute); font: 600 14px/1 var(--f-b); }
body.upat .upat-wc--archive .woocommerce-ordering { float: none; margin: 0 0 0 auto; }
body.upat .upat-wc--archive .woocommerce-ordering select { min-height: 44px; border-radius: 12px; }
body.upat .upat-wc--archive .woocommerce-result-count, body.upat .upat-wc--archive .umx-toggle, body.upat .upat-wc--archive .woocommerce-ordering { position: relative; z-index: 1; }
body.upat .upat-wc--archive .woocommerce-result-count { display: inline-flex; align-items: center; min-height: 44px; }
body.upat .upat-wc--archive form.woocommerce-ordering, body.upat .upat-wc--archive .umx-toggle { vertical-align: middle; }
body.upat .upat-wc--archive .woocommerce-result-count + .umx-toggle { margin-left: 16px; }
body.upat .upat-wc--archive .umx-shopcats ~ .woocommerce-notices-wrapper + .woocommerce-result-count,
body.upat .upat-wc--archive .woocommerce-result-count { margin-top: 18px; }
.umx-toggle { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; margin-top: 18px; padding: 0 14px 0 6px; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1px var(--mx-line); color: var(--mx-ink) !important; font: 700 14px/1 var(--f-b); text-decoration: none !important; }
.umx-toggle__sw { position: relative; width: 38px; height: 22px; border-radius: 999px; background: #C9D0D7; transition: background .25s; }
.umx-toggle__sw::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .25); transition: transform .3s cubic-bezier(.16, 1, .3, 1); }
.umx-toggle.is-on .umx-toggle__sw { background: var(--mx-green); }
.umx-toggle.is-on .umx-toggle__sw::after { transform: translateX(16px); }
.umx-toggle:focus-visible { outline: 2px solid var(--mx-blue); outline-offset: 2px; }
body.upat .upat-wc--archive form.woocommerce-ordering { display: inline-block; float: right; margin-top: 18px; }
body.upat .upat-wc--archive ul.products { clear: both; padding-top: 18px; }
@media (max-width: 760px) {
	.umx-shophero { min-height: 0; padding: 24px 20px 150px; }
	.umx-shophero__copy { max-width: none; }
	.umx-shophero__art { inset: auto 0 0 0; height: 150px; }
	.umx-shophero__img { height: 128px !important; bottom: -8px; }
	.umx-shophero__img--a { left: 6%; } .umx-shophero__img--b { left: 38%; } .umx-shophero__img--c { right: 6%; }
	body.upat .upat-wc--archive form.woocommerce-ordering { float: none; display: block; width: 100%; }
	body.upat .upat-wc--archive form.woocommerce-ordering select { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .umx-shophero::before, .umx-shophero::after { animation: none; } }

/* Footer number: clearly WhatsApp only. */
.upat-ft__base .umx-ft-wa { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; color: inherit; text-decoration: none; font-weight: 600; }
.upat-ft__base .umx-ft-wa:hover { color: #128C7E; }
.upat-ft__base .umx-ft-wa small { font-weight: 500; opacity: .75; }
