/* ==========================================================================
   PokeTech theme
   ========================================================================== */

@font-face {
	font-family: "Archivo";
	src: url("../fonts/archivo.woff2") format("woff2");
	font-weight: 100 900;
	font-stretch: 62% 125%;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Plus Jakarta Sans";
	src: url("../fonts/plusjakarta.woff2") format("woff2");
	font-weight: 200 800;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "IBM Plex Mono";
	src: url("../fonts/plexmono-400.woff2") format("woff2");
	font-weight: 400;
	font-display: swap;
}
@font-face {
	font-family: "IBM Plex Mono";
	src: url("../fonts/plexmono-600.woff2") format("woff2");
	font-weight: 600;
	font-display: swap;
}

:root {
	--pt-navy: #0a2f8c; /* logo royal blue */
	--pt-navy-2: #11399f;
	--pt-ink: #0e1a33;
	/* Accent: the logo's bright blue. */
	--pt-blue: #0a6cf0;
	--pt-blue-2: #0857c8;
	/* Back-compat aliases for anything still using the old misnamed tokens. */
	--pt-yellow: var(--pt-blue);
	--pt-yellow-2: var(--pt-blue-2);
	--pt-bg: #f4f2ed;
	--pt-paper: #ffffff;
	--pt-receipt: #f6f4ef;
	--pt-muted: #5b6479;
	--pt-line: #dcd8cf;
	--pt-line-dark: rgba(255, 255, 255, 0.14);
	--pt-red: #d3262e;
	--pt-font: "Archivo", "Helvetica Neue", Arial, sans-serif;
	--pt-head-font: "Plus Jakarta Sans", "Archivo", sans-serif;
	--pt-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;
	/* One content width sitewide, matching the hero: full-bleed minus gutters on
	   laptops, a calm 1880px cap with wider gutters on very large screens. */
	--pt-wrap: 1880px;
	--pt-gutter: 24px;
	/* Radius rule: controls and small tiles 6px, containers 12px, chips are pills. */
	--pt-radius: 6px;
	--pt-radius-lg: 12px;
	/* Shadows are tinted to the navy, never black, and only on things that float. */
	--pt-shadow: 0 24px 48px -20px rgba(14, 26, 51, 0.35);
	--pt-shadow-float: 0 30px 60px -24px rgba(5, 16, 40, 0.55);
	--pt-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- Base ---------- */

body.pt {
	margin: 0;
	background: var(--pt-bg);
	color: var(--pt-ink);
	font-family: var(--pt-font);
	font-size: 16px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	/* Neutralise Elementor container defaults so the theme controls spacing. */
	--container-default-padding-top: 0px;
	--container-default-padding-right: 0px;
	--container-default-padding-bottom: 0px;
	--container-default-padding-left: 0px;
	--widgets-spacing: 0px;
	--widgets-spacing-row: 0px;
	--widgets-spacing-column: 0px;
	--kit-widget-spacing: 0px;
}
body.pt *,
body.pt *::before,
body.pt *::after { box-sizing: border-box; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
@media (min-width: 1600px) { :root { --pt-gutter: 40px; } }
body.pt img { max-width: 100%; height: auto; }
body.pt a { color: inherit; }
:where(body.pt) :where(h1, h2, h3, h4, h5, h6, p, ul, ol, figure) { margin: 0; }
:where(body.pt) :where(button, input, select, textarea) { font: inherit; color: inherit; }

.pt-wrap {
	width: 100%;
	max-width: calc(var(--pt-wrap) + var(--pt-gutter) * 2);
	margin-inline: auto;
	padding-inline: var(--pt-gutter);
}
.pt-skip { position: absolute; left: -9999px; }
.pt-skip:focus { left: 16px; top: 16px; z-index: 100; background: var(--pt-blue); padding: 8px 12px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
body.pt :focus-visible { outline: 3px solid var(--pt-blue); outline-offset: 2px; }

/* ---------- Header ---------- */

.pt-topbar { background: var(--pt-ink); color: #c9cfdb; font-size: 12.5px; }
.pt-topbar__inner { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 34px; }
.pt-topbar p { display: flex; gap: 28px; align-items: center; }
.pt-topbar a { text-decoration: none; }
.pt-topbar a:hover { color: #fff; }
.pt-topbar__phone { color: #fff; font-weight: 700; }

.pt-mainbar { background: var(--pt-paper); border-bottom: 1px solid var(--pt-line); }
.pt-mainbar__inner { display: flex; align-items: center; gap: 24px; min-height: 76px; }
.pt-logo { flex: 0 0 auto; display: block; line-height: 0; }
.pt-logo img { width: 150px; height: auto; }
.pt-search { flex: 1 1 auto; display: flex; border: 1.5px solid var(--pt-ink); border-radius: var(--pt-radius); overflow: hidden; max-width: 560px; }
.pt-search input[type="search"] { flex: 1; min-width: 0; border: 0; padding: 11px 14px; font-size: 14px; background: #fff; outline: none; }
.pt-search button { display: inline-flex; align-items: center; gap: 8px; border: 0; background: var(--pt-blue); padding: 0 22px; font-weight: 700; font-size: 14px; cursor: pointer; color: #fff; }
.pt-search button:hover { background: var(--pt-blue-2); }
.pt-utility { display: flex; align-items: center; gap: 24px; margin-left: auto; font-size: 14px; font-weight: 600; }
.pt-utility a { text-decoration: none; }
.pt-utility a:hover { text-decoration: underline; text-underline-offset: 4px; }
.pt-cart { display: inline-flex; align-items: center; gap: 8px; border: 1.5px solid var(--pt-ink); border-radius: var(--pt-radius); padding: 9px 14px; white-space: nowrap; }
.pt-utility .pt-cart:hover { background: var(--pt-ink); color: #fff; text-decoration: none; }
.pt-navtoggle { display: none; background: none; border: 0; padding: 6px; cursor: pointer; }

.pt-nav { background: var(--pt-navy); color: #fff; }
.pt-nav__list { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; justify-content: center; gap: 4px 36px; flex-wrap: wrap; min-height: 50px; font-size: 14px; font-weight: 600; }
.pt-nav__list a { text-decoration: none; display: block; padding: 14px 0; }
.pt-nav__list a:hover,
.pt-nav__list .current-menu-item > a { color: var(--pt-blue); }
.pt-nav__list .pt-sep { padding-left: 22px; border-left: 1px solid rgba(255, 255, 255, 0.25); }
.pt-nav__list .pt-nav__clearance { margin-left: auto; }
.pt-nav__list .pt-nav__clearance a { color: #ff8a8a; }

/* ---------- Shared building blocks (used inside Elementor) ---------- */

body.pt .e-con.pt-sec { padding: clamp(60px, 6.5vw, 96px) var(--pt-gutter); --content-width: var(--pt-wrap); }
body.pt .e-con.pt-sec > .e-con-inner { max-width: var(--pt-wrap); margin-inline: auto; display: flex; flex-direction: column; gap: 0; padding: 0; }
body.pt .e-con.pt-sec--navy { position: relative; background: var(--pt-navy); color: #fff; }
/* A faint grain keeps the big navy fields from looking flat. */
body.pt .e-con.pt-sec--navy::before {
	content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
	background: var(--pt-noise); opacity: 0.07; mix-blend-mode: overlay;
}
body.pt .e-con.pt-sec--navy > .e-con-inner { position: relative; z-index: 1; }
body.pt .e-con.pt-sec--white,
body.pt .e-con.pt-office { background: var(--pt-paper); border-block: 1px solid var(--pt-line); }
body.pt .e-con.pt-sec--yellow { background: var(--pt-navy); color: #fff; }
body.pt .e-con.pt-sec--tight { padding-block: 72px; }

body.pt .elementor-widget-heading .elementor-heading-title { font-family: var(--pt-font); color: inherit; text-wrap: balance; }
body.pt .pt-display .elementor-heading-title,
body.pt .pt-h2 .elementor-heading-title {
	font-family: var(--pt-head-font);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1;
}
body.pt .pt-display .elementor-heading-title { font-size: clamp(46px, 6.2vw, 90px); line-height: 0.92; letter-spacing: -0.035em; }
body.pt .pt-h2 .elementor-heading-title { font-size: clamp(32px, 3.8vw, 46px); line-height: 1.02; }
body.pt .pt-h3 .elementor-heading-title { font-family: var(--pt-head-font); font-size: 22px; font-weight: 700; line-height: 1.15; letter-spacing: -0.015em; }
body.pt .pt-lead { color: var(--pt-muted); font-size: 16.5px; line-height: 1.6; max-width: 62ch; text-wrap: pretty; }
body.pt .pt-sec--navy .pt-lead,
body.pt .pt-sec--navy .pt-copy { color: #c8d1e4; }
body.pt .pt-copy { color: var(--pt-muted); font-size: 14px; line-height: 1.55; text-wrap: pretty; }
body.pt .pt-lead p,
body.pt .pt-copy p { margin: 0; }

/* Section heads */
body.pt .e-con.pt-head { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 24px 48px; padding-bottom: 28px; border-bottom: 1.5px solid var(--pt-ink); margin-bottom: 28px; }
body.pt .e-con.pt-head--split { grid-template-columns: minmax(0, 1fr); gap: 18px; }
body.pt .e-con.pt-head--plain { border-bottom: 0; padding-bottom: 0; }
body.pt .pt-sec--navy .e-con.pt-head { border-color: var(--pt-line-dark); margin-bottom: 0; }
body.pt .e-con.pt-head > .e-con { gap: 14px; }

/* Buttons */
body.pt .pt-btn .elementor-button,
body.pt a.pt-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	font-family: var(--pt-font); font-size: 14.5px; font-weight: 700; line-height: 1;
	padding: 15px 22px; border-radius: var(--pt-radius);
	background: var(--pt-navy); color: #fff; border: 1.5px solid var(--pt-navy);
	text-decoration: none; transition: background 0.15s, color 0.15s, border-color 0.15s, transform 0.15s; cursor: pointer;
}
body.pt .pt-btn .elementor-button:active,
body.pt a.pt-button:active,
.pt-form__submit:active,
.pt-search button:active { transform: translateY(1px); }
body.pt .pt-btn .elementor-button:hover,
body.pt a.pt-button:hover { background: var(--pt-ink); border-color: var(--pt-ink); color: #fff; }
body.pt .pt-btn--ghost .elementor-button,
body.pt a.pt-button--ghost { background: transparent; color: var(--pt-ink); border-color: var(--pt-ink); }
body.pt .pt-btn--ghost .elementor-button:hover,
body.pt a.pt-button--ghost:hover { background: var(--pt-ink); color: #fff; }
body.pt .pt-btn--white .elementor-button { background: #fff; color: var(--pt-navy); border-color: #fff; }
body.pt .pt-btn--white .elementor-button:hover { background: var(--pt-blue); border-color: var(--pt-blue); color: #fff; }
body.pt .pt-btn--yellow .elementor-button,
body.pt a.pt-button--yellow { background: var(--pt-blue); color: #fff; border-color: var(--pt-blue); }
body.pt .pt-btn--yellow .elementor-button:hover,
body.pt a.pt-button--yellow:hover { background: var(--pt-blue-2); border-color: var(--pt-blue-2); color: #fff; }
body.pt .pt-btn--link .elementor-button { background: none; border: 0; padding: 0; color: inherit; font-size: 14px; }
body.pt .pt-btn--link .elementor-button:hover { background: none; color: inherit; text-decoration: underline; text-underline-offset: 4px; }
body.pt .pt-btn--link-yellow .elementor-button { color: var(--pt-blue); }
body.pt .e-con.pt-btns { display: flex; flex-direction: row; flex-wrap: wrap; gap: 12px; }

/* Check lists (Elementor icon list) */
body.pt .pt-checks .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 10px 28px; list-style: none; margin: 0; padding: 0; }
body.pt .pt-ticks .elementor-icon-list-items { display: grid; gap: 9px; list-style: none; margin: 0; padding: 0; }
body.pt .pt-checks .elementor-icon-list-item,
body.pt .pt-ticks .elementor-icon-list-item { display: flex; align-items: flex-start; gap: 10px; margin: 0 !important; padding: 0 !important; font-size: 13.5px; font-weight: 500; }
body.pt .pt-ticks .elementor-icon-list-item { font-weight: 600; font-size: 14px; }
body.pt .pt-checks .elementor-icon-list-item::after,
body.pt .pt-ticks .elementor-icon-list-item::after { display: none !important; }
body.pt .pt-checks .elementor-icon-list-icon,
body.pt .pt-ticks .elementor-icon-list-icon { flex: 0 0 auto; padding-top: 2px; }
body.pt .pt-checks .elementor-icon-list-icon i,
body.pt .pt-ticks .elementor-icon-list-icon i { font-size: 12px; color: var(--pt-ink); }
body.pt .pt-checks .elementor-icon-list-icon svg,
body.pt .pt-ticks .elementor-icon-list-icon svg { width: 13px; height: 13px; fill: var(--pt-ink); }
body.pt .pt-ticks .elementor-icon-list-icon i { color: var(--pt-blue); } /* accent blue ticks */
body.pt .pt-ticks .elementor-icon-list-icon svg { fill: var(--pt-blue); }
body.pt .pt-checks .elementor-icon-list-text,
body.pt .pt-ticks .elementor-icon-list-text { color: inherit; padding: 0; }

/* Price tag */
.pt-tag {
	position: relative; display: inline-flex; align-items: center; gap: 6px;
	background: var(--pt-blue); color: #fff;
	font-weight: 800; font-size: 13px; line-height: 1;
	padding: 9px 12px 9px 18px;
	clip-path: polygon(10px 0, 100% 0, 100% 100%, 10px 100%, 0 50%);
}
.pt-tag::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--pt-bg); position: absolute; left: 8px; }
body.pt .pt-tagw .elementor-heading-title { font-size: 13px; }

/* Placeholder image block */
.pt-ph {
	display: grid; place-items: center; text-align: center;
	background: repeating-linear-gradient(135deg, #ecebe6 0 14px, #f4f3ef 14px 28px);
	color: var(--pt-muted); font-size: 12px; padding: 16px;
}

/* ---------- Hero: a light showroom panel with the hardware, two promo cards beside ---------- */

body.pt .e-con.pt-hero { padding: 16px var(--pt-gutter) 84px; background: var(--pt-bg); }
body.pt .e-con.pt-hero > .e-con-inner { max-width: var(--pt-wrap); margin-inline: auto; }
body.pt .e-con.pt-hero__grid { display: grid; grid-template-columns: minmax(0, 2.05fr) minmax(0, 1fr); gap: 18px; align-items: stretch; }
/* The big panel: copy left, hardware right, on a pale blue ground. */
body.pt .e-con.pt-hero__panel {
	position: relative; overflow: hidden;
	display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(0, 0.96fr); gap: 10px; align-items: end;
	min-height: clamp(430px, 56vh, 600px);
	background: radial-gradient(90% 120% at 78% 30%, #eaf3fd 0%, #d8e7f8 58%, #c9ddf3 100%);
	border-radius: var(--pt-radius-lg);
	padding: clamp(28px, 3.2vw, 56px) clamp(18px, 1.6vw, 28px) 0 clamp(28px, 3.2vw, 56px);
}
body.pt .e-con.pt-hero__copy { display: flex; flex-direction: column; justify-content: center; gap: clamp(16px, 1.6vw, 26px); align-self: stretch; padding: 0 0 clamp(32px, 3vw, 52px); max-width: 580px; }
body.pt .pt-eyebrow .elementor-heading-title { font-size: 12.5px; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase; color: var(--pt-navy); }
body.pt .pt-hero .pt-display .elementor-heading-title { color: var(--pt-ink); font-size: clamp(31px, 3.1vw, 50px); line-height: 1.05; letter-spacing: -0.02em; }
body.pt .pt-hero__copy .pt-lead { max-width: 40ch; color: #3c4a63; font-size: clamp(15px, 1.15vw, 17.5px); opacity: 1; }
body.pt .pt-hero__copy .pt-btns { margin-top: 4px; }
body.pt .pt-hero__copy .pt-btn .elementor-button { padding: 16px 24px; font-size: 15px; }
/* The promo cards. */
body.pt .e-con.pt-hero__aside { display: flex; flex-direction: column; gap: 18px; }
body.pt .e-con.pt-promo {
	position: relative; overflow: hidden; flex: 1;
	display: flex; flex-direction: column; align-items: flex-start; gap: 6px;
	border-radius: var(--pt-radius-lg); padding: clamp(24px, 1.8vw, 34px) clamp(24px, 1.8vw, 34px) clamp(20px, 1.5vw, 28px); min-height: 190px;
	transition: transform 0.25s ease;
}
body.pt .e-con.pt-promo:hover { transform: translateY(-3px); }
body.pt .pt-cardlink { cursor: pointer; }
body.pt .e-con.pt-promo--grey { background: linear-gradient(135deg, #f0f2f5 0%, #e2e6ec 100%); }
body.pt .e-con.pt-promo--yellow { background: linear-gradient(135deg, #e3edfd 0%, #cfe0fa 100%); }
body.pt .pt-promo .pt-h3 { max-width: 60%; }
body.pt .pt-promo .pt-h3 .elementor-heading-title { font-size: clamp(20px, 1.55vw, 26px); }
body.pt .pt-promo .pt-copy { max-width: 55%; font-size: clamp(13px, 1vw, 15px); }
body.pt .pt-promo .pt-btn { margin-top: auto; position: relative; z-index: 1; }
body.pt .pt-promo .pt-btn--link .elementor-button { font-weight: 700; }
body.pt .pt-promo .pt-btn--link .elementor-button::after { content: "\2192"; margin-left: 6px; transition: transform 0.2s ease; display: inline-block; }
body.pt .e-con.pt-promo:hover .pt-btn--link .elementor-button::after { transform: translateX(3px); }
body.pt .pt-promo .elementor-widget-image { position: absolute; right: 14px; bottom: 12px; width: 52%; margin: 0; pointer-events: none; }
body.pt .pt-promo .elementor-widget-image img { width: 100%; height: clamp(110px, 10vw, 180px); object-fit: contain; mix-blend-mode: multiply; }

/* Scene: POS and printer on the panel floor, the receipt printing from the slot. */
.pt-hscene { position: relative; width: 100%; max-width: min(820px, 100%); margin: 0 0 clamp(22px, 2.6vw, 44px) auto; aspect-ratio: 100 / 76; align-self: end; }
.pt-hscene img { display: block; width: 100%; height: auto; filter: drop-shadow(-6px 8px 10px rgba(32, 56, 100, 0.22)); }
.pt-hscene__pos { position: absolute; left: 2%; bottom: 3.5%; width: 50%; z-index: 1; display: block; transition: transform 0.3s ease; }
.pt-hscene__printer { position: absolute; left: 56%; bottom: 0; width: 33%; z-index: 2; container-type: inline-size; }
.pt-hscene__printer > a { display: block; position: relative; transition: transform 0.3s ease; }
.pt-hscene__pos:hover,
.pt-hscene__printer > a:hover { transform: translateY(-4px); }
/* Contact shadows on the panel floor. */
.pt-hscene__pos::after,
.pt-hscene__printer > a::after {
	content: ""; position: absolute; z-index: -1; pointer-events: none;
	left: 2%; right: 2%; bottom: -3%; height: 9%;
	background: radial-gradient(closest-side, rgba(32, 56, 100, 0.38), rgba(32, 56, 100, 0));
}
/* The receipt grows out of the printer slot (measured on the photo: horizontal). */
.pt-hfeed {
	position: absolute; z-index: 3;
	left: 26.5%; width: 46%;
	bottom: 69.6%; height: 92%;
	overflow: hidden;
	pointer-events: none;
}
.pt-hfeed__paper {
	position: absolute; inset: auto 0 0 0;
	display: flex; flex-direction: column; justify-content: flex-end; gap: 1.1cqw;
	padding: 4.6cqw 2.6cqw 2.4cqw;
	background: linear-gradient(180deg, #ffffff 0%, #ffffff 76%, #eceae3 100%);
	color: var(--pt-ink);
	font-family: var(--pt-mono); font-size: 2.6cqw; line-height: 1.35;
	-webkit-mask: conic-gradient(from 135deg at top, #0000, #000 1deg 89deg, #0000 90deg) top / 2.2cqw 2.2cqw repeat-x, linear-gradient(#000, #000) bottom / 100% calc(100% - 2.1cqw) no-repeat;
	mask: conic-gradient(from 135deg at top, #0000, #000 1deg 89deg, #0000 90deg) top / 2.2cqw 2.2cqw repeat-x, linear-gradient(#000, #000) bottom / 100% calc(100% - 2.1cqw) no-repeat;
	box-shadow: -1.2cqw 0 2.2cqw rgba(32, 56, 100, 0.18);
	animation: pt-hfeed 2s cubic-bezier(0.24, 0.7, 0.2, 1) 0.4s both;
}
@keyframes pt-hfeed { from { transform: translateY(78%); } }
.pt-hfeed::after {
	content: ""; position: absolute; left: -4%; right: -4%; bottom: 0; height: 4.5cqw;
	background: linear-gradient(180deg, rgba(6, 12, 24, 0) 0%, rgba(6, 12, 24, 0.5) 85%);
}
.pt-hfeed__paper p { margin: 0; }
.pt-hfeed__shop { text-align: center; font-weight: 600; font-size: 3.2cqw; letter-spacing: 0.15em; }
.pt-hfeed__addr { text-align: center; font-size: 2cqw; color: #4a5266; padding-bottom: 1.1cqw; border-bottom: 1px dashed rgba(14, 26, 51, 0.5); }
.pt-hfeed__line,
.pt-hfeed__total { display: flex; justify-content: space-between; gap: 1cqw; white-space: nowrap; }
.pt-hfeed__total { font-weight: 600; font-size: 2.7cqw; border-top: 1px dashed rgba(14, 26, 51, 0.5); padding-top: 1.1cqw; }
.pt-hfeed__barcode { height: 3.6cqw; margin: 0.6cqw 10% 0; background: repeating-linear-gradient(90deg, var(--pt-ink) 0 2px, transparent 2px 4px, var(--pt-ink) 4px 6px, transparent 6px 9px, var(--pt-ink) 9px 10px, transparent 10px 13px); }
.pt-hfeed__thanks { text-align: center; font-size: 2cqw; color: #4a5266; }

/* ---------- Trust ribbon: a white bar floating across the hero's bottom edge ---------- */

body.pt .e-con.pt-trust { --overlap: 56px; position: relative; z-index: 2; background: transparent; padding: 0 var(--pt-gutter); margin-top: calc(-1 * var(--overlap)); }
body.pt .e-con.pt-trust > .e-con-inner { max-width: var(--pt-wrap); margin-inline: auto; padding: 0; }
body.pt .pt-trust__list { background: #fff; border-radius: var(--pt-radius-lg); box-shadow: var(--pt-shadow-float); overflow: hidden; }
body.pt .pt-trust .elementor-icon-list-items { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; }
body.pt .pt-trust .elementor-icon-list-item { display: flex; align-items: center; gap: 14px; margin: 0 !important; padding: 22px 24px !important; transition: background 0.2s ease; }body.pt .pt-trust .elementor-icon-list-item:hover { background: #f6f7fa; }
body.pt .pt-trust .elementor-icon-list-item + .elementor-icon-list-item { border-left: 1px solid #e6e9ef; }
body.pt .pt-trust .elementor-icon-list-item::after { display: none !important; }
body.pt .pt-trust .elementor-icon-list-icon { flex: 0 0 46px; height: 46px; display: grid; place-items: center; padding: 0; border-radius: var(--pt-radius); background: linear-gradient(145deg, #1d47b5, var(--pt-navy)); box-shadow: 0 8px 16px -8px rgba(10, 47, 140, 0.7); }
body.pt .pt-trust .elementor-icon-list-icon i { color: #fff; font-size: 18px; }
body.pt .pt-trust .elementor-icon-list-icon svg { fill: #fff; width: 19px; height: 19px; }
body.pt .pt-trust .elementor-icon-list-text { display: flex; flex-direction: column; gap: 3px; padding: 0; line-height: 1.25; }
body.pt .pt-trust .elementor-icon-list-text strong { font-size: 15px; font-weight: 700; color: var(--pt-ink); }
body.pt .pt-trust .elementor-icon-list-text span { font-size: 13px; font-weight: 500; color: var(--pt-muted); }

/* ---------- Trades ---------- */

body.pt .e-con.pt-trades { padding-top: 88px; }
body.pt .pt-trades .e-con.pt-head { margin-bottom: 36px; }
/* Cards share row tracks (subgrid) so titles, copy, lists and buttons line up across all four. */
body.pt .e-con.pt-trades__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: auto auto 1fr auto; gap: 0 16px; }
body.pt .e-con.pt-trade {
	display: grid; grid-row: span 4; grid-template-rows: subgrid; row-gap: 14px;
	position: relative; padding: 30px 24px 26px;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
	border: 1px solid var(--pt-line-dark); border-radius: var(--pt-radius-lg);
	transition: transform 0.25s ease, border-color 0.25s ease, background 0.25s ease;
}
body.pt .e-con.pt-trade::before { content: ""; position: absolute; left: 24px; right: 24px; top: -1px; height: 3px; border-radius: 0 0 3px 3px; background: var(--pt-blue); transform: scaleX(0.2); transform-origin: left; transition: transform 0.3s ease; }
body.pt .e-con.pt-trade:hover { transform: translateY(-4px); border-color: rgba(255, 255, 255, 0.28); background: linear-gradient(180deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.03)); }
body.pt .e-con.pt-trade:hover::before { transform: scaleX(1); }
body.pt .pt-trade .pt-ticks { margin-top: 4px; padding-top: 16px; border-top: 1px solid var(--pt-line-dark); }
body.pt .pt-trade .pt-btn { margin-top: 10px; }
body.pt .pt-trade .pt-btn .elementor-button { width: 100%; justify-content: center; }
body.pt .pt-trade .pt-h3 .elementor-heading-title { font-size: 25px; }

/* ---------- Shop by category: icon tiles ---------- */

body.pt .e-con.pt-cats { padding-block: 56px; }
body.pt .pt-cats .e-con.pt-head { padding-bottom: 12px; margin-bottom: 18px; border-bottom-width: 1px; }
/* A quiet label, not a display heading: this band is navigation, not a chapter. */
body.pt .pt-cats .pt-h2 .elementor-heading-title { font-size: 20px; font-stretch: 108%; letter-spacing: -0.01em; }
body.pt .e-con.pt-cats__grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
body.pt .e-con.pt-catic {
	position: relative; display: flex; flex-direction: column; align-items: center; gap: 7px;
	background: #fff; border: 1px solid var(--pt-line); border-radius: var(--pt-radius-lg);
	padding: 16px 10px 14px; text-align: center;
	transition: border-color 0.2s, transform 0.2s;
}
body.pt .e-con.pt-catic:hover { border-color: var(--pt-ink); transform: translateY(-3px); }
body.pt .pt-catic__icon .elementor-icon {
	display: grid; place-items: center; width: 44px; height: 44px;
	border-radius: var(--pt-radius); background: linear-gradient(145deg, #13397a, var(--pt-navy));
	box-shadow: 0 8px 16px -8px rgba(11, 42, 94, 0.8);
	transition: transform 0.25s ease;
}
body.pt .e-con.pt-catic:hover .pt-catic__icon .elementor-icon { transform: translateY(-2px) scale(1.05); }
body.pt .pt-catic__icon .elementor-icon i { color: #fff; font-size: 18px; }
body.pt .pt-catic__icon .elementor-icon svg { fill: #fff; width: 19px; height: 19px; }
body.pt .pt-catname .elementor-heading-title { font-size: 14px; font-weight: 800; font-stretch: 106%; line-height: 1.25; }
body.pt .pt-catname a { text-decoration: none; }
body.pt .pt-catname a::after { content: ""; position: absolute; inset: 0; }
body.pt .pt-catic__from .elementor-heading-title { font-size: 11.5px; font-weight: 600; color: var(--pt-muted); }

/* ---------- Comparison table ---------- */

.pt-compare { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 14px; border-top: 1.5px solid var(--pt-ink); }
.pt-compare th,
.pt-compare td { text-align: left; vertical-align: top; padding: 14px 12px; border-bottom: 1px solid var(--pt-line); }
.pt-compare th[scope="row"] { color: var(--pt-muted); font-weight: 500; width: 17%; }
.pt-compare td { font-weight: 600; }
.pt-compare .is-pick { background: #fff; }
.pt-compare thead td { border-bottom: 1.5px solid var(--pt-ink); padding-top: 18px; }
.pt-compare__img { display: grid; place-items: center; aspect-ratio: 2 / 1; background: #fff; border: 1px solid var(--pt-line); border-radius: var(--pt-radius-lg); margin-bottom: 18px; overflow: hidden; }
.pt-compare .is-pick .pt-compare__img { border-color: transparent; background: var(--pt-bg); }
.pt-compare__img img { max-height: 120px; width: auto; object-fit: contain; mix-blend-mode: multiply; }
.pt-compare__name { display: block; font-size: 19px; font-weight: 800; font-stretch: 108%; line-height: 1.15; text-decoration: none; }
.pt-compare__name:hover { text-decoration: underline; }
.pt-compare__sub { display: block; margin-top: 6px; color: var(--pt-muted); font-weight: 400; font-size: 13px; }
.pt-compare tfoot td { border-bottom: 0; padding-block: 24px; }
.pt-compare__price { display: flex; align-items: baseline; gap: 10px; font-size: 30px; font-weight: 800; font-stretch: 112%; letter-spacing: -0.02em; margin-bottom: 14px; }
.pt-compare__price del { font-size: 13px; font-weight: 500; color: var(--pt-muted); letter-spacing: 0; }
.pt-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.pt-scroll .pt-compare { min-width: 760px; }

/* ---------- Help me choose ---------- */

body.pt .e-con.pt-choose__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.8fr); gap: 56px; align-items: start; }
body.pt .e-con.pt-choose__left { display: flex; flex-direction: column; gap: 14px; }
.pt-q { border: 0; margin: 0 0 26px; padding: 0; }
.pt-q:first-child { margin-top: 18px; }
.pt-q legend { font-weight: 700; font-size: 16px; margin-bottom: 12px; padding: 0; }
.pt-q__opts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.pt-q__opts--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pt-opt { position: relative; }
.pt-opt input { position: absolute; opacity: 0; inset: 0; cursor: pointer; margin: 0; }
.pt-opt span { display: block; border: 1px solid #c9c5bb; border-radius: var(--pt-radius); padding: 12px 14px; font-size: 14px; font-weight: 600; background: #fff; transition: border-color 0.12s, background 0.12s; }
.pt-opt:hover span { border-color: var(--pt-ink); }
.pt-opt input:checked + span { background: var(--pt-navy); border-color: var(--pt-navy); color: #fff; }
.pt-opt input:focus-visible + span { outline: 3px solid var(--pt-blue); outline-offset: 2px; }

.pt-rec { position: sticky; top: 24px; background: var(--pt-receipt); box-shadow: var(--pt-shadow); font-family: var(--pt-mono); font-size: 12.5px; padding: 26px 22px 34px; min-height: 290px; }
.pt-rec::after { content: ""; position: absolute; left: 0; right: 0; bottom: -8px; height: 8px; background: linear-gradient(-45deg, transparent 5px, var(--pt-receipt) 0) 0 0 / 12px 8px, linear-gradient(45deg, transparent 5px, var(--pt-receipt) 0) 0 0 / 12px 8px; }
.pt-rec h3 { text-align: center; font-family: var(--pt-mono); font-weight: 600; font-size: 14px; letter-spacing: 0.1em; }
.pt-rec__addr { text-align: center; font-size: 11px; color: var(--pt-muted); }
.pt-rec hr { border: 0; border-top: 1.5px dashed var(--pt-ink); margin: 12px 0; opacity: 0.6; }
.pt-rec__line { display: flex; align-items: baseline; gap: 6px; color: #3c4456; }
.pt-rec__line span:nth-child(2) { flex: 1; border-bottom: 1px dotted #a9adb7; transform: translateY(-3px); }
.pt-rec__line b { font-weight: 600; color: var(--pt-ink); text-align: right; }
.pt-rec__hint { text-align: center; color: var(--pt-muted); font-size: 11.5px; margin-top: 14px; }
.pt-rec__items { display: grid; gap: 4px; }
.pt-rec__items .pt-rec__line { color: var(--pt-ink); }
.pt-rec__total { display: flex; justify-content: space-between; font-weight: 600; font-size: 14px; }
.pt-rec__actions { display: grid; gap: 8px; margin-top: 18px; font-family: var(--pt-font); }
.pt-rec__actions .pt-button { width: 100%; }
.pt-rec .is-printing { animation: pt-print 0.35s ease-out both; }
@keyframes pt-print { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }

/* ---------- Back office ---------- */

.pt-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 28px; padding: 0; list-style: none; }
.pt-chips a { display: inline-block; border: 1.5px solid var(--pt-ink); border-radius: 999px; padding: 8px 14px; font-size: 13px; font-weight: 600; text-decoration: none; background: transparent; }
.pt-chips a:hover { background: var(--pt-ink); color: #fff; }

/* ---------- Product cards (WooCommerce loops, sitewide) ---------- */

body.pt ul.products { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 0 !important; padding: 0 !important; list-style: none; }
body.pt ul.products.columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
body.pt ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.pt ul.products::before,
body.pt ul.products::after { display: none !important; }
body.pt ul.products li.product {
	position: relative; width: auto !important; float: none !important; margin: 0 !important;
	display: flex; flex-direction: column; background: #fff; border: 1px solid var(--pt-line); border-radius: var(--pt-radius-lg); overflow: hidden; padding: 0 0 16px !important;
	transition: border-color 0.2s, transform 0.2s;
}
body.pt ul.products li.product:hover { border-color: var(--pt-ink); transform: translateY(-3px); }
body.pt ul.products li.product a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; flex: 1; text-decoration: none; color: inherit; }
body.pt ul.products li.product img { aspect-ratio: 1 / 0.86; width: 100% !important; object-fit: contain; padding: 16px; margin: 0 0 4px !important; background: #fff; mix-blend-mode: multiply; transition: transform 0.4s ease; }
body.pt ul.products li.product:hover img { transform: scale(1.04); }
body.pt .pt-loop-cat { display: block; padding: 12px 16px 0; color: var(--pt-muted); font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.07em; }
body.pt ul.products li.product .woocommerce-loop-product__title { padding: 4px 16px 0 !important; font-size: 14px !important; font-weight: 700; line-height: 1.35; color: var(--pt-ink); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: calc(2 * 1.35em + 4px); }
body.pt ul.products li.product .price { margin-top: auto !important; padding: 14px 16px 0; display: flex !important; align-items: baseline; flex-wrap: wrap; gap: 4px 8px; color: var(--pt-ink) !important; font-size: 21px !important; font-weight: 800; font-stretch: 110%; letter-spacing: -0.01em; }
body.pt ul.products li.product .price del { order: 2; font-size: 12px; font-weight: 500; color: var(--pt-muted); opacity: 1; letter-spacing: 0; }
body.pt ul.products li.product .price ins { text-decoration: none; }
body.pt ul.products li.product .button {
	margin: 12px 16px 0 !important; display: block; text-align: center;
	background: var(--pt-navy) !important; color: #fff !important; border: 1.5px solid var(--pt-navy) !important; border-radius: var(--pt-radius) !important;
	padding: 11px 12px !important; font-size: 13.5px !important; font-weight: 700 !important;
	transition: background 0.15s, border-color 0.15s;
}
body.pt ul.products li.product .button:hover { background: var(--pt-ink) !important; border-color: var(--pt-ink) !important; color: #fff !important; }
/* Buy on WhatsApp, under Add to cart. */
.pt-wa {
	display: flex; align-items: center; justify-content: center; gap: 8px;
	margin: 8px 16px 0; padding: 10px 12px;
	border: 1.5px solid var(--pt-line); border-radius: var(--pt-radius);
	font-size: 13px; font-weight: 700; color: var(--pt-ink); text-decoration: none;
	transition: border-color 0.15s, background 0.15s;
}
.pt-wa:hover { border-color: #1da851; background: #f0faf4; }
.pt-wa svg { width: 17px; height: 17px; fill: #25d366; flex: 0 0 auto; }
body.pt ul.products li.product .added_to_cart { display: block; text-align: center; font-size: 12.5px; font-weight: 600; padding-top: 8px; }
body.pt .onsale.pt-save,
body.pt span.onsale {
	position: absolute; top: 12px; left: 12px; right: auto; z-index: 2;
	min-height: 0; min-width: 0; margin: 0; border-radius: var(--pt-radius); line-height: 1;
	background: var(--pt-red); color: #fff; font-size: 11.5px; font-weight: 800; padding: 6px 10px 6px 9px;
}
body.pt .pt-ask { font-size: 15px; font-weight: 700; color: var(--pt-navy); }

/* ---------- Product photo strip ---------- */

body.pt .e-con.pt-strip { background: var(--pt-ink); color: #fff; padding: 0; }
body.pt .e-con.pt-strip__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
body.pt .e-con.pt-tile { position: relative; min-height: 360px; display: flex; flex-direction: column; justify-content: flex-end; padding: 28px 24px; border-right: 1px solid var(--pt-line-dark); overflow: hidden; text-decoration: none; }
body.pt .e-con.pt-tile:last-child { border-right: 0; }
body.pt .pt-tile .elementor-widget-image { position: absolute; inset: 0; margin: 0; }
body.pt .pt-tile .elementor-widget-image img { width: 100%; height: 100%; object-fit: cover; opacity: 0.55; transition: opacity 0.3s, transform 0.5s; }
body.pt .e-con.pt-tile:hover .elementor-widget-image img { opacity: 0.75; transform: scale(1.03); }
body.pt .e-con.pt-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14, 26, 51, 0) 35%, rgba(14, 26, 51, 0.92) 100%); pointer-events: none; }
body.pt .pt-tile .elementor-widget-heading { position: relative; z-index: 2; }
body.pt .pt-tile__eyebrow .elementor-heading-title { color: var(--pt-blue); font-size: 12px; font-weight: 700; margin-bottom: 6px; }
body.pt .pt-tile .pt-h3 .elementor-heading-title { font-size: 21px; }
body.pt .pt-tile .pt-h3 a { text-decoration: none; }
body.pt .pt-tile .pt-h3 a::after { content: ""; position: absolute; inset: 0; z-index: 3; }
body.pt .e-con.pt-strip__foot { display: flex; flex-direction: row; justify-content: space-between; align-items: center; gap: 16px; padding: 20px max(var(--pt-gutter), calc((100% - var(--pt-wrap)) / 2)); border-top: 1px solid var(--pt-line-dark); }
body.pt .pt-strip__foot .pt-copy { color: #c8d1e4; }

/* ---------- Process: receipt-numbered step cards, bench to till ---------- */

body.pt .e-con.pt-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
body.pt .e-con.pt-step {
	position: relative; display: flex; flex-direction: column; gap: 10px;
	background: var(--pt-paper); border: 1px solid var(--pt-line); border-radius: var(--pt-radius-lg);
	padding: 24px 22px 26px;
	transition: border-color 0.2s, transform 0.2s;
}
body.pt .e-con.pt-step:hover { border-color: var(--pt-ink); transform: translateY(-3px); }
/* The accent bar that fills on hover, same move as the trade cards. */
body.pt .e-con.pt-step::before {
	content: ""; position: absolute; left: 22px; right: 22px; top: -1px; height: 3px;
	border-radius: 0 0 3px 3px; background: var(--pt-blue);
	transform: scaleX(0.22); transform-origin: left; transition: transform 0.3s ease;
}
body.pt .e-con.pt-step:hover::before { transform: scaleX(1); }
body.pt .pt-step__num .elementor-heading-title {
	font-family: var(--pt-mono); font-size: 13px; font-weight: 600; letter-spacing: 0.14em;
	color: var(--pt-blue); padding-bottom: 12px; margin-bottom: 2px;
	border-bottom: 1px dashed var(--pt-line);
}
/* "1" becomes "STEP 01" on the printed card. */
body.pt .pt-step__num .elementor-heading-title::before { content: "STEP 0"; }
body.pt .pt-step .pt-h3 .elementor-heading-title { font-size: 18px; }
body.pt .pt-step .pt-copy { font-size: 13.5px; color: var(--pt-muted); }

/* ---------- Quote ---------- */

body.pt .e-con.pt-quote__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr); gap: clamp(40px, 4vw, 72px); align-items: center; width: 100%; max-width: 1480px; margin-inline: auto; }
body.pt .e-con.pt-quote__copy { display: flex; flex-direction: column; gap: 22px; }
body.pt .pt-quote__copy .pt-lead { color: #c8d4ef; max-width: 460px; }
body.pt .pt-sec--yellow .pt-btn--ghost .elementor-button { background: transparent; color: #fff; border-color: rgba(255, 255, 255, 0.55); }
body.pt .pt-sec--yellow .pt-btn--ghost .elementor-button:hover { background: #fff; border-color: #fff; color: var(--pt-ink); }
body.pt .pt-sec--yellow .pt-btn--navy .elementor-button { background: var(--pt-blue); border-color: var(--pt-blue); }
body.pt .pt-sec--yellow .pt-btn--navy .elementor-button:hover { background: var(--pt-blue-2); border-color: var(--pt-blue-2); }

.pt-form { display: grid; gap: 14px; background: #fff; border-radius: var(--pt-radius-lg); padding: 30px 28px 22px; box-shadow: 0 34px 60px -30px rgba(2, 16, 56, 0.6); color: var(--pt-ink); }
.pt-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pt-form label { display: grid; gap: 6px; font-size: 13px; font-weight: 700; }
.pt-form input,
.pt-form select,
.pt-form textarea { width: 100%; border: 1.5px solid #cfcabf; border-radius: var(--pt-radius); background: #fff; padding: 12px; font-size: 14px; font-weight: 400; transition: border-color 0.15s, box-shadow 0.15s; }
.pt-form input:hover,
.pt-form select:hover,
.pt-form textarea:hover { border-color: var(--pt-muted); }
.pt-form input:focus,
.pt-form select:focus,
.pt-form textarea:focus { outline: none; border-color: var(--pt-navy); box-shadow: 0 0 0 3px rgba(11, 42, 94, 0.15); }
.pt-form textarea { resize: vertical; min-height: 70px; }
.pt-form__submit { border: 0; border-radius: var(--pt-radius); background: var(--pt-blue); color: #fff; font-weight: 700; padding: 15px; cursor: pointer; font-size: 15px; }
.pt-form__submit:hover { background: var(--pt-blue-2); }
.pt-form__small { font-size: 11.5px; color: var(--pt-muted); }
.pt-form__notice { background: #e7f4ea; border-left: 4px solid #1f8a3b; padding: 10px 12px; font-size: 14px; font-weight: 600; }
.pt-form__notice--error { background: #fdeaea; border-color: var(--pt-red); }

/* ---------- Footer ---------- */

.pt-footer { background: var(--pt-ink); color: #ccd3e0; font-size: 14px; }
.pt-footer__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr 1.15fr; gap: 40px; padding-block: 64px 48px; }
.pt-footer a { text-decoration: none; }
.pt-footer a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.pt-footer__brand { display: grid; gap: 10px; align-content: start; }
/* The logo is blue and red, so it sits on a white chip for contrast on the dark footer. */
.pt-footer__logomark { display: inline-block; align-self: start; background: #fff; border-radius: var(--pt-radius); padding: 10px 14px; margin-bottom: 10px; }
.pt-footer__logomark img { display: block; width: 150px; height: auto; }
.pt-footer__phone { color: #fff; font-weight: 800; font-size: 17px; margin-top: 6px; }
.pt-footer__mail { color: #fff; font-weight: 600; }
.pt-footer__title { color: #fff; font-weight: 700; margin-bottom: 14px; }
.pt-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.pt-footer__map { width: 100%; height: 130px; border: 1px solid var(--pt-line-dark); border-radius: var(--pt-radius-lg); margin-top: 14px; filter: grayscale(0.4); }
.pt-footer__bottom { border-top: 1px solid var(--pt-line-dark); font-size: 12.5px; color: #aab3c6; }
.pt-footer__bottom-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-block: 18px; }
.pt-footer__legal { display: flex; gap: 18px; }
.pt-pay { display: flex !important; gap: 6px !important; }
.pt-pay li { border: 1px solid rgba(255, 255, 255, 0.6); border-radius: var(--pt-radius); color: #fff; font-weight: 700; font-size: 11.5px; padding: 5px 9px; }

/* ---------- Inner pages + WooCommerce ---------- */

.pt-main { padding-block: 48px 96px; min-height: 50vh; }
/* Cart, checkout and account pages use the full content width so the
   WooCommerce blocks keep their two-column desktop layout. */
body.woocommerce-cart .pt-prose,
body.woocommerce-checkout .pt-prose,
body.woocommerce-account .pt-prose { max-width: none; }
/* Brand pass on the checkout and cart blocks */
body.pt .wc-block-components-text-input input,
body.pt .wc-block-components-combobox input,
body.pt .wc-block-components-select select,
body.pt .wc-block-components-textarea { border-radius: var(--pt-radius); border-color: #c9c5bb; }
body.pt .wc-block-components-text-input input:focus,
body.pt .wc-block-components-combobox input:focus,
body.pt .wc-block-components-textarea:focus { border-color: var(--pt-navy); box-shadow: 0 0 0 1px var(--pt-navy); }
body.pt .wc-block-components-radio-control__option,
body.pt .wc-block-components-radio-control-accordion-option { border-radius: var(--pt-radius); }
body.pt .wc-block-components-button.wc-block-components-checkout-place-order-button {
	background: var(--pt-blue); border-color: var(--pt-blue);
	font-weight: 700; border-radius: var(--pt-radius); padding: 16px 24px;
}
body.pt .wc-block-components-button.wc-block-components-checkout-place-order-button:hover { background: var(--pt-blue-2); border-color: var(--pt-blue-2); }
/* The order summary lists the product, not its whole catalog description */
body.pt .wc-block-components-product-metadata__description { display: none; }
/* No coupons are issued; the row only adds a step */
body.pt .wp-block-woocommerce-checkout-order-summary-coupon-form-block { display: none; }
body.pt .wc-block-components-sidebar .wc-block-components-panel,
body.pt .wc-block-components-order-summary { font-size: 14px; }
body.pt .wp-block-woocommerce-checkout-order-summary-block { background: var(--pt-paper); border: 1px solid var(--pt-line); border-radius: var(--pt-radius-lg); padding: 10px 18px; }
/* The phone-agreed delivery rate costs 0 in WooCommerce; its label already
   says the fee is agreed by phone, so the misleading FREE badge is hidden. */
body.pt label[for*="flat_rate"] .wc-block-components-radio-control__secondary-label { display: none; }
.pt-page-title,
body.pt .woocommerce-products-header__title,
body.pt .product_title { font-family: var(--pt-head-font); font-size: clamp(30px, 3.4vw, 44px); font-weight: 700; letter-spacing: -0.02em; line-height: 1.05; margin-bottom: 24px; }
.pt-prose { max-width: 820px; }
.pt-prose > * + * { margin-top: 1em; }
body.pt .woocommerce-breadcrumb { font-size: 13px; color: var(--pt-muted); margin-bottom: 18px; }
body.pt .woocommerce-result-count { color: var(--pt-muted); font-size: 13px; }
/* ---------- Blog ---------- */
body.pt .pt-blog { padding-bottom: 30px; }
body.pt .pt-blog__head { max-width: 780px; margin-bottom: 38px; }
body.pt .pt-blog__eyebrow { font-size: 12.5px; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase; color: var(--pt-blue); margin-bottom: 10px; }
body.pt .pt-blog__title { font-family: var(--pt-head-font); font-size: clamp(34px, 4vw, 54px); font-weight: 700; letter-spacing: -0.02em; line-height: 1.04; margin-bottom: 14px; }
body.pt .pt-blog__lead { color: var(--pt-muted); font-size: clamp(15px, 1.15vw, 17.5px); line-height: 1.6; }
body.pt .pt-bmeta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 12.5px; font-weight: 600; color: var(--pt-muted); margin: 0; }
body.pt .pt-bmeta__tag { display: inline-block; background: #e6edfd; color: var(--pt-navy); border-radius: 999px; padding: 3px 11px; font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
body.pt .pt-bmeta__back { font-weight: 700; color: var(--pt-ink); text-decoration: none; }
body.pt .pt-bmeta__back:hover { color: var(--pt-blue); }
body.pt .pt-bmore { font-weight: 700; font-size: 14px; color: var(--pt-blue); }
body.pt .pt-bmore span { display: inline-block; transition: transform 0.2s ease; }
/* Featured: image on a lit showroom panel, copy beside it. */
body.pt .pt-bfeat { position: relative; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); background: var(--pt-paper); border: 1px solid var(--pt-line); border-radius: var(--pt-radius-lg); overflow: hidden; transition: transform 0.25s ease, box-shadow 0.25s ease; }
body.pt .pt-bfeat:hover { transform: translateY(-3px); box-shadow: var(--pt-shadow); }
body.pt .pt-bfeat:hover .pt-bmore span { transform: translateX(3px); }
body.pt .pt-bfeat__media { display: grid; place-items: center; min-height: 300px; padding: 28px; background: radial-gradient(90% 120% at 70% 30%, #eaf3fd 0%, #d8e7f8 58%, #c9ddf3 100%); }
body.pt .pt-bfeat__media img { max-width: 100%; max-height: 300px; width: auto; height: auto; object-fit: contain; mix-blend-mode: multiply; }
body.pt .pt-bfeat__body { display: flex; flex-direction: column; justify-content: center; gap: 13px; padding: clamp(24px, 2.6vw, 44px); }
body.pt .pt-bfeat__title { font-family: var(--pt-head-font); font-size: clamp(23px, 2.2vw, 32px); font-weight: 700; letter-spacing: -0.015em; line-height: 1.15; margin: 0; }
body.pt .pt-bfeat__title a { color: var(--pt-ink); text-decoration: none; }
body.pt .pt-bfeat__title a::after { content: ""; position: absolute; inset: 0; }
body.pt .pt-bfeat__excerpt p { margin: 0; color: var(--pt-muted); font-size: 15px; line-height: 1.6; max-width: 54ch; }
/* Card grid */
body.pt .pt-blog__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 22px; margin-top: 22px; }
body.pt .pt-bcard { position: relative; display: flex; flex-direction: column; background: var(--pt-paper); border: 1px solid var(--pt-line); border-radius: var(--pt-radius-lg); overflow: hidden; transition: transform 0.25s ease, box-shadow 0.25s ease; }
body.pt .pt-bcard:hover { transform: translateY(-3px); box-shadow: var(--pt-shadow); }
body.pt .pt-bcard:hover .pt-bmore span { transform: translateX(3px); }
body.pt .pt-bcard__media { display: grid; place-items: center; height: 190px; background: radial-gradient(90% 120% at 70% 30%, #f3f7fd 0%, #e3ecf8 100%); border-bottom: 1px solid var(--pt-line); }
body.pt .pt-bcard__media img { max-width: 82%; max-height: 160px; width: auto; height: auto; object-fit: contain; mix-blend-mode: multiply; }
body.pt .pt-bcard__ph { font-family: var(--pt-head-font); font-weight: 800; font-size: 44px; color: var(--pt-navy); opacity: 0.25; }
body.pt .pt-bcard__body { display: flex; flex-direction: column; gap: 9px; padding: 18px 20px 20px; flex: 1; }
body.pt .pt-bcard__title { font-family: var(--pt-head-font); font-size: 19px; font-weight: 700; line-height: 1.25; letter-spacing: -0.01em; margin: 0; }
body.pt .pt-bcard__title a { color: var(--pt-ink); text-decoration: none; }
body.pt .pt-bcard__title a::after { content: ""; position: absolute; inset: 0; }
body.pt .pt-bcard__excerpt p { margin: 0; color: var(--pt-muted); font-size: 14px; line-height: 1.55; }
body.pt .pt-bcard .pt-bmore { margin-top: auto; }
/* ---------- Article ---------- */
body.pt .pt-article__wrap { max-width: 1160px; margin-inline: auto; }
body.pt .pt-article__head { max-width: 820px; margin-bottom: 24px; }
body.pt .pt-article__title { font-family: var(--pt-head-font); font-size: clamp(30px, 3.4vw, 46px); font-weight: 700; letter-spacing: -0.02em; line-height: 1.08; margin: 14px 0 12px; }
body.pt .pt-article__lead { color: var(--pt-muted); font-size: clamp(15.5px, 1.2vw, 18px); line-height: 1.6; }
body.pt .pt-article__hero { margin: 0 0 30px; background: radial-gradient(90% 120% at 70% 30%, #eaf3fd 0%, #d8e7f8 58%, #c9ddf3 100%); border: 1px solid var(--pt-line); border-radius: var(--pt-radius-lg); padding: clamp(16px, 2.4vw, 34px); }
body.pt .pt-article__hero img { display: block; width: 100%; height: auto; max-height: 420px; object-fit: contain; mix-blend-mode: multiply; }
body.pt .pt-article__layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: clamp(28px, 3.6vw, 56px); align-items: start; }
body.pt .pt-article__body { max-width: 760px; font-size: 16px; line-height: 1.75; color: #26324a; }
body.pt .pt-article__body > p:first-child { font-size: 17.5px; color: var(--pt-ink); }
body.pt .pt-article__body h2 { font-family: var(--pt-head-font); font-size: clamp(22px, 1.9vw, 27px); font-weight: 700; letter-spacing: -0.015em; line-height: 1.2; color: var(--pt-ink); margin: 1.7em 0 0.45em; scroll-margin-top: 90px; }
body.pt .pt-article__body h2::before { content: ""; display: block; width: 36px; height: 4px; border-radius: 2px; background: var(--pt-blue); margin-bottom: 12px; }
body.pt .pt-article__body h3 { font-family: var(--pt-head-font); font-size: 19px; font-weight: 700; color: var(--pt-ink); margin: 1.3em 0 0.3em; scroll-margin-top: 90px; }
body.pt .pt-article__body a { color: var(--pt-blue); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
body.pt .pt-article__body a:hover { color: var(--pt-blue-2); }
body.pt .pt-article__body ul, body.pt .pt-article__body ol { padding-left: 1.25em; }
body.pt .pt-article__body li { margin: 0.45em 0; }
body.pt .pt-article__body li::marker { color: var(--pt-blue); font-weight: 700; }
body.pt .pt-article__body blockquote { margin: 1.4em 0; padding: 14px 20px; border-left: 4px solid var(--pt-blue); background: var(--pt-paper); border-radius: 0 var(--pt-radius) var(--pt-radius) 0; color: var(--pt-ink); }
body.pt .pt-article__body img { max-width: 100%; height: auto; border: 1px solid var(--pt-line); border-radius: var(--pt-radius-lg); background: #fff; }
body.pt .pt-article__body table { border-collapse: collapse; width: 100%; margin: 1.2em 0; font-size: 14.5px; border: 1px solid var(--pt-line); border-radius: var(--pt-radius); overflow: hidden; }
body.pt .pt-article__body th { background: var(--pt-navy); color: #fff; text-align: left; padding: 11px 14px; font-size: 13px; letter-spacing: 0.04em; }
body.pt .pt-article__body td { border-top: 1px solid var(--pt-line); padding: 10px 14px; background: var(--pt-paper); }
body.pt .pt-article__body tr:nth-child(even) td { background: #f7f9fc; }
/* Right rail */
body.pt .pt-article__aside { position: sticky; top: 24px; display: flex; flex-direction: column; gap: 16px; }
body.pt .pt-toc { background: var(--pt-paper); border: 1px solid var(--pt-line); border-radius: var(--pt-radius-lg); padding: 16px 18px; }
body.pt .pt-toc__title { font-family: var(--pt-head-font); font-weight: 700; font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--pt-muted); margin: 0 0 10px; }
body.pt .pt-toc__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
body.pt .pt-toc__list a { display: block; padding: 6px 10px; border-left: 2.5px solid var(--pt-line); font-size: 13.5px; font-weight: 600; color: var(--pt-muted); text-decoration: none; line-height: 1.35; }
body.pt .pt-toc__list a:hover { color: var(--pt-ink); }
body.pt .pt-toc__list a.is-active { color: var(--pt-navy); border-left-color: var(--pt-blue); background: #f2f7ff; }
body.pt .pt-article__cta { background: linear-gradient(145deg, #13275c, var(--pt-ink)); color: #d7ddea; border-radius: var(--pt-radius-lg); padding: 22px; display: flex; flex-direction: column; gap: 10px; }
body.pt .pt-article__cta p { margin: 0; font-size: 13.5px; line-height: 1.55; }
body.pt .pt-article__cta-title { font-family: var(--pt-head-font); font-weight: 700; font-size: 18px; color: #fff; }
body.pt .pt-article__cta .pt-button { text-align: center; padding: 12px 16px; font-size: 14px; }
body.pt .pt-article__cta .pt-button--ghost { color: #fff; border-color: rgba(255, 255, 255, 0.5); }
body.pt .pt-article__cta .pt-button--ghost:hover { background: #fff; color: var(--pt-ink); border-color: #fff; }
/* More guides */
body.pt .pt-article__more { max-width: 1160px; margin: 60px auto 0; padding-top: 30px; border-top: 1.5px solid var(--pt-ink); }
body.pt .pt-article__more-head { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; }
body.pt .pt-article__more-head h2 { font-family: var(--pt-head-font); font-size: 26px; letter-spacing: -0.015em; }
body.pt .pt-article__more-head a { font-weight: 700; font-size: 14px; color: var(--pt-blue); text-decoration: none; }
@media (max-width: 1000px) {
	body.pt .pt-article__layout { grid-template-columns: 1fr; }
	body.pt .pt-article__aside { position: static; }
	body.pt .pt-toc { display: none; }
}
@media (max-width: 760px) {
	body.pt .pt-bfeat { grid-template-columns: 1fr; }
	body.pt .pt-bfeat__media { min-height: 0; padding: 20px; }
	body.pt .pt-bfeat__media img { max-height: 200px; }
}

/* ---------- Shop filter bar ---------- */
body.pt .pt-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; background: #fff; border: 1px solid var(--pt-line); border-radius: var(--pt-radius-lg); padding: 14px 16px; margin-bottom: 22px; }
body.pt .pt-filters__cats, body.pt .pt-filters__subs { display: flex; flex-wrap: wrap; gap: 8px; }
body.pt .pt-filters__subs { width: 100%; padding-top: 2px; }
body.pt .pt-filters__pill { display: inline-block; padding: 8px 14px; border: 1.5px solid var(--pt-line); border-radius: 999px; font-size: 13px; font-weight: 600; color: var(--pt-ink); text-decoration: none; transition: background 0.15s ease, border-color 0.15s ease; }
body.pt .pt-filters__pill:hover { border-color: var(--pt-ink); text-decoration: none; }
body.pt .pt-filters__pill.is-active { background: var(--pt-navy); border-color: var(--pt-navy); color: #fff; }
body.pt .pt-filters__subs .pt-filters__pill { padding: 6px 12px; font-size: 12.5px; }
body.pt .pt-filters__form { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-left: auto; }
body.pt .pt-filters__field { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--pt-muted); }
body.pt .pt-filters__field select { border: 1.5px solid var(--pt-ink); border-radius: var(--pt-radius); padding: 8px 10px; background: #fff; font-size: 13px; }
body.pt .pt-filters__check { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 600; cursor: pointer; }
body.pt .pt-filters__check input { width: 16px; height: 16px; accent-color: var(--pt-navy); }
body.pt .pt-filters__apply { border: 0; background: var(--pt-navy); color: #fff; border-radius: var(--pt-radius); padding: 9px 16px; font-weight: 700; font-size: 13px; cursor: pointer; }
body.pt .pt-filters__clear { font-size: 13px; font-weight: 700; color: var(--pt-blue); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 768px) {
	body.pt .pt-filters__form { margin-left: 0; width: 100%; }
}
body.pt .woocommerce-ordering select { border: 1.5px solid var(--pt-ink); border-radius: var(--pt-radius); padding: 8px 10px; background: #fff; }
body.pt .woocommerce .button,
body.pt .woocommerce button.button,
body.pt .woocommerce a.button.alt,
body.pt .woocommerce button.button.alt,
body.pt .woocommerce #respond input#submit,
body.pt .wc-block-components-button:not(.is-link) {
	background: var(--pt-navy); color: #fff; border-radius: var(--pt-radius); font-weight: 700; padding: 14px 20px;
}
body.pt .woocommerce .button:hover,
body.pt .woocommerce button.button.alt:hover,
body.pt .wc-block-components-button:not(.is-link):hover { background: var(--pt-ink); color: #fff; }
body.pt div.product .woocommerce-tabs,
body.pt div.product .pt-pdp,
body.pt div.product .related,
body.pt div.product .upsells { grid-column: 1 / -1; }
/* ---------- Single product: gallery card left, buy box right ---------- */
body.pt div.product { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(32px, 4vw, 64px); align-items: start; width: 100%; max-width: 1380px; margin-inline: auto; }
body.pt div.product div.images,
body.pt div.product div.summary { width: auto !important; float: none !important; margin: 0 !important; }
body.pt div.product div.images { position: sticky; top: 24px; background: #fff; border: 1px solid var(--pt-line); border-radius: var(--pt-radius-lg); padding: 18px; max-width: 560px; }
body.pt div.product div.images .woocommerce-product-gallery__wrapper { background: #fff; border-radius: var(--pt-radius); }
body.pt div.product div.images .woocommerce-product-gallery__image img { mix-blend-mode: multiply; width: 100%; height: auto; max-height: 440px; object-fit: contain; }
body.pt div.product div.images .flex-control-thumbs { display: flex; gap: 10px; margin: 14px 0 0; padding: 0; list-style: none; }
body.pt div.product div.images .flex-control-thumbs li { width: 76px; }
body.pt div.product div.images .flex-control-thumbs img { border: 1.5px solid var(--pt-line); border-radius: var(--pt-radius); padding: 6px; background: #fff; cursor: pointer; opacity: 1; }
body.pt div.product div.images .flex-control-thumbs img.flex-active,
body.pt div.product div.images .flex-control-thumbs img:hover { border-color: var(--pt-ink); }
/* Buy box */
.pt-single-cat { display: inline-block; font-size: 11.5px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--pt-muted); text-decoration: none; margin-bottom: 10px; }
.pt-single-cat:hover { color: var(--pt-navy); }
body.pt .product_title { font-size: clamp(24px, 2.2vw, 32px); margin-bottom: 14px; }
body.pt div.product p.price { display: flex; align-items: baseline; gap: 12px; color: var(--pt-ink) !important; font-size: 30px !important; font-weight: 800; font-stretch: 112%; letter-spacing: -0.01em; margin-bottom: 18px !important; }
body.pt div.product p.price del { order: 2; font-size: 15px; font-weight: 500; color: var(--pt-muted); letter-spacing: 0; }
body.pt div.product p.price ins { order: 1; text-decoration: none; }
/* Short description: a compact spec sheet. */
body.pt div.product .woocommerce-product-details__short-description { color: var(--pt-ink); background: #fff; border: 1px solid var(--pt-line); border-radius: var(--pt-radius-lg); padding: 16px 18px; margin-bottom: 20px; font-size: 13.5px; }
body.pt div.product .woocommerce-product-details__short-description h2,
body.pt div.product .woocommerce-product-details__short-description h3 { font-size: 13px; margin-bottom: 8px; color: var(--pt-muted); text-transform: uppercase; letter-spacing: 0.08em; font-weight: 700; }
body.pt div.product .woocommerce-product-details__short-description ul { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 18px; }
body.pt div.product .woocommerce-product-details__short-description li { padding-left: 16px; position: relative; }
body.pt div.product .woocommerce-product-details__short-description li::before { content: ""; position: absolute; left: 0; top: 0.55em; width: 7px; height: 7px; background: var(--pt-blue); border-radius: 2px; }
/* Buy actions */
body.pt div.product form.cart { display: flex; gap: 10px; align-items: stretch; margin-bottom: 0 !important; }
body.pt div.product form.cart .quantity { flex: 0 0 auto; }
body.pt div.product form.cart .qty { width: 72px; height: 100%; border: 1.5px solid var(--pt-ink); border-radius: var(--pt-radius); padding: 12px 6px; text-align: center; font-weight: 700; }
body.pt div.product form.cart .single_add_to_cart_button,
body.pt .woocommerce div.product form.cart .button { flex: 1; background: var(--pt-navy) !important; color: #fff !important; border-radius: var(--pt-radius); padding: 16px 26px; font-weight: 700; font-size: 15.5px; transition: background 0.15s, transform 0.15s; }
body.pt div.product form.cart .single_add_to_cart_button:hover { background: var(--pt-ink) !important; }
body.pt div.product form.cart .single_add_to_cart_button:active { transform: translateY(1px); }
.pt-wa--single { display: flex; width: 100%; justify-content: center; margin: 10px 0 0; padding: 14px 22px; font-size: 14.5px; }
/* Trust rows under the buttons. */
.pt-single-trust { list-style: none; margin: 18px 0 0; padding: 14px 0 0; border-top: 1px solid var(--pt-line); display: grid; gap: 9px; }
.pt-single-trust li { display: flex; align-items: center; gap: 10px; font-size: 13.5px; font-weight: 600; color: var(--pt-ink); }
.pt-single-trust__ic { flex: 0 0 26px; height: 26px; display: grid; place-items: center; background: var(--pt-navy); border-radius: var(--pt-radius); }
.pt-single-trust__ic svg { width: 13px; height: 13px; fill: #fff; }
/* The eyebrow already names the category; the meta line would repeat it. */
body.pt div.product .product_meta { display: none; }
/* Quantity: clean box, no spinners. */
body.pt div.product form.cart .qty::-webkit-outer-spin-button,
body.pt div.product form.cart .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
body.pt div.product form.cart .qty { -moz-appearance: textfield; appearance: textfield; }
/* Attributes table in the Additional information tab. */
body.pt .woocommerce-product-attributes { width: 100%; border-collapse: collapse; border-top: 1.5px solid var(--pt-ink); }
body.pt .woocommerce-product-attributes th,
body.pt .woocommerce-product-attributes td { text-align: left; padding: 12px 10px; border-bottom: 1px solid var(--pt-line); font-size: 14px; font-style: normal; }
body.pt .woocommerce-product-attributes th { color: var(--pt-muted); font-weight: 500; width: 32%; }
body.pt .woocommerce-product-attributes td p { margin: 0; }
/* Tabs: quiet underline nav, readable content width. */
body.pt .woocommerce-tabs { margin-top: clamp(40px, 5vw, 72px); max-width: 920px; margin-left: auto; margin-right: auto; }
body.pt .woocommerce-tabs ul.tabs { display: flex; gap: 26px; margin: 0 0 0 !important; padding: 0 !important; border-bottom: 1.5px solid var(--pt-line); }
body.pt .woocommerce-tabs ul.tabs::before,
body.pt .woocommerce-tabs ul.tabs::after { display: none !important; }
body.pt .woocommerce-tabs ul.tabs li { background: none !important; border: 0 !important; margin: 0 !important; padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
body.pt .woocommerce-tabs ul.tabs li::before,
body.pt .woocommerce-tabs ul.tabs li::after { display: none !important; }
body.pt .woocommerce-tabs ul.tabs li a { display: block; padding: 12px 2px !important; font-weight: 700; font-size: 14.5px; color: var(--pt-muted); border-bottom: 3px solid transparent; margin-bottom: -1.5px; }
body.pt .woocommerce-tabs ul.tabs li.active a { color: var(--pt-ink); border-bottom-color: var(--pt-blue); }
body.pt .woocommerce-tabs .panel { max-width: none; padding-top: 26px; }
body.pt .woocommerce-tabs .panel > h2:first-of-type { display: none; }
body.pt .woocommerce-tabs .panel h2 { font-size: 22px; margin: 1.2em 0 0.5em; }
body.pt .woocommerce-tabs .panel h3 { font-size: 17px; margin: 1.3em 0 0.4em; }
body.pt .woocommerce-tabs .panel p,
body.pt .woocommerce-tabs .panel li { font-size: 15px; line-height: 1.65; color: #3a4357; }
body.pt .woocommerce-tabs .panel ul { padding-left: 1.2em; }
/* ---------- Product details: prose left, specs and buy card right ---------- */
.pt-pdp { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 0.8fr); gap: clamp(32px, 4vw, 64px); align-items: start; width: 100%; max-width: 1480px; margin: clamp(48px, 5vw, 80px) auto 0; }
.pt-pdp__title { font-size: clamp(22px, 2vw, 28px); font-weight: 800; font-stretch: 112%; padding-bottom: 14px; border-bottom: 1.5px solid var(--pt-ink); margin-bottom: 22px; }
.pt-pdp__content h2 { font-size: 19px; font-weight: 800; font-stretch: 108%; padding-left: 12px; border-left: 4px solid var(--pt-blue); margin: 1.7em 0 0.6em; }
.pt-pdp__content h2:first-child { margin-top: 0; }
.pt-pdp__content h3 { font-size: 16px; margin: 1.4em 0 0.4em; }
.pt-pdp__content p,
.pt-pdp__content li { font-size: 15px; line-height: 1.65; color: #3a4357; }
.pt-pdp__content p { margin: 0 0 0.9em; }
.pt-pdp__content ul { margin: 0 0 1em; padding-left: 1.3em; }
.pt-pdp__content li { margin-bottom: 4px; }
.pt-pdp__aside { position: sticky; top: 24px; display: grid; gap: 16px; }
.pt-pdp__card { background: #fff; border: 1px solid var(--pt-line); border-radius: var(--pt-radius-lg); padding: 20px 20px 18px; }
.pt-pdp__card h3 { font-size: 12.5px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--pt-muted); margin-bottom: 10px; }
.pt-pdp__card .woocommerce-product-attributes { border-top: 0; }
.pt-pdp__card .woocommerce-product-attributes th,
.pt-pdp__card .woocommerce-product-attributes td { padding: 9px 2px; font-size: 13.5px; }
.pt-pdp__buy { display: grid; gap: 10px; }
.pt-pdp__price { display: flex; align-items: baseline; gap: 10px; font-size: 24px; font-weight: 800; font-stretch: 110%; color: var(--pt-ink); }
.pt-pdp__price del { order: 2; font-size: 13px; font-weight: 500; color: var(--pt-muted); }
.pt-pdp__price ins { order: 1; text-decoration: none; }
.pt-pdp__buy .pt-button { justify-content: center; }
.pt-pdp__buy .pt-wa { margin: 0; }

/* Related products */
body.pt div.product .related > h2,
body.pt div.product .upsells > h2 { font-size: clamp(22px, 2vw, 28px); font-weight: 800; font-stretch: 112%; margin: clamp(40px, 5vw, 64px) 0 20px; padding-top: 28px; border-top: 1.5px solid var(--pt-line); }
body.pt .woocommerce-message,
body.pt .woocommerce-info { border-top-color: var(--pt-navy); background: #fff; }
body.pt .woocommerce-message::before,
body.pt .woocommerce-info::before { color: var(--pt-navy); }
body.pt .pt-entry { padding-block: 18px; border-bottom: 1px solid var(--pt-line); }
body.pt .product_title { font-size: clamp(26px, 2.6vw, 36px); }

/* ---------- Footer CTA ---------- */

.pt-cta { position: relative; background: var(--pt-navy); color: #fff; }
.pt-cta::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: var(--pt-noise); opacity: 0.07; mix-blend-mode: overlay; }
.pt-cta__inner { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 28px 40px; flex-wrap: wrap; padding-block: 46px; }
.pt-cta__kicker { font-size: 12px; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase; color: #9fc3ff; margin-bottom: 8px; }
.pt-cta__copy h2 { font-family: var(--pt-head-font); font-size: clamp(24px, 2.4vw, 34px); font-weight: 800; letter-spacing: -0.01em; line-height: 1.05; margin-bottom: 8px; }
.pt-cta__copy > p:last-child { color: #c9d6f2; font-size: 15px; max-width: 54ch; }
.pt-cta__actions { display: flex; gap: 12px; flex-wrap: wrap; }
body.pt .pt-cta a.pt-cta__call { background: transparent; color: #fff; border-color: rgba(255, 255, 255, 0.55); }
body.pt .pt-cta a.pt-cta__call:hover { background: #fff; color: var(--pt-navy); border-color: #fff; }

@media (max-width: 760px) {
	.pt-cta__inner { flex-direction: column; align-items: stretch; }
	.pt-cta__actions { flex-direction: column; }
	body.pt .pt-cta a.pt-button { width: 100%; }
}

/* ---------- All-in-one POS landing ---------- */

/* Hero buy box: price, disclosure and actions in one tight cluster */
body.pt .e-con.pt-buybox { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; margin-top: 2px; }
body.pt .pt-buybox .pt-btns { margin-top: 6px; }
.pt-pricerow { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.pt-pricerow .pt-price strong { font-family: var(--pt-head-font); font-size: clamp(32px, 2.8vw, 44px); font-weight: 800; font-stretch: 110%; letter-spacing: -0.01em; color: var(--pt-ink); }
.pt-pricerow .pt-price del { font-size: 15px; font-weight: 500; color: var(--pt-muted); margin-left: 8px; }
.pt-pricerow .pt-save { display: inline-block; background: var(--pt-red); color: #fff; font-size: 11.5px; font-weight: 800; border-radius: var(--pt-radius); padding: 5px 9px; margin-left: 10px; vertical-align: 6px; }
.pt-terminalonly { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; font-size: 12.5px; font-weight: 600; color: var(--pt-muted); }
.pt-pill { display: inline-block; background: #dbe9fd; color: var(--pt-blue); font-size: 12px; font-weight: 700; padding: 5px 11px; border-radius: 999px; }
.pt-textlink { color: var(--pt-blue); font-size: 14px; font-weight: 700; text-decoration: none; }
.pt-textlink::after { content: " \2192"; }
.pt-textlink:hover { text-decoration: underline; text-underline-offset: 4px; }

/* WhatsApp CTA button, in the product cards' WhatsApp language */
body.pt .pt-btn--wa .elementor-button { background: #fff; color: var(--pt-ink); border: 1.5px solid #cfd6e4; }
body.pt .pt-btn--wa .elementor-button:hover { background: #f0faf4; border-color: #1da851; color: var(--pt-ink); }
body.pt .pt-btn--wa .elementor-button-content-wrapper { display: inline-flex; align-items: center; gap: 8px; }
body.pt .pt-btn--wa .elementor-button-content-wrapper::before {
	content: ""; flex: 0 0 auto; width: 17px; height: 17px;
	background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="%2325d366"><path d="M16 3C9.4 3 4 8.3 4 14.9c0 2.6.9 5 2.3 7L4 29l7.3-2.3c1.9 1 3.9 1.5 4.7 1.5 6.6 0 12-5.3 12-11.9S22.6 3 16 3zm0 21.8c-1.5 0-3.3-.4-4.7-1.2l-.5-.3-4.3 1.4 1.4-4.2-.3-.5c-1.2-1.6-1.8-3.5-1.8-5.3C5.8 9.5 10.4 5 16 5s10.2 4.5 10.2 10-4.6 9.8-10.2 9.8zm5.6-7.3c-.3-.2-1.8-.9-2.1-1-.3-.1-.5-.2-.7.2-.2.3-.8 1-.9 1.2-.2.2-.3.2-.6.1-.3-.2-1.3-.5-2.4-1.5-.9-.8-1.5-1.8-1.7-2.1-.2-.3 0-.5.1-.6l.5-.6c.2-.2.2-.3.3-.5.1-.2 0-.4 0-.6-.1-.2-.7-1.7-1-2.3-.2-.6-.5-.5-.7-.5h-.6c-.2 0-.5.1-.8.4-.3.3-1.1 1-1.1 2.5s1.1 2.9 1.3 3.1c.2.2 2.2 3.4 5.4 4.7.8.3 1.3.5 1.8.6.8.2 1.5.2 2 .1.6-.1 1.8-.7 2.1-1.5.3-.7.3-1.3.2-1.5-.1-.1-.3-.2-.6-.4z"/></svg>') center / contain no-repeat;
}

/* POS hero variant: display line, keyword subhead, terminal image, and a
   compact vertical rhythm so the whole hero fits the first viewport. */
body.pt .e-con.pt-hero--pos { padding: 8px var(--pt-gutter) 16px; }
body.pt .pt-hero--pos .e-con.pt-hero__panel { min-height: clamp(320px, 40vh, 420px); padding: clamp(16px, 1.8vw, 28px) clamp(20px, 2vw, 36px) 0 clamp(22px, 2.6vw, 44px); grid-template-columns: minmax(0, 1.04fr) minmax(0, 0.96fr); align-items: center; }
body.pt .pt-hero--pos .e-con.pt-hero__copy { gap: 10px; padding-bottom: clamp(16px, 1.8vw, 26px); max-width: 640px; }
body.pt .pt-hero--pos .pt-display .elementor-heading-title { font-size: clamp(29px, 3.05vw, 47px); }
.pt-subhead .elementor-heading-title { font-family: var(--pt-head-font); font-size: clamp(17px, 1.45vw, 22px); font-weight: 800; font-stretch: 108%; color: var(--pt-ink); }
body.pt .pt-hero--pos .pt-hero__copy .pt-lead { font-size: clamp(15px, 1.08vw, 16.5px); max-width: 54ch; }
body.pt .pt-hero--pos .e-con.pt-buybox { gap: 9px; margin-top: 3px; }
body.pt .pt-hero--pos .pt-pricerow .pt-price strong { font-size: clamp(28px, 2.6vw, 40px); }
body.pt .pt-hero--pos .pt-hero__copy .pt-btn .elementor-button { padding: 13px 20px; font-size: 14px; }
.pt-heroimg { align-self: end; width: 100%; max-width: 620px; margin-inline: auto; padding: 14px 4px 0; }
.pt-heroimg img { display: block; width: 100%; height: auto; filter: drop-shadow(-8px 16px 22px rgba(32, 56, 100, 0.28)); }

/* "Complete your counter" strip under the hero panel */
.pt-herostrip { display: flex; align-items: center; gap: 20px; background: var(--pt-paper); border: 1px solid var(--pt-line); border-radius: var(--pt-radius-lg); padding: 8px 24px; margin-top: 10px; }
.pt-herostrip__title { font-size: 16.5px; font-weight: 800; white-space: nowrap; }
.pt-herostrip__sub { flex: 1; font-size: 14px; color: var(--pt-muted); border-left: 1px solid var(--pt-line); padding-left: 20px; }
body.pt .pt-herostrip > img { height: 38px; width: auto; flex: 0 0 auto; }
.pt-specstrip { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; }
.pt-specstrip li { border: 1px solid var(--pt-line); background: #fff; border-radius: var(--pt-radius); padding: 7px 10px; font-size: 12.5px; font-weight: 600; }

/* Product photo gallery (specs section) */
.pt-posgal { display: flex; flex-direction: column; gap: 12px; width: 100%; max-width: 520px; }
.pt-posgal__main img { display: block; width: 100%; height: auto; border-radius: var(--pt-radius-lg); border: 1px solid var(--pt-line); background: #fff; }
.pt-posgal__thumbs { display: flex; gap: 10px; flex-wrap: wrap; }
.pt-posgal__thumbs button { border: 1.5px solid var(--pt-line); border-radius: var(--pt-radius); background: #fff; padding: 4px; cursor: pointer; line-height: 0; }
.pt-posgal__thumbs button img { width: 60px; height: 60px; object-fit: cover; border-radius: 4px; }
.pt-posgal__thumbs button.is-active,
.pt-posgal__thumbs button:hover { border-color: var(--pt-blue); }

/* Know exactly what you're buying: the receipt on navy plus ruled groups */
body.pt .e-con.pt-wyr > .e-con-inner { gap: 36px; }
body.pt .e-con.pt-wyr__grid { display: grid; grid-template-columns: minmax(0, 0.72fr) minmax(0, 1fr); gap: clamp(32px, 4vw, 72px); align-items: center; }
.pt-kitrec { position: relative; max-width: 360px; margin-inline: auto; background: var(--pt-receipt); box-shadow: 0 26px 48px -20px rgba(2, 10, 32, 0.85); font-family: var(--pt-mono); font-size: 13px; padding: 28px 26px 32px; transform: rotate(-1.6deg); color: var(--pt-ink); }
.pt-kitrec::after { content: ""; position: absolute; left: 0; right: 0; bottom: -8px; height: 8px; background: linear-gradient(-45deg, transparent 5px, var(--pt-receipt) 0) 0 0 / 12px 8px, linear-gradient(45deg, transparent 5px, var(--pt-receipt) 0) 0 0 / 12px 8px; }
.pt-kitrec h3 { font-family: var(--pt-mono); font-weight: 600; font-size: 14px; letter-spacing: 0.1em; text-align: center; margin-bottom: 2px; }
.pt-kitrec__addr { text-align: center; font-size: 11px; color: var(--pt-muted); margin-bottom: 16px; }
.pt-kitrec ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.pt-kitrec li { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; border-bottom: 1px dashed #d8d2c4; padding-bottom: 9px; }
.pt-kitrec__total { display: flex; justify-content: space-between; margin-top: 14px; font-weight: 600; font-size: 15px; }
.pt-kitrec .pt-price strong { font: inherit; font-weight: 700; }
.pt-kitrec .pt-price del { display: none; }
.pt-kitrec__pay { margin-top: 12px; text-align: center; font-size: 11px; color: var(--pt-muted); }
.pt-kitrec__thanks { margin-top: 6px; text-align: center; font-size: 11.5px; font-weight: 600; }
body.pt .e-con.pt-wyr__info { display: flex; flex-direction: column; gap: 0; }
body.pt .e-con.pt-wyr__block { padding: 22px 0; border-top: 1px solid rgba(255, 255, 255, 0.18); display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
body.pt .e-con.pt-wyr__block:first-child { border-top: 0; padding-top: 0; }
body.pt .pt-wyr__block .pt-h3 .elementor-heading-title { font-size: 19px; }
body.pt .pt-wyr__block .pt-copy { font-size: 14.5px; color: #c9d6f2; max-width: 56ch; }
body.pt .pt-wyr__info .pt-smallnote { border-top: 1px solid rgba(255, 255, 255, 0.18); padding-top: 14px; width: 100%; color: #9bb0d8; }
body.pt .pt-wyr .pt-lead { color: #c9d6f2; }

/* Card trios in the site's card language */
body.pt .e-con.pt-cards3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
body.pt .e-con.pt-card {
	position: relative; display: flex; flex-direction: column; gap: 10px; align-items: flex-start;
	background: var(--pt-paper); border: 1px solid var(--pt-line); border-radius: var(--pt-radius-lg);
	padding: 24px 22px 26px;
	transition: border-color 0.2s, transform 0.2s;
}
body.pt .e-con.pt-card:hover { border-color: var(--pt-ink); transform: translateY(-3px); }
body.pt .e-con.pt-card::before {
	content: ""; position: absolute; left: 22px; right: 22px; top: -1px; height: 3px;
	border-radius: 0 0 3px 3px; background: var(--pt-blue);
	transform: scaleX(0.22); transform-origin: left; transition: transform 0.3s ease;
}
body.pt .e-con.pt-card:hover::before { transform: scaleX(1); }
body.pt .pt-card .pt-h3 .elementor-heading-title { font-size: 18px; }
body.pt .pt-card .pt-copy { font-size: 14px; color: var(--pt-muted); }

/* Delivery, warranty and support: a floating trust panel */
body.pt .e-con.pt-assuresec > .e-con-inner { gap: 28px; }
body.pt .e-con.pt-assure { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; background: var(--pt-paper); border-radius: var(--pt-radius-lg); box-shadow: var(--pt-shadow-float); overflow: hidden; }
body.pt .e-con.pt-assure__cell { padding: 28px 26px 30px; border-left: 1px solid #e6e9ef; display: flex; flex-direction: column; gap: 10px; align-items: flex-start; transition: background 0.2s ease; }
body.pt .e-con.pt-assure__cell:first-child { border-left: 0; }
body.pt .e-con.pt-assure__cell:hover { background: #f6f7fa; }
body.pt .pt-assure__ic .elementor-icon {
	display: grid; place-items: center; width: 46px; height: 46px;
	border-radius: var(--pt-radius); background: linear-gradient(145deg, #1d47b5, var(--pt-navy));
	box-shadow: 0 8px 16px -8px rgba(10, 47, 140, 0.7);
}
body.pt .pt-assure__ic .elementor-icon i { color: #fff; font-size: 18px; }
body.pt .pt-assure__ic .elementor-icon svg { fill: #fff; width: 19px; height: 19px; }
body.pt .pt-assure__cell .pt-h3 .elementor-heading-title { font-size: 17px; }
body.pt .pt-assure__cell .pt-copy { font-size: 13.5px; color: var(--pt-muted); }
.pt-smallnote { font-size: 12.5px; color: var(--pt-muted); }

/* Specification table */
body.pt .e-con.pt-specs__grid { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: clamp(32px, 4vw, 64px); align-items: start; }
body.pt .e-con.pt-specs__main { display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.pt-spectable { width: 100%; border-collapse: collapse; font-size: 14px; background: #fff; border: 1px solid var(--pt-line); border-radius: var(--pt-radius-lg); overflow: hidden; }
.pt-spectable th, .pt-spectable td { text-align: left; padding: 13px 16px; border-bottom: 1px solid var(--pt-line); }
.pt-spectable tr:last-child th, .pt-spectable tr:last-child td { border-bottom: 0; }
.pt-spectable th { width: 42%; font-weight: 700; color: var(--pt-ink); }
.pt-specnote { background: #fff; border: 1px dashed #c9c5bb; border-radius: var(--pt-radius-lg); padding: 22px 24px; font-size: 14.5px; color: var(--pt-muted); }

/* Setup option cards */
body.pt .e-con.pt-setup > .e-con-inner { gap: 28px; }
body.pt .e-con.pt-opts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
body.pt .e-con.pt-opt-card { position: relative; background: var(--pt-paper); border: 1px solid var(--pt-line); border-radius: var(--pt-radius-lg); padding: 28px 26px; display: flex; flex-direction: column; gap: 12px; transition: border-color 0.2s, transform 0.2s; }
body.pt .e-con.pt-opt-card:hover { border-color: var(--pt-ink); transform: translateY(-3px); }
body.pt .e-con.pt-opt-card--pick { border: 1.5px solid var(--pt-blue); }
.pt-opt-flag { position: absolute; top: -13px; left: 24px; background: var(--pt-blue); color: #fff; font-size: 11.5px; font-weight: 800; letter-spacing: 0.04em; border-radius: 999px; padding: 5px 12px; }
.pt-opt-card__price .pt-price strong { font-family: var(--pt-head-font); font-size: 27px; font-weight: 800; font-stretch: 110%; }
.pt-opt-card__price .pt-price del { font-size: 13px; color: var(--pt-muted); margin-left: 6px; }
.pt-opt-card__sub { display: block; margin-top: 4px; font-size: 12.5px; font-weight: 600; color: var(--pt-muted); }
.pt-opt-card__sub .pt-price strong { font: inherit; }
body.pt .pt-opt-card .pt-ticks { margin-top: 2px; }
body.pt .pt-opt-card .pt-btn { margin-top: auto; }
body.pt .pt-opt-card .pt-btn + .pt-btn { margin-top: 10px; }
body.pt .pt-opt-card .pt-btn .elementor-button { width: 100%; justify-content: center; }
/* The custom-setup card talks, it does not price: navy ground, white action */
body.pt .e-con.pt-opt-card--navy { position: relative; overflow: hidden; background: var(--pt-navy); border: 0; color: #fff; }
body.pt .e-con.pt-opt-card--navy::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: var(--pt-noise); opacity: 0.07; mix-blend-mode: overlay; }
body.pt .e-con.pt-opt-card--navy:hover { transform: translateY(-3px); border-color: transparent; }
body.pt .pt-opt-card--navy .pt-copy { color: #c9d6f2; }
body.pt .pt-opt-card--navy .pt-copy strong { color: #fff; }

/* Compact use cases: trade cards on navy */
body.pt .e-con.pt-uses > .e-con-inner { gap: 28px; }
body.pt .e-con.pt-uses__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
body.pt .e-con.pt-use {
	position: relative; display: flex; flex-direction: column; gap: 10px; align-items: flex-start;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.02));
	border: 1px solid rgba(255, 255, 255, 0.16); border-radius: var(--pt-radius-lg);
	padding: 24px 22px 26px;
	transition: border-color 0.2s, transform 0.2s;
}
body.pt .e-con.pt-use:hover { transform: translateY(-4px); border-color: rgba(255, 255, 255, 0.32); }
body.pt .e-con.pt-use::before {
	content: ""; position: absolute; left: 22px; right: 22px; top: -1px; height: 3px;
	border-radius: 0 0 3px 3px; background: var(--pt-blue);
	transform: scaleX(0.22); transform-origin: left; transition: transform 0.3s ease;
}
body.pt .e-con.pt-use:hover::before { transform: scaleX(1); }
body.pt .pt-use__ic .elementor-icon {
	display: grid; place-items: center; width: 44px; height: 44px;
	border-radius: var(--pt-radius); background: linear-gradient(145deg, #1d6ef5, var(--pt-blue));
}
body.pt .pt-use__ic .elementor-icon i { color: #fff; font-size: 18px; }
body.pt .pt-use__ic .elementor-icon svg { fill: #fff; width: 19px; height: 19px; }
body.pt .pt-use .pt-h3 .elementor-heading-title { font-size: 19px; }
body.pt .pt-use .pt-copy { font-size: 13.5px; color: #c9d6f2; }
body.pt .pt-uses > .e-con-inner > .pt-lead { color: #c9d6f2; font-size: 15px; }

/* Accessories: real product beside the on-order card */
body.pt .e-con.pt-acc__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 24px; align-items: stretch; }
body.pt .pt-acc__grid ul.products,
body.pt .pt-acc__grid ul.products.columns-4 { grid-template-columns: 1fr !important; }
.pt-askcard { position: relative; overflow: hidden; height: 100%; border-radius: var(--pt-radius-lg); background: var(--pt-navy); color: #fff; padding: 36px 32px; display: flex; flex-direction: column; justify-content: center; }
.pt-askcard::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: var(--pt-noise); opacity: 0.07; mix-blend-mode: overlay; }
.pt-askcard__body { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 12px; align-items: flex-start; max-width: 30rem; }
.pt-askcard h3 { font-family: var(--pt-head-font); font-size: clamp(21px, 1.8vw, 26px); font-weight: 800; font-stretch: 110%; line-height: 1.1; }
.pt-askcard p { font-size: 14.5px; color: #c9d6f2; max-width: 44ch; }
.pt-askcard > img { position: absolute; right: -40px; bottom: -60px; width: 280px; height: auto; opacity: 0.35; transform: rotate(-8deg); pointer-events: none; }

/* Final purchase band */
body.pt .e-con.pt-final__grid { display: grid; grid-template-columns: minmax(0, 0.42fr) minmax(0, 1fr); gap: 48px; align-items: center; }
body.pt .e-con.pt-final__copy { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.pt-final__name { font-size: 13px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #9fc3ff; }
body.pt .pt-final__price .pt-price strong { font-family: var(--pt-head-font); font-size: clamp(28px, 2.4vw, 36px); font-weight: 800; color: #fff; }
body.pt .pt-final__price .pt-price del { color: #9bb0d8; margin-left: 8px; }
.pt-final__img img { display: block; width: 100%; max-width: 320px; margin-inline: auto; filter: drop-shadow(-8px 14px 18px rgba(4, 12, 36, 0.55)); }

/* Anatomy callouts and the POS description row */
body.pt .e-con.pt-anatomy > .e-con-inner { gap: clamp(32px, 3.5vw, 52px); }
body.pt .e-con.pt-anatomy__grid { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr); gap: 56px; align-items: center; }
body.pt .e-con.pt-anatomy__desc { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(28px, 3.5vw, 64px); border-top: 1px solid var(--pt-line); padding-top: clamp(26px, 2.6vw, 40px); }
body.pt .e-con.pt-anatomy__descblock { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
body.pt .pt-anatomy__descblock .pt-h3 .elementor-heading-title { font-size: 19px; }
body.pt .pt-anatomy__descblock .pt-copy { font-size: 14.5px; color: var(--pt-muted); max-width: 58ch; }
body.pt .e-con.pt-anatomy__specs { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
body.pt .pt-anatomy__specs .pt-h3 .elementor-heading-title { font-size: 19px; }
body.pt .pt-anatomy > .e-con-inner > .pt-lead { max-width: 58ch; margin-top: -18px; }
body.pt .e-con.pt-anatomy__copy { display: flex; flex-direction: column; gap: 16px; }
.pt-anatomy__scene { position: relative; max-width: 440px; margin-inline: auto; }
.pt-anatomy__scene img { display: block; width: 100%; height: auto; filter: drop-shadow(-6px 10px 12px rgba(32, 56, 100, 0.25)); }
.pt-spot { position: absolute; display: flex; align-items: center; gap: 8px; }
.pt-spot i { flex: 0 0 14px; width: 14px; height: 14px; border-radius: 50%; background: var(--pt-blue); box-shadow: 0 0 0 4px rgba(10, 108, 240, 0.22); }
.pt-spot > span { background: var(--pt-ink); color: #fff; font-size: 12px; font-weight: 600; padding: 6px 10px; border-radius: var(--pt-radius); white-space: nowrap; }

/* FAQ: two equal, independent columns */
body.pt .e-con.pt-faqsec > .e-con-inner { gap: 20px; }
.pt-faq { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(32px, 4vw, 72px); align-items: start; }
.pt-faq details { border-top: 1px solid var(--pt-line); }
.pt-faq__col > details:last-child { border-bottom: 1px solid var(--pt-line); }
@media (max-width: 900px) {
	.pt-faq { grid-template-columns: 1fr; gap: 0; }
	.pt-faq__col:last-child > details:first-child { border-top: 0; }
	.pt-faq__col:first-child > details:last-child { border-bottom: 0; }
}
.pt-faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 0; font-weight: 700; font-size: 16px; }
.pt-faq summary::-webkit-details-marker { display: none; }
.pt-faq summary::after { content: "+"; flex: 0 0 auto; font-size: 22px; font-weight: 600; color: var(--pt-blue); transition: transform 0.2s; }
.pt-faq details[open] summary::after { transform: rotate(45deg); }
.pt-faq details p { padding: 0 0 18px; color: var(--pt-muted); font-size: 14.5px; max-width: 64ch; }

/* Added-to-cart bar: checkout or keep shopping */
.pt-addedbar {
	position: fixed; left: 50%; transform: translateX(-50%); bottom: 24px; z-index: 70;
	display: flex; align-items: center; gap: 20px;
	background: var(--pt-paper); border: 1px solid var(--pt-line); border-radius: var(--pt-radius-lg);
	box-shadow: var(--pt-shadow-float); padding: 12px 14px 12px 20px; max-width: calc(100vw - 32px);
}
.pt-addedbar__msg { font-size: 14.5px; font-weight: 700; white-space: nowrap; }
.pt-addedbar__msg::before { content: "\2713"; color: #1da851; font-weight: 800; margin-right: 8px; }
.pt-addedbar__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.pt-addedbar .pt-button { padding: 11px 16px; font-size: 13.5px; }
body.pt .woocommerce-message .pt-notice-ghost { background: transparent; color: var(--pt-ink); border: 1.5px solid var(--pt-ink); }

/* Mobile buy bar */
body.pt .e-con.pt-buybarhost { padding: 0; }
.pt-buybar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: none; align-items: center; justify-content: space-between; gap: 12px; background: var(--pt-ink); color: #fff; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); }
.pt-buybar__price { font-size: 12.5px; font-weight: 600; line-height: 1.3; color: #c9cfdb; }
.pt-buybar__price strong { display: block; font-size: 17px; font-weight: 800; color: #fff; }
.pt-buybar a { background: var(--pt-blue); color: #fff; font-weight: 700; font-size: 14px; padding: 12px 20px; border-radius: var(--pt-radius); text-decoration: none; white-space: nowrap; }

@media (max-width: 900px) {
	body.pt .e-con.pt-anatomy__grid,
	body.pt .e-con.pt-specs__grid,
	body.pt .e-con.pt-final__grid,
	body.pt .e-con.pt-acc__grid,
	body.pt .e-con.pt-opts { grid-template-columns: 1fr; gap: 28px; }
	body.pt .e-con.pt-cards3 { grid-template-columns: 1fr; }
	body.pt .e-con.pt-wyr__grid { grid-template-columns: 1fr; gap: 36px; }
	body.pt .e-con.pt-anatomy__desc { grid-template-columns: 1fr; gap: 24px; }
	body.pt .e-con.pt-assure { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.pt .e-con.pt-assure__cell { border-left: 0; border-top: 1px solid #e6e9ef; }
	body.pt .e-con.pt-assure__cell:nth-child(-n+2) { border-top: 0; }
	body.pt .e-con.pt-assure__cell:nth-child(even) { border-left: 1px solid #e6e9ef; }
	body.pt .e-con.pt-uses__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pt-anatomy__scene { max-width: 340px; }
	.pt-spot { display: none; }
	.pt-posgal { margin-inline: auto; }
	.pt-heroimg { max-width: 380px; margin: 0 auto; padding-bottom: 16px; }
	/* The POS hero's desktop rules outrank the generic hero overrides below,
	   so restate the stack for the variant: copy above, terminal below. */
	body.pt .pt-hero--pos .e-con.pt-hero__panel { grid-template-columns: 1fr; min-height: 0; padding: 26px 20px 0; }
	body.pt .pt-hero--pos .e-con.pt-hero__copy { max-width: none; padding-bottom: 4px; }
	.pt-herostrip { flex-wrap: wrap; gap: 10px 20px; }
	.pt-herostrip__sub { border-left: 0; padding-left: 0; }
	body.pt .pt-herostrip > img { display: none; }
}
@media (max-width: 760px) {
	body.pt .e-con.pt-uses__grid { grid-template-columns: 1fr; }
	/* Assurance panel on phones: compact icon-left rows, like the trust ribbon */
	body.pt .e-con.pt-assure { grid-template-columns: 1fr; }
	body.pt .e-con.pt-assure__cell { display: grid; grid-template-columns: 42px minmax(0, 1fr); column-gap: 14px; row-gap: 3px; align-items: start; padding: 16px 18px 18px; border-left: 0 !important; border-top: 1px solid #e6e9ef; }
	body.pt .e-con.pt-assure__cell:first-child { border-top: 0; }
	body.pt .e-con.pt-assure__cell:hover { background: transparent; }
	body.pt .pt-assure__ic { grid-row: 1 / 3; }
	body.pt .pt-assure__ic .elementor-icon { width: 42px; height: 42px; }
	body.pt .pt-assure__cell .pt-h3 .elementor-heading-title { font-size: 15.5px; }
	body.pt .pt-assure__cell .pt-copy { font-size: 13px; }
	.pt-buybar { display: flex; }
	body.pt:has(.pt-buybar) .pt-footer { padding-bottom: 64px; }
	.pt-addedbar { bottom: 80px; flex-direction: column; align-items: stretch; gap: 10px; width: calc(100vw - 32px); }
	.pt-addedbar .pt-button { width: 100%; justify-content: center; text-align: center; }
}

/* Honor reduced-motion preferences across the theme. */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
	html { scroll-behavior: auto !important; }
}

/* ---------- Responsive ---------- */

@media (max-width: 1100px) {
	.pt-hide-md { display: none; }
	body.pt .e-con.pt-cats__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	body.pt ul.products,
	body.pt ul.products.columns-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.pt-footer__grid { grid-template-columns: 1fr 1fr 1fr; }
	.pt-footer__brand { grid-column: 1 / -1; }
}

@media (max-width: 900px) {
	body.pt .e-con.pt-sec { padding-block: 64px; }
	body.pt .e-con.pt-hero__grid,
	body.pt .e-con.pt-choose__grid,
	body.pt .e-con.pt-quote__grid,
	body.pt .e-con.pt-head,
	body.pt .e-con.pt-head--split { grid-template-columns: 1fr; gap: 28px; }
	body.pt .e-con.pt-head { gap: 14px; }
	body.pt .e-con.pt-hero { padding-top: 20px; padding-bottom: 80px; }
	body.pt .e-con.pt-hero__panel { grid-template-columns: 1fr; padding: 28px 22px 0; }
	body.pt .e-con.pt-hero__copy { padding: 0 0 10px; }
	.pt-hscene { max-width: 460px; margin: 0 auto 20px; }
	body.pt .e-con.pt-hero__aside { flex-direction: row; }
	body.pt .e-con.pt-trades__grid,
	body.pt .e-con.pt-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.pt .e-con.pt-step::before { display: none; }
	body.pt .e-con.pt-trades__grid { grid-template-rows: auto auto 1fr auto auto auto 1fr auto; gap: 16px; }
	body.pt .e-con.pt-strip__grid { grid-template-columns: 1fr; }
	body.pt .e-con.pt-tile { min-height: 260px; border-right: 0; border-bottom: 1px solid var(--pt-line-dark); }
	.pt-rec { position: relative; top: 0; }
	body.pt div.product { grid-template-columns: 1fr; }
	body.pt div.product div.images { position: static; }
	.pt-pdp { grid-template-columns: 1fr; }
	body.pt div.product div.images { max-width: none; }
	body.pt div.product div.images .woocommerce-product-gallery__image img { max-height: 300px; }
	.pt-pdp__aside { position: static; }
	body.pt div.product .woocommerce-product-details__short-description ul { grid-template-columns: 1fr; }
	.pt-navtoggle { display: inline-flex; }
	.pt-nav { display: none; }
	.pt-nav.is-open { display: block; }
	.pt-nav__list { flex-direction: column; align-items: stretch; gap: 0; padding-block: 6px; }
	.pt-nav__list a { padding: 12px 0; border-bottom: 1px solid rgba(255, 255, 255, 0.1); }
	.pt-nav__list .pt-sep { padding-left: 0; border-left: 0; }
	.pt-nav__list .pt-nav__clearance { margin-left: 0; }
}

@media (max-width: 760px) {
	:root { --pt-gutter: 16px; }
	.pt-hide-sm { display: none; }
	/* No utility bar on phones; the header starts at the logo. */
	.pt-topbar { display: none; }
	body.pt .e-con.pt-hero { padding: 10px var(--pt-gutter) 68px; }
	body.pt .e-con.pt-hero__panel { min-height: 0; padding: 26px 18px 0; }
	body.pt .pt-hero .pt-display .elementor-heading-title { font-size: clamp(27px, 7.6vw, 34px); }
	body.pt .pt-hero__copy { gap: 14px; padding-bottom: 6px; }
	body.pt .pt-hero__copy .pt-lead { font-size: 15px; }
	body.pt .pt-hero__copy .pt-btns { flex-direction: column; align-items: stretch; gap: 6px; }
	body.pt .pt-hero__copy .pt-btn .elementor-button { width: 100%; }
	body.pt .pt-hero--pos .e-con.pt-hero__panel { padding: 24px 18px 0; }
	body.pt .pt-hero--pos .e-con.pt-hero__copy { gap: 12px; }
	body.pt .pt-hero--pos .pt-hero__copy .pt-btn .elementor-button { padding: 14px 20px; }
	body.pt .pt-hero--pos .pt-pricerow .pt-price strong { font-size: 30px; }
	.pt-herostrip { flex-direction: column; align-items: flex-start; gap: 6px; padding: 16px 18px; }
	.pt-hscene { max-width: 400px; }
	/* Promo cards flow on mobile: image drops into the layout, nothing overlaps. */
	body.pt .e-con.pt-promo { min-height: 0; padding: 20px 18px 14px; }
	body.pt .pt-promo .pt-h3 { max-width: 100%; }
	body.pt .pt-promo .pt-copy { max-width: 100%; }
	body.pt .pt-promo .elementor-widget-image { position: static; width: 46%; margin: 0 0 0 auto; }
	body.pt .pt-promo .elementor-widget-image img { height: 84px; }
	body.pt .pt-promo .pt-btn { margin-top: 4px; }
	.pt-topbar p { gap: 16px; }
	.pt-mainbar__inner { flex-wrap: wrap; gap: 12px; padding-block: 12px; }
	.pt-logo img { width: 120px; }
	.pt-search { order: 3; flex-basis: 100%; max-width: none; }
	.pt-search button span { display: none; }
	.pt-search button { padding: 0 16px; }
	.pt-utility { gap: 8px; }
	.pt-cart { padding: 8px 10px; }
	/* Categories scroll sideways on mobile, bleeding to the screen edges. */
	body.pt .e-con.pt-cats__grid { display: flex; flex-direction: row; flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scroll-snap-type: x proximity; gap: 10px; margin-inline: calc(-1 * var(--pt-gutter)); padding: 2px var(--pt-gutter) 8px; scrollbar-width: none; }
	body.pt .e-con.pt-cats__grid::-webkit-scrollbar { display: none; }
	body.pt .e-con.pt-catic { flex: 0 0 128px; min-width: 128px; scroll-snap-align: start; }
	body.pt .e-con.pt-catic { padding: 14px 8px 12px; gap: 6px; }
	body.pt .pt-catic__icon .elementor-icon { width: 40px; height: 40px; }
	body.pt .pt-catic__icon .elementor-icon i { font-size: 16px; }
	body.pt .pt-catname .elementor-heading-title { font-size: 13px; }
	body.pt .pt-catic__from .elementor-heading-title { font-size: 11px; }
	body.pt .e-con.pt-cats { padding-block: 44px; }
	/* One product per row on phones, with a larger presentation. */
	body.pt ul.products,
	body.pt ul.products.columns-5,
	body.pt ul.products.columns-4,
	body.pt ul.products.columns-3 { grid-template-columns: 1fr; gap: 12px; }
	body.pt ul.products li.product img { aspect-ratio: 16 / 9; padding: 18px; }
	body.pt ul.products li.product .woocommerce-loop-product__title { font-size: 15.5px !important; min-height: 0; }
	body.pt ul.products li.product .price { font-size: 20px !important; }
	body.pt .e-con.pt-trades__grid { grid-template-columns: 1fr; grid-template-rows: none; }
	body.pt .e-con.pt-trade { grid-row: auto; grid-template-rows: none; }
	body.pt .e-con.pt-trust { --overlap: 34px; }
	body.pt .pt-trust .elementor-icon-list-items { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	body.pt .pt-trust .elementor-icon-list-item + .elementor-icon-list-item { border-left: 1px solid #e6e9ef; }
	body.pt .e-con.pt-hero__aside { flex-direction: column; }
	body.pt .pt-trust .elementor-icon-list-item { flex-direction: column; align-items: center; text-align: center; gap: 7px; padding: 14px 8px !important; }	body.pt .pt-trust .elementor-icon-list-icon { flex-basis: auto; width: 34px; height: 34px; }
	body.pt .pt-trust .elementor-icon-list-icon i { font-size: 14px; }
	body.pt .pt-trust .elementor-icon-list-text { align-items: center; }
	body.pt .pt-trust .elementor-icon-list-text strong { font-size: 12px; line-height: 1.25; }
	body.pt .pt-trust .elementor-icon-list-text span { display: none; }
	.pt-q__opts,
	.pt-q__opts--3 { grid-template-columns: 1fr; }
	.pt-form__row { grid-template-columns: 1fr; }
	.pt-footer__grid { grid-template-columns: 1fr 1fr; gap: 28px; }
	body.pt .e-con.pt-strip__foot { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 480px) {
	body.pt .e-con.pt-steps { grid-template-columns: 1fr; }
	.pt-footer__grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
	body.pt *,
	body.pt *::before,
	body.pt *::after { animation: none !important; transition: none !important; }
}


/* ---------- Policy pages (privacy, refunds) ---------- */
body.pt .pt-policy__updated { font-size: 12.5px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--pt-muted); }
body.pt .pt-policy__lead { font-size: clamp(15.5px, 1.2vw, 17.5px); line-height: 1.65; color: var(--pt-muted); max-width: 70ch; }
body.pt .pt-policy__fast { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; margin: 26px 0 8px; padding: 0; list-style: none; }
body.pt .pt-policy__fast li { background: var(--pt-paper); border: 1px solid var(--pt-line); border-radius: var(--pt-radius-lg); padding: 16px 18px; font-size: 14px; line-height: 1.55; margin: 0; }
body.pt .pt-policy__fast b { display: block; font-family: var(--pt-head-font); font-size: 15.5px; margin-bottom: 4px; }
body.pt .pt-policy h2 { position: relative; font-family: var(--pt-head-font); font-size: clamp(21px, 2vw, 26px); font-weight: 700; letter-spacing: -0.015em; margin-top: 2em; padding-bottom: 12px; }
body.pt .pt-policy h2::after { content: ""; position: absolute; left: 0; bottom: 0; width: 44px; height: 3px; border-radius: 2px; background: var(--pt-blue); }
body.pt .pt-policy > ul { padding-left: 0; list-style: none; }
body.pt .pt-policy > ul > li { position: relative; padding-left: 26px; margin-top: 8px; line-height: 1.55; }
body.pt .pt-policy > ul > li::before { content: "\2713"; position: absolute; left: 0; top: 0; color: var(--pt-navy); font-weight: 800; }
body.pt .pt-policy > ul.pt-policy__no > li::before { content: "\2715"; color: #d3262e; }
body.pt .pt-policy > ul.pt-policy__fast > li { padding-left: 18px; }
body.pt .pt-policy > ul.pt-policy__fast > li::before { content: none; }
body.pt .pt-policy ol { counter-reset: ptstep; list-style: none; padding: 0; }
body.pt .pt-policy ol li { counter-increment: ptstep; position: relative; padding: 14px 16px 14px 58px; background: var(--pt-paper); border: 1px solid var(--pt-line); border-radius: var(--pt-radius-lg); margin-top: 10px; line-height: 1.55; }
body.pt .pt-policy ol li::before { content: counter(ptstep); position: absolute; left: 14px; top: 13px; width: 28px; height: 28px; border-radius: 50%; background: var(--pt-blue); color: var(--pt-ink); font-weight: 800; display: grid; place-items: center; font-size: 14px; }
body.pt .pt-policy__note { background: #fff8e6; border: 1px solid #f2dfae; border-radius: var(--pt-radius-lg); padding: 14px 18px; font-size: 14px; }
body.pt .pt-policy__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 18px; background: var(--pt-ink); color: #fff; border-radius: var(--pt-radius-lg); padding: 24px 26px; margin-top: 44px; }
body.pt .pt-policy__cta p { margin: 0; }
body.pt .pt-policy__cta b { font-family: var(--pt-head-font); font-size: 17px; display: block; color: #fff; }
body.pt .pt-policy__cta span { color: #c9cfdb; font-size: 13.5px; }
body.pt .pt-policy__cta-btns { margin-left: auto; display: flex; flex-wrap: wrap; gap: 10px; }
body.pt .pt-policy__cta .pt-button:not(.pt-button--yellow) { background: transparent; border: 1.5px solid rgba(255, 255, 255, 0.55); color: #fff; }
body.pt .pt-policy__cta .pt-button:not(.pt-button--yellow):hover { background: rgba(255, 255, 255, 0.12); }


/* ==========================================================================
   2026-10-19 refinements: sticky header, CTAs, tiles, cards, shop filters.
   Appended last so equal-specificity rules here win the cascade.
   ========================================================================== */

/* Sticky header: the utility bar scrolls away, logo/search/nav stay. */
body.pt .pt-header { position: sticky; top: -41px; z-index: 90; box-shadow: 0 6px 24px -20px rgba(16, 24, 40, 0.4); }

/* Utility top bar: readable size and real tap targets. */
.pt-topbar { font-size: 13px; }
.pt-topbar__inner { min-height: 40px; }
.pt-topbar a, .pt-topbar span { display: inline-flex; align-items: center; padding-block: 6px; }

/* Keyboard focus, 3:1 minimum against each background family. */
body.pt :focus-visible { outline: 3px solid var(--pt-navy); outline-offset: 2px; }
body.pt .pt-topbar :focus-visible,
body.pt .pt-nav :focus-visible,
body.pt .pt-cta :focus-visible,
body.pt .pt-footer :focus-visible { outline-color: var(--pt-blue); }
body.pt :focus:not(:focus-visible) { outline: none; }

/* Hero secondary CTA: outlined brand button instead of a bare text link. */
body.pt .pt-hero__copy .pt-btn--link .elementor-button { border: 1.5px solid var(--pt-navy); color: var(--pt-navy); background: transparent; padding: 15px 22px; border-radius: var(--pt-radius); font-size: 14.5px; font-weight: 700; }
body.pt .pt-hero__copy .pt-btn--link .elementor-button:hover { background: rgba(10, 47, 140, 0.1); text-decoration: none; }

/* Promo card links: proper link-buttons, arrow kept. */
body.pt .pt-promo .pt-btn--link .elementor-button { min-height: 44px; display: inline-flex; align-items: center; padding-block: 10px; border-bottom: 2px solid transparent; }
body.pt .pt-promo .pt-btn--link .elementor-button:hover { text-decoration: none; border-bottom-color: currentColor; }

/* Category tiles: 4 across, two-line title slot, prices on one baseline. */
body.pt .e-con.pt-cats__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
body.pt .e-con.pt-catic { display: flex; flex-direction: column; }
body.pt .pt-catname .elementor-heading-title { min-height: 2.5em; }
body.pt .pt-catic__from { margin-top: auto; }

/* Product cards: stock / delivery / warranty meta line under the price. */
body.pt .pt-cardmeta { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 12.5px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--pt-muted); margin-top: 6px; }
body.pt .pt-cardmeta .is-in { color: #0c7a43; }
body.pt .pt-cardmeta .is-low { color: #a05a00; }
body.pt .pt-cardmeta .is-out { color: var(--pt-muted); }

/* Shop filter bar: calmer pills, aligned controls, clearance as a toggle chip. */
body.pt .pt-filters { padding: 12px 14px; gap: 10px 12px; box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04); }
body.pt .pt-filters__cats { flex-wrap: nowrap; overflow-x: auto; max-width: 100%; padding-bottom: 2px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
body.pt .pt-filters__cats::-webkit-scrollbar { display: none; }
body.pt .pt-filters__pill { white-space: nowrap; background: #f6f6f3; border-color: transparent; min-height: 40px; display: inline-flex; align-items: center; }
body.pt .pt-filters__pill:hover { background: #fff; border-color: var(--pt-ink); }
body.pt .pt-filters__pill.is-active { background: var(--pt-navy); border-color: var(--pt-navy); }
body.pt .pt-filters__subs { border-top: 1px dashed var(--pt-line); padding-top: 10px; }
body.pt .pt-filters__field select { border-color: var(--pt-line); min-height: 40px; border-radius: 999px; padding: 8px 14px; }
body.pt .pt-filters__field select:hover { border-color: var(--pt-ink); }
body.pt .pt-filters__check { border: 1.5px solid var(--pt-line); border-radius: 999px; padding: 8px 14px; min-height: 40px; transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease; }
body.pt .pt-filters__check:hover { border-color: var(--pt-ink); }
body.pt .pt-filters__check:has(input:checked) { background: var(--pt-navy); border-color: var(--pt-navy); color: #fff; }
body.pt .pt-filters__check:has(input:checked) input { accent-color: var(--pt-blue); }

@media (max-width: 1024px) {
	body.pt .e-con.pt-cats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
	body.pt .pt-posrow ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
	/* Zero-specificity tap targets: pt-hide-md/pt-hide-sm display:none still wins. */
	:where(body.pt .pt-utility, body.pt .pt-nav__list, body.pt .pt-footer) a { min-height: 44px; display: inline-flex; align-items: center; }
}

@media (max-width: 760px) {
	body.pt .pt-header { top: 0; }
	/* Tiles: two per row instead of the sideways strip. */
	body.pt .e-con.pt-cats__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; margin-inline: 0; padding: 0; gap: 10px; }
	body.pt .e-con.pt-catic { flex: initial; min-width: 0; }
	/* Filters: controls become a tidy two-column block under the pills. */
	body.pt .pt-filters { padding: 10px 12px; }
	body.pt .pt-filters__form { margin-left: 0; width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
	body.pt .pt-filters__field { width: 100%; }
	body.pt .pt-filters__field span { display: none; }
	body.pt .pt-filters__field select { width: 100%; flex: 1; }
	body.pt .pt-filters__check { justify-content: center; }
	body.pt .pt-filters__clear { grid-column: 1 / -1; text-align: center; padding: 8px 0; }
}


/* ---------- Policy pages: centered reading column with a real header ---------- */
body.pt .pt-main:has(.pt-policy) { max-width: 940px; margin-inline: auto; }
body.pt .pt-main:has(.pt-policy) .pt-page-title { text-align: center; margin-bottom: 10px; position: relative; padding-top: 26px; }
body.pt .pt-main:has(.pt-policy) .pt-page-title::before { content: "PokeTech legal"; position: absolute; top: 0; left: 50%; transform: translateX(-50%); font-size: 12.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--pt-blue); }
body.pt .pt-main:has(.pt-policy) .pt-prose { max-width: none; }
body.pt .pt-policy__updated { text-align: center; }
body.pt .pt-policy__lead { margin-inline: auto; text-align: center; max-width: 62ch; font-size: clamp(16px, 1.25vw, 18px); }
body.pt .pt-policy__fast { margin-top: 34px; }
body.pt .pt-policy__fast li { box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04); }
body.pt .pt-policy h2 { margin-top: 2.6em; font-size: clamp(22px, 2.2vw, 28px); }
body.pt .pt-policy h2::after { width: 56px; height: 4px; }
body.pt .pt-policy > p, body.pt .pt-policy > ul > li { font-size: 15.5px; line-height: 1.7; max-width: 72ch; }
body.pt .pt-policy > ul > li { margin-top: 10px; }
body.pt .pt-policy ol li { box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04); }
body.pt .pt-policy__note { margin-block: 26px; }
body.pt .pt-policy__cta { margin-top: 56px; }
@media (max-width: 760px) {
	body.pt .pt-policy__lead { text-align: left; }
	body.pt .pt-main:has(.pt-policy) .pt-page-title { text-align: left; padding-top: 24px; }
	body.pt .pt-main:has(.pt-policy) .pt-page-title::before { left: 0; transform: none; }
	body.pt .pt-policy__updated { text-align: left; }
}

/* Card meta line sits inside the card padding like the title and price. */
body.pt ul.products li.product .pt-cardmeta { padding-inline: 16px; margin-top: 8px; }


/* ---------- Featured POS product (single-product showcase) ---------- */
body.pt .e-con.pt-posfeat__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 0; align-items: center; background: var(--pt-paper); border: 1px solid var(--pt-line); border-radius: var(--pt-radius-lg); overflow: hidden; }
body.pt .e-con.pt-posfeat__media { display: grid; place-items: center; align-self: stretch; min-height: 400px; padding: 30px; background: radial-gradient(90% 120% at 70% 30%, #eaf3fd 0%, #d8e7f8 58%, #c9ddf3 100%); }
body.pt .pt-posfeat__img img { max-height: 380px; width: auto; mix-blend-mode: multiply; }
body.pt .e-con.pt-posfeat__copy { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; padding: clamp(26px, 3.4vw, 48px); }
body.pt .pt-posfeat__copy .pt-h2 .elementor-heading-title { font-size: clamp(24px, 2.6vw, 34px); }
body.pt .pt-posfeat__price .pt-price strong { font-size: clamp(28px, 2.6vw, 36px); font-weight: 800; letter-spacing: -0.015em; }
body.pt .pt-posfeat__price .pt-price del { font-size: 14px; color: var(--pt-muted); }
@media (max-width: 900px) {
	body.pt .e-con.pt-posfeat__grid { grid-template-columns: 1fr; }
	body.pt .e-con.pt-posfeat__media { min-height: 260px; padding: 22px; }
	body.pt .pt-posfeat__img img { max-height: 240px; }
}

/* ---------- Category tiles: one compact row, never two ---------- */
body.pt .e-con.pt-cats__grid { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 10px; }
body.pt .e-con.pt-catic { padding: 16px 10px 14px; gap: 8px; }
body.pt .pt-catic__icon .elementor-icon { width: 40px; height: 40px; }
body.pt .pt-catic__icon .elementor-icon i { font-size: 15px; }
body.pt .pt-catic__icon .elementor-icon svg { width: 16px; height: 16px; }
body.pt .pt-catname .elementor-heading-title { font-size: 12.5px; min-height: 2.6em; }
body.pt .pt-catic__from .elementor-heading-title { font-size: 11px; }
@media (max-width: 1100px) {
	/* Narrower screens: the row scrolls sideways instead of wrapping. */
	body.pt .e-con.pt-cats__grid { display: flex; flex-direction: row; flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scroll-snap-type: x proximity; gap: 10px; margin-inline: calc(-1 * var(--pt-gutter)); padding: 2px var(--pt-gutter) 8px; scrollbar-width: none; }
	body.pt .e-con.pt-cats__grid::-webkit-scrollbar { display: none; }
	body.pt .e-con.pt-catic { flex: 0 0 132px; min-width: 132px; scroll-snap-align: start; }
}

/* The category row hands straight into the POS feature: one breath, not two. */
body.pt .e-con.pt-cats { padding-bottom: 28px; }
body.pt .e-con.pt-posfeat { padding-top: 28px; }

/* Hero scene: the new terminal cutout is bottom-anchored, so it stands on the
   same floor line as the printer; its contact shadow tucks under the stand. */
.pt-hscene__pos { bottom: 0; left: 0; width: 52%; }
.pt-hscene__pos::after { left: 18%; right: 10%; bottom: -2.5%; height: 7%; background: radial-gradient(closest-side, rgba(32, 56, 100, 0.42), rgba(32, 56, 100, 0)); }


/* ==========================================================================
   Single product: sticky buy box, facts, buy bar, reviews, cross-sells.
   ========================================================================== */
:root { --pt-header-stuck: 140px; }

/* Sticky details rail: the aside stretches to the grid row so the inner
   card has room to travel; it parks just under the stuck header. */
.pt-pdp__aside { position: static; align-self: stretch; display: block; }
.pt-pdp__stick { position: sticky; top: calc(var(--pt-header-stuck) + 16px); display: grid; gap: 16px; }

/* Facts under the price. */
.pt-facts { margin: 14px 0 0; padding: 12px 14px; display: grid; gap: 8px; background: #fff; border: 1px solid var(--pt-line); border-radius: var(--pt-radius-lg); font-size: 13.5px; }
.pt-facts__row { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 10px; align-items: baseline; }
.pt-facts dt { font-size: 11.5px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--pt-muted); }
.pt-facts dd { margin: 0; font-weight: 600; color: var(--pt-ink); }
.pt-facts__row.is-in dd { color: #0a6b3a; }
.pt-facts__row.is-low dd { color: #a05a00; }
.pt-facts__row.is-out dd { color: var(--pt-muted); }
.pt-facts__row.is-badge dd { justify-self: start; background: var(--pt-navy); color: #fff; border-radius: 999px; padding: 2px 10px; font-size: 12px; }

/* Reviews and the pairs-with row get the same frame as the details. */
.pt-reviews, .pt-pairs { width: 100%; max-width: 1480px; margin: clamp(40px, 4vw, 64px) auto 0; }
.pt-pairs h2, .pt-reviews .woocommerce-Reviews-title { font-family: var(--pt-head-font); font-size: clamp(20px, 2vw, 26px); font-weight: 700; margin-bottom: 16px; }
.pt-reviews #reviews { background: #fff; border: 1px solid var(--pt-line); border-radius: var(--pt-radius-lg); padding: clamp(18px, 2.4vw, 30px); }
.pt-reviews .commentlist { list-style: none; margin: 0; padding: 0; }
.pt-reviews #review_form_wrapper { margin-top: 18px; }
.pt-reviews input[type="text"], .pt-reviews input[type="email"], .pt-reviews textarea { width: 100%; border: 1.5px solid var(--pt-line); border-radius: var(--pt-radius); padding: 10px 12px; font: inherit; }
.pt-reviews .form-submit input { background: var(--pt-navy); color: #fff; border: 0; border-radius: var(--pt-radius); padding: 13px 22px; font-weight: 700; cursor: pointer; min-height: 44px; }

/* Breadcrumbs: AA contrast and real tap targets. */
body.pt .woocommerce-breadcrumb { color: var(--pt-muted); }
body.pt .woocommerce-breadcrumb a { color: var(--pt-ink); display: inline-flex; align-items: center; min-height: 24px; text-decoration: none; }
body.pt .woocommerce-breadcrumb a:hover { text-decoration: underline; }
body.pt .product_meta a, body.pt .pt-single-cat, body.pt .pt-footer li a { display: inline-flex; align-items: center; min-height: 24px; }

/* Product buy bar (mobile): name and price left, two equal 52px buttons. */
.pt-buybar.pt-pdpbar { display: none; }
@media (max-width: 899px) {
	.pt-buybar.pt-pdpbar { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; transform: translateY(110%); transition: transform 0.22s ease; padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); }
	.pt-buybar.pt-pdpbar.is-on { transform: none; }
	.pt-pdpbar__info { margin: 0; min-width: 0; font-size: 12px; line-height: 1.25; color: #c9cfdb; }
	.pt-pdpbar__name { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	.pt-pdpbar__info strong { display: block; font-size: 16px; color: #fff; }
	.pt-pdpbar__btns { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
	.pt-buybar.pt-pdpbar a { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; min-width: 104px; padding: 0 12px; font-size: 14px; }
	.pt-buybar.pt-pdpbar .pt-pdpbar__wa { background: #1e9e52; }
	body.pt.single-product .pt-footer { padding-bottom: 88px; }
	body.pt .woocommerce-breadcrumb a, body.pt .product_meta a, body.pt .pt-single-cat, body.pt .pt-footer li a { min-height: 44px; }
	.pt-pdp__stick { position: static; }
}

/* ==========================================================================
   Shop filters v2: card (desktop), rail + sheet (mobile), empty state.
   ========================================================================== */
.pt-pdp__specs { margin: 22px 0; }
body.pt main.pt-shop { position: relative; }

/* Chips (both layouts) */
.pt-chip { display: inline-flex; align-items: center; gap: 7px; min-height: 40px; padding: 0 14px; border-radius: 999px; border: 1.5px solid transparent; background: #f6f6f3; color: var(--pt-ink); font-size: 13px; font-weight: 600; white-space: nowrap; text-decoration: none; transition: background 0.15s ease, border-color 0.15s ease; position: relative; scroll-snap-align: start; }
.pt-chip:hover { background: #fff; border-color: var(--pt-ink); text-decoration: none; }
.pt-chip.is-active { background: var(--pt-navy); border-color: var(--pt-navy); color: #fff; }
.pt-chip__n { font-size: 11.5px; font-weight: 700; background: rgba(14, 26, 51, 0.08); border-radius: 999px; padding: 1px 7px; }
.pt-chip.is-active .pt-chip__n { background: rgba(255, 255, 255, 0.22); }

/* Desktop card */
body.pt .pt-filters { display: grid; gap: 12px; padding: 14px 16px; }
body.pt .pt-filters__cats, body.pt .pt-filters__subs { display: flex; flex-wrap: wrap; gap: 8px; overflow: visible; max-width: none; }
body.pt .pt-filters__subs { border-top: 1px dashed var(--pt-line); padding-top: 10px; width: auto; }
body.pt .pt-filters__form { display: grid; gap: 10px; margin: 0; width: 100%; }
body.pt .pt-filters__form > .pt-filters__count { margin: 0; }
body.pt .pt-filters__form { grid-template-columns: auto minmax(0, 1fr); align-items: center; }
.pt-filters__count { font-size: 14px; font-weight: 800; color: var(--pt-ink); white-space: nowrap; }
.pt-filters__controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
body.pt .pt-filters__field select { min-height: 40px; border: 1.5px solid var(--pt-line); border-radius: 999px; padding: 0 32px 0 14px; background-color: #fff; font-size: 13px; font-weight: 600; color: var(--pt-ink); }
body.pt .pt-filters__sort { gap: 6px; }
body.pt .pt-filters__sort > span { font-size: 12.5px; font-weight: 700; color: var(--pt-muted); }
body.pt .pt-filters__check.is-disabled { opacity: 0.45; cursor: not-allowed; }
body.pt .pt-filters__check input { width: 18px; height: 18px; }
.pt-filters__tokens { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; border-top: 1px dashed var(--pt-line); padding-top: 10px; }
.pt-token { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 0 12px; border-radius: 999px; background: #e8eefc; color: var(--pt-navy); font-size: 13px; font-weight: 700; text-decoration: none; }
.pt-token:hover { background: #d6e1fa; text-decoration: none; }
.pt-token span { font-size: 16px; line-height: 1; }
.pt-filters__clearbtn { display: inline-flex; align-items: center; min-height: 32px; padding: 0 14px; border-radius: var(--pt-radius); background: var(--pt-navy); color: #fff !important; font-size: 13px; font-weight: 700; text-decoration: none !important; }
.pt-filters__clearbtn:hover { background: var(--pt-ink); }

/* Mobile pieces stay out of the desktop layout */
.pt-fbar, .pt-sheet { display: none; }

/* Loading state while the grid is being replaced */
body.pt main.pt-shop.is-loading ul.products,
body.pt main.pt-shop.is-loading .pt-empty { opacity: 0.4; transition: opacity 0.15s ease; }
body.pt main.pt-shop.is-loading .pt-filters,
body.pt main.pt-shop.is-loading .pt-fbar { pointer-events: none; opacity: 0.7; }
body.pt main.pt-shop.is-loading::after { content: ""; position: fixed; left: 50%; top: 50%; width: 38px; height: 38px; margin: -19px 0 0 -19px; border-radius: 50%; border: 4px solid rgba(10, 47, 140, 0.18); border-top-color: var(--pt-navy); animation: pt-spin 0.7s linear infinite; z-index: 50; }
@keyframes pt-spin { to { transform: rotate(360deg); } }

/* Empty state */
.pt-empty { background: #fff; border: 1px solid var(--pt-line); border-radius: var(--pt-radius-lg); padding: clamp(28px, 4vw, 48px) 22px; text-align: center; display: grid; justify-items: center; gap: 12px; }
.pt-empty__title { font-family: var(--pt-head-font); font-size: clamp(20px, 2.2vw, 28px); font-weight: 700; letter-spacing: -0.015em; max-width: 30ch; margin: 0; }
.pt-empty__sub { margin: 0; color: var(--pt-muted); max-width: 52ch; }
.pt-empty__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 6px; }
.pt-empty__wa { margin-top: 4px; }

@media (max-width: 899px) {
	body.pt .pt-filters { display: none; }
	.pt-fbar { display: flex; align-items: center; gap: 8px; position: sticky; top: var(--pt-header-stuck); z-index: 40; background: var(--pt-bg); margin: 0 calc(-1 * var(--pt-gutter)) 6px; padding: 8px var(--pt-gutter); border-bottom: 1px solid var(--pt-line); transition: transform 0.2s ease; }
	.pt-fbar.is-hidden { transform: translateY(calc(-100% - 2px)); }
	.pt-rail { flex: 1; min-width: 0; display: flex; flex-wrap: nowrap; gap: 8px; overflow-x: auto; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding: 2px 24px 2px 0; -webkit-mask-image: linear-gradient(to right, #000 82%, transparent); mask-image: linear-gradient(to right, #000 82%, transparent); }
	.pt-rail::-webkit-scrollbar { display: none; }
	.pt-rail .pt-chip::before { content: ""; position: absolute; left: 0; right: 0; top: -2px; bottom: -2px; }
	.pt-fbar__open { flex: none; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 14px; border: 0; border-radius: 999px; background: var(--pt-navy); color: #fff; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
	.pt-fbar__open svg { width: 18px; height: 18px; }
	.pt-fbar__badge { min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: #fff; color: var(--pt-navy); font-size: 11.5px; font-weight: 800; display: inline-grid; place-items: center; }

	.pt-sheet:not([hidden]) { display: block; position: fixed; inset: 0; z-index: 100; }
	.pt-sheet__scrim { position: absolute; inset: 0; background: rgba(10, 16, 35, 0.5); }
	.pt-sheet__panel { position: absolute; inset: 0; background: #fff; display: flex; flex-direction: column; animation: pt-sheet-up 0.22s ease; }
	@keyframes pt-sheet-up { from { transform: translateY(24px); opacity: 0.5; } to { transform: none; opacity: 1; } }
	.pt-sheet__head { display: flex; align-items: center; justify-content: space-between; padding: 6px 8px 6px 16px; border-bottom: 1px solid var(--pt-line); }
	.pt-sheet__head h2 { font-family: var(--pt-head-font); font-size: 18px; margin: 0; }
	.pt-sheet__x { width: 44px; height: 44px; border: 0; background: none; font-size: 28px; line-height: 1; color: var(--pt-ink); cursor: pointer; border-radius: var(--pt-radius); }
	.pt-sheet__body { flex: 1; overflow-y: auto; padding: 4px 16px 16px; -webkit-overflow-scrolling: touch; }
	.pt-sheet__group { border: 0; margin: 0; padding: 14px 0 0; }
	.pt-sheet__group legend { font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--pt-muted); padding: 0; margin-bottom: 2px; }
	.pt-sheet__row { display: flex; align-items: center; gap: 12px; min-height: 48px; border-bottom: 1px solid var(--pt-line); font-size: 15px; font-weight: 600; cursor: pointer; position: relative; }
	.pt-sheet__row input[type="radio"] { width: 20px; height: 20px; margin: 0; accent-color: var(--pt-navy); flex: none; }
	.pt-sheet__row em { margin-left: auto; font-style: normal; font-size: 13px; font-weight: 600; color: var(--pt-muted); }
	.pt-sheet__row.is-disabled { opacity: 0.45; cursor: not-allowed; }
	.pt-sheet__switch { justify-content: space-between; }
	.pt-sheet__switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
	.pt-sheet__switch i { width: 46px; height: 28px; border-radius: 999px; background: #cfd3dc; position: relative; flex: none; transition: background 0.15s ease; }
	.pt-sheet__switch i::after { content: ""; position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); transition: transform 0.15s ease; }
	.pt-sheet__switch input:checked + i { background: var(--pt-navy); }
	.pt-sheet__switch input:checked + i::after { transform: translateX(18px); }
	.pt-sheet__switch input:focus-visible + i { outline: 3px solid var(--pt-navy); outline-offset: 2px; }
	.pt-sheet__foot { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); border-top: 1px solid var(--pt-line); background: #fff; }
	.pt-sheet__clear { min-height: 48px; padding: 0 18px; border: 1.5px solid var(--pt-line); background: #fff; border-radius: var(--pt-radius); font: inherit; font-weight: 700; color: var(--pt-ink); cursor: pointer; }
	.pt-sheet__apply { min-height: 48px; border: 0; border-radius: var(--pt-radius); background: var(--pt-navy); color: #fff; font: inherit; font-size: 15px; font-weight: 700; cursor: pointer; }
	.pt-sheet__apply:disabled { opacity: 0.5; cursor: not-allowed; }
	body.pt-sheet-open { overflow: hidden; }
	body.pt .pt-empty__actions .pt-button { min-height: 44px; }
}
/* Product counts are not shown on the storefront; the controls take the full row. */
body.pt .pt-filters__form { grid-template-columns: minmax(0, 1fr); }