/*
 * ProMetal Group - site layer on top of Wavo.
 *
 * Direction: industrial production partner. Dark steel sections alternate with white,
 * real workshop photography carries the page, brand teal marks actions and the
 * signature full stop at the end of headings. Square corners everywhere (radius 0),
 * heavy Onest caps for headings, IBM Plex Sans for reading and data.
 *
 * Shape: sharp. Radius tokens: 0 and 50% (radio buttons, count badge) only.
 */

:root {
	/* colour - from the PMG logo #007665 only */
	--pm-brand: #007665;          /* actions on light backgrounds (white text 5.6:1) */
	--pm-brand-hi: #1fb89e;       /* same hue lifted for dark backgrounds (7.5:1 on --pm-ink) */
	--pm-ink: #0e1314;            /* dark sections, headings */
	--pm-ink-2: #161d1f;          /* raised dark surface */
	--pm-text: #1c2324;           /* body text on light */
	--pm-text-2: #4a5553;         /* secondary text on light (7.4:1) */
	--pm-muted-d: #a7b1af;        /* secondary text on dark (8.6:1) */
	--pm-line: #d7dedc;
	--pm-line-d: rgb(255 255 255 / .14);
	--pm-surface: #ffffff;
	--pm-surface-2: #f2f5f4;
	--pm-danger: #b3261e;

	/* type */
	--pm-font-display: "Onest", "IBM Plex Sans", Arial, sans-serif;
	--pm-font-body: "IBM Plex Sans", Arial, sans-serif;
	--pm-fs-small: .875rem;
	--pm-fs-body: 1rem;
	--pm-fs-lead: clamp(1.02rem, .96rem + .3vw, 1.2rem);
	--pm-fs-h3: clamp(1.1rem, 1rem + .45vw, 1.35rem);
	--pm-fs-h2: clamp(1.9rem, 1.2rem + 3vw, 3.6rem);
	--pm-fs-h1: clamp(2.3rem, 1.2rem + 4.8vw, 5.4rem);
	--pm-lh-body: 1.6;
	--pm-lh-head: 1.02;
	--pm-measure: 64ch;

	/* space */
	--pm-gutter: clamp(16px, 4vw, 48px);
	--pm-max: 1320px;
	--pm-max-wide: 1560px;
	--pm-sec: clamp(64px, 8vw, 128px);
	--pm-sec-s: clamp(48px, 6vw, 88px);
	--pm-hh: 76px;                /* header height */

	/* shape */
	--pm-radius: 0;
	--pm-radius-round: 50%;

	/* motion */
	--pm-ease: cubic-bezier(.2, .7, .2, 1);
	--pm-ease-slide: cubic-bezier(.77, 0, .18, 1);
	--pm-dur: 200ms;
	/* one hover language: buttons fill from the top, tiles zoom 3% + brand line */
	--pm-fill: .5s cubic-bezier(1, 0, .55, 1);
	--pm-hover: .45s cubic-bezier(.2, .7, .2, 1);
}

@media (max-width: 1179px) {
	:root { --pm-hh: 64px; }
}

/* ---------------------------------------------------------------- base */

