/* ==========================================================================
   Prudent Power — main stylesheet
   Mobile-first. Sections: tokens · base · layout · buttons · header · hero ·
   home sections · page header & content · footer · contact bar · utilities
   (products / services / contact are appended below)
   ========================================================================== */

/* ---------- Tokens ---------- */
:root {
	/* Dark blue + white standard (client comments, 20 Oct 2026): every dark area and heading uses these. */
	--pp-night: #0A1F5C;
	--pp-night-2: #122C78;
	--pp-red: #EB3136;
	--pp-red-dk: #D42A30;
	--pp-red-dkr: #B32126;
	--pp-blue: #2E3192;
	--pp-paper: #F5F4F0;
	--pp-ink: #0A1F5C;
	--pp-steel: #4A5668;
	--pp-mist: #B9C3CF;
	--pp-line: #DEDCD5;
	--pp-white: #FFFFFF;
	--pp-wa: #0F7A40;
	--pp-focus: #F2A900;

	--pp-f-head: "Barlow Condensed", "Arial Narrow", sans-serif;
	--pp-f-body: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;

	--pp-gutter: 1.25rem;
	--pp-max: 1200px;
	--pp-radius: 4px;
	--pp-header-h: 68px;
	--pp-shadow: 0 1px 2px rgba(11, 26, 43, .06), 0 8px 24px rgba(11, 26, 43, .08);
	--pp-section: clamp(3.5rem, 8vw, 6rem);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--pp-header-h) + 1rem); }
body.pp {
	margin: 0;
	font-family: var(--pp-f-body);
	font-size: 1rem;
	line-height: 1.6;
	color: var(--pp-ink);
	background: var(--pp-white);
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
	overflow-x: clip; /* clip (not hidden) so body never becomes a scroll container — keeps the sticky header working when the menu locks scrolling */
}
.pp img { max-width: 100%; height: auto; display: block; }
.pp h1, .pp h2, .pp h3, .pp h4 {
	font-family: var(--pp-f-head);
	font-weight: 700;
	line-height: 1.08;
	margin: 0 0 .5em;
	color: inherit;
}
.pp p { margin: 0 0 1em; }
.pp a { color: var(--pp-red-dk); text-underline-offset: .18em; }
.pp a:hover { color: var(--pp-red-dkr); }
.pp :focus-visible { outline: 3px solid var(--pp-focus); outline-offset: 2px; }
.pp-main:focus { outline: none; }

.pp-icon {
	width: 1.25em;
	height: 1.25em;
	flex: none;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.75;
	stroke-linecap: round;
	stroke-linejoin: round;
	vertical-align: middle;
}

.screen-reader-text, .pp-hp {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.pp-skip {
	position: absolute;
	left: 1rem; top: -100px;
	z-index: 1000;
	padding: .75rem 1rem;
	background: var(--pp-night);
	color: #fff !important;
	font-weight: 600;
}
.pp-skip:focus { top: 1rem; }

/* ---------- Layout ---------- */
.pp-container {
	width: 100%;
	max-width: calc(var(--pp-max) + var(--pp-gutter) * 2);
	margin: 0 auto;
	padding: 0 var(--pp-gutter);
}
.pp-section { padding: var(--pp-section) 0; }
.pp-section__head { max-width: 46rem; margin-bottom: clamp(2rem, 4vw, 3rem); }
.pp-section__title {
	font-size: clamp(2rem, 5vw, 3rem);
	text-transform: uppercase;
	letter-spacing: .005em;
}
.pp-section__intro { color: var(--pp-steel); font-size: 1.0625rem; }

.pp-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .75rem;
	margin: 0 0 1rem;
	font-family: var(--pp-f-head);
	font-weight: 600;
	font-size: .9375rem;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--pp-ink);
}
.pp-eyebrow::before {
	content: "";
	width: 1.5rem;
	height: 4px;
	background: var(--pp-red);
	flex: none;
}
.pp-eyebrow--light { color: var(--pp-mist); }

.pp-link {
	display: inline-flex;
	align-items: center;
	gap: .4em;
	font-weight: 600;
	text-decoration: none;
}
.pp-link .pp-icon { transition: transform .2s; }
.pp-link:hover .pp-icon { transform: translateX(3px); }

/* ---------- Buttons ---------- */
.pp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .55em;
	min-height: 48px;
	padding: .7em 1.35em;
	border: 2px solid transparent;
	border-radius: var(--pp-radius);
	font-family: var(--pp-f-head);
	font-weight: 600;
	font-size: 1.0625rem;
	letter-spacing: .05em;
	line-height: 1.15;
	text-transform: uppercase;
	text-decoration: none;
	text-align: center;
	cursor: pointer;
	transition: background-color .2s, color .2s, border-color .2s, transform .2s;
}
.pp-btn:active { transform: translateY(1px); }
.pp-btn--lg { min-height: 54px; padding: .8em 1.6em; font-size: 1.125rem; }
.pp-btn--block { width: 100%; }
.pp .pp-btn--primary { background: var(--pp-red-dk); color: #fff; }
.pp .pp-btn--primary:hover { background: var(--pp-red-dkr); color: #fff; }
.pp .pp-btn--outline { border-color: var(--pp-ink); color: var(--pp-ink); }
.pp .pp-btn--outline:hover { background: var(--pp-ink); color: #fff; }
.pp .pp-btn--outline-light { border-color: rgba(255, 255, 255, .85); color: #fff; }
.pp .pp-btn--outline-light:hover { background: #fff; color: var(--pp-night); }
.pp .pp-btn--light { background: #fff; color: var(--pp-ink); }
.pp .pp-btn--light:hover { background: var(--pp-night); color: #fff; }
.pp .pp-btn--ghost-light { border-color: rgba(255, 255, 255, .7); color: #fff; }
.pp .pp-btn--ghost-light:hover { background: rgba(255, 255, 255, .12); color: #fff; }
.pp .pp-btn--whatsapp { background: var(--pp-wa); color: #fff; }
.pp .pp-btn--whatsapp:hover { background: #0B6233; color: #fff; }
.pp-btnrow { display: flex; flex-wrap: wrap; gap: .75rem; }

/* ---------- Header ---------- */
.pp-topbar { display: none; background: var(--pp-night); color: var(--pp-mist); font-size: .8125rem; }
.pp-topbar__inner { display: flex; justify-content: space-between; align-items: center; min-height: 38px; gap: 1rem; }
.pp-topbar__links { display: flex; gap: 1.5rem; }
.pp .pp-topbar__item { display: inline-flex; align-items: center; gap: .45em; color: var(--pp-mist); text-decoration: none; }
.pp a.pp-topbar__item:hover { color: #fff; }
.pp-topbar .pp-icon { color: var(--pp-red); width: 1.05em; height: 1.05em; }

.pp-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: #fff;
	border-bottom: 1px solid var(--pp-line);
}
.admin-bar .pp-header { top: 46px; }
@media (min-width: 783px) { .admin-bar .pp-header { top: 32px; } }
@media (max-width: 600px) { .admin-bar .pp-header { top: 0; } }

.pp-header__inner { display: flex; align-items: center; justify-content: space-between; min-height: var(--pp-header-h); gap: 1rem; }
.pp-header__brand { flex: none; }
.pp-logo img, .pp-header .custom-logo { width: auto; height: 40px; }

.pp-navtoggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px; height: 48px;
	margin-right: -.5rem;
	border: 0;
	background: none;
	color: var(--pp-ink);
	cursor: pointer;
}
.pp-navtoggle .pp-icon { width: 28px; height: 28px; }
.pp-navtoggle__close, .pp-navtoggle[aria-expanded="true"] .pp-navtoggle__open { display: none; }
.pp-navtoggle[aria-expanded="true"] .pp-navtoggle__close { display: inline-flex; }

.pp-nav {
	display: none;
	position: absolute;
	left: 0; right: 0; top: 100%;
	max-height: calc(100vh - var(--pp-header-h));
	overflow-y: auto;
	background: #fff;
	border-top: 1px solid var(--pp-line);
	box-shadow: 0 16px 24px rgba(11, 26, 43, .12);
	padding: .5rem var(--pp-gutter) 1.5rem;
}
.pp-nav.is-open { display: block; }
.pp-nav__list { list-style: none; margin: 0; padding: 0; }
.pp-nav__list a {
	display: block;
	padding: .9rem 0;
	border-bottom: 1px solid var(--pp-line);
	font-family: var(--pp-f-head);
	font-weight: 600;
	font-size: 1.25rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--pp-ink);
	text-decoration: none;
}
.pp-nav__list .sub-menu { list-style: none; margin: 0; padding: 0 0 0 1rem; }
.pp-nav__list .sub-menu a { font-size: 1.05rem; }
.pp-nav__list .current-menu-item > a,
.pp-nav__list .current_page_item > a,
.pp-nav__list .current-menu-ancestor > a { color: var(--pp-red-dk); }
.pp-nav__actions { display: grid; gap: .75rem; margin-top: 1.25rem; }
.pp .pp-nav__phone { display: inline-flex; align-items: center; gap: .5em; font-weight: 600; color: var(--pp-ink); text-decoration: none; }
.pp-nav__phone .pp-icon { color: var(--pp-red); }

/* ---------- Hero ---------- */
.pp-hero {
	position: relative;
	overflow: hidden;
	background-color: var(--pp-night);
	background-image:
		linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px),
		linear-gradient(180deg, var(--pp-night) 0%, var(--pp-night-2) 100%);
	background-size: 40px 40px, 40px 40px, 100% 100%;
	color: #fff;
	padding: 3.5rem 0 6.5rem;
}
.pp-hero__inner { position: relative; z-index: 1; }
.pp-hero__title {
	max-width: 13ch;
	font-size: clamp(2.75rem, 11vw, 5.5rem);
	text-transform: uppercase;
	letter-spacing: -.005em;
	line-height: .98;
}
.pp-hero__sub { max-width: 36rem; font-size: clamp(1.0625rem, 2.4vw, 1.25rem); color: #D3DAE3; }
.pp-hero__actions { display: flex; flex-direction: column; gap: .75rem; margin-top: 2rem; }

.pp-hero__art {
	position: absolute;
	right: -30%;
	bottom: 2rem;
	width: 110%;
	max-width: 640px;
	height: auto;
	opacity: .18;
	pointer-events: none;
}
.pp-hero__lines { fill: none; stroke: rgba(235, 49, 54, .55); stroke-width: 2; }
.pp-hero__bus { stroke-width: 5; }
.pp-hero__flow { fill: none; stroke: var(--pp-red); stroke-width: 3; stroke-linecap: round; }
.pp-hero__flow path { stroke-dasharray: 6 30; animation: pp-flow 3.2s linear infinite; }
.pp-hero__loads use { fill: none; stroke: #fff; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
@keyframes pp-flow { to { stroke-dashoffset: -144; } }

/* ---------- Home: hub ---------- */
.pp-hub { position: relative; z-index: 2; margin-top: -4rem; }
.pp-hub__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.pp-hub__card {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 1.1rem 1rem;
	background: #fff;
	border-top: 4px solid var(--pp-night);
	border-radius: var(--pp-radius);
	box-shadow: var(--pp-shadow);
	transition: transform .2s, box-shadow .2s;
}
.pp-hub__card:hover { transform: translateY(-3px); box-shadow: 0 2px 4px rgba(11, 26, 43, .06), 0 16px 32px rgba(11, 26, 43, .14); }
.pp-hub__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px; height: 44px;
	margin-bottom: .75rem;
	border-radius: 50%;
	background: var(--pp-paper);
	color: var(--pp-red-dk);
}
.pp-hub__icon .pp-icon { width: 28px; height: 28px; }
.pp-hub__title { font-size: 1.25rem; text-transform: uppercase; margin-bottom: .35em; }
.pp .pp-hub__title a { color: var(--pp-ink); text-decoration: none; }
.pp-hub__title a::after { content: ""; position: absolute; inset: 0; }
.pp-hub__text { color: var(--pp-steel); flex: 1; font-size: .875rem; line-height: 1.45; }
.pp-hub__link {
	display: inline-flex;
	align-items: center;
	gap: .4em;
	font-family: var(--pp-f-head);
	font-weight: 600;
	font-size: 1.0625rem;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--pp-red-dk);
}
.pp-hub__card:hover .pp-hub__link .pp-icon { transform: translateX(3px); }
.pp-hub__link .pp-icon { transition: transform .2s; }

/* ---------- Highlights ("Why Prudent?") ---------- */
.pp-why__grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 2rem; }
.pp-why__item { padding-top: 1.5rem; border-top: 1px solid var(--pp-line); }
.pp-why__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px; height: 56px;
	margin-bottom: 1.25rem;
	border: 2px solid var(--pp-red);
	border-radius: var(--pp-radius);
	color: var(--pp-red-dk);
}
.pp-why__icon .pp-icon { width: 28px; height: 28px; }
.pp-why__title { font-size: 1.625rem; text-transform: uppercase; }
.pp-why__item p { color: var(--pp-steel); margin: 0; }
.pp-why--paper { background: var(--pp-paper); }

/* ---------- Home: divisions strip ---------- */
.pp-divisions-strip { background: var(--pp-paper); }
.pp-divisions-strip__inner { display: grid; gap: 2rem; align-items: center; }
.pp-divisions-strip__text p { color: var(--pp-steel); font-size: 1.0625rem; }
.pp-divisions-strip__cards { display: grid; gap: 1rem; }
.pp .pp-division-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: .25rem;
	padding: 1.75rem 3.5rem 1.75rem 1.75rem;
	background: #fff;
	border-top: 4px solid var(--pp-night);
	border-radius: var(--pp-radius);
	color: var(--pp-steel);
	text-decoration: none;
	box-shadow: var(--pp-shadow);
}
.pp-division-card .pp-eyebrow { margin-bottom: .5rem; font-size: .8125rem; }
.pp-division-card strong { font-family: var(--pp-f-head); font-size: 1.625rem; line-height: 1.1; text-transform: uppercase; color: var(--pp-ink); }
.pp .pp-division-card--dark { background: var(--pp-night); color: var(--pp-mist); }
.pp-division-card--dark strong { color: #fff; }
.pp-division-card__arrow { position: absolute; right: 1.5rem; top: 50%; margin-top: -.6em; color: var(--pp-red); transition: transform .2s; }
.pp-division-card:hover .pp-division-card__arrow { transform: translateX(4px); }

/* ---------- Home: solution finder ---------- */
.pp-finder__picker { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .9rem; margin-bottom: 1.25rem; }
.pp-finder__picker[hidden] { display: none; }
.pp-finder__label { font-weight: 600; font-size: .9375rem; color: var(--pp-ink); }
.pp-finder__selectwrap { position: relative; flex: 0 1 240px; }
.pp-finder__select {
	width: 100%;
	min-height: 44px;
	padding: .5rem 2.5rem .5rem .9rem;
	border: 1.5px solid #A9B3BF;
	border-radius: var(--pp-radius);
	background: #fff;
	color: var(--pp-ink);
	font-family: var(--pp-f-body);
	font-weight: 500;
	font-size: 1rem;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
}
.pp-finder__select:hover { border-color: var(--pp-ink); }
.pp-finder__select option { color: var(--pp-ink); background: #fff; }
.pp-finder__chev { position: absolute; right: .8rem; top: 50%; width: 18px; height: 18px; margin-top: -9px; color: var(--pp-red-dk); pointer-events: none; }
.pp-finder__panel { display: grid; gap: 1.5rem; padding: 1.25rem; border: 1px solid var(--pp-line); border-radius: var(--pp-radius); }
.pp-finder__panel + .pp-finder__panel { margin-top: 1rem; }
.pp-finder.is-ready .pp-finder__panel + .pp-finder__panel { margin-top: 0; }
.pp-finder__panel[hidden] { display: none; }
.pp-finder__space { display: inline-flex; align-items: center; gap: .5em; font-weight: 600; color: var(--pp-red-dk); margin-bottom: .5rem; }
.pp-finder__title { font-size: clamp(1.75rem, 4vw, 2.25rem); text-transform: uppercase; }
.pp-finder__intro p { color: var(--pp-steel); }
.pp-finder__products { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.pp .pp-finder__product {
	display: flex;
	align-items: center;
	gap: .75rem;
	padding: .85rem;
	background: var(--pp-paper);
	border-radius: var(--pp-radius);
	color: var(--pp-ink);
	text-decoration: none;
	transition: background-color .2s;
}
.pp .pp-finder__product:hover { background: #ECEAE3; color: var(--pp-ink); }
.pp-finder__product strong { display: block; font-family: var(--pp-f-head); font-size: 1.125rem; line-height: 1.15; text-transform: uppercase; }
.pp-finder__product small { display: block; color: var(--pp-steel); font-size: .875rem; line-height: 1.4; margin-top: .2rem; }
.pp-finder__picon {
	display: inline-flex; align-items: center; justify-content: center;
	flex: none; width: 40px; height: 40px;
	border-radius: 50%; background: #fff; color: var(--pp-red-dk);
}
.pp-finder__picon .pp-icon { width: 24px; height: 24px; }
.pp-finder__arrow { margin-left: auto; color: var(--pp-red); }

/* ---------- CTA strip ---------- */
.pp-cta { background: var(--pp-night-2); color: #fff; border-top: 1px solid rgba(255, 255, 255, .06); padding: clamp(2.5rem, 6vw, 3.5rem) 0; }
.pp-cta__inner { display: grid; gap: 1.5rem; align-items: center; }
.pp-cta__title { font-size: clamp(1.75rem, 4.5vw, 2.5rem); text-transform: uppercase; margin-bottom: .25em; }
.pp-cta__text { margin: 0; color: var(--pp-mist); font-size: 1.0625rem; }
.pp-cta__actions { display: flex; flex-wrap: wrap; gap: .75rem; }

/* ---------- Inner page header ---------- */
.pp-pagehead {
	position: relative;
	background-color: var(--pp-night);
	background-image:
		linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px);
	background-size: 40px 40px;
	color: #fff;
	padding: clamp(3rem, 8vw, 5rem) 0;
	border-bottom: 0;
}
.pp-pagehead__title { max-width: 22ch; font-size: clamp(2.5rem, 8vw, 4.25rem); text-transform: uppercase; line-height: 1; }
.pp-pagehead__intro { max-width: 40rem; margin: 0; color: #D3DAE3; font-size: clamp(1.0625rem, 2.2vw, 1.25rem); }
.pp-pagehead__actions { display: flex; flex-direction: column; gap: .75rem; margin-top: 2rem; }

/* ---------- Block content (About, legal pages) ---------- */
.pp-content { max-width: 760px; }
.pp-content--wide { max-width: 1000px; }
.pp-content > * + * { margin-top: 1.25rem; }
.pp-content h2 { font-size: clamp(1.75rem, 4vw, 2.5rem); text-transform: uppercase; margin-top: 3rem; }
.pp-content h3 { font-size: 1.625rem; text-transform: uppercase; margin-top: 2rem; }
.pp-content ul, .pp-content ol { padding-left: 1.25rem; }
.pp-content li + li { margin-top: .35rem; }
.pp-content img { border-radius: var(--pp-radius); }
.pp-content table { width: 100%; border-collapse: collapse; }
.pp-content th, .pp-content td { padding: .6rem .75rem; border: 1px solid var(--pp-line); text-align: left; }
.pp-content blockquote { margin: 2rem 0; padding: .25rem 0 .25rem 1.25rem; border-left: 4px solid var(--pp-red); font-size: 1.125rem; }
.pp-content .pp-lead, .pp-lead { font-size: clamp(1.125rem, 2.4vw, 1.375rem); line-height: 1.55; color: var(--pp-ink); }
.pp-content .pp-eyebrow { display: flex; }

.pp-content .pp-divisions { display: grid; gap: 1.25rem; margin-top: 2rem; }
.pp-content .pp-division {
	padding: 1.75rem;
	background: #fff;
	border: 1px solid var(--pp-line);
	border-top: 4px solid var(--pp-night);
	border-radius: var(--pp-radius);
}
.pp-content .pp-division h3 { margin-top: 0; }
.pp-content .pp-division p:last-child { margin-bottom: 0; color: var(--pp-steel); }
.pp-content .pp-division .pp-eyebrow { font-size: .8125rem; margin-bottom: .75rem; }

.pp-checklist, .pp-content .pp-checklist {
	list-style: none;
	padding: 0;
	display: grid;
	gap: .5rem 2rem;
}
.pp-checklist li { position: relative; padding-left: 1.5rem; margin: 0; }
.pp-content .pp-checklist li + li { margin-top: 0; }
.pp-checklist li::before {
	content: "";
	position: absolute;
	left: 0; top: .55em;
	width: .55rem; height: .55rem;
	background: var(--pp-red);
}

/* ---------- Simple lists (blog/search) ---------- */
.pp-list { max-width: 820px; }
.pp-list__item { padding: 1.5rem 0; border-bottom: 1px solid var(--pp-line); }
.pp-list__title { font-size: 1.625rem; text-transform: uppercase; }
.pp .pp-list__title a { color: var(--pp-ink); text-decoration: none; }
.pp-list__meta { font-size: .875rem; color: var(--pp-steel); margin-bottom: .35rem; }
.pp .search-form { display: flex; gap: .5rem; margin: 1.5rem 0; }
.pp .search-form label { flex: 1; }
.pp .search-field { width: 100%; min-height: 48px; padding: .6rem .9rem; border: 1px solid var(--pp-mist); border-radius: var(--pp-radius); font: inherit; }
.pp .search-submit { min-height: 48px; padding: 0 1.25rem; border: 0; border-radius: var(--pp-radius); background: var(--pp-night); color: #fff; font-family: var(--pp-f-head); font-weight: 600; font-size: 1.0625rem; letter-spacing: .05em; text-transform: uppercase; cursor: pointer; }

/* ---------- Footer ---------- */
.pp-footer { background: var(--pp-night); color: var(--pp-mist); font-size: .9375rem; }
.pp-footer__grid { display: grid; gap: 2.5rem; padding-top: 3.5rem; padding-bottom: 3rem; }
.pp-footer__about p { margin-top: 1rem; max-width: 26rem; }
.pp-footer__title { font-size: 1.125rem !important; letter-spacing: .18em; text-transform: uppercase; color: #fff; margin-bottom: 1rem !important; }
.pp-footer__links, .pp-footer__contact, .pp-footer__legal { list-style: none; margin: 0; padding: 0; }
.pp-footer__links li + li { margin-top: 0; }
.pp .pp-footer__links a { display: inline-block; padding: .55rem 0; }
.pp .pp-footer a { color: var(--pp-mist); text-decoration: none; }
.pp .pp-footer a:hover { color: #fff; text-decoration: underline; }
.pp .pp-footer .pp-btn { color: #fff; text-decoration: none; }
.pp-footer__contact li { display: flex; gap: .65rem; align-items: flex-start; }
.pp-footer__contact li + li { margin-top: .75rem; }
.pp-footer__contact .pp-icon { margin-top: .2em; color: var(--pp-red); }
.pp-footer__actions { display: none; gap: .75rem; align-content: start; }
.pp-footer__actions .pp-footer__title { margin-bottom: .25rem !important; }
.pp-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .1); font-size: .8125rem; }
.pp-footer__bottom-inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1.5rem; padding-top: 1.25rem; padding-bottom: 1.25rem; }
.pp-footer__bottom p { margin: 0; }
.pp-footer__legal { display: flex; gap: 1.25rem; }

.pp .pp-wordmark { display: inline-flex; flex-direction: column; line-height: 1; text-decoration: none; }
.pp-wordmark__top { font-family: var(--pp-f-head); font-weight: 700; font-size: 2.25rem; letter-spacing: .02em; color: var(--pp-red); text-transform: uppercase; }
.pp-wordmark__sub { font-family: var(--pp-f-head); font-weight: 600; font-size: .95rem; letter-spacing: .2em; color: #fff; text-transform: uppercase; margin-top: .2rem; }

.pp-social { list-style: none; margin: 1.25rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.pp .pp-social a, .pp-social__item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px; height: 44px;
	border: 1.5px solid rgba(255, 255, 255, .35);
	border-radius: 50%;
	color: #fff;
	text-decoration: none;
	transition: background-color .2s, border-color .2s;
}
.pp .pp-social a:hover { background: var(--pp-red-dk); border-color: var(--pp-red-dk); }
.pp-social .pp-icon { width: 20px; height: 20px; }

/* ---------- Sticky mobile contact bar ---------- */
.pp-contactbar {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 90;
	display: flex;
	gap: 1px;
	background: var(--pp-night);
	box-shadow: 0 -4px 16px rgba(11, 26, 43, .2);
	padding-bottom: env(safe-area-inset-bottom, 0);
}
.pp .pp-contactbar a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	min-height: 56px;
	font-family: var(--pp-f-head);
	font-weight: 600;
	font-size: 1.125rem;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: #fff;
	text-decoration: none;
}
.pp-contactbar__call { flex: 1; background: var(--pp-red-dk); }
.pp-contactbar__wa { flex: none; padding: 0 1.25rem; background: var(--pp-wa); }
.pp-contactbar .pp-icon { width: 22px; height: 22px; }
body.pp { padding-bottom: 56px; }

/* ==========================================================================
   Breakpoints
   ========================================================================== */
@media (min-width: 600px) {
	.pp-hero__actions, .pp-pagehead__actions { flex-direction: row; flex-wrap: wrap; }
	.pp-hub__card { padding: 1.5rem; }
	.pp-hub__title { font-size: 1.5rem; }
	.pp-hub__text { font-size: 1rem; }
	.pp-hub__icon { width: 52px; height: 52px; margin-bottom: 1rem; }
	.pp-checklist, .pp-content .pp-checklist { grid-template-columns: repeat(2, 1fr); }
	.pp-footer__grid { grid-template-columns: repeat(2, 1fr); }
	.pp-contactbar__wa span { display: inline; }
}
@media (max-width: 599px) {
	.pp-contactbar__wa span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
}

@media (min-width: 768px) {
	:root { --pp-gutter: 2rem; }
	.pp-contactbar { display: none; }
	body.pp { padding-bottom: 0; }
	.pp-topbar { display: block; }
	.pp-hero { padding: 5.5rem 0 9rem; }
	.pp-hero__art { right: -18%; bottom: 1rem; width: 75%; opacity: .16; }
	.pp-footer__actions { display: grid; }
	.pp-why__grid { grid-template-columns: repeat(3, 1fr); }
	.pp-divisions-strip__cards { grid-template-columns: 1fr 1fr; }
	.pp-finder__panel { grid-template-columns: 1fr 1.2fr; gap: 2.5rem; padding: 2.5rem; align-items: start; }
	.pp-cta__inner { grid-template-columns: 1fr auto; }
	.pp-content .pp-divisions { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 1024px) {
	.pp-navtoggle { display: none; }
	.pp-nav {
		display: flex;
		align-items: center;
		gap: 2rem;
		position: static;
		max-height: none;
		overflow: visible;
		padding: 0;
		border: 0;
		box-shadow: none;
		background: none;
	}
	.pp-nav__list { display: flex; gap: .25rem; }
	.pp-nav__list > li { position: relative; }
	.pp-nav__list a {
		padding: .5rem .85rem;
		border: 0;
		font-size: 1.125rem;
		position: relative;
	}
	.pp-nav__list > li > a::after {
		content: "";
		position: absolute;
		left: .85rem; right: .85rem; bottom: -2px;
		height: 3px;
		background: var(--pp-red);
		transform: scaleX(0);
		transition: transform .2s;
	}
	.pp-nav__list > li > a:hover::after,
	.pp-nav__list > .current-menu-item > a::after,
	.pp-nav__list > .current_page_item > a::after,
	.pp-nav__list > .current-menu-ancestor > a::after { transform: scaleX(1); }
	.pp-nav__list .sub-menu {
		position: absolute;
		left: 0; top: 100%;
		min-width: 14rem;
		padding: .5rem 0;
		background: #fff;
		box-shadow: var(--pp-shadow);
		visibility: hidden;
		opacity: 0;
		transition: opacity .15s;
	}
	.pp-nav__list li:hover > .sub-menu, .pp-nav__list li:focus-within > .sub-menu { visibility: visible; opacity: 1; }
	.pp-nav__actions { display: flex; align-items: center; gap: 1.25rem; margin: 0; }
	.pp-nav__phone span { display: none; }
	.pp-hero__title { max-width: 12ch; }
	.pp-hub__grid { grid-template-columns: repeat(4, 1fr); }
	.pp-hero__art { right: -6%; bottom: 3rem; width: 58%; opacity: .55; }

	.pp-divisions-strip__inner { grid-template-columns: 1fr 1.3fr; gap: 4rem; }
	.pp-footer__grid { grid-template-columns: 1.4fr 1fr 1.4fr 1fr; gap: 3rem; }
}

@media (min-width: 1200px) {
	.pp-nav__phone span { display: inline; }
	.pp-hero__art { right: 0; width: 52%; opacity: .75; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* ==========================================================================
   Products
   ========================================================================== */
.pp-pagehead__title--wide { max-width: 20ch; font-size: clamp(2.25rem, 6.5vw, 4rem); }
.pp-pintro__inner { display: grid; gap: 1rem 4rem; }
.pp-pintro .pp-lead { margin: 0; color: var(--pp-steel); }
.pp-range { background: var(--pp-paper); }

.pp-chips { display: flex; gap: .5rem; overflow-x: auto; margin: 0 calc(var(--pp-gutter) * -1) 2rem; padding: 0 var(--pp-gutter) .25rem; scrollbar-width: none; }
.pp-chips[hidden] { display: none; }
.pp-chips::-webkit-scrollbar { display: none; }
.pp-chip {
	flex: none;
	min-height: 44px;
	padding: .5rem 1.1rem;
	border: 1.5px solid var(--pp-mist);
	border-radius: 999px;
	background: #fff;
	color: var(--pp-ink);
	font-family: var(--pp-f-head);
	font-weight: 600;
	font-size: 1.0625rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	cursor: pointer;
}
.pp-chip:hover { border-color: var(--pp-ink); }
.pp-chip[aria-pressed="true"] { background: var(--pp-night); border-color: var(--pp-night); color: #fff; }

.pp-range__group + .pp-range__group { margin-top: 3.5rem; }
.pp-range__group[hidden] { display: none; }
.pp-range__head { display: flex; gap: 1rem; align-items: flex-start; margin-bottom: 1.5rem; padding-bottom: 1rem; border-bottom: 2px solid var(--pp-ink); }
.pp-range__letter {
	display: inline-flex; align-items: center; justify-content: center;
	flex: none; width: 44px; height: 44px;
	background: var(--pp-red-dk); color: #fff;
	font-family: var(--pp-f-head); font-weight: 700; font-size: 1.5rem;
}
.pp-range__title { font-size: clamp(1.625rem, 4vw, 2.125rem); text-transform: uppercase; margin: 0; }
.pp .pp-range__title a { color: var(--pp-ink); text-decoration: none; }
.pp .pp-range__title a:hover { color: var(--pp-red-dk); }
.pp-range__desc { margin: .25rem 0 0; color: var(--pp-steel); }

.pp-grid { display: grid; gap: 1.25rem; }
.pp-pcard {
	position: relative;
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--pp-line);
	border-radius: var(--pp-radius);
	overflow: hidden;
	transition: box-shadow .2s, transform .2s;
}
.pp-pcard:hover { box-shadow: var(--pp-shadow); transform: translateY(-2px); }
.pp-pcard__media { position: relative; aspect-ratio: 4 / 3; background: var(--pp-paper); }
.pp-pcard__media img { width: 100%; height: 100%; object-fit: contain; padding: 1rem; }
.pp-pcard__placeholder {
	display: flex; align-items: center; justify-content: center;
	width: 100%; height: 100%;
	color: var(--pp-red);
	background:
		linear-gradient(rgba(11, 26, 43, .04) 1px, transparent 1px),
		linear-gradient(90deg, rgba(11, 26, 43, .04) 1px, transparent 1px),
		linear-gradient(135deg, #F5F4F0, #ECEAE3);
	background-size: 24px 24px, 24px 24px, 100% 100%;
}
.pp-pcard__placeholder .pp-icon { width: 72px; height: 72px; stroke-width: 1.25; }
.pp-pcard__placeholder--lg { min-height: 200px; border-radius: var(--pp-radius); }
@media (min-width: 768px) { .pp-pcard__placeholder--lg { min-height: 320px; } }
.pp-pcard__placeholder--lg .pp-icon { width: 120px; height: 120px; stroke-width: 1; }
.pp-pcard__badge {
	position: absolute; left: .75rem; top: .75rem;
	padding: .2rem .6rem;
	background: var(--pp-blue); color: #fff;
	font-family: var(--pp-f-head); font-weight: 600; font-size: .8125rem; letter-spacing: .12em; text-transform: uppercase;
}
.pp-pcard__body { display: flex; flex-direction: column; flex: 1; padding: 1.25rem; }
.pp-pcard__title { font-size: 1.375rem; text-transform: uppercase; margin-bottom: .4em; }
.pp .pp-pcard__title a { color: var(--pp-ink); text-decoration: none; }
.pp-pcard__title a::after { content: ""; position: absolute; inset: 0; }
.pp-pcard__text { color: var(--pp-steel); font-size: .9375rem; }
.pp-pcard__best { font-size: .875rem; color: var(--pp-steel); padding-top: .75rem; border-top: 1px solid var(--pp-line); }
.pp-pcard__best strong { color: var(--pp-ink); }
.pp-pcard__link { margin-top: auto; display: inline-flex; align-items: center; gap: .4em; font-family: var(--pp-f-head); font-weight: 600; font-size: 1.0625rem; letter-spacing: .05em; text-transform: uppercase; color: var(--pp-red-dk); }
.pp-pcard__link .pp-icon { transition: transform .2s; }
.pp-pcard:hover .pp-pcard__link .pp-icon { transform: translateX(3px); }

.pp-epc { background: var(--pp-night); color: #fff; }
.pp-epc .pp-section__title { color: #fff; }
.pp-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; counter-reset: none; }
.pp-steps__item { position: relative; padding: 1.5rem; background: var(--pp-night-2); border-top: 3px solid var(--pp-red); border-radius: var(--pp-radius); }
.pp-steps__num { display: block; font-family: var(--pp-f-head); font-weight: 700; font-size: 2.5rem; line-height: 1; color: var(--pp-red); margin-bottom: .75rem; }
.pp-steps__title { font-size: 1.375rem; text-transform: uppercase; color: #fff; }
.pp-steps__item p { margin: 0; color: var(--pp-mist); font-size: .9375rem; }
.pp .pp-epc__cta { margin: 2.5rem 0 0; }

.pp-crumbs { display: flex; flex-wrap: wrap; gap: .5rem; font-size: .875rem; color: var(--pp-steel); margin-bottom: 1.5rem; }
.pp-crumbs a { color: var(--pp-steel); }

.pp-product { padding: 2rem 0 var(--pp-section); }
.pp-product__top { display: grid; gap: 2rem; }
.pp-product__main { background: var(--pp-paper); border-radius: var(--pp-radius); }
.pp-product__main img { width: 100%; max-height: 520px; object-fit: contain; padding: 1.5rem; }
.pp-product__thumbs { list-style: none; margin: .75rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.pp-product__thumbs img { width: 80px; height: 80px; object-fit: cover; border: 1px solid var(--pp-line); border-radius: var(--pp-radius); }
.pp-product__title { font-size: clamp(2.25rem, 6vw, 3.25rem); text-transform: uppercase; }
.pp-product__best { display: flex; gap: .5rem; align-items: flex-start; padding: .9rem 1rem; background: var(--pp-paper); border-left: 4px solid var(--pp-night); }
.pp-product__best .pp-icon { color: var(--pp-red-dk); margin-top: .15em; }
.pp-product__sub { font-size: 1.5rem; text-transform: uppercase; margin-top: 1.75rem; }
.pp-checklist--single { grid-template-columns: 1fr !important; }
.pp-product__actions { margin-top: 1.75rem; }
.pp-product__note { display: flex; gap: .5rem; align-items: center; margin-top: 1.25rem; font-size: .875rem; color: var(--pp-steel); }
.pp-product__note .pp-icon { color: var(--pp-red-dk); }
.pp-product__details { display: grid; gap: 1rem 3rem; margin-top: 2.5rem; }
.pp-tablewrap { overflow-x: auto; }
.pp-specs { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.pp-specs th, .pp-specs td { padding: .8rem 1rem; border-bottom: 1px solid var(--pp-line); text-align: left; vertical-align: top; }
.pp-specs th { width: 40%; font-weight: 600; background: var(--pp-paper); }
.pp-related { background: var(--pp-paper); }

@media (min-width: 600px) {
	.pp-grid { grid-template-columns: repeat(2, 1fr); }
	.pp-steps { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 768px) {
	.pp-chips { flex-wrap: wrap; overflow: visible; margin: 0 0 2rem; padding: 0; }
	.pp-pintro__inner { grid-template-columns: 1fr 1.4fr; align-items: start; }
	.pp-product__top { grid-template-columns: 1fr 1fr; gap: 3rem; align-items: start; }
	.pp-product__details { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 1024px) {
	.pp-grid { grid-template-columns: repeat(3, 1fr); }
	.pp-steps { grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); grid-auto-flow: column; }
}

/* ==========================================================================
   Services
   ========================================================================== */
.pp-scard {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 1.5rem;
	background: #fff;
	border: 1px solid var(--pp-line);
	border-top: 4px solid var(--pp-night);
	border-radius: var(--pp-radius);
	transition: box-shadow .2s, transform .2s;
}
.pp-scard:hover { box-shadow: var(--pp-shadow); transform: translateY(-2px); }
.pp-scard__top { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 1.25rem; }
.pp-scard__icon { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: var(--pp-paper); color: var(--pp-red-dk); }
.pp-scard__icon .pp-icon { width: 26px; height: 26px; }
.pp-scard__num { font-family: var(--pp-f-head); font-weight: 700; font-size: 2.25rem; line-height: 1; color: var(--pp-line); }
.pp-scard__title { font-size: 1.5rem; text-transform: uppercase; }
.pp .pp-scard__title a { color: var(--pp-ink); text-decoration: none; }
.pp-scard__title a::after { content: ""; position: absolute; inset: 0; }
.pp-scard__text { color: var(--pp-steel); font-size: .9375rem; flex: 1; }
.pp-scard:hover .pp-pcard__link .pp-icon { transform: translateX(3px); }

.pp-segments { background: var(--pp-paper); }
.pp-segments__inner { display: grid; gap: 2rem; }
.pp-segments__dark { padding: 2rem; background: var(--pp-night); color: #fff; border-radius: var(--pp-radius); }
.pp-segments__dark .pp-section__title { color: #fff; }
.pp-segments .pp-section__title { font-size: clamp(1.75rem, 4vw, 2.25rem); }

.pp-service { display: grid; gap: 2.5rem; }
.pp-tags { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.pp-tags li { padding: .3rem .8rem; border: 1.5px solid var(--pp-ink); font-family: var(--pp-f-head); font-weight: 600; font-size: 1.0625rem; letter-spacing: .08em; }
.pp-aside-card { display: grid; gap: .75rem; padding: 1.75rem; background: var(--pp-paper); border-top: 4px solid var(--pp-night); border-radius: var(--pp-radius); }
.pp-aside-card p { margin: 0; color: var(--pp-steel); }
.pp-aside-card__title { font-size: 1.5rem; text-transform: uppercase; margin: 0; }
.pp-aside-nav { margin-top: 2rem; }
.pp-aside-nav ul { list-style: none; margin: 1rem 0 0; padding: 0; }
.pp .pp-aside-nav a { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .8rem 0; border-bottom: 1px solid var(--pp-line); color: var(--pp-ink); text-decoration: none; font-weight: 500; }
.pp .pp-aside-nav a:hover { color: var(--pp-red-dk); }
.pp-aside-nav .pp-icon { color: var(--pp-red); }

/* ==========================================================================
   Contact
   ========================================================================== */
.pp-section--tight { padding-top: 0; }
.pp-contact__grid { display: grid; gap: 3rem; }
.pp-infolist { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.5rem; }
.pp-infolist li { display: flex; gap: 1rem; align-items: flex-start; }
.pp-infolist p { margin: 0; }
.pp .pp-infolist a { color: var(--pp-ink); text-decoration: none; font-weight: 500; }
.pp .pp-infolist a:hover { color: var(--pp-red-dk); text-decoration: underline; }
.pp-infolist__icon { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 48px; height: 48px; border-radius: 50%; background: var(--pp-paper); color: var(--pp-red-dk); }
.pp-infolist__label { font-size: 1rem !important; letter-spacing: .16em; text-transform: uppercase; color: var(--pp-steel); margin: 0 0 .2rem !important; font-weight: 600 !important; }
.pp-depts { display: grid; gap: 1rem; margin-top: 2rem; }
.pp-dept { padding: 1.25rem 1.5rem; border: 1px solid var(--pp-line); border-left: 4px solid var(--pp-night); border-radius: var(--pp-radius); }
.pp-dept__title { font-size: 1.375rem; text-transform: uppercase; margin-bottom: .5rem; }
.pp-dept ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .4rem; }
.pp-dept li { display: flex; gap: .5rem; align-items: center; min-width: 0; }
.pp-dept li a { overflow-wrap: anywhere; color: var(--pp-ink); }
.pp-dept .pp-icon { color: var(--pp-red-dk); }
.pp-contact__social { margin-top: 2rem; }
.pp .pp-social--dark { margin-top: .5rem; }
.pp .pp-social--dark a, .pp-social--dark .pp-social__item { border-color: var(--pp-ink); color: var(--pp-ink); }
.pp .pp-social--dark a:hover { color: #fff; }

.pp-contact__form { padding: 1.5rem; background: var(--pp-paper); border-radius: var(--pp-radius); border-top: 4px solid var(--pp-night); }
.pp-contact__formtitle { font-size: 1.75rem; text-transform: uppercase; }
.pp-form__grid { display: grid; gap: 1.1rem; }
.pp-field label { display: block; margin-bottom: .35rem; font-weight: 600; font-size: .9375rem; }
.pp-field label span { color: var(--pp-red-dk); }
.pp-field input, .pp-field select, .pp-field textarea {
	display: block;
	width: 100%;
	min-height: 48px;
	padding: .7rem .9rem;
	border: 1.5px solid #A9B3BF;
	border-radius: var(--pp-radius);
	background: #fff;
	color: var(--pp-ink);
	font: inherit;
	font-size: 1rem;
}
.pp-field textarea { min-height: 140px; resize: vertical; }
.pp-field select { appearance: none; -webkit-appearance: none; padding-right: 2.5rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231A2433' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .8rem center; background-size: 18px; }
.pp-field input:focus, .pp-field select:focus, .pp-field textarea:focus { border-color: var(--pp-night); outline: 3px solid var(--pp-focus); outline-offset: 0; }
.pp-field [aria-invalid="true"] { border-color: var(--pp-red-dk); background: #FFF6F6; }
.pp-field__error { margin: .35rem 0 0 !important; color: #B32126; font-size: .875rem; font-weight: 500; }
.pp-form__note { margin: 1rem 0 1.25rem !important; font-size: .8125rem; color: var(--pp-steel); }
.pp-form button[disabled] { opacity: .7; cursor: wait; }
.pp-alert { display: flex; gap: .75rem; align-items: flex-start; padding: 1rem 1.25rem; margin-bottom: 1.25rem; border-radius: var(--pp-radius); font-weight: 500; }
.pp-alert p { margin: 0; }
.pp-alert--ok { background: #E7F5EC; color: #0B5A30; border-left: 4px solid #0F7A40; }
.pp-alert--error { background: #FDECEC; color: #8E1A1E; border-left: 4px solid var(--pp-red-dk); }
.pp-alert:focus { outline: none; }

.pp-map { position: relative; line-height: 0; background: var(--pp-paper); }
.pp-map iframe { display: block; width: 100%; height: 380px; border: 0; }
.pp-map__link { position: absolute; left: var(--pp-gutter); bottom: 1.25rem; margin: 0; line-height: 1.2; }
.pp-map__link .pp-btn { box-shadow: var(--pp-shadow); }

@media (min-width: 600px) {
	.pp-form__grid { grid-template-columns: 1fr 1fr; }
	.pp-field--full { grid-column: 1 / -1; }
}
@media (min-width: 768px) {
	.pp-segments__inner { grid-template-columns: 1.3fr 1fr; gap: 3rem; align-items: start; }
	.pp-segments__dark { padding: 2.5rem; }
	.pp-contact__form { padding: 2.5rem; }
	.pp-map iframe { height: 460px; }
}
@media (min-width: 1024px) {
	.pp-service { grid-template-columns: 1fr 340px; gap: 4rem; align-items: start; }
	.pp-service__aside { position: sticky; top: calc(var(--pp-header-h) + 1.5rem); }
	.pp-contact__grid { grid-template-columns: 1fr 1.25fr; gap: 4rem; align-items: start; }
}
.pp-range__sub { display: flex; align-items: center; gap: .6rem; font-size: 1.25rem !important; letter-spacing: .06em; text-transform: uppercase; color: var(--pp-steel); margin: 1.75rem 0 1rem !important; }
.pp-range__sub::before { content: ""; width: .6rem; height: .6rem; background: var(--pp-red); }
.pp-range__head + .pp-range__sub { margin-top: 0 !important; }
.pp-depts__heading { font-size: 1.5rem; text-transform: uppercase; margin: 2.5rem 0 0 !important; }
.pp-depts__heading + .pp-depts { margin-top: 1rem; }

/* Line art in inner page heads (desktop only) */
.pp-pagehead { overflow: hidden; }
.pp-pagehead__inner { position: relative; z-index: 1; }
.pp-pagehead__art { display: none; position: absolute; right: 2%; top: 50%; width: 38%; max-width: 460px; transform: translateY(-50%); opacity: .45; pointer-events: none; }
.pp-lineart .pp-hero__lines { fill: none; stroke: rgba(235, 49, 54, .55); stroke-width: 2; }
.pp-lineart .pp-hero__bus { stroke-width: 5; }
.pp-lineart .pp-hero__flow { fill: none; stroke: var(--pp-red); stroke-width: 3; stroke-linecap: round; }
.pp-lineart .pp-hero__flow path { stroke-dasharray: 6 30; animation: pp-flow 3.2s linear infinite; }
.pp-lineart .pp-hero__loads use { fill: none; stroke: #fff; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }

/* Products without photos: compact icon panel */
.pp-pcard__media--empty { aspect-ratio: auto; height: 132px; }
.pp-pcard__media--empty .pp-pcard__placeholder .pp-icon { width: 52px; height: 52px; }

/* Contact: headings + comfortable tap targets */
.pp-depts__heading--first { margin-top: 0 !important; margin-bottom: 1.5rem !important; }
.pp .pp-infolist a, .pp .pp-dept li a { display: inline-block; padding: .3rem 0; }

@media (max-width: 599px) {
	.pp-product__actions .pp-btn { width: 100%; }
}
@media (min-width: 1024px) {
	.pp-pcard__media--empty { height: 160px; }
	.pp-pagehead__art { display: block; }
}

/* Product card "View Details" button */
.pp-pcard__cta {
	margin-top: auto;
	display: inline-flex; align-items: center; justify-content: center; gap: .45em;
	align-self: flex-start;
	min-height: 42px; padding: .5em 1.1em;
	border: 2px solid var(--pp-red-dk); border-radius: var(--pp-radius);
	color: var(--pp-red-dk);
	font-family: var(--pp-f-head); font-weight: 600; font-size: 1rem; letter-spacing: .05em; text-transform: uppercase;
	transition: background-color .2s, color .2s;
}
.pp-pcard:hover .pp-pcard__cta { background: var(--pp-red-dk); color: #fff; }
.pp-pcard__best { margin-bottom: 1rem; }
.pp-pcard__media img { background: transparent; }

/* Card text: 3 lines max so cards line up */
.pp-pcard__text { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }


/* ==========================================================================
   Products catalog: sidebar categories (desktop) / dropdown (phones)
   ========================================================================== */
.pp-catalog { display: grid; gap: 1.5rem; }
.pp-catalog__picker { display: grid; gap: .4rem; }
.pp-catalog__picker[hidden] { display: none; }
.pp-catalog__picker label { font-weight: 600; font-size: .9375rem; }
.pp-catalog__picker .pp-finder__selectwrap { flex: none; max-width: none; }

.pp-catnav { background: #fff; border: 1px solid var(--pp-line); border-radius: var(--pp-radius); padding: .5rem 0; }
.pp-range.is-ready .pp-catnav, .pp-range.is-ready .pp-catnav__help { display: none; }
.pp .pp-catnav a { display: flex; align-items: center; gap: .6rem; text-decoration: none; color: var(--pp-ink); }
.pp .pp-catnav__all { justify-content: space-between; padding: .75rem 1.25rem; font-weight: 600; border-bottom: 1px solid var(--pp-line); }
.pp-catnav__group { padding: .5rem 0; }
.pp-catnav__group + .pp-catnav__group { border-top: 1px solid var(--pp-line); }
.pp .pp-catnav__parent { padding: .55rem 1.25rem; font-family: var(--pp-f-head); font-weight: 700; font-size: 1.1875rem; letter-spacing: .03em; text-transform: uppercase; }
.pp-catnav__parent .pp-icon { color: var(--pp-red-dk); width: 22px; height: 22px; }
.pp-catnav ul { list-style: none; margin: 0; padding: 0; }
.pp .pp-catnav ul a { justify-content: space-between; padding: .5rem 1.25rem .5rem 3.1rem; font-size: .9375rem; color: var(--pp-steel); border-left: 3px solid transparent; }
.pp .pp-catnav a:hover { color: var(--pp-red-dk); background: var(--pp-paper); }
.pp .pp-catnav a.is-active { color: var(--pp-ink); font-weight: 600; background: var(--pp-paper); border-left-color: var(--pp-red); }
.pp .pp-catnav__all.is-active, .pp .pp-catnav__parent.is-active { box-shadow: inset 3px 0 0 var(--pp-red); }
.pp-catnav__count { display: inline-flex; align-items: center; justify-content: center; min-width: 1.6rem; height: 1.4rem; padding: 0 .4rem; border-radius: 999px; background: var(--pp-paper); color: var(--pp-steel); font-size: .75rem; font-weight: 600; }
.pp-catnav a.is-active .pp-catnav__count { background: var(--pp-red-dk); color: #fff; }

.pp-catnav__help { margin-top: 1rem; padding: 1.1rem 1.25rem; border: 1px dashed var(--pp-mist); border-radius: var(--pp-radius); font-size: .875rem; color: var(--pp-steel); }
.pp-catnav__help p { margin: 0 0 .35rem; }
.pp-catnav__help-title { font-family: var(--pp-f-head); font-weight: 700; font-size: 1.125rem; text-transform: uppercase; color: var(--pp-ink); }

.pp-catalog__head[hidden] { display: none; }
.pp-catalog__head { margin-bottom: 1.25rem; padding-bottom: 1rem; border-bottom: 2px solid var(--pp-ink); }
.pp-catalog__title { margin: 0 !important; font-size: clamp(1.625rem, 4vw, 2.25rem); text-transform: uppercase; }
.pp-catalog__count { margin-left: .4rem; font-family: var(--pp-f-body); font-size: .9375rem; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--pp-steel); vertical-align: middle; }
.pp-catalog__desc { margin: .35rem 0 0 !important; color: var(--pp-steel); }
.pp-catalog__desc[hidden] { display: none; }

.pp-range__group-title { display: flex; align-items: center; gap: .6rem; font-size: 1.5rem !important; text-transform: uppercase; margin: 0 0 1rem !important; }
.pp-range__group-title::before { content: ""; width: 1.25rem; height: 4px; background: var(--pp-red); }
.pp-catalog__main .pp-range__group + .pp-range__group { margin-top: 2.75rem; }
.pp-range__group.is-single .pp-range__group-title, .pp-range__section.is-only .pp-range__sub { display: none; }
.pp-catalog__main .pp-range__section + .pp-range__section { margin-top: 1.75rem; }
.pp-catalog__main .pp-range__sub { margin-top: 0 !important; }

/* "Can't find your product?" */
.pp-other {
	display: grid;
	gap: 1.25rem;
	margin-top: 3rem;
	padding: 1.75rem;
	background: var(--pp-night);
	color: #fff;
	border-radius: var(--pp-radius);
	border-left: 4px solid var(--pp-red);
}
.pp-other__icon { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 50%; background: var(--pp-red-dk); }
.pp-other__icon .pp-icon { width: 28px; height: 28px; }
.pp-other__title { font-size: clamp(1.5rem, 3.5vw, 2rem); text-transform: uppercase; margin-bottom: .35em !important; }
.pp-other__text p { margin: 0; color: var(--pp-mist); }
.pp-other__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.pp .pp-other .pp-btn--outline { border-color: rgba(255, 255, 255, .7); color: #fff; }
.pp .pp-other .pp-btn--outline:hover { background: #fff; color: var(--pp-night); }

@media (min-width: 600px) {
	.pp-grid--catalog { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 900px) {
	.pp-other { grid-template-columns: auto 1fr auto; align-items: center; padding: 2rem 2.25rem; }
}
@media (min-width: 1024px) {
	.pp-catalog { grid-template-columns: 270px 1fr; gap: 2.5rem; align-items: start; }
	.pp-catalog__side { position: sticky; top: calc(var(--pp-header-h) + 1.25rem); }
	.pp-range.is-ready .pp-catnav, .pp-range.is-ready .pp-catnav__help { display: block; }
	.pp-catalog__picker, .pp-range.is-ready .pp-catalog__picker { display: none; }
	.pp-grid--catalog { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1200px) {
	.pp-grid--catalog { grid-template-columns: repeat(3, 1fr); }
}

/* ==========================================================================
   Home hero showcase (auto-slides: Power Products / Industrial Projects)
   ========================================================================== */
.pp-hero__inner { display: grid; gap: 2.5rem; align-items: center; }
.pp-hero__text { min-width: 0; }

.pp-showcase {
	position: relative;
	z-index: 1;
	padding: 1.5rem;
	background: var(--pp-night-2);
	border: 1px solid rgba(255, 255, 255, .12);
	border-top: 3px solid var(--pp-red);
	border-radius: 6px;
	box-shadow: 0 20px 40px rgba(3, 10, 20, .45);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}
.pp-showcase__slides { display: grid; }
.pp-slide { grid-area: 1 / 1; min-width: 0; }
.pp-showcase.is-ready .pp-slide {
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity .5s ease, transform .5s ease, visibility 0s linear .5s;
}
.pp-showcase.is-ready .pp-slide.is-active { opacity: 1; visibility: visible; transform: none; transition: opacity .5s ease, transform .5s ease; }
.pp-showcase:not(.is-ready) .pp-slide + .pp-slide { grid-area: auto; margin-top: 2rem; padding-top: 2rem; border-top: 1px solid rgba(255, 255, 255, .12); }

.pp-slide__label { display: inline-flex; align-items: center; gap: .5rem; margin: 0 0 .6rem !important; font-family: var(--pp-f-head); font-weight: 600; font-size: .875rem; letter-spacing: .2em; text-transform: uppercase; color: var(--pp-red); }
.pp-slide__label .pp-icon { width: 18px; height: 18px; color: var(--pp-red); }
.pp-slide__title { font-size: clamp(1.5rem, 3.2vw, 2rem) !important; text-transform: uppercase; color: #fff; margin-bottom: .3em !important; }
.pp-slide__text { margin: 0 0 1.25rem !important; color: var(--pp-mist); font-size: .9375rem; }

.pp-slide__products { list-style: none; margin: 0 0 1.25rem; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; }
.pp-slide__products li { display: flex; flex-direction: column; align-items: center; gap: .35rem; padding: .6rem .4rem .5rem; background: var(--pp-paper); border-radius: 4px; }
.pp-slide__products img { width: 100%; max-width: 110px; height: auto; aspect-ratio: 1; object-fit: contain; }
.pp-slide__products span { font-family: var(--pp-f-head); font-weight: 600; font-size: .875rem; letter-spacing: .06em; text-transform: uppercase; color: var(--pp-ink); }

.pp-slide__diagram { margin: 0 0 1.25rem; padding: .75rem 1rem; background: rgba(11, 26, 43, .6); border-radius: 4px; }
.pp-slide__art { display: block; width: 100%; max-width: 340px; height: auto; margin: 0 auto; }

.pp .pp-slide__link { display: inline-flex; align-items: center; gap: .45rem; font-family: var(--pp-f-head); font-weight: 600; font-size: 1.0625rem; letter-spacing: .06em; text-transform: uppercase; color: #fff; text-decoration: none; border-bottom: 2px solid var(--pp-red); padding-bottom: .15rem; }
.pp .pp-slide__link:hover { color: #fff; border-bottom-color: #fff; }
.pp-slide__link .pp-icon { transition: transform .2s; }
.pp-slide__link:hover .pp-icon { transform: translateX(3px); }

.pp-showcase__controls { display: flex; align-items: center; gap: .5rem; margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid rgba(255, 255, 255, .1); }
.pp-showcase__controls[hidden] { display: none; }
.pp-showcase__dot {
	position: relative;
	flex: 1;
	min-height: 40px;
	padding: .5rem .25rem 0;
	border: 0;
	background: none;
	color: #8F9DAE;
	font-family: var(--pp-f-head);
	font-weight: 600;
	font-size: .875rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	text-align: left;
	cursor: pointer;
}
.pp-showcase__dot::before, .pp-showcase__dot::after { content: ""; position: absolute; left: 0; top: 0; height: 3px; border-radius: 2px; }
.pp-showcase__dot::before { right: 0; background: rgba(255, 255, 255, .18); }
.pp-showcase__dot::after { width: 0; background: var(--pp-red); }
.pp-showcase__dot.is-active { color: #fff; }
.pp-showcase__dot.is-active::after { width: 100%; }
.pp-showcase.is-ticking .pp-showcase__dot.is-active::after { width: 0; animation: pp-tick 6s linear forwards; }
@keyframes pp-tick { to { width: 100%; } }
.pp-showcase__pause {
	flex: none;
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px;
	border: 1px solid rgba(255, 255, 255, .25);
	border-radius: 50%;
	background: none;
	cursor: pointer;
}
.pp-showcase__pause-icon { width: 10px; height: 12px; border-left: 3px solid #fff; border-right: 3px solid #fff; }
.pp-showcase.is-paused .pp-showcase__pause-icon { width: 0; height: 0; border-style: solid; border-width: 7px 0 7px 11px; border-color: transparent transparent transparent #fff; margin-left: 3px; }

@media (min-width: 1024px) {
	.pp-hero__inner { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 3.5rem; }
	.pp-showcase { padding: 1.75rem 2rem; }
	.pp-hero__art { opacity: .22; right: -4%; }
}
@media (prefers-reduced-motion: reduce) {
	.pp-showcase.is-ready .pp-slide { transition: none; transform: none; }
}
/* Hero background: thin "current" pulses running along the grid lines (docx: power line visuals) */
.pp-hero__flow { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.pp-hero__flow span { position: absolute; display: block; opacity: .55; }
.pp-hero__flow span:nth-child(-n+3) { left: 0; right: 0; height: 2px; margin-top: -.5px; background: linear-gradient(90deg, transparent, rgba(235, 49, 54, .9), transparent) no-repeat; background-size: 220px 2px; animation: pp-run-x 7s linear infinite; }
.pp-hero__flow span:nth-child(n+4) { top: 0; bottom: 0; width: 2px; margin-left: -.5px; background: linear-gradient(180deg, transparent, rgba(235, 49, 54, .9), transparent) no-repeat; background-size: 2px 180px; animation: pp-run-y 6s linear infinite; }
/* Routed through empty space only: above the headline, below the buttons, and the gap between text and card. */
.pp-hero__flow span:nth-child(1) { top: 40px; }
.pp-hero__flow span:nth-child(2) { top: 80px; animation-delay: -4s; animation-duration: 10s; opacity: .3; }
.pp-hero__flow span:nth-child(3) { bottom: 40px; animation-delay: -2.5s; animation-duration: 8s; }
.pp-hero__flow span:nth-child(4) { left: 680px; animation-delay: -2s; }
.pp-hero__flow span:nth-child(5) { display: none; }
@media (max-width: 1023px) { .pp-hero__flow span:nth-child(4) { display: none; } }
@keyframes pp-run-x { from { background-position: -220px 0; } to { background-position: calc(100% + 220px) 0; } }
@keyframes pp-run-y { from { background-position: 0 -180px; } to { background-position: 0 calc(100% + 180px); } }
.pp-hero .pp-hero__art { display: none; }

/* Outcome slides: icon + title, one line, three checkmarks, two buttons */
.pp-slide__head { display: flex; align-items: center; gap: .85rem; margin-bottom: .75rem; }
.pp-slide__icon { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 48px; height: 48px; border-radius: 50%; background: var(--pp-red-dk); color: #fff; }
.pp-slide__icon .pp-icon { width: 24px; height: 24px; }
.pp-slide__head .pp-slide__title { margin: 0 !important; }
.pp-slide__points { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; gap: .65rem; }
.pp-slide__points li { display: flex; gap: .65rem; align-items: flex-start; color: #fff; font-size: .9875rem; line-height: 1.45; }
.pp-slide__points .pp-icon { flex: none; width: 18px; height: 18px; margin-top: .1rem; color: var(--pp-red); stroke-width: 2.75; }
.pp-slide__actions { display: flex; flex-wrap: wrap; gap: .65rem; }
.pp-slide__actions .pp-btn { min-height: 46px; font-size: 1rem; }
@media (max-width: 767px) {
	.pp-hero__flow span:nth-child(n+4) { display: none; }
}

/* ==========================================================================
   Review fixes (14 Oct): red only for actions/active, compact product cards,
   phone layouts, tap targets
   ========================================================================== */
/* Red as a hover/active signal on cards */
.pp-hub__card, .pp-scard, .pp-division-card { transition: border-color .2s, transform .2s, box-shadow .2s; }
.pp-hub__card:hover, .pp-scard:hover, .pp .pp-division-card:hover { border-top-color: var(--pp-red); }
.pp-hub__icon, .pp-scard__icon, .pp-infolist__icon { color: var(--pp-night); }
.pp-hub__card:hover .pp-hub__icon, .pp-scard:hover .pp-scard__icon { color: var(--pp-red-dk); }
.pp-why__icon { border-color: var(--pp-line); }
.pp-division-card--dark { border-top-color: var(--pp-red) !important; }

/* Product cards: sentence-case 2-line titles, navy "View Details" (red on hover) */
.pp .pp-pcard__title { font-family: var(--pp-f-body); font-weight: 600; font-size: 1.0625rem; line-height: 1.35; text-transform: none; letter-spacing: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.7em; }
.pp-pcard__cta { min-height: 44px; border-color: var(--pp-night); color: var(--pp-night); }
.pp-pcard:hover .pp-pcard__cta { background: var(--pp-red-dk); border-color: var(--pp-red-dk); color: #fff; }

/* Phones: compact horizontal product card (photo left, details right) */
@media (max-width: 599px) {
	.pp-pcard { display: grid; grid-template-columns: 112px 1fr; }
	.pp-pcard__media, .pp-pcard__media--empty { aspect-ratio: 1; height: auto; border-right: 1px solid var(--pp-line); }
	.pp-pcard__media img { padding: .5rem; }
	.pp-pcard__badge { display: none; }
	.pp-pcard__body { padding: .85rem 1rem; }
	.pp .pp-pcard__title { font-size: 1rem; min-height: 0; margin-bottom: .25rem; }
	.pp-pcard__text { -webkit-line-clamp: 2; font-size: .875rem; margin-bottom: .5rem; }
	.pp-pcard__best { display: none; }
	.pp-pcard__cta { min-height: 40px; padding: .35em .9em; font-size: .9375rem; }
	.pp-grid, .pp-grid--catalog { gap: .75rem; }
}

/* Phones: home hub as one column, icon left */
@media (max-width: 479px) {
	.pp-hub__grid { grid-template-columns: 1fr; gap: .6rem; }
	.pp-hub__card { display: grid; grid-template-columns: 44px 1fr; grid-template-areas: "icon title" "icon text" "icon link"; column-gap: .9rem; padding: .9rem 1rem; }
	.pp-hub__icon { grid-area: icon; margin: 0; }
	.pp-hub__title { grid-area: title; font-size: 1.25rem; margin-bottom: .1em; }
	.pp-hub__text { grid-area: text; margin-bottom: .35rem; }
	.pp-hub__link { grid-area: link; }
}

/* Hero slider: short dot labels on phones */
.pp-showcase__dot .pp-dot-short { display: none; }
@media (max-width: 599px) {
	.pp-showcase__dot .pp-dot-long { display: none; }
	.pp-showcase__dot .pp-dot-short { display: inline; }
	.pp-slide__text { display: none; }
}

/* Tap targets ≥ 44px */
.pp-showcase__dot { min-height: 44px; }
.pp-showcase__pause { width: 44px; height: 44px; }
.pp .pp-catnav ul a { padding-top: .7rem; padding-bottom: .7rem; }
.pp .pp-footer__links a { padding: .65rem 0; }
.pp .pp-infolist a, .pp .pp-dept li a { padding: .55rem 0; }

/* Contact on phones/tablets: form first; map button away from the sticky call bar */
@media (max-width: 1023px) {
	.pp-contact__form { order: -1; }
}
.pp-map__link { top: 1rem; bottom: auto; }

/* Mobile menu: fit the visible viewport */
.pp-nav { max-height: calc(100dvh - var(--pp-header-h)); }
/* Lock only <html>: hiding body overflow too makes body a scroll container and breaks the sticky header. */
html.pp-nav-open { overflow: hidden; }
@media (min-width: 1024px) { html.pp-nav-open { overflow: visible; } }

/* Labelled numbers (Sales / Projects / WhatsApp) */
.pp-topbar__label { color: #8F9DAE; }
.pp-footer__label { display: block; font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: #8F9DAE; }
/* Social icons without a link yet: visibly inactive */
.pp-social__item.is-pending { opacity: .4; cursor: default; }
.pp .pp-social--dark .pp-social__item.is-pending { opacity: .35; }

/* ==========================================================================
   Products hero: real product cut-outs blended into the navy hero
   ========================================================================== */
.pp-pagehead--products { position: relative; overflow: hidden; }
.pp-pagehead--products .pp-pagehead__inner { position: relative; z-index: 1; }
.pp-prodhero { display: none; pointer-events: none; }
.pp-prodhero__glow {
	position: absolute; left: 50%; top: 52%; width: 125%; aspect-ratio: 1; transform: translate(-50%, -50%);
	background:
		radial-gradient(circle at 50% 50%, rgba(255, 255, 255, .16) 0%, rgba(255, 255, 255, .05) 32%, transparent 58%),
		radial-gradient(circle at 60% 58%, rgba(46, 49, 146, .55) 0%, transparent 55%),
		radial-gradient(circle at 35% 40%, rgba(235, 49, 54, .22) 0%, transparent 45%);
}
.pp-prodhero__img { position: absolute; height: auto; filter: drop-shadow(0 26px 30px rgba(3, 10, 20, .55)); will-change: transform; }
.pp-prodhero__img--panel { width: 58%; left: 22%; top: -2%; z-index: 1; opacity: .92; animation: pp-float 7s ease-in-out infinite; }
.pp-prodhero__img--battery { width: 44%; right: 2%; top: 36%; z-index: 2; animation: pp-float 6s ease-in-out -2s infinite; }
.pp-prodhero__img--inverter { width: 56%; left: 4%; top: 46%; z-index: 3; animation: pp-float 6.5s ease-in-out -4s infinite; }
.pp-prodhero__floor { position: absolute; left: 12%; right: 6%; bottom: 4%; height: 14%; background: radial-gradient(ellipse at 50% 50%, rgba(3, 10, 20, .55), transparent 70%); }
/* soft radial fade so the glow melts into the grid (no visible box) */
.pp-prodhero__glow { -webkit-mask-image: radial-gradient(circle at 50% 50%, #000 30%, transparent 62%); mask-image: radial-gradient(circle at 50% 50%, #000 30%, transparent 62%); }
@keyframes pp-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

@media (min-width: 600px) and (max-width: 1023px) {
	.pp-pagehead--products { display: flex; flex-direction: column; }
	.pp-prodhero { display: block; order: 2; position: relative; width: 420px; height: 300px; margin: 2rem auto -1rem; z-index: 0; }
}
@media (min-width: 1024px) {
	.pp-prodhero { display: block; position: absolute; right: 2%; top: 50%; width: 46%; max-width: 600px; aspect-ratio: 1.1; transform: translateY(-50%); }
	.pp-pagehead--products .pp-pagehead__title--wide, .pp-pagehead--products .pp-pagehead__intro { max-width: 54%; }
}
@media (min-width: 1280px) {
	.pp-prodhero { right: max(2%, calc((100vw - 1200px) / 2 - 40px)); }
}

/* ==========================================================================
   About: light hero with the two divisions (distinct from the home hero)
   ========================================================================== */
.pp-abouthead {
	background-color: var(--pp-paper);
	background-image: linear-gradient(rgba(11, 26, 43, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(11, 26, 43, .045) 1px, transparent 1px);
	background-size: 40px 40px;
	border-bottom: 1px solid var(--pp-line);
	padding: clamp(3rem, 7vw, 5rem) 0;
}
.pp-abouthead__inner { display: grid; gap: 2rem; align-items: center; }
.pp-abouthead__title { font-size: clamp(2.75rem, 8vw, 5rem); text-transform: uppercase; line-height: .95; color: var(--pp-ink); margin-bottom: .35em !important; }
.pp-abouthead__intro { max-width: 40rem; line-height: 1.6; font-size: clamp(1.0625rem, 2.2vw, 1.25rem); color: var(--pp-steel); margin: 0 !important; }
@media (min-width: 900px) {
	.pp-abouthead__inner { grid-template-columns: 1.15fr 1fr; gap: 4rem; }
}


/* About: at-a-glance panel */
.pp-glance { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.pp-glance__item { display: flex; flex-direction: column; justify-content: center; gap: .35rem; min-height: 112px; padding: 1.25rem 1.4rem; background: #fff; border: 1px solid var(--pp-line); border-radius: var(--pp-radius); box-shadow: var(--pp-shadow); }
.pp-glance__item strong { font-family: var(--pp-f-head); font-weight: 700; font-size: clamp(2.75rem, 6vw, 3.5rem); line-height: 1; color: var(--pp-red-dk); }
.pp-glance__item span { font-size: .9375rem; line-height: 1.35; color: var(--pp-steel); }
.pp-glance__item--brand { background: var(--pp-night); border-color: var(--pp-night); }
.pp-glance__item--brand .pp-icon { width: 34px; height: 34px; color: var(--pp-red); }
.pp-glance__item--brand span { color: #fff; font-weight: 600; }

/* About: divisions */
.pp-divs__grid { display: grid; gap: 1.25rem; }
.pp .pp-divcard {
	position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: .5rem;
	padding: 2rem; background: #fff; border: 1px solid var(--pp-line); border-top: 4px solid var(--pp-night); border-radius: var(--pp-radius);
	color: var(--pp-steel); text-decoration: none; transition: border-color .2s, box-shadow .2s, transform .2s;
}
.pp .pp-divcard:hover { border-top-color: var(--pp-red); box-shadow: var(--pp-shadow); transform: translateY(-2px); color: var(--pp-steel); }
.pp .pp-divcard--dark { background: var(--pp-night); border-color: var(--pp-night); border-top-color: var(--pp-red); color: var(--pp-mist); }
.pp .pp-divcard--dark:hover { color: var(--pp-mist); }
.pp-divcard__icon { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; margin-bottom: .5rem; border-radius: 50%; background: var(--pp-paper); color: var(--pp-red-dk); }
.pp-divcard--dark .pp-divcard__icon { background: var(--pp-red-dk); color: #fff; }
.pp-divcard__icon .pp-icon { width: 28px; height: 28px; }
.pp-divcard__label { font-family: var(--pp-f-head); font-weight: 600; font-size: .875rem; letter-spacing: .18em; text-transform: uppercase; color: var(--pp-steel); }
.pp-divcard--dark .pp-divcard__label { color: var(--pp-mist); }
.pp-divcard__title { font-family: var(--pp-f-head); font-weight: 700; font-size: clamp(1.625rem, 3vw, 2rem); line-height: 1.05; text-transform: uppercase; color: var(--pp-ink); }
.pp-divcard--dark .pp-divcard__title { color: #fff; }
.pp-divcard__text { font-size: 1rem; line-height: 1.6; max-width: 36rem; }
.pp-divcard__link { margin-top: auto; padding-top: 1rem; display: inline-flex; align-items: center; gap: .45em; font-family: var(--pp-f-head); font-weight: 600; font-size: 1.0625rem; letter-spacing: .06em; text-transform: uppercase; color: var(--pp-red-dk); }
.pp-divcard--dark .pp-divcard__link { color: #fff; }
.pp-divcard__link .pp-icon { transition: transform .2s; color: var(--pp-red); }
.pp-divcard:hover .pp-divcard__link .pp-icon { transform: translateX(4px); }

/* About: what we do (comfortable line length) */
.pp-whatwedo { padding-top: 0; }
.pp-whatwedo__inner { display: grid; gap: 1.5rem; }
.pp-whatwedo__body { max-width: 44rem; }
.pp-whatwedo__body p { font-size: 1.0625rem; color: var(--pp-steel); }
.pp-whatwedo__body p:first-child { font-size: clamp(1.125rem, 2vw, 1.3125rem); line-height: 1.55; color: var(--pp-ink); }

@media (min-width: 768px) {
	.pp-divs__grid { grid-template-columns: 1fr 1fr; }
	.pp-glance__item { min-height: 150px; }
}
@media (min-width: 1024px) {
	.pp-whatwedo__inner { grid-template-columns: 1fr 1.6fr; gap: 4rem; align-items: start; }
}

/* Luminous strip: dark blue band, white text (client request, 20 Oct 2026) */
.pp-lumband { --pp-lum: #000088; background: var(--pp-lum); color: #fff; padding: clamp(2rem, 5vw, 2.75rem) 0; }
.pp-lumband__inner { display: grid; gap: 1.25rem; align-items: center; }
.pp-lumband__text { display: flex; gap: 1rem; align-items: flex-start; }
.pp-lumband__text p { margin: 0; font-size: 1.0625rem; line-height: 1.55; color: #fff; max-width: 40rem; }
.pp-lumband__icon { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: rgba(255, 255, 255, .14); }
.pp-lumband__icon .pp-icon { width: 24px; height: 24px; color: #fff; }
.pp-lumband__points { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem 1.5rem; }
.pp-lumband__points li { display: flex; gap: .5em; align-items: center; font-weight: 500; color: #fff; }
.pp-lumband__points .pp-icon { flex: none; width: 1.1em; height: 1.1em; color: #fff; }
.pp .pp-lumband__btn { justify-self: start; color: var(--pp-lum); }
.pp .pp-lumband__btn:hover { background: var(--pp-night); color: #fff; }
@media (min-width: 600px) { .pp-lumband__points { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) {
	.pp-lumband__inner { grid-template-columns: 1.3fr 1.2fr auto; gap: 2.5rem; }
	.pp .pp-lumband__btn { justify-self: end; }
}

/* Division cards: optional points */
.pp-divpoints { list-style: none; margin: .25rem 0 0; padding: 0; display: grid; gap: .35rem; }
.pp-divpoints li { display: flex; gap: .5em; align-items: center; font-size: .9375rem; font-weight: 500; }
.pp-divpoints .pp-icon { flex: none; width: 1em; height: 1em; color: var(--pp-red); }

/* Projects: our scope (two lists) */
.pp-scope { background: var(--pp-paper); }
.pp-scope__intro { max-width: 46rem; font-size: 1.0625rem; color: var(--pp-steel); margin: 0 0 2rem; }
.pp-scope__grid { display: grid; gap: 1.5rem; }
.pp-scope__box { background: #fff; border: 1px solid var(--pp-line); border-top: 3px solid var(--pp-night); border-radius: var(--pp-radius); padding: 1.5rem; }
.pp-scope__title { font-family: var(--pp-f-head); font-weight: 700; font-size: 1.375rem; text-transform: uppercase; line-height: 1.15; margin: 0 0 1rem; color: var(--pp-ink); }
@media (min-width: 600px) { .pp-scope__box .pp-checklist { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .pp-scope__grid { grid-template-columns: 1fr 1.25fr; } }

/* About: story with sub-headings and lists */
.pp-whatwedo__body h3 { font-family: var(--pp-f-head); font-weight: 700; font-size: 1.375rem; text-transform: uppercase; margin: 2rem 0 .75rem; color: var(--pp-ink); }
.pp-whatwedo__body li { color: var(--pp-steel); }
.pp-whatwedo__body strong { color: var(--pp-ink); }

/* Home hero: long two-sentence headline (client text, 20 Oct 2026) */
.pp .pp-hero__title--long { max-width: 22ch; font-size: clamp(2rem, 7.2vw, 3.5rem); line-height: 1.02; }
.pp-hero__title-line { display: block; margin-top: .35em; font-size: .62em; line-height: 1.1; color: var(--pp-red); }

/* Contact: FAQ above the form (client request) */
.pp-faq { margin-bottom: 2rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--pp-line); }
.pp-faq__title { font-size: 1.5rem; text-transform: uppercase; margin: 0 0 .75rem; }
.pp-faq__item { border-top: 1px solid var(--pp-line); }
.pp-faq__item summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 44px; padding: .75rem 0; font-weight: 600; color: var(--pp-ink); cursor: pointer; list-style: none; }
.pp-faq__item summary::-webkit-details-marker { display: none; }
.pp-faq__item summary::after { content: "+"; flex: none; font-size: 1.375rem; line-height: 1; color: var(--pp-red); }
.pp-faq__item[open] summary::after { content: "\2212"; }
.pp-faq__item p { margin: 0 0 1rem; color: var(--pp-steel); }

/* Contact form: file attachment */
.pp-field__hint { margin: .35rem 0 0; font-size: .8125rem; color: var(--pp-steel); }
.pp .pp-field input[type="file"] { padding: .55rem; background: #fff; font-size: .9375rem; cursor: pointer; }
.pp .pp-field input[type="file"]::file-selector-button { margin-right: .75rem; padding: .5rem .9rem; border: 0; border-radius: var(--pp-radius); background: var(--pp-night); color: #fff; font: 600 .875rem var(--pp-f-body); cursor: pointer; }

/* Division colours (client, 22 Oct 2026): Products = dark blue + white text, Projects = white + dark blue text */
.pp .pp-division-card--dark .pp-divpoints li, .pp-divcard--dark .pp-divpoints li { color: #fff; }
.pp-pagehead--light { background-color: #fff; background-image: linear-gradient(rgba(10, 31, 92, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(10, 31, 92, .045) 1px, transparent 1px); color: var(--pp-ink); border-bottom: 1px solid var(--pp-line); }
.pp-pagehead--light .pp-pagehead__title { color: var(--pp-ink); }
.pp-pagehead--light .pp-pagehead__intro { color: var(--pp-steel); }
.pp-pagehead--light .pp-lineart .pp-hero__lines { stroke: rgba(10, 31, 92, .35); }
.pp-pagehead--light .pp-lineart .pp-hero__loads use { stroke: var(--pp-ink); }

/* Luminous logo on Product division pages (client, 22 Oct 2026). ".pp img" sets height:auto, so these need the .pp prefix. */
.pp .pp-lumlogo { display: block; width: auto; height: 30px; margin: 0 0 1.25rem; }
.pp .pp-lumlogo--sm { height: 22px; margin-bottom: .9rem; }
.pp-lumband__text { flex-direction: column; align-items: flex-start; gap: .85rem; }
.pp .pp-lumband__logo { flex: none; height: 26px; margin: 0; }
@media (min-width: 768px) { .pp .pp-lumlogo { height: 36px; } .pp .pp-lumlogo--sm { height: 24px; } .pp .pp-lumband__logo { height: 30px; } }

/* Overseas list: one country per line so long names never break the rows (client, 22 Oct 2026) */
.pp .pp-segments__dark .pp-checklist { grid-template-columns: 1fr; gap: .6rem; }