body.pm-site {
	font-family: var(--pm-font-body);
	font-size: var(--pm-fs-body);
	line-height: var(--pm-lh-body);
	color: var(--pm-text);
	background: var(--pm-surface);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

body.pm-site h1, body.pm-site h2, body.pm-site h3, body.pm-site h4, body.pm-site h5, body.pm-site h6 {
	font-family: var(--pm-font-display);
	color: inherit;
	overflow-wrap: break-word;
	hyphens: manual;
}

/* Elementor kit globals follow the same fonts, so editors pick from one system. */
body.pm-site[class*="elementor-kit-"] {
	--e-global-typography-primary-font-family: "Onest";
	--e-global-typography-secondary-font-family: "Onest";
	--e-global-typography-text-font-family: "IBM Plex Sans";
	--e-global-typography-accent-font-family: "IBM Plex Sans";
	--e-global-color-primary: var(--pm-brand);
	--e-global-color-accent: var(--pm-brand);
}

.pm-site ::selection { background: var(--pm-brand); color: #fff; }

.pm-site :focus-visible {
	outline: 2px solid var(--pm-brand);
	outline-offset: 3px;
}
.pm-dark :focus-visible { outline-color: var(--pm-brand-hi); }

:where(.pm-site) img { max-width: 100%; height: auto; }

/* PM widgets sit edge to edge: no Elementor spacing around them */
.elementor .elementor-widget[class*="elementor-widget-pm-"] { margin: 0; }
.elementor .elementor-widget[class*="elementor-widget-pm-"] > .elementor-widget-container { padding: 0; margin: 0; }
.elementor-section:has(> .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget[class*="elementor-widget-pm-"]) > .elementor-container { max-width: none; }

/* ---------------------------------------------------------------- layout */

.pm-wrap {
	width: 100%;
	max-width: calc(var(--pm-max) + 2 * var(--pm-gutter));
	margin-inline: auto;
	padding-inline: var(--pm-gutter);
	box-sizing: border-box;
}
.pm-wrap--wide { max-width: calc(var(--pm-max-wide) + 2 * var(--pm-gutter)); }

.pm-sec {
	position: relative;
	padding-block: var(--pm-sec);
	box-sizing: border-box;
	isolation: isolate;
}
.pm-sec + .pm-sec:not(.pm-dark):not(.pm-alt) { padding-top: calc(var(--pm-sec) * .75); }
.pm-sec *, .pm-sec *::before, .pm-sec *::after { box-sizing: border-box; }

.pm-dark { background: var(--pm-ink); color: #fff; }
.pm-alt { background: var(--pm-surface-2); }

/* resets carry one class of specificity: they beat Wavo element rules, component rules (later, same or higher) beat them */
.pm-sec :where(ul[role="list"], ol), .pm-footer :where(ul), .pm-header :where(ul) { list-style: none; margin: 0; padding: 0; }
.pm-sec :where(ul[role="list"], ol) > li, .pm-footer :where(li), .pm-header :where(li) { margin: 0; padding: 0; }
.pm-sec :where(ul[role="list"]) > li::before { content: none; }
.pm-sec :where(figure) { margin: 0; }
.pm-sec :where(p) { margin: 0; }

.pm-center { text-align: center; margin-top: clamp(32px, 4vw, 56px); }

/* whole card clickable while keeping one real link */
.pm-stretch::after { content: ""; position: absolute; inset: 0; z-index: 2; }

/* ---------------------------------------------------------------- type */

.pm-eyebrow {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 0 0 18px !important;
	font-family: var(--pm-font-body);
	font-size: .8125rem;
	font-weight: 500;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--pm-text-2);
}
.pm-eyebrow::before {
	content: "";
	flex: 0 0 48px;
	height: 2px;
	background: var(--pm-brand);
}
.pm-dark .pm-eyebrow { color: var(--pm-muted-d); }
.pm-dark .pm-eyebrow::before { background: var(--pm-brand-hi); }

.pm-site .pm-h1, .pm-site .pm-h2, .pm-site .pm-hero__title, .pm-site .pm-cta__title {
	margin: 0;
	font-family: var(--pm-font-display);
	font-weight: 800;
	line-height: var(--pm-lh-head);
	letter-spacing: -.01em;
	text-transform: uppercase;
	color: var(--pm-ink);
	overflow-wrap: break-word;
}
.pm-site .pm-h1 { font-size: var(--pm-fs-h1); }
.pm-site .pm-h2 { font-size: var(--pm-fs-h2); }
.pm-site .pm-dark .pm-h1, .pm-site .pm-dark .pm-h2, .pm-site .pm-dark .pm-hero__title, .pm-site .pm-dark .pm-cta__title { color: #fff; }

.pm-site .pm-h3 {
	margin: 0 0 12px;
	font-family: var(--pm-font-display);
	font-size: var(--pm-fs-h3);
	font-weight: 700;
	line-height: 1.2;
	color: inherit;
}

.pm-dot { color: var(--pm-brand); }
.pm-dark .pm-dot { color: var(--pm-brand-hi); }
.pm-accent { color: var(--pm-brand); }
.pm-dark .pm-accent { color: var(--pm-brand-hi); }

.pm-lead {
	max-width: 60ch;
	margin-top: 20px !important;
	font-size: var(--pm-fs-lead);
	line-height: 1.6;
	color: var(--pm-text-2);
}
.pm-dark .pm-lead { color: var(--pm-muted-d); }

.pm-small { font-size: var(--pm-fs-small); color: var(--pm-text-2); }
.pm-dark .pm-small { color: var(--pm-muted-d); }

.pm-head { margin-bottom: clamp(32px, 4vw, 56px); }
.pm-head--split {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: 24px clamp(24px, 5vw, 80px);
	align-items: end;
}
.pm-head--split .pm-lead { margin-top: 0 !important; }

.pm-prose { max-width: var(--pm-measure); }
.pm-prose > * + * { margin-top: 1em !important; }
.pm-prose p, .pm-prose li { color: var(--pm-text-2); font-size: 1.0625rem; }
.pm-dark .pm-prose p, .pm-dark .pm-prose li { color: var(--pm-muted-d); }
.pm-prose ul { padding-left: 1.2em; list-style: square; }
.pm-prose ul li::marker { color: var(--pm-brand); }
.pm-prose a { color: var(--pm-brand); text-decoration: underline; text-underline-offset: 3px; }
.pm-prose h2, .pm-prose h3 { font-weight: 700; line-height: 1.2; margin-top: 1.6em !important; color: var(--pm-ink); }

/* ---------------------------------------------------------------- buttons */

.pm-actions { display: flex; flex-wrap: wrap; gap: 12px 16px; margin-top: clamp(28px, 3vw, 40px); }

.pm-site .pm-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	min-height: 56px;
	padding: 0 28px;
	border: 1px solid transparent;
	border-radius: var(--pm-radius);
	font-family: var(--pm-font-display);
	font-size: .9375rem;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: .05em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	overflow: hidden;
	isolation: isolate;
	transition: color var(--pm-fill), border-color var(--pm-fill);
}
/* signature hover: a dark fill grows from the top edge (same as the mini cart and login popup buttons) */
.pm-site .pm-btn::before {
	content: "";
	position: absolute;
	inset: -1px;
	z-index: -1;
	transform: scaleY(0);
	transform-origin: top;
	transition: transform var(--pm-fill);
}
.pm-site .pm-btn:hover::before, .pm-site .pm-btn:focus-visible::before { transform: scaleY(1); }
.pm-site .pm-btn .pm-ico { flex: 0 0 auto; transition: transform var(--pm-dur) var(--pm-ease); }
.pm-site .pm-btn:hover .pm-ico { transform: translateX(3px); }
.pm-site .pm-btn--video:hover .pm-ico { transform: none; }

/* solid: brand fill, ink slides in */
.pm-site .pm-btn--solid { background: var(--pm-brand); color: #fff; }
.pm-site .pm-btn--solid::before { background: var(--pm-ink); }
.pm-site .pm-btn--solid:hover, .pm-site .pm-btn--solid:focus-visible { color: #fff; }
.pm-dark .pm-btn--solid { background: var(--pm-brand-hi); color: var(--pm-ink); }
.pm-dark .pm-btn--solid::before { background: #fff; }
.pm-dark .pm-btn--solid:hover, .pm-dark .pm-btn--solid:focus-visible { color: var(--pm-ink); }

/* ghost on light */
.pm-site .pm-btn--ghost { background: transparent; color: var(--pm-ink); border-color: var(--pm-ink); }
.pm-site .pm-btn--ghost::before { background: var(--pm-ink); }
.pm-site .pm-btn--ghost:hover, .pm-site .pm-btn--ghost:focus-visible { color: #fff; }

/* ghost on dark */
.pm-site .pm-btn--light { background: transparent; color: #fff; border-color: rgb(255 255 255 / .7); }
.pm-site .pm-btn--light::before { background: #fff; }
.pm-site .pm-btn--light:hover, .pm-site .pm-btn--light:focus-visible { color: var(--pm-ink); border-color: #fff; }
.pm-site .pm-btn--video .pm-ico {
	width: 32px; height: 32px; padding: 7px;
	border: 1px solid currentColor;
	border-radius: var(--pm-radius-round);
}

.pm-site .pm-btn--sm { min-height: 44px; padding: 0 18px; font-size: .8125rem; gap: 10px; }

.pm-note {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 18px !important;
	font-size: var(--pm-fs-small);
	color: var(--pm-text-2);
}
.pm-dark .pm-note { color: var(--pm-muted-d); }

/* ---------------------------------------------------------------- process chain */

.pm-chain {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 0;
	font-family: var(--pm-font-display);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
}
.pm-chain li { display: inline-flex; align-items: center; }
.pm-chain li:not(:last-child)::after {
	content: "";
	width: 30px;
	height: 12px;
	margin-inline: 14px;
	background: currentColor;
	color: var(--pm-brand);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 12'%3E%3Cpath d='M0 6h28M23 1l5 5-5 5' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 12'%3E%3Cpath d='M0 6h28M23 1l5 5-5 5' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E") center / contain no-repeat;
}
.pm-dark .pm-chain li:not(:last-child)::after { color: var(--pm-brand-hi); }
.pm-chain--hero { margin-top: clamp(20px, 2.5vw, 32px) !important; font-size: clamp(1rem, .85rem + .7vw, 1.5rem); }
.pm-chain--flow { margin-top: 28px !important; font-size: clamp(.95rem, .9rem + .3vw, 1.125rem); row-gap: 14px; }

/* ---------------------------------------------------------------- header */

.pm-skip {
	position: absolute; left: 8px; top: -60px; z-index: 10001;
	padding: 10px 16px; background: #fff; color: var(--pm-ink);
}
.pm-skip:focus { top: 8px; }
#pm-main { position: relative; top: calc(-1 * var(--pm-hh)); }

.pm-header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 1000;
	background: var(--pm-ink);
	color: #fff;
	font-family: var(--pm-font-body);
	border-bottom: 1px solid var(--pm-line-d);
	transition: background-color .3s var(--pm-ease), border-color .3s var(--pm-ease);
}
.pm-has-hero .pm-header {
	position: fixed;
	left: 0;
	right: 0;
	background: transparent;
	border-bottom-color: rgb(255 255 255 / .12);
}
.pm-has-hero .pm-header.is-scrolled, .pm-header.is-open { background: var(--pm-ink); }

.pm-header__bar {
	display: flex;
	align-items: center;
	gap: clamp(16px, 2.4vw, 40px);
	height: var(--pm-hh);
	max-width: calc(var(--pm-max-wide) + 2 * var(--pm-gutter));
	margin-inline: auto;
	padding-inline: var(--pm-gutter);
}

.pm-logo { display: block; flex: 0 0 auto; line-height: 0; }
.pm-logo img { display: block; width: auto; height: 40px; }
.pm-logo span { font: 800 1.25rem/1 var(--pm-font-display); color: #fff; }

.pm-nav { flex: 1 1 auto; min-width: 0; }
.pm-nav__list { display: flex; align-items: center; gap: clamp(14px, 1.8vw, 32px); }
.pm-nav__item { position: relative; display: flex; align-items: center; gap: 4px; }
.pm-header .pm-nav__item > a {
	display: block;
	padding: 26px 0 24px;
	font-size: .9375rem;
	font-weight: 500;
	color: #fff;
	text-decoration: none;
	border-bottom: 2px solid transparent;
	transition: border-color var(--pm-dur) var(--pm-ease), color var(--pm-dur) var(--pm-ease);
}
.pm-header .pm-nav__item > a:hover,
.pm-header .pm-nav__item.is-current > a { border-bottom-color: var(--pm-brand-hi); color: #fff; }
.pm-nav__toggle {
	display: inline-grid; place-items: center;
	width: 24px; height: 24px; padding: 0;
	border: 0; background: none; color: inherit; cursor: pointer;
}
.pm-nav__toggle svg { transition: transform var(--pm-dur) var(--pm-ease); }
.pm-nav__item.is-open > .pm-nav__toggle svg { transform: rotate(180deg); }

.pm-nav__sub {
	position: absolute;
	top: 100%;
	left: -20px;
	min-width: 300px;
	padding: 10px 0 !important;
	background: var(--pm-ink);
	border: 1px solid var(--pm-line-d);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity var(--pm-dur) var(--pm-ease), transform var(--pm-dur) var(--pm-ease), visibility 0s linear var(--pm-dur);
}
.pm-nav .pm-nav__item.has-sub:hover > .pm-nav__sub,
.pm-nav .pm-nav__item.has-sub:focus-within > .pm-nav__sub,
.pm-nav .pm-nav__item.is-open > .pm-nav__sub {
	opacity: 1; visibility: visible; transform: none; transition-delay: 0s;
}
.pm-nav__sub .pm-nav__item > a {
	display: block;
	width: 100%;
	padding: 11px 20px;
	border: 0;
	font-size: .9375rem;
	color: var(--pm-muted-d);
}
.pm-header .pm-nav__sub .pm-nav__item > a:hover,
.pm-header .pm-nav__sub .pm-nav__item.is-current > a { color: #fff; background: var(--pm-ink-2); border: 0; }

.pm-header__tools { display: flex; align-items: center; gap: clamp(12px, 1.6vw, 24px); margin-left: auto; }

.pm-langs { display: flex; align-items: center; font-size: .875rem; }
.pm-langs li + li::before { content: "|"; margin-inline: 8px; color: rgb(255 255 255 / .35); }
.pm-langs a { color: var(--pm-muted-d); text-decoration: none; font-weight: 500; }
.pm-langs a:hover, .pm-langs a[aria-current] { color: #fff; }
.pm-langs a[aria-current] { color: var(--pm-brand-hi); }

.pm-header__icons { display: flex; align-items: center; gap: 4px; }
.pm-icon-btn {
	position: relative;
	display: inline-grid; place-items: center;
	width: 44px; height: 44px;
	color: #fff;
}
.pm-icon-btn:hover { color: var(--pm-brand-hi); }
.pm-cart-count {
	position: absolute; top: 4px; right: 2px;
	min-width: 18px; height: 18px; padding: 0 4px;
	border-radius: var(--pm-radius-round);
	background: var(--pm-brand-hi); color: var(--pm-ink);
	font: 600 11px/18px var(--pm-font-body); text-align: center;
}
.pm-cart-count[hidden] { display: none; }

/* existing Robnety account/cart icons moved in by pm.js */
.pm-header__icons #robnety-header-actions { margin: 0; color: #fff; }

.pm-header .pm-header__cta { margin: 0; }

.pm-burger {
	display: none;
	width: 44px; height: 44px; padding: 0;
	border: 0; background: none; color: #fff; cursor: pointer;
}
.pm-burger__lines { position: relative; display: block; width: 24px; height: 14px; margin: auto; }
.pm-burger__lines i {
	position: absolute; left: 0; right: 0; height: 2px; background: currentColor;
	transition: transform .25s var(--pm-ease), opacity .2s var(--pm-ease);
}
.pm-burger__lines i:nth-child(1) { top: 0; }
.pm-burger__lines i:nth-child(2) { top: 6px; }
.pm-burger__lines i:nth-child(3) { top: 12px; }
.pm-burger[aria-expanded="true"] i:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.pm-burger[aria-expanded="true"] i:nth-child(2) { opacity: 0; }
.pm-burger[aria-expanded="true"] i:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.pm-drawer {
	position: fixed;
	top: calc(var(--pm-hh) + var(--wp-admin--admin-bar--height, 0px));
	left: 0; right: 0; bottom: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 8px var(--pm-gutter) 120px;
	background: var(--pm-ink);
	border-top: 1px solid var(--pm-line-d);
}
.pm-drawer[hidden] { display: none; }
.pm-drawer .pm-nav__list { display: block; }
.pm-drawer .pm-nav__item { flex-wrap: wrap; justify-content: space-between; border-bottom: 1px solid var(--pm-line-d); }
.pm-drawer .pm-nav__item > a {
	flex: 1 1 auto;
	padding: 16px 0;
	font: 700 1.25rem/1.2 var(--pm-font-display);
	text-transform: uppercase;
	color: #fff;
	text-decoration: none;
}
.pm-drawer .pm-nav__toggle { width: 48px; height: 48px; }
.pm-drawer .pm-nav__sub {
	position: static;
	flex: 0 0 100%;
	display: none;
	min-width: 0;
	padding: 0 0 12px !important;
	border: 0;
	opacity: 1; visibility: visible; transform: none;
}
.pm-drawer .pm-nav__item.is-open > .pm-nav__sub { display: block; }
.pm-drawer .pm-nav__sub .pm-nav__item { border: 0; }
.pm-drawer .pm-nav__sub .pm-nav__item > a { padding: 10px 0 10px 16px; font: 500 1rem/1.3 var(--pm-font-body); text-transform: none; color: var(--pm-muted-d); }
.pm-drawer__foot { display: grid; gap: 24px; padding-top: 28px; }
.pm-drawer__foot .pm-btn { width: 100%; }

.pm-contact-lines { display: grid; gap: 6px; }
.pm-contact-lines a { color: inherit; text-decoration: none; font-weight: 500; }
.pm-contact-lines a:hover { color: var(--pm-brand); }
.pm-dark .pm-contact-lines a:hover, .pm-drawer .pm-contact-lines a:hover { color: var(--pm-brand-hi); }
.pm-langs--drawer { font-size: 1rem; }

html.pm-lock, html.pm-lock body { overflow: hidden; }

@media (max-width: 1179px) {
	.pm-nav, .pm-header__tools > .pm-langs { display: none; }
	.pm-burger { display: inline-block; }
	.pm-logo img { height: 34px; }
}
@media (max-width: 560px) {
	.pm-header .pm-header__cta { display: none; }
	.pm-header__tools { gap: 4px; }
}

/* ---------------------------------------------------------------- hero (front page) */

.pm-hero {
	display: flex;
	align-items: center;
	min-height: min(100svh, 920px);
	padding-top: calc(var(--pm-hh) + clamp(40px, 6vw, 88px));
	padding-bottom: clamp(56px, 7vw, 104px);
	overflow: hidden;
	background: var(--pm-ink);
}
.pm-hero__media { position: absolute; inset: 0; z-index: -1; }
.pm-hero__media img, .pm-hero__video {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover; object-position: 70% 50%;
}
/* legibility scrim on the text side only; the photo stays true colour on the right */
.pm-hero__media::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(90deg, rgb(14 19 20 / .94) 0%, rgb(14 19 20 / .78) 38%, rgb(14 19 20 / .18) 72%, rgb(14 19 20 / 0) 100%);
}
.pm-hero__inner { position: relative; }
.pm-hero__kicker {
	display: flex; flex-wrap: wrap; gap: 6px 0;
	margin-bottom: 22px !important;
	font-size: clamp(.75rem, .7rem + .25vw, .9375rem);
	font-weight: 500;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: #d9dfde;
}
.pm-hero__kicker span:not(:last-child)::after { content: "·"; margin-inline: 14px; color: var(--pm-brand-hi); }
.pm-site .pm-hero__title {
	max-width: 13ch;
	font-size: var(--pm-fs-h1);
}
.pm-hero .pm-chain--hero { color: #fff; }

@media (max-width: 767px) {
	.pm-hero { align-items: flex-end; min-height: 88svh; }
	.pm-hero__media img, .pm-hero__video { object-position: 62% 50%; }
	.pm-hero__media::after { background: linear-gradient(0deg, rgb(14 19 20 / .96) 0%, rgb(14 19 20 / .82) 48%, rgb(14 19 20 / .35) 100%); }
	.pm-hero .pm-actions { flex-direction: column; align-items: stretch; }
	.pm-hero .pm-btn { width: 100%; }
}

/* ---------------------------------------------------------------- intro: idea to production */

.pm-intro { overflow: hidden; }
.pm-intro__grid {
	display: grid;
	grid-template-columns: minmax(0, 6fr) minmax(0, 6fr);
	gap: clamp(32px, 5vw, 72px);
	align-items: center;
}
.pm-intro__media { position: relative; align-self: stretch; min-height: 420px; margin-right: calc(-1 * var(--pm-gutter) - max(0px, (100vw - var(--pm-max) - 2 * var(--pm-gutter)) / 2)); }
.pm-intro__media img {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 18%);
	mask-image: linear-gradient(90deg, transparent 0, #000 18%);
}
.pm-steps-img {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 28px;
	margin-top: clamp(32px, 4vw, 48px) !important;
}
.pm-steps-img li { position: relative; }
.pm-steps-img li:not(:last-child)::after {
	content: "";
	position: absolute; top: 34%; right: -24px;
	width: 20px; height: 12px;
	background: var(--pm-brand);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 12'%3E%3Cpath d='M0 6h28M23 1l5 5-5 5' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 12'%3E%3Cpath d='M0 6h28M23 1l5 5-5 5' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E") center / contain no-repeat;
}
.pm-steps-img img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; background: var(--pm-surface-2); }
.pm-steps-img figcaption {
	margin-top: 12px;
	font: 700 .8125rem/1.25 var(--pm-font-display);
	letter-spacing: .06em;
	text-transform: uppercase;
	overflow-wrap: anywhere;
}

@media (max-width: 991px) {
	.pm-intro__grid { grid-template-columns: 1fr; }
	.pm-intro__media { order: -1; min-height: 0; aspect-ratio: 16 / 10; margin: 0 calc(-1 * var(--pm-gutter)); }
	.pm-intro__media img { -webkit-mask-image: linear-gradient(0deg, transparent 0, #000 22%); mask-image: linear-gradient(0deg, transparent 0, #000 22%); }
}
@media (max-width: 560px) {
	.pm-steps-img { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 24px; }
	.pm-steps-img li:nth-child(2)::after { display: none; }
}

/* ---------------------------------------------------------------- service cards */

.pm-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}
.pm-card {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: clamp(300px, 28vw, 400px);
	overflow: hidden;
	background: var(--pm-ink);
	color: #fff;
}
.pm-card__img {
	position: absolute; inset: 0; z-index: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	transition: opacity .3s var(--pm-ease);
}
.pm-card::after {
	content: "";
	position: absolute; inset: 0; z-index: 1;
	background: linear-gradient(0deg, rgb(14 19 20 / .95) 0%, rgb(14 19 20 / .7) 34%, rgb(14 19 20 / 0) 68%);
	pointer-events: none;
}
.pm-card__body { position: relative; z-index: 2; padding: clamp(20px, 2.4vw, 32px); }
.pm-site .pm-card__title {
	margin: 0 0 6px;
	font: 800 clamp(1.25rem, 1rem + .9vw, 1.75rem)/1.05 var(--pm-font-display);
	text-transform: uppercase;
	color: #fff;
}
.pm-card__text { color: #d4dad9; font-size: .9875rem; }
.pm-site .pm-card__link {
	display: inline-flex; align-items: center; gap: 10px;
	margin-top: 14px;
	font: 700 .9375rem/1 var(--pm-font-display);
	color: var(--pm-brand-hi);
	text-decoration: none;
}
.pm-card__link .pm-ico { transition: transform var(--pm-dur) var(--pm-ease); }
.pm-card:focus-within { outline: 2px solid var(--pm-brand-hi); outline-offset: -2px; }
.pm-card .pm-card__link:focus-visible { outline: none; }

@media (max-width: 991px) { .pm-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) {
	.pm-cards { grid-template-columns: 1fr; gap: 8px; }
	.pm-card { min-height: 260px; }
}

/* ---------------------------------------------------------------- capabilities (dark) */

.pm-caps { background: var(--pm-ink); }
.pm-caps__grid {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 6fr);
	gap: clamp(32px, 5vw, 88px);
	align-items: center;
}
.pm-caps__media img { display: block; width: 100%; aspect-ratio: 4 / 3.4; object-fit: cover; }
.pm-caps .pm-h2 { font-size: clamp(1.9rem, 1.2rem + 2.6vw, 3.4rem); }

.pm-media-play { position: relative; display: block; color: #fff; }
.pm-media-play__btn {
	position: absolute; left: 24px; bottom: 24px;
	display: inline-grid; place-items: center;
	width: 64px; height: 64px;
	border: 1.5px solid #fff;
	border-radius: var(--pm-radius-round);
	background: rgb(14 19 20 / .45);
	transition: background-color var(--pm-dur) var(--pm-ease), color var(--pm-dur) var(--pm-ease);
}
.pm-media-play:hover .pm-media-play__btn { background: var(--pm-brand-hi); border-color: var(--pm-brand-hi); color: var(--pm-ink); }

@media (max-width: 991px) {
	.pm-caps__grid { grid-template-columns: 1fr; }
	.pm-caps__media { margin-inline: calc(-1 * var(--pm-gutter)); }
}

/* ---------------------------------------------------------------- works (home selection) */

.pm-works__grid {
	display: grid;
	grid-template-columns: repeat(24, minmax(0, 1fr));
	grid-auto-rows: clamp(220px, 24vw, 380px);
	gap: 12px;
}
.pm-work { position: relative; grid-column: span 8; overflow: hidden; background: var(--pm-ink); }
.pm-work--1 { grid-column: span 10; }
.pm-work--2, .pm-work--3 { grid-column: span 7; }
.pm-work--4 { grid-column: span 9; }
.pm-work--5 { grid-column: span 7; }
.pm-work--6 { grid-column: span 8; }
.pm-work img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: opacity .3s var(--pm-ease); }
.pm-work::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgb(14 19 20 / .88) 0%, rgb(14 19 20 / 0) 42%); pointer-events: none; }
.pm-site .pm-work__label {
	position: absolute; left: 0; right: 0; bottom: 0; z-index: 1;
	display: flex; align-items: center; gap: 12px;
	padding: 20px 24px;
	font-weight: 500;
	color: #fff;
	text-decoration: none;
}
.pm-work__label .pm-ico { flex: 0 0 auto; color: var(--pm-brand-hi); transition: transform var(--pm-dur) var(--pm-ease); }

@media (max-width: 991px) {
	.pm-works__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 260px; }
	.pm-work, .pm-work--1, .pm-work--2, .pm-work--3, .pm-work--4, .pm-work--5, .pm-work--6 { grid-column: span 1; }
	.pm-work--1 { grid-column: span 2; }
}
@media (max-width: 599px) {
	.pm-works__grid { grid-template-columns: 1fr; grid-auto-rows: 240px; gap: 8px; }
	.pm-work--1 { grid-column: span 1; }
}

/* ---------------------------------------------------------------- why (dark, image bleeds left) */

.pm-why { padding-block: 0; overflow: hidden; }
.pm-why__media { position: absolute; inset: 0 48% 0 0; z-index: -1; }
.pm-why__media img { width: 100%; height: 100%; object-fit: cover; }
.pm-why__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: clamp(520px, 44vw, 680px); }
.pm-why__copy { grid-column: 2; align-self: center; padding: var(--pm-sec) 0 var(--pm-sec) clamp(32px, 5vw, 80px); }

.pm-facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 24px 0;
	margin: clamp(32px, 4vw, 48px) 0 0;
}
.pm-facts > div { padding: 4px 20px 4px 0; }
.pm-facts > div + div { padding-left: 20px; border-left: 1px solid var(--pm-line); }
.pm-dark .pm-facts > div + div { border-left-color: var(--pm-line-d); }
.pm-facts dt {
	font: 800 clamp(1.35rem, 1rem + 1.2vw, 2rem)/1.05 var(--pm-font-display);
	color: var(--pm-brand);
}
.pm-dark .pm-facts dt { color: var(--pm-brand-hi); }
.pm-facts dd { margin: 8px 0 0; font-size: .875rem; line-height: 1.4; color: var(--pm-text-2); }
.pm-dark .pm-facts dd { color: var(--pm-muted-d); }

@media (max-width: 991px) {
	.pm-why__media { position: relative; inset: auto; aspect-ratio: 16 / 9; }
	.pm-why__grid { display: block; min-height: 0; }
	.pm-why__copy { padding: var(--pm-sec-s) 0; }
}
@media (max-width: 599px) {
	.pm-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pm-facts > div:nth-child(odd) { padding-left: 0; border-left: 0; }
}

/* ---------------------------------------------------------------- quality (home) */

.pm-quality { overflow: hidden; }
.pm-quality__media { position: absolute; inset: 0 0 0 44%; z-index: -1; }
.pm-quality__media img {
	width: 100%; height: 100%; object-fit: cover;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 28%);
	mask-image: linear-gradient(90deg, transparent 0, #000 28%);
}
.pm-quality__copy { max-width: min(560px, 44vw); }
.pm-quality .pm-certs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 0; }
.pm-quality .pm-certs li:nth-child(odd) { padding-left: 0; border-left: 0; }
@media (max-width: 991px) { .pm-quality__copy { max-width: none; } }

.pm-certs {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 20px 0;
	margin-top: clamp(28px, 3vw, 40px) !important;
}
.pm-certs li { padding-right: 16px; }
.pm-certs li + li { padding-left: 16px; border-left: 1px solid var(--pm-brand); }
.pm-certs strong, .pm-certs a strong { display: block; font: 800 1.125rem/1.15 var(--pm-font-display); color: var(--pm-ink); }
.pm-certs span { display: block; margin-top: 6px; font-size: .875rem; line-height: 1.4; color: var(--pm-text-2); }
.pm-certs a { display: block; text-decoration: none; }
.pm-certs a:hover strong { color: var(--pm-brand); }

@media (max-width: 991px) {
	.pm-quality { padding-top: 0; }
	.pm-quality__media { position: relative; inset: auto; aspect-ratio: 16 / 9; margin-bottom: var(--pm-sec-s); }
	.pm-quality__media img { -webkit-mask-image: linear-gradient(0deg, transparent 0, #000 25%); mask-image: linear-gradient(0deg, transparent 0, #000 25%); }
}
@media (max-width: 599px) {
	.pm-certs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pm-certs li:nth-child(odd) { padding-left: 0; border-left: 0; }
}

/* ---------------------------------------------------------------- logos */

.pm-logos__list { display: flex; flex-wrap: wrap; align-items: center; }
.pm-logos__list li {
	flex: 1 1 140px;
	display: grid; place-items: center;
	min-height: 112px;
	padding: 12px 20px;
}
.pm-logos__list li + li { border-left: 1px solid var(--pm-line); }
.pm-logos__list img {
	display: block;
	width: auto; max-width: 168px; max-height: 76px;
	object-fit: contain;
	filter: grayscale(1) contrast(1.1);
	mix-blend-mode: multiply;
	opacity: .78;
	transition: opacity var(--pm-dur) var(--pm-ease), filter var(--pm-dur) var(--pm-ease);
}

@media (max-width: 767px) {
	.pm-logos__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--pm-line); }
	.pm-logos__list li { min-height: 84px; padding: 10px; border-bottom: 1px solid var(--pm-line); }
	.pm-logos__list li + li { border-left: 0; }
	.pm-logos__list li:not(:nth-child(3n + 1)) { border-left: 1px solid var(--pm-line); }
	.pm-logos__list img { max-width: 96px; max-height: 44px; }
}

/* ---------------------------------------------------------------- CTA band */

.pm-cta { overflow: hidden; }
.pm-cta__media { position: absolute; inset: 0 0 0 34%; z-index: -1; }
.pm-cta__media img {
	width: 100%; height: 100%; object-fit: cover;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 36%);
	mask-image: linear-gradient(90deg, transparent 0, #000 36%);
}
.pm-cta__inner { max-width: calc(var(--pm-max) + 2 * var(--pm-gutter)); }
.pm-site .pm-cta__title { font-size: clamp(2.1rem, 1.2rem + 4vw, 5rem); max-width: 14ch; }
.pm-cta__title span { display: block; }

@media (max-width: 767px) {
	.pm-cta__media { inset: 0; opacity: .35; }
	.pm-cta__media img { -webkit-mask-image: none; mask-image: none; }
}

/* ---------------------------------------------------------------- page hero / service hero */

.pm-phero, .pm-shero { padding-top: calc(var(--pm-sec-s) * .9); padding-bottom: var(--pm-sec-s); }
.pm-has-hero .pm-phero, .pm-has-hero .pm-shero { padding-top: calc(var(--pm-hh) + var(--pm-sec-s) * .8); }
.pm-phero--img { overflow: hidden; }
.pm-phero__media { position: absolute; inset: 0; z-index: -1; }
.pm-phero__media img { width: 100%; height: 100%; object-fit: cover; }
.pm-phero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgb(14 19 20 / .94) 0%, rgb(14 19 20 / .72) 50%, rgb(14 19 20 / .4) 100%); }
.pm-phero .pm-lead { font-size: clamp(1.05rem, 1rem + .35vw, 1.25rem); }

.pm-crumbs { margin-bottom: clamp(20px, 3vw, 36px); font-size: .875rem; color: var(--pm-muted-d); }
.pm-crumbs ol { display: flex; flex-wrap: wrap; gap: 4px 0; list-style: none; margin: 0; padding: 0; }
.pm-crumbs li + li::before { content: "/"; margin-inline: 10px; color: rgb(255 255 255 / .35); }
.pm-crumbs a { color: var(--pm-muted-d); text-decoration: none; }
.pm-crumbs a:hover { color: #fff; }
.pm-crumbs [aria-current] { color: #fff; }
.pm-sec:not(.pm-dark) .pm-crumbs, .pm-sec:not(.pm-dark) .pm-crumbs a { color: var(--pm-text-2); }

.pm-shero__grid {
	display: grid;
	grid-template-columns: minmax(0, 6fr) minmax(0, 6fr);
	gap: clamp(32px, 5vw, 80px);
	align-items: center;
}
.pm-shero .pm-h1 { font-size: clamp(2.1rem, 1.2rem + 3.6vw, 4.4rem); }
.pm-shero__media img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

.pm-ticks { display: grid; gap: 10px; margin-top: 24px !important; }
.pm-ticks li { position: relative; padding-left: 30px; color: #e3e8e7; }
.pm-ticks li::before {
	content: "";
	position: absolute; left: 0; top: .45em;
	width: 16px; height: 9px;
	border-left: 2px solid var(--pm-brand-hi);
	border-bottom: 2px solid var(--pm-brand-hi);
	transform: rotate(-45deg);
}
.pm-sec:not(.pm-dark) .pm-ticks li { color: var(--pm-text); }
.pm-sec:not(.pm-dark) .pm-ticks li::before { border-color: var(--pm-brand); }

.pm-facts--strip {
	margin-top: clamp(40px, 5vw, 72px);
	padding-top: 28px;
	border-top: 1px solid var(--pm-line-d);
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

@media (max-width: 991px) {
	.pm-shero__grid { grid-template-columns: 1fr; }
	.pm-shero__media { order: -1; margin-inline: calc(-1 * var(--pm-gutter)); }
	.pm-shero__media img { aspect-ratio: 16 / 9; }
	.pm-shero .pm-actions { flex-direction: column; align-items: stretch; }
}

/* ---------------------------------------------------------------- video */

.pm-video { background: var(--pm-surface-2); }
.pm-video__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(28px, 5vw, 80px); align-items: center; }
.pm-video__grid .pm-head { margin: 0; }
.pm-video__frame img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.pm-video__frame figcaption { margin-top: 10px; font-size: .875rem; color: var(--pm-text-2); }
@media (max-width: 991px) { .pm-video__grid { grid-template-columns: 1fr; } }

/* ---------------------------------------------------------------- products we can make */

.pm-products__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 16px; }
.pm-products__grid img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; background: var(--pm-surface-2); }
.pm-products__grid figcaption { margin-top: 14px; }
.pm-products__grid figcaption strong { display: block; font: 700 1.0625rem/1.25 var(--pm-font-display); }
.pm-products__grid figcaption span { display: block; margin-top: 4px; font-size: .875rem; color: var(--pm-text-2); }
@media (max-width: 991px) { .pm-products__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 599px) { .pm-products__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 12px; } }
@media (max-width: 991px) { .pm-head--split { grid-template-columns: 1fr; } }

/* ---------------------------------------------------------------- specs / machines */

.pm-specs { background: var(--pm-surface); border-top: 1px solid var(--pm-line); }
.pm-specs__body { display: grid; gap: clamp(40px, 5vw, 72px); }
.pm-machine {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: clamp(24px, 4vw, 64px);
	align-items: start;
}
.pm-machine__media img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: var(--pm-surface-2); }
.pm-machine .pm-h3 { font-size: clamp(1.25rem, 1.05rem + .8vw, 1.75rem); text-transform: uppercase; font-weight: 800; }

.pm-table { width: 100%; border-collapse: collapse; margin: 8px 0 0; font-variant-numeric: tabular-nums; }
.pm-table th, .pm-table td {
	padding: 14px 0;
	border: 0;
	border-bottom: 1px solid var(--pm-line);
	background: none;
	vertical-align: top;
	text-align: left;
	font-size: 1rem;
	line-height: 1.45;
}
.pm-table tr:first-child th, .pm-table tr:first-child td { border-top: 2px solid var(--pm-ink); }
.pm-table th { width: 46%; padding-right: 24px; font-weight: 400; color: var(--pm-text-2); }
.pm-table td { font-weight: 600; color: var(--pm-ink); }
.pm-materials { max-width: 760px; }
.pm-machine .pm-small { margin-top: 12px !important; }

@media (max-width: 767px) {
	.pm-machine { grid-template-columns: 1fr; }
	.pm-table th { width: 52%; }
}

/* ---------------------------------------------------------------- related */

.pm-related { background: var(--pm-surface-2); }
.pm-related__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.pm-related__item { position: relative; background: var(--pm-surface); }
.pm-related__item img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: var(--pm-ink); }
.pm-site .pm-related__item a {
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
	padding: 18px 20px;
	font: 700 1.0625rem/1.2 var(--pm-font-display);
	text-transform: uppercase;
	color: var(--pm-ink);
	text-decoration: none;
}
.pm-related__item .pm-ico { flex: 0 0 auto; color: var(--pm-brand); transition: transform var(--pm-dur) var(--pm-ease); }
@media (max-width: 991px) { .pm-related__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .pm-related__list { grid-template-columns: 1fr; } }

/* ---------------------------------------------------------------- steps (real sequence, numbered) */

.pm-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 32px clamp(20px, 3vw, 40px); counter-reset: pmstep; }
.pm-steps li { counter-increment: pmstep; padding-top: 20px; border-top: 2px solid var(--pm-ink); }
.pm-dark .pm-steps li { border-top-color: var(--pm-brand-hi); }
.pm-steps li::before {
	content: counter(pmstep, decimal-leading-zero);
	display: block;
	margin-bottom: 14px;
	font: 800 .9375rem/1 var(--pm-font-display);
	color: var(--pm-brand);
}
.pm-dark .pm-steps li::before { color: var(--pm-brand-hi); }
.pm-steps p { color: var(--pm-text-2); }
.pm-dark .pm-steps p { color: var(--pm-muted-d); }

/* ---------------------------------------------------------------- idea form */

.pm-idea__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.pm-idea__aside { position: sticky; top: calc(var(--pm-hh) + 24px); padding: clamp(24px, 3vw, 40px); background: var(--pm-surface-2); }
.pm-idea__aside .pm-h3 + * { margin-bottom: 28px !important; }
.pm-mini-steps { display: grid; gap: 12px; counter-reset: pmmini; }
.pm-mini-steps li { counter-increment: pmmini; position: relative; padding-left: 36px; color: var(--pm-text-2); }
.pm-mini-steps li::before { content: counter(pmmini); position: absolute; left: 0; top: 0; font: 800 1rem/1.5 var(--pm-font-display); color: var(--pm-brand); }
.pm-idea .pm-contact-lines a { font-size: 1.125rem; }
.pm-form { margin-top: clamp(28px, 3vw, 40px); }
@media (max-width: 991px) {
	.pm-idea__grid { grid-template-columns: 1fr; }
	.pm-idea__aside { position: static; }
}

/* form fields (CF7 and any .pm-form) */
.pm-fgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.pm-f { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.pm-f--full, .pm-f--hint { grid-column: 1 / -1; }
.pm-f > p { margin: 0; display: contents; }
.pm-f label { font-size: .9375rem; font-weight: 600; color: var(--pm-ink); }
.pm-f .wpcf7-form-control-wrap { display: block; }
.pm-form input[type="text"], .pm-form input[type="email"], .pm-form input[type="tel"], .pm-form input[type="number"],
.pm-form input[type="date"], .pm-form select, .pm-form textarea {
	width: 100%;
	min-height: 52px;
	padding: 12px 14px;
	border: 1px solid #9aa5a3;
	border-radius: var(--pm-radius);
	background: #fff;
	color: var(--pm-ink);
	font: 400 1rem/1.4 var(--pm-font-body);
	box-shadow: none;
	transition: border-color var(--pm-dur) var(--pm-ease);
	-webkit-appearance: none;
	appearance: none;
}
.pm-form select {
	padding-right: 44px;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' fill='none' stroke='%230e1314' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 16px center;
}
.pm-form textarea { min-height: 150px; resize: vertical; }
.pm-form input:focus, .pm-form select:focus, .pm-form textarea:focus { border-color: var(--pm-brand); outline: 2px solid var(--pm-brand); outline-offset: 0; }
.pm-form input::placeholder, .pm-form textarea::placeholder { color: #7a8583; }
.pm-f--file input[type="file"] {
	width: 100%;
	padding: 14px;
	border: 1px dashed #9aa5a3;
	background: var(--pm-surface-2);
	font-size: .9375rem;
	cursor: pointer;
}
.pm-f--file input[type="file"]::file-selector-button {
	margin-right: 12px; padding: 8px 14px;
	border: 1px solid var(--pm-ink); border-radius: 0;
	background: #fff; color: var(--pm-ink);
	font: 600 .875rem/1 var(--pm-font-body);
	cursor: pointer;
}
.pm-f--hint { margin: -8px 0 0 !important; font-size: .875rem; color: var(--pm-text-2); }
.pm-f--consent { font-size: .9375rem; color: var(--pm-text-2); }
.pm-f--consent .wpcf7-list-item { margin: 0; }
.pm-f--consent label { display: flex; gap: 12px; align-items: flex-start; font-weight: 400; color: var(--pm-text-2); }
.pm-f--consent input[type="checkbox"] { flex: 0 0 auto; width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--pm-brand); }
.pm-f--consent a { color: var(--pm-brand); }
.pm-form input[type="submit"].pm-btn, .pm-form .wpcf7-submit {
	min-height: 56px;
	padding: 0 32px;
	border: 0;
	border-radius: var(--pm-radius);
	background: var(--pm-brand);
	color: #fff;
	font: 700 .9375rem/1 var(--pm-font-display);
	letter-spacing: .05em;
	text-transform: uppercase;
	cursor: pointer;
	background: linear-gradient(var(--pm-ink), var(--pm-ink)) no-repeat top / 100% 0%, var(--pm-brand);
	transition: background-size var(--pm-fill);
}
.pm-form .wpcf7-submit:hover, .pm-form .wpcf7-submit:focus-visible { background-size: 100% 100%, auto; }
.pm-form .wpcf7-spinner { vertical-align: middle; }
.pm-form .wpcf7-not-valid { border-color: var(--pm-danger) !important; }
.pm-form .wpcf7-not-valid-tip { margin-top: 6px; font-size: .875rem; color: var(--pm-danger); }
.pm-form .wpcf7-response-output { margin: 20px 0 0 !important; padding: 14px 16px !important; border: 1px solid var(--pm-line) !important; font-size: .9375rem; }
.pm-form .wpcf7 form.sent .wpcf7-response-output { border-color: var(--pm-brand) !important; background: #eef7f5; }
.pm-form .wpcf7 form.invalid .wpcf7-response-output, .pm-form .wpcf7 form.failed .wpcf7-response-output { border-color: var(--pm-danger) !important; }
@media (max-width: 599px) {
	.pm-fgrid { grid-template-columns: 1fr; }
	.pm-form .wpcf7-submit { width: 100%; }
}

/* ---------------------------------------------------------------- gallery */

.pm-filter { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; }
.pm-site .pm-filter__btn {
	min-height: 44px;
	padding: 0 18px;
	border: 1px solid var(--pm-line);
	border-radius: var(--pm-radius);
	background: #fff;
	color: var(--pm-ink);
	font: 500 .9375rem/1 var(--pm-font-body);
	cursor: pointer;
	transition: background-color var(--pm-dur) var(--pm-ease), color var(--pm-dur) var(--pm-ease), border-color var(--pm-dur) var(--pm-ease);
}
.pm-site .pm-filter__btn:hover { border-color: var(--pm-ink); }
.pm-site .pm-filter__btn[aria-pressed="true"] { background: var(--pm-ink); border-color: var(--pm-ink); color: #fff; }
.pm-gallery__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.pm-gallery__grid li[hidden] { display: none; }
.pm-gallery__link { position: relative; display: block; overflow: hidden; background: var(--pm-ink); color: #fff; text-decoration: none; }
.pm-gallery__link img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: opacity .3s var(--pm-ease); }
.pm-gallery__cap {
	position: absolute; left: 0; right: 0; bottom: 0;
	display: grid; gap: 2px;
	padding: 36px 20px 16px;
	background: linear-gradient(0deg, rgb(14 19 20 / .9), rgb(14 19 20 / 0));
}
.pm-gallery__cap strong { font: 700 1.0625rem/1.2 var(--pm-font-display); color: #fff; }
.pm-gallery__cap span { font-size: .8125rem; color: var(--pm-muted-d); }
@media (max-width: 991px) { .pm-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .pm-gallery__grid { grid-template-columns: 1fr; } }

.pm-lightbox {
	width: min(1200px, 94vw);
	max-width: none;
	max-height: 92vh;
	padding: 0;
	border: 0;
	background: transparent;
	overflow: visible;
}
.pm-lightbox::backdrop { background: rgb(8 11 12 / .9); }
.pm-lightbox img, .pm-lightbox video, .pm-lightbox iframe { display: block; width: 100%; max-height: 86vh; object-fit: contain; background: #000; border: 0; }
.pm-lightbox iframe { aspect-ratio: 16 / 9; height: auto; }
.pm-lightbox__close {
	position: absolute; top: -52px; right: 0;
	width: 44px; height: 44px;
	border: 0; background: none; color: #fff; cursor: pointer;
	font-size: 32px; line-height: 1;
}

/* ---------------------------------------------------------------- certificates page */

.pm-certlist { display: grid; gap: clamp(40px, 5vw, 64px); }
.pm-cert {
	display: grid;
	grid-template-columns: minmax(0, 3fr) minmax(0, 7fr);
	gap: clamp(24px, 5vw, 72px);
	align-items: start;
	padding-top: clamp(28px, 3vw, 40px);
	border-top: 1px solid var(--pm-line);
}
.pm-cert__doc { display: block; border: 1px solid var(--pm-line); background: #fff; }
.pm-cert__doc img { display: block; width: 100%; aspect-ratio: 1 / 1.414; object-fit: cover; object-position: top; }
.pm-cert__code { font: 800 clamp(1.5rem, 1.1rem + 1.4vw, 2.4rem)/1.05 var(--pm-font-display); color: var(--pm-brand); margin-bottom: 10px !important; }
.pm-cert__body p + p { margin-top: 12px; }
.pm-cert__body > p:not(.pm-cert__code):not(.pm-small) { max-width: 64ch; color: var(--pm-text-2); }
.pm-cert .pm-btn { margin-top: 24px; }
@media (max-width: 767px) {
	.pm-cert { grid-template-columns: 1fr; }
	.pm-cert__doc { max-width: 260px; }
}

/* ---------------------------------------------------------------- text + media */

.pm-tm__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: clamp(32px, 6vw, 96px); align-items: center; }
.pm-tm--rev .pm-tm__media { order: -1; }
.pm-tm__media img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.pm-tm .pm-h2 { font-size: clamp(1.7rem, 1.2rem + 2.2vw, 3rem); margin-bottom: 24px; }
@media (max-width: 991px) {
	.pm-tm__grid { grid-template-columns: 1fr; }
	.pm-tm__media { order: -1; }
}

/* legacy service content (posts not rebuilt yet) */
.pm-legacy .pm-prose { max-width: 820px; }

/* ---------------------------------------------------------------- footer */

.pm-footer { position: relative; overflow: hidden; padding: clamp(56px, 7vw, 96px) 0 32px; background: #0b0f10; isolation: isolate; }
.pm-footer__media { position: absolute; inset: 0 0 0 50%; z-index: -1; opacity: .4; }
.pm-footer__media img { width: 100%; height: 100%; object-fit: cover; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 45%); mask-image: linear-gradient(90deg, transparent 0, #000 45%); }
.pm-footer__top {
	display: grid;
	grid-template-columns: auto auto 1fr;
	align-items: center;
	gap: 32px clamp(32px, 5vw, 72px);
	padding-bottom: clamp(36px, 4vw, 56px);
	border-bottom: 1px solid var(--pm-line-d);
}
.pm-footer__logo img { display: block; width: auto; height: clamp(48px, 5vw, 72px); }
.pm-footer__logo span { font: 800 1.75rem/1 var(--pm-font-display); color: #fff; }
.pm-footer__contacts {
	display: grid; gap: 10px;
	padding-left: clamp(32px, 5vw, 72px);
	border-left: 1px solid var(--pm-line-d);
	font-style: normal;
	font-size: 1.0625rem;
}
.pm-footer__line { display: flex; align-items: center; gap: 14px; color: #fff; text-decoration: none; }
.pm-footer__line svg { flex: 0 0 auto; color: var(--pm-muted-d); }
a.pm-footer__line:hover { color: var(--pm-brand-hi); }
.pm-footer__req { display: grid; gap: 4px; justify-self: end; font-size: .875rem; color: var(--pm-muted-d); }
.pm-footer__req strong { color: #fff; font-weight: 600; }
.pm-footer__bottom {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
	gap: 20px 40px;
	padding-top: 28px;
}
.pm-footer__nav { display: flex; flex-wrap: wrap; gap: 8px 0; }
.pm-footer__nav li + li::before { content: ""; display: inline-block; width: 1px; height: 18px; margin-inline: clamp(14px, 2vw, 28px); background: var(--pm-line-d); vertical-align: middle; }
.pm-footer__nav a { color: #fff; text-decoration: none; font-size: 1.0625rem; }
.pm-footer__nav a:hover { color: var(--pm-brand-hi); }
.pm-footer__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; }
.pm-footer__legal { display: flex; flex-wrap: wrap; gap: 6px 0; font-size: .9375rem; }
.pm-footer__legal li + li::before { content: "·"; margin-inline: 12px; color: var(--pm-muted-d); }
.pm-footer__legal a { color: var(--pm-muted-d); text-decoration: none; }
.pm-footer__legal a:hover { color: #fff; }
.pm-langs--footer { padding-left: 28px; border-left: 1px solid var(--pm-line-d); font-size: 1rem; }
.pm-langs--footer li + li::before { content: "·"; }
.pm-footer__copy { margin: 32px 0 0; font-size: .8125rem; color: #7f8a88; }

@media (max-width: 991px) {
	.pm-footer__top { grid-template-columns: 1fr; }
	.pm-footer__contacts { padding-left: 0; border-left: 0; }
	.pm-footer__req { justify-self: start; }
	.pm-footer__media { inset: 0; opacity: .18; }
}
@media (max-width: 599px) {
	.pm-footer__nav { display: grid; gap: 12px; }
	.pm-footer__nav li + li::before { display: none; }
	.pm-langs--footer { padding-left: 0; border-left: 0; }
}

/* ---------------------------------------------------------------- Wavo overrides */

/* old hamburger overlay and header are replaced */
.pm-site #navi, .pm-site .topnav, .pm-site #hamenu, .pm-site .hamenu { display: none !important; }

/* inner page hero from Wavo (shop, cart, blog, legal pages): same language as .pm-phero */
.pm-site .page-header {
	padding: clamp(56px, 7vw, 104px) 0 clamp(40px, 5vw, 72px) !important;
	background: var(--pm-ink) !important;
	text-align: left !important;
	min-height: 0 !important;
}
.pm-site .page-header .container { max-width: calc(var(--pm-max) + 2 * var(--pm-gutter)); padding-inline: var(--pm-gutter); }
.pm-site .page-header .text-bg { display: none !important; }
.pm-site .page-header .nt-hero-title, .pm-site .page-header .extra-title {
	margin: 0 !important;
	font: 800 clamp(2rem, 1.2rem + 3.2vw, 4rem)/1.02 var(--pm-font-display) !important;
	letter-spacing: -.01em !important;
	text-transform: uppercase;
	color: #fff !important;
}
.pm-site .page-header .nt-breadcrumbs { justify-content: flex-start !important; margin-top: 16px; }
.pm-site .page-header .nt-breadcrumbs, .pm-site .page-header .nt-breadcrumbs a { font-family: var(--pm-font-body); font-size: .875rem; color: var(--pm-muted-d) !important; }

/* brand colour drift (#017565, #027666, #00705f) unified */
.pm-site .pace .pace-progress { background-color: var(--pm-brand) !important; }
.pm-site .progress-wrap svg.progress-circle path { stroke: var(--pm-brand) !important; }
#robnety-mobile-bar .robnety-mbb-item.is-active, #robnety-mobile-bar .robnety-mbb-item:hover { color: var(--pm-brand) !important; }

/* back-to-top ring clears the Robnety mobile bar */
@media (max-width: 768px) {
	.pm-site .progress-wrap { bottom: calc(82px + env(safe-area-inset-bottom, 0px)) !important; right: 16px !important; }
}

/* Complianz: compact, never covering most of a phone screen */
.pm-site .cmplz-cookiebanner {
	border-radius: 0 !important;
	font-family: var(--pm-font-body) !important;
	box-shadow: 0 1px 2px rgb(0 0 0 / .08), 0 0 0 1px var(--pm-line) !important;
}
.pm-site .cmplz-cookiebanner .cmplz-btn { border-radius: 0 !important; font-family: var(--pm-font-body) !important; font-weight: 600 !important; min-height: 44px; }
.pm-site .cmplz-cookiebanner .cmplz-btn.cmplz-accept { background: var(--pm-brand) !important; border-color: var(--pm-brand) !important; color: #fff !important; }
.pm-site .cmplz-cookiebanner .cmplz-btn.cmplz-deny,
.pm-site .cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences,
.pm-site .cmplz-cookiebanner .cmplz-btn.cmplz-save-preferences { background: #fff !important; border: 1px solid var(--pm-ink) !important; color: var(--pm-ink) !important; }
.pm-site .cmplz-cookiebanner .cmplz-message { font-size: .875rem !important; line-height: 1.5 !important; color: var(--pm-text-2) !important; }
.pm-site .cmplz-cookiebanner .cmplz-links a { color: var(--pm-brand) !important; }
@media (max-width: 768px) {
	.pm-site .cmplz-cookiebanner.cmplz-show {
		left: 8px !important; right: 8px !important; width: auto !important;
		bottom: calc(76px + env(safe-area-inset-bottom, 0px)) !important;
		max-height: 58vh; overflow-y: auto;
		padding: 16px !important;
		grid-template-columns: 1fr !important;
	}
	.pm-site .cmplz-cookiebanner .cmplz-body { max-height: none !important; }
	.pm-site .cmplz-cookiebanner .cmplz-message { font-size: .8125rem !important; }
	.pm-site .cmplz-cookiebanner .cmplz-buttons { flex-direction: row !important; flex-wrap: wrap; gap: 8px !important; }
	.pm-site .cmplz-cookiebanner .cmplz-btn { flex: 1 1 45%; margin: 0 !important; }
	.pm-site .cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences { flex-basis: 100%; }
}

/* ---------------------------------------------------------------- motion */

@media (prefers-reduced-motion: reduce) {
	.pm-site *, .pm-site *::before, .pm-site *::after {
		transition-duration: 1ms !important;
		animation-duration: 1ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
	}
	.pm-hero__video { display: none; }
}

@media print {
	.pm-header, .pm-footer, .pm-drawer { display: none !important; }
	.pm-dark { background: #fff !important; color: #000 !important; }
}

.pm-machine--noimg { grid-template-columns: minmax(0, 1fr); max-width: 860px; }

/* why: facts as a 2 x 2 block next to the photo */
.pm-why .pm-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; }
.pm-why .pm-facts > div { padding: 20px 24px 20px 0; border-left: 0; border-top: 1px solid var(--pm-line-d); }
.pm-why .pm-facts > div:nth-child(even) { padding-left: 24px; border-left: 1px solid var(--pm-line-d); }
.pm-facts dt { white-space: nowrap; }

@media (max-width: 599px) {
	.pm-hero__kicker { letter-spacing: .14em; }
	.pm-hero__kicker span:not(:last-child)::after { margin-inline: 10px; }
}

/* machines without a photo: table and materials side by side */
.pm-specs__body:has(> .pm-machine--noimg) { grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); column-gap: clamp(32px, 5vw, 80px); align-items: start; }
.pm-specs__body:has(> .pm-machine--noimg) .pm-machine--noimg { max-width: none; }

/* ---------------------------------------------------------------- hover system (one language for everything clickable)
 * 1. Buttons: fill slides up from the bottom.
 * 2. Tiles with a photo (service, work, product, related, gallery, shop category): the photo eases in 3%,
 *    a brand line grows along the bottom edge, the arrow moves 4px. Same timing everywhere.
 * 3. Text links: colour changes to brand teal.
 */

.pm-sec ul.pm-wrap { padding-inline: var(--pm-gutter); margin-inline: auto; }

.pm-card, .pm-work, .pm-related__item, .pm-gallery__link, .pm-prods a, .pm-shopcats a { position: relative; overflow: hidden; }
.pm-card__img, .pm-work img, .pm-related__item img, .pm-gallery__link img, .pm-prods img {
	transform: scale(1.001);
	transition: transform var(--pm-hover), opacity var(--pm-hover);
}
.pm-card:hover .pm-card__img, .pm-work:hover img, .pm-related__item:hover img, .pm-gallery__link:hover img, .pm-prods a:hover img { transform: scale(1.03); }

.pm-site .pm-card::before, .pm-site .pm-work::before, .pm-site .pm-related__item::after, .pm-site .pm-gallery__link::after, .pm-site .pm-prods a::after, .pm-site .pm-shopcats a::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	z-index: 3;
	height: 3px;
	background: var(--pm-brand-hi);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--pm-hover);
	pointer-events: none;
}
.pm-site .pm-related__item::after, .pm-site .pm-prods a::after, .pm-site .pm-shopcats a::after { background: var(--pm-brand); }
.pm-site .pm-card:hover::before, .pm-site .pm-work:hover::before, .pm-site .pm-related__item:hover::after, .pm-site .pm-gallery__link:hover::after, .pm-site .pm-prods a:hover::after, .pm-site .pm-shopcats a:hover::after { transform: scaleX(1); }

.pm-card .pm-ico, .pm-work .pm-ico, .pm-related__item .pm-ico, .pm-link-arrow .pm-ico { transition: transform var(--pm-hover); }
.pm-card:hover .pm-ico, .pm-work:hover .pm-ico, .pm-related__item:hover .pm-ico { transform: translateX(4px); }

/* photos read better with a lighter scrim */
.pm-card::after { background: linear-gradient(0deg, rgb(14 19 20 / .92) 0%, rgb(14 19 20 / .55) 32%, rgb(14 19 20 / 0) 60%); }
.pm-work::after { background: linear-gradient(0deg, rgb(14 19 20 / .8) 0%, rgb(14 19 20 / 0) 38%); }

/* logos: calm, reveal colour on hover (linked or not) */
.pm-logos__list img { transition: filter var(--pm-hover), opacity var(--pm-hover); }
.pm-logos__list li:hover img { filter: none; opacity: 1; }

@media (hover: none) {
	.pm-site .pm-card::before, .pm-site .pm-work::before, .pm-site .pm-related__item::after, .pm-site .pm-gallery__link::after, .pm-site .pm-prods a::after, .pm-site .pm-shopcats a::after { display: none; }
}

/* ---------------------------------------------------------------- parameter bar (under the hero) */
.pm-specbar { background: var(--pm-ink-2); border-top: 1px solid var(--pm-line-d); }
.pm-specbar dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; }
.pm-specbar dl > div { padding: 24px 24px 26px 0; }
.pm-specbar dl > div + div { padding-left: 24px; border-left: 1px solid var(--pm-line-d); }
.pm-specbar dt { font: 800 clamp(1.1rem, .9rem + .8vw, 1.6rem)/1.15 var(--pm-font-display); color: #fff; }
.pm-specbar dd { margin: 6px 0 0; font-size: .875rem; color: var(--pm-muted-d); }
@media (max-width: 991px) {
	.pm-specbar dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pm-specbar dl > div:nth-child(3) { padding-left: 0; border-left: 0; }
	.pm-specbar dl > div:nth-child(n + 3) { border-top: 1px solid var(--pm-line-d); }
}

/* service card key parameter */
.pm-site .pm-card__spec { margin-top: 10px !important; font: 600 .8125rem/1.2 var(--pm-font-body); letter-spacing: .04em; text-transform: uppercase; color: #fff; opacity: .9; }

/* ---------------------------------------------------------------- shop teaser */
.pm-shopcats { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 1px solid var(--pm-line); margin-bottom: 32px !important; }
.pm-site .pm-shopcats a { display: block; height: 100%; padding: 18px 20px 20px 0; color: var(--pm-ink); text-decoration: none; }
.pm-site .pm-shopcats li + li a { padding-left: 20px; border-left: 1px solid var(--pm-line); }
.pm-shopcats strong { display: block; font: 700 1.0625rem/1.2 var(--pm-font-display); }
.pm-shopcats span { font-size: .875rem; color: var(--pm-text-2); }
.pm-prods { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.pm-site .pm-prods a { display: flex; flex-direction: column; height: 100%; background: #fff; color: var(--pm-ink); text-decoration: none; }
.pm-prods img, .pm-ph { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; background: #dfe5e3; }
.pm-prods__cat { padding: 16px 18px 0; font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--pm-text-2); }
.pm-prods strong { padding: 4px 18px 0; font: 700 1.0625rem/1.25 var(--pm-font-display); }
.pm-prods__price { margin-top: auto; padding: 12px 18px 18px; font-weight: 600; color: var(--pm-brand); }
.pm-prods__price del { color: var(--pm-text-2); font-weight: 400; margin-right: 6px; }
.pm-prods__price ins { text-decoration: none; }
.pm-shopbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 20px 40px; margin-top: 20px; padding: 24px 28px; }
.pm-shopbar p { font-size: 1.0625rem; }
.pm-shopbar p span { color: var(--pm-muted-d); }
.pm-shopbar .pm-actions { margin: 0; }
@media (max-width: 991px) {
	.pm-prods { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pm-shopcats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pm-shopcats li { border-bottom: 1px solid var(--pm-line); }
	.pm-site .pm-shopcats li:nth-child(odd) a { padding-left: 0; border-left: 0; }
}
@media (max-width: 599px) {
	.pm-prods { gap: 12px; }
	.pm-prods__cat, .pm-prods strong, .pm-prods__price { padding-left: 12px; padding-right: 12px; }
	.pm-shopbar .pm-actions { flex-direction: column; align-items: stretch; width: 100%; }
}

/* ---------------------------------------------------------------- CTA with FAQ */
.pm-cta__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(40px, 6vw, 96px); align-items: end; }
.pm-faq { padding: 8px 28px 12px; background: var(--pm-ink); border: 1px solid var(--pm-line-d); }
.pm-site .pm-faq h3 { margin: 20px 0 4px; font: 500 .8125rem/1 var(--pm-font-body); letter-spacing: .14em; text-transform: uppercase; color: var(--pm-muted-d); }
.pm-faq details { padding: 20px 0; border-top: 1px solid var(--pm-line-d); }
.pm-faq h3 + details { border-top: 0; }
.pm-faq summary { display: flex; justify-content: space-between; gap: 16px; cursor: pointer; list-style: none; font: 700 1.0625rem/1.3 var(--pm-font-display); }
.pm-faq summary::-webkit-details-marker { display: none; }
.pm-faq summary::after { content: "+"; color: var(--pm-brand-hi); font-weight: 400; }
.pm-faq details[open] summary::after { content: "-"; }
.pm-faq p { margin-top: 10px !important; color: var(--pm-muted-d); font-size: .9375rem; }
@media (max-width: 991px) { .pm-cta__grid { grid-template-columns: 1fr; } }

/* logos in one row on desktop */
@media (min-width: 992px) { .pm-logos__list { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); } }

/* ---------------------------------------------------------------- header v1.3: bigger menu, centred in the free space */
:root { --pm-hh: 88px; }
@media (max-width: 1179px) { :root { --pm-hh: 68px; } }
.pm-header__bar { gap: clamp(20px, 2vw, 40px); }
.pm-logo img { height: 42px; }
@media (min-width: 1180px) { .pm-nav { display: flex; justify-content: center; } }
.pm-nav__list { gap: clamp(20px, 2.4vw, 44px); }
.pm-header .pm-nav__item > a {
	padding: 32px 0 30px;
	font: 500 1.0625rem/1 var(--pm-font-body);
	letter-spacing: .005em;
	color: #fff;
}
.pm-nav__sub { top: calc(100% - 1px); }
.pm-nav__sub .pm-nav__item > a { font-size: 1rem !important; padding: 12px 22px !important; }
.pm-header__tools { gap: clamp(14px, 1.4vw, 24px); margin-left: 0; }
.pm-langs { font-size: .8125rem; letter-spacing: .06em; }
.pm-langs li + li::before { margin-inline: 6px; }
.pm-header__icons { gap: 0; padding-left: clamp(8px, 1vw, 16px); border-left: 1px solid var(--pm-line-d); }
.pm-header .pm-header__cta { min-height: 48px; padding: 0 22px; }
.pm-header .pm-nav__item > a { white-space: nowrap; }
@media (max-width: 1520px) and (min-width: 1180px) {
	.pm-nav__list { gap: clamp(16px, 1.6vw, 26px); }
	.pm-header .pm-nav__item > a { font-size: 1rem; }
	.pm-header .pm-header__cta { padding: 0 16px; }
}
@media (max-width: 1360px) and (min-width: 1180px) {
	.pm-header__bar { gap: 18px; }
	.pm-logo img { height: 34px; }
	.pm-header .pm-nav__item > a { font-size: .9375rem; }
	.pm-header .pm-header__cta .pm-ico { display: none; }
}
@media (max-width: 1179px) {
	.pm-logo img { height: 36px; }
	.pm-header__icons { border-left: 0; padding-left: 0; }
	.pm-header__tools { margin-left: auto; }
}
@media (min-width: 1180px) { .pm-nav { padding-right: clamp(8px, 1.5vw, 24px); } }

/* ================================================================ v1.6: Par mums, Kvalitāte, Kontakti, Jaunumi */

/* document previews (policy) sit on paper, whole page visible */
.pm-tm__media.pm-doc { display: block; background: var(--pm-surface-2); padding: clamp(20px, 4vw, 48px); }
.pm-alt .pm-tm__media.pm-doc { background: #fff; }
.pm-tm__media.pm-doc img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; box-shadow: 0 1px 0 var(--pm-line), 0 12px 32px rgb(14 19 20 / .12); transition: transform var(--pm-hover); }
.pm-tm__media.pm-doc:hover img { transform: translateY(-4px); }
.pm-tm .pm-actions { margin-top: 28px; }
.pm-alt .pm-cert__doc { border-color: var(--pm-line); }

/* ---- Kontakti */
.pm-contact__panel { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.pm-contact__info { display: flex; flex-direction: column; padding: clamp(28px, 4.5vw, 64px); background: var(--pm-ink); color: #fff; }
.pm-contact__title { margin: 0 0 clamp(20px, 2.5vw, 32px); font: 800 clamp(1.5rem, 1.1rem + 1.6vw, 2.25rem)/1.08 var(--pm-font-display); letter-spacing: -.01em; text-transform: uppercase; color: #fff; }
.pm-contact__title::after { content: "."; color: var(--pm-brand-hi); }
.pm-contact__text p { margin: 0; padding: 16px 0; border-top: 1px solid var(--pm-line-d); font-size: 1.0625rem; line-height: 1.6; color: #e3e8e7; }
.pm-contact__text p:empty, .pm-contact__text p:blank { display: none; }
.pm-contact__direct { display: grid; gap: 6px; margin: auto 0 0 !important; padding-top: clamp(24px, 3vw, 40px); }
.pm-site .pm-contact__direct a { width: fit-content; font: 700 clamp(1.25rem, 1rem + 1vw, 1.75rem)/1.2 var(--pm-font-display); color: #fff; text-decoration: none; transition: color var(--pm-hover); }
.pm-site .pm-contact__direct a:hover { color: var(--pm-brand-hi); }
.pm-contact .pm-social { display: flex; flex-wrap: wrap; gap: 6px 20px; margin: 24px 0 0 !important; }
.pm-site .pm-contact .pm-social a { font: 600 .8125rem/1 var(--pm-font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--pm-muted-d); text-decoration: none; transition: color var(--pm-hover); }
.pm-site .pm-contact .pm-social a:hover { color: var(--pm-brand-hi); }
.pm-contact__form { background: var(--pm-surface-2); padding: clamp(28px, 4.5vw, 64px); }
.pm-contact__form > .pm-h3 { margin: 0 0 24px; }
.pm-contact__form .wpcf7 .row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; margin: 0; }
.pm-contact__form .wpcf7 [class*="col-"] { width: auto; max-width: none; flex: none; padding: 0; }
.pm-contact__form .wpcf7 .form-group { margin: 0 0 16px; }
.pm-contact__form .wpcf7 p { margin: 0; }
.pm-contact__form .wpcf7 input[type="text"], .pm-contact__form .wpcf7 input[type="email"], .pm-contact__form .wpcf7 input[type="tel"],
.pm-contact__form .wpcf7 select, .pm-contact__form .wpcf7 textarea {
	display: block; width: 100%; box-sizing: border-box; min-height: 52px; margin: 0; padding: 12px 14px;
	border: 1px solid var(--pm-line) !important; border-radius: 0 !important; background: #fff !important; box-shadow: none !important;
	font: 400 1rem/1.5 var(--pm-font-body) !important; color: var(--pm-ink) !important;
	transition: border-color var(--pm-hover);
}
.pm-contact__form .wpcf7 textarea { min-height: 168px; resize: vertical; }
.pm-contact__form .wpcf7 input:hover, .pm-contact__form .wpcf7 select:hover, .pm-contact__form .wpcf7 textarea:hover,
.pm-contact__form .wpcf7 input:focus, .pm-contact__form .wpcf7 select:focus, .pm-contact__form .wpcf7 textarea:focus { border-color: var(--pm-ink) !important; outline: 0; }
.pm-contact__form .wpcf7 ::placeholder { color: var(--pm-text-2); opacity: 1; }
.pm-contact__form .wpcf7-not-valid-tip { margin-top: 6px; font-size: .875rem; color: var(--pm-danger); }
.pm-contact__form .wpcf7-response-output { margin: 16px 0 0 !important; padding: 12px 14px !important; border: 1px solid var(--pm-line) !important; background: #fff; font-size: .9375rem; }
.pm-contact__form .wpcf7-submit { margin-top: 8px; }
.pm-contact__form .pm-note { margin: 20px 0 0; }
.pm-map { line-height: 0; background: var(--pm-surface-2); }
.pm-map iframe, .pm-map .cmplz-placeholder-parent, .pm-map .cmplz-blocked-content-container { display: block; width: 100%; height: clamp(300px, 36vw, 460px); border: 0; }

/* ---- Jaunumi */
.pm-posts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(32px, 4vw, 56px) clamp(20px, 3vw, 40px); }
.pm-post { position: relative; display: flex; flex-direction: column; }
.pm-post--lead { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(24px, 4vw, 56px); align-items: center; padding-bottom: clamp(32px, 4vw, 56px); border-bottom: 1px solid var(--pm-line); }
.pm-post--lead:only-child, .pm-post--lead:last-child { border-bottom: 0; padding-bottom: 0; }
.pm-post__media { position: relative; overflow: hidden; background: var(--pm-surface-2); }
.pm-post__media img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; transition: transform var(--pm-hover); }
.pm-post__media::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--pm-brand); transform: scaleX(0); transform-origin: left; transition: transform var(--pm-hover); }
.pm-post:hover .pm-post__media img { transform: scale(1.03); }
.pm-post:hover .pm-post__media::after { transform: scaleX(1); }
.pm-post__body { padding-top: 20px; }
.pm-post--lead .pm-post__body { padding-top: 0; }
/* a post without a photo keeps the rhythm: a top rule instead of an empty grey box */
.pm-post:not(.pm-post--lead) > .pm-post__body:first-child { border-top: 2px solid var(--pm-ink); }
.pm-post--lead > .pm-post__body:first-child { grid-column: 1 / -1; max-width: 860px; }
.pm-post__meta { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 0 0 10px !important; font: 600 .75rem/1.4 var(--pm-font-body); letter-spacing: .14em; text-transform: uppercase; color: var(--pm-text-2); }
.pm-post__meta span { color: var(--pm-brand); }
.pm-post .pm-h3 { margin: 0 0 10px; }
.pm-post--lead .pm-h3 { font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.25rem); line-height: 1.12; }
.pm-site .pm-post .pm-h3 a { color: var(--pm-ink); text-decoration: none; transition: color var(--pm-hover); }
.pm-site .pm-post:hover .pm-h3 a { color: var(--pm-brand); }
.pm-post__body > p:not(.pm-post__meta) { margin: 0 0 16px; color: var(--pm-text-2); max-width: 60ch; }
.pm-post .pm-card__link { color: var(--pm-brand); }
.pm-pagination { margin-top: clamp(40px, 5vw, 72px); }
.pm-pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.pm-site .pm-pagination .page-numbers { display: inline-grid; place-items: center; min-width: 48px; height: 48px; padding: 0 16px; border: 1px solid var(--pm-line); color: var(--pm-ink); font: 600 .9375rem var(--pm-font-body); text-decoration: none; transition: border-color var(--pm-hover), background-color var(--pm-hover), color var(--pm-hover); }
.pm-site .pm-pagination a.page-numbers:hover { border-color: var(--pm-ink); }
.pm-site .pm-pagination .page-numbers.current { background: var(--pm-ink); border-color: var(--pm-ink); color: #fff; }

/* single post */
.pm-phero--post .pm-h1 { font-size: clamp(1.9rem, 1.2rem + 2.6vw, 3.4rem); line-height: 1.06; max-width: 22ch; text-transform: none; letter-spacing: -.015em; }
.pm-article__wrap { max-width: calc(820px + 2 * var(--pm-gutter)); }
.pm-article__media { margin-bottom: clamp(28px, 4vw, 48px); }
.pm-article__media img { display: block; width: 100%; height: auto; }
.pm-article__body { max-width: none; }
.pm-article__body p, .pm-article__body li { font-size: 1.125rem; line-height: 1.7; }
.pm-article__body img { max-width: 100%; height: auto; }
.pm-article__back { margin-top: clamp(32px, 4vw, 56px) !important; padding-top: 28px; border-top: 1px solid var(--pm-line); }

@media (max-width: 900px) {
	.pm-contact__panel, .pm-post--lead { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
	.pm-posts { grid-template-columns: 1fr; }
	.pm-contact__form .wpcf7 .row { grid-template-columns: 1fr; }
}
.pm-article__body ul, .pm-article__body ol { padding-left: 1.3em; }
.pm-article__body ul li { list-style: square; }
.pm-article__body ol li { list-style: decimal; }

/* homepage shop tiles match the shop archive card: hairline frame, ink price */
.pm-site .pm-prods a { border: 1px solid var(--pm-line); transition: border-color var(--pm-hover), box-shadow var(--pm-hover); }
.pm-site .pm-prods a:hover { border-color: var(--pm-ink); box-shadow: 0 18px 40px -24px rgb(14 19 20 / .45); }
.pm-prods__price { font: 800 1.125rem/1 var(--pm-font-display); color: var(--pm-ink); }

/* ================================================================ fixed header (Pielāgot > ProMetal > Fiksēta galvene)
 * position: fixed on every page - sticky does not hold on phones because Wavo sets overflow on <body>.
 * #pm-main (the empty div right after the header) reserves the header height on pages without a full hero. */
.pm-site .pm-header { position: fixed; left: 0; right: 0; top: var(--wp-admin--admin-bar--height, 0px); }
.pm-site #pm-main { position: static; top: auto; height: calc(var(--pm-hh) + 1px); }
.pm-site.pm-has-hero #pm-main { height: 0; }
/* off: the header stays at the top of the page and scrolls away */
.pm-site.pm-hdr-off .pm-header { position: absolute; }
@media (max-width: 1179px) {
	.pm-site.pm-hdr-desktop .pm-header { position: absolute; }
	/* an open mobile menu always keeps its header in view */
	.pm-site.pm-hdr-desktop .pm-header.is-open, .pm-site.pm-hdr-off .pm-header.is-open { position: fixed; }
}
/* logged-in on a phone: WordPress lets the admin bar scroll away, which would leave a gap above the fixed header */
@media (max-width: 600px) {
	.pm-site.admin-bar #wpadminbar { position: fixed; }
}

/* ================================================================ logos v2: equal cells, no dividers, every logo fits its cell */
.pm-site .pm-logos__list {
	display: grid; grid-template-columns: repeat(8, minmax(0, 1fr));
	align-items: center; gap: 0;
	border-top: 1px solid var(--pm-line); border-bottom: 1px solid var(--pm-line);
}
.pm-site .pm-logos__list li {
	display: grid; place-items: center;
	min-width: 0; min-height: 120px; padding: 24px clamp(10px, 1.4vw, 24px);
	border: 0 !important;
}
.pm-site .pm-logos__list li > a { display: grid; place-items: center; width: 100%; height: 100%; }
.pm-site .pm-logos__list img {
	display: block; width: auto; height: auto;
	max-width: 100%; max-height: 58px;
	object-fit: contain;
}
@media (max-width: 1100px) {
	.pm-site .pm-logos__list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.pm-site .pm-logos__list li { min-height: 96px; padding: 18px 16px; }
}
@media (max-width: 520px) {
	.pm-site .pm-logos__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pm-site .pm-logos__list li { min-height: 84px; }
	.pm-site .pm-logos__list img { max-height: 40px; }
}
/* logos v3: every file is the same 360 x 140 canvas with the mark trimmed, centred and optically sized,
 * so one box size lines them all up */
.pm-site .pm-logos__list li { padding: 16px 4px; min-height: 0; }
.pm-site .pm-logos__list img { width: 100%; max-width: 180px; max-height: none; height: auto; aspect-ratio: 360 / 140; }
@media (max-width: 520px) { .pm-site .pm-logos__list img { max-height: none; max-width: 160px; } }

/* ================================================================ lightbox v2: always in the middle of the screen
 * (a reset removed the dialog's own auto margins, so it sat in the top left corner on a black slab) */
.pm-site dialog.pm-lightbox {
	position: fixed; inset: 0; margin: auto;
	width: fit-content; height: fit-content;
	max-width: 94vw; max-height: 92vh;
	padding: 0; border: 0; background: transparent; overflow: visible;
}
.pm-site dialog.pm-lightbox:not([open]) { display: none; }
.pm-lightbox__body { display: grid; place-items: center; }
.pm-site .pm-lightbox img {
	display: block; width: auto; height: auto;
	max-width: 94vw; max-height: 88vh;
	object-fit: contain; background: #fff;
	box-shadow: 0 24px 64px rgb(0 0 0 / .5);
}
.pm-site .pm-lightbox video, .pm-site .pm-lightbox iframe { width: min(1200px, 94vw); max-height: 88vh; }
.pm-site .pm-lightbox__close {
	position: fixed; top: calc(12px + var(--wp-admin--admin-bar--height, 0px)); right: 16px;
	width: 48px; height: 48px;
	display: grid; place-items: center;
	background: rgb(14 19 20 / .7); color: #fff;
	transition: background-color var(--pm-hover);
}
.pm-site .pm-lightbox__close:hover { background: var(--pm-brand); }

/* product tiles: no dark frame on hover - the photo zoom, teal line and title colour are the hover */
.pm-site .pm-prods a:hover { border-color: var(--pm-line); box-shadow: none; }
