/* ==========================================================================
   Plus Transformer – theme styles
   Design language: precise, engineered, calm. Ink + brand blue, copper accents
   (a nod to copper windings) and a "plus" grid motif from the brand name.
   Colours and fonts come from theme.json presets (editable in Styles).
   ========================================================================== */

:root {
	--pt-ink: var(--wp--preset--color--ink, #0b1724);
	--pt-navy: var(--wp--preset--color--navy, #10283d);
	--pt-brand: var(--wp--preset--color--brand, #1665a3);
	--pt-signal: var(--wp--preset--color--signal, #2fb0e6);
	--pt-copper: var(--wp--preset--color--copper, #c8782e);
	--pt-steel: var(--wp--preset--color--steel, #55677a);
	--pt-line: var(--wp--preset--color--line, #dbe2e8);
	--pt-mist: var(--wp--preset--color--mist, #f1f4f7);
	--pt-section-y: clamp(4rem, 2.6rem + 5.5vw, 7.5rem);
	--pt-radius: 2px;
	--pt-plus-grid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48'%3E%3Cpath d='M24 19v10M19 24h10' stroke='%23ffffff' stroke-opacity='.09' stroke-width='1.2'/%3E%3C/svg%3E");
	--pt-plus-grid-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48'%3E%3Cpath d='M24 19v10M19 24h10' stroke='%230b1724' stroke-opacity='.07' stroke-width='1.2'/%3E%3C/svg%3E");
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
h1, h2, h3, h4 { font-stretch: 108%; text-wrap: balance; }
p { text-wrap: pretty; }
:where(a):focus-visible { outline: 2px solid var(--pt-signal); outline-offset: 3px; }
::selection { background: var(--pt-signal); color: var(--pt-ink); }
img { height: auto; }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}

/* Main wrapper: no gaps between header / sections / footer */
.wp-site-blocks > * + * { margin-block-start: 0; }
.pt-main { margin-block-start: 0; }
.pt-main > * { margin-block-start: 0; }
.pt-main .wp-block-post-content > .alignfull:first-child { margin-block-start: 0; }
.pt-main .wp-block-post-content > * + .alignfull,
.pt-main .wp-block-post-content > .alignfull + * { margin-block-start: 0; }
.pt-page-content > :not(.alignfull):first-child { margin-block-start: var(--pt-section-y); }
.pt-page-content > :not(.alignfull):last-child { margin-block-end: var(--pt-section-y); }

/* ==========================================================================
   Header
   ========================================================================== */
.pt-header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 50;
	background: var(--wp--preset--color--white);
}
.pt-header > * { margin-block-start: 0 !important; }

.pt-topbar {
	background: var(--pt-ink);
	color: rgba(255, 255, 255, .78);
	font-size: .8125rem;
	max-height: 60px;
	overflow: hidden;
	transition: max-height .3s ease;
}
.pt-topbar__inner { min-height: 40px; padding-block: 4px; gap: 8px 24px; }
.pt-topbar .ptc-contact__item a { color: rgba(255, 255, 255, .88); }
.pt-topbar .ptc-lang__list { border-color: rgba(255, 255, 255, .22); }
.pt-topbar .ptc-lang__link { color: rgba(255, 255, 255, .8); padding: .2em .5em; font-size: .75rem; }
.pt-topbar .ptc-lang__item.is-current .ptc-lang__link { background: var(--pt-signal); color: var(--pt-ink); }

.pt-mainbar { border-bottom: 1px solid var(--pt-line); transition: box-shadow .3s ease; }
.pt-mainbar__inner { min-height: 84px; gap: 24px; transition: min-height .3s ease; }
.pt-header.is-scrolled .pt-topbar { max-height: 0; }
.pt-header.is-scrolled .pt-mainbar { box-shadow: 0 10px 30px -22px rgba(11, 23, 36, .5); }
.pt-header.is-scrolled .pt-mainbar__inner { min-height: 70px; }

/* Brand: logo when set, otherwise a typographic wordmark */
.pt-brand { gap: 0; flex-shrink: 0; }
.pt-brand .wp-block-site-logo img { max-height: 54px; width: auto; }
.pt-brand .wp-block-site-logo:has(img[src]) + .wp-block-site-title { display: none; }
.wp-block-site-title { margin: 0; line-height: 1; }
.wp-block-site-title a { display: inline-flex; align-items: center; gap: .55em; font-stretch: 125%; }
.wp-block-site-title a::before {
	content: "";
	flex: none;
	width: 1.6em;
	height: 1.6em;
	background:
		linear-gradient(var(--pt-copper), var(--pt-copper)) center / 14% 62% no-repeat,
		linear-gradient(var(--pt-copper), var(--pt-copper)) center / 62% 14% no-repeat,
		var(--pt-ink);
	border-radius: var(--pt-radius);
}

/* Primary navigation */
.pt-nav-primary { flex: 1; justify-content: flex-end; }
.pt-nav-primary .wp-block-navigation__container { gap: 4px; }
.pt-nav-primary .wp-block-navigation-item__content {
	position: relative;
	padding: .65em .8em;
	color: var(--pt-ink);
	text-decoration: none;
}
.pt-nav-primary > .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: .8em; right: .8em; bottom: .25em;
	height: 2px;
	background: var(--pt-copper);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .25s ease;
}
.pt-nav-primary .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after,
.pt-nav-primary .wp-block-navigation__container > .wp-block-navigation-item:focus-within > .wp-block-navigation-item__content::after,
.pt-nav-primary .wp-block-navigation__container > .current-menu-item > .wp-block-navigation-item__content::after,
.pt-nav-primary .wp-block-navigation__container > .current-menu-ancestor > .wp-block-navigation-item__content::after,
.pt-nav-primary .wp-block-navigation__container > .current-menu-parent > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.pt-nav-primary .current-menu-item > .wp-block-navigation-item__content,
.pt-nav-primary .current-menu-ancestor > .wp-block-navigation-item__content { color: var(--pt-brand); }
.pt-nav-primary .wp-block-navigation__submenu-icon { margin-left: 0; }
.pt-nav-primary .wp-block-navigation-submenu__toggle { padding-right: .2em !important; }

/* Dropdowns */
.pt-nav-primary .wp-block-navigation__submenu-container {
	min-width: 280px !important;
	padding: 10px !important;
	border: 1px solid var(--pt-line) !important;
	border-top: 2px solid var(--pt-copper) !important;
	border-radius: 0 0 var(--pt-radius) var(--pt-radius);
	background: #fff !important;
	box-shadow: 0 24px 48px -28px rgba(11, 23, 36, .45);
}
.pt-nav-primary .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: .7em .85em !important;
	font-size: .875rem;
	font-weight: 500;
	border-radius: var(--pt-radius);
}
.pt-nav-primary .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.pt-nav-primary .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible { background: var(--pt-mist); color: var(--pt-brand); }

/* Mobile overlay menu */
.pt-nav-primary .wp-block-navigation__responsive-container-open { padding: 8px; border: 1px solid var(--pt-line); border-radius: var(--pt-radius); }
.pt-nav-primary .wp-block-navigation__responsive-container.is-menu-open { background: var(--pt-ink) !important; color: #fff !important; padding: clamp(1rem, 5vw, 2.5rem) !important; }
.pt-nav-primary .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3rem; }
.pt-nav-primary .is-menu-open .wp-block-navigation__container { gap: 0 !important; width: 100%; }
.pt-nav-primary .is-menu-open .wp-block-navigation-item { width: 100%; }
.pt-nav-primary .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	display: block; width: 100%; padding: .9em 0 !important; color: #fff; font-size: 1.25rem; font-weight: 600;
	border-bottom: 1px solid rgba(255, 255, 255, .12);
}
.pt-nav-primary .is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; background: transparent !important; box-shadow: none; padding: .25em 0 .75em 1em !important; min-width: 0 !important; }
.pt-nav-primary .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { color: rgba(255, 255, 255, .78) !important; font-size: 1rem; padding: .45em 0 !important; }
.pt-nav-primary .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: transparent; color: #fff !important; }
.pt-nav-primary .is-menu-open .wp-block-navigation__responsive-container-close { color: #fff; }

.pt-header-cta .ptc-btn { white-space: nowrap; }

@media (max-width: 1100px) {
	.pt-nav-primary .wp-block-navigation-item__content { padding-inline: .55em; }
}
@media (max-width: 781px) {
	.pt-header-cta { display: none; }
	.pt-mainbar__inner { min-height: 68px; }
	.pt-topbar .ptc-contact__item:nth-child(2) { display: none; }
}

/* ==========================================================================
   Sections & typography helpers
   ========================================================================== */
.pt-section { padding-block: var(--pt-section-y); }
.pt-section--tight { padding-block: clamp(2.5rem, 2rem + 2vw, 3.5rem); }
.pt-section--mist { background: var(--pt-mist); }
.pt-section--dark {
	background: var(--pt-ink) var(--pt-plus-grid);
	color: rgba(255, 255, 255, .86);
}
.pt-section--dark :is(h1, h2, h3, h4) { color: #fff; }
.pt-section--dark a:not(.ptc-btn):not(.wp-block-button__link) { color: var(--pt-signal); }
.pt-section > * + * { margin-block-start: clamp(2rem, 1.5rem + 2vw, 3.5rem); }

.pt-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .7em;
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: .75rem !important;
	font-weight: 600;
	font-stretch: 112%;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--pt-brand);
}
.pt-eyebrow::before {
	content: "";
	width: 11px; height: 11px; flex: none;
	background:
		linear-gradient(var(--pt-copper), var(--pt-copper)) center / 100% 2px no-repeat,
		linear-gradient(var(--pt-copper), var(--pt-copper)) center / 2px 100% no-repeat;
}
.pt-section--dark .pt-eyebrow, .pt-hero .pt-eyebrow, .pt-page-hero .pt-eyebrow { color: var(--pt-signal); }

.pt-lead { font-size: var(--wp--preset--font-size--large); line-height: 1.6; color: var(--pt-steel); }
.pt-section--dark .pt-lead, .pt-hero .pt-lead { color: rgba(255, 255, 255, .78); }

.pt-section > .pt-section-head,
.pt-section > .wp-block-buttons,
.pt-section > .pt-chips { max-width: var(--wp--style--global--wide-size, 1240px) !important; }
.pt-section-head > * { max-width: 780px; }
.pt-section-head > * { margin-block: 0; }
.pt-section-head > * + * { margin-block-start: 1rem; }
.pt-section-head h2 { margin-top: .9rem; }

.pt-statement {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.375rem, 1.1rem + 1.1vw, 2rem);
	font-weight: 450;
	line-height: 1.45;
	letter-spacing: -.01em;
	color: var(--pt-ink);
	padding-left: clamp(1rem, 3vw, 2rem);
	border-left: 3px solid var(--pt-copper);
}

/* Grids built from Group blocks (editable, no custom HTML) */
.pt-grid { display: grid !important; gap: 24px; grid-template-columns: repeat(var(--pt-cols, 3), minmax(0, 1fr)); }
.pt-grid > * { margin: 0 !important; }
.pt-grid--2 { --pt-cols: 2; }
.pt-grid--3 { --pt-cols: 3; }
.pt-grid--4 { --pt-cols: 4; }
@media (max-width: 1024px) { .pt-grid--4 { --pt-cols: 2; } }
@media (max-width: 860px) { .pt-grid--3 { --pt-cols: 2; } }
@media (max-width: 600px) { .pt-grid { --pt-cols: 1 !important; } }

.pt-split { gap: clamp(2rem, 5vw, 5rem) !important; align-items: center; }
.pt-narrow { max-width: 820px; margin-inline: auto; }

/* Feature cards */
.pt-feature {
	position: relative;
	padding: 32px 28px;
	background: #fff;
	border: 1px solid var(--pt-line);
	transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.pt-feature:hover { border-color: var(--pt-brand); transform: translateY(-3px); box-shadow: var(--wp--preset--shadow--soft); }
.pt-feature > * { margin-block: 0; }
.pt-feature > * + * { margin-block-start: .75rem; }
.pt-feature h3 { font-size: 1.125rem; }
.pt-feature p:not(.pt-feature__num) { color: var(--pt-steel); font-size: .9375rem; }
.pt-feature .wp-block-image { margin: -32px -28px 20px !important; background: var(--pt-mist); }
.pt-feature .wp-block-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.pt-feature__num, .pt-step__num {
	font-family: var(--wp--preset--font-family--display);
	font-size: .8125rem !important;
	font-weight: 700;
	letter-spacing: .12em;
	color: var(--pt-copper);
}

/* Production steps: numbered rail */
.pt-steps { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--pt-line); counter-reset: step; }
.pt-steps > * { margin: 0 !important; }
.pt-step { position: relative; padding: 32px 28px 36px 0; border-bottom: 1px solid var(--pt-line); }
.pt-step:not(:nth-child(3n)) { border-right: 1px solid var(--pt-line); }
.pt-step:nth-child(3n+2), .pt-step:nth-child(3n) { padding-left: 28px; }
.pt-step > * { margin-block: 0; }
.pt-step > * + * { margin-block-start: .7rem; }
.pt-step h3 { font-size: 1.1875rem; }
.pt-step p:not(.pt-step__num) { color: var(--pt-steel); font-size: .9375rem; }
.pt-step::before {
	content: "";
	position: absolute; top: -1px; left: 0;
	width: 48px; height: 2px;
	background: var(--pt-copper);
}
.pt-step:nth-child(3n+2)::before, .pt-step:nth-child(3n)::before { left: 28px; }
.pt-steps--media .wp-block-image { margin-bottom: 18px !important; }
.pt-steps--media .wp-block-image img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
@media (max-width: 860px) {
	.pt-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pt-step, .pt-step:nth-child(n) { padding: 28px 20px 30px 0; border-right: 0; }
	.pt-step:nth-child(2n) { padding-left: 20px; border-left: 1px solid var(--pt-line); }
	.pt-step:nth-child(n)::before { left: 0; }
	.pt-step:nth-child(2n)::before { left: 20px; }
}
@media (max-width: 600px) {
	.pt-steps { grid-template-columns: 1fr; }
	.pt-step:nth-child(n) { padding: 24px 0; border-left: 0; }
	.pt-step:nth-child(n)::before { left: 0; }
}

/* Panels (dark and light contexts) */
.pt-panel, .is-style-pt-panel {
	padding: 32px 28px;
	background: #fff;
	border: 1px solid var(--pt-line);
}
.pt-panel > * { margin-block: 0; }
.pt-panel > * + * { margin-block-start: 1rem; }
.pt-panel .wp-block-image { margin: -32px -28px 8px !important; }
.pt-panel .wp-block-image img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.pt-section--dark .pt-panel { background: rgba(255, 255, 255, .04); border-color: rgba(255, 255, 255, .12); }

/* Lists */
.pt-checks, .is-style-pt-checks { list-style: none; padding-left: 0; display: grid; gap: .65em; }
.pt-checks li, .is-style-pt-checks li { position: relative; padding-left: 1.7em; }
.pt-checks li::before, .is-style-pt-checks li::before {
	content: "";
	position: absolute; left: 0; top: .5em;
	width: .75em; height: .75em;
	background:
		linear-gradient(var(--pt-copper), var(--pt-copper)) center / 100% 2px no-repeat,
		linear-gradient(var(--pt-copper), var(--pt-copper)) center / 2px 100% no-repeat;
}
.pt-chips { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.pt-chips li {
	padding: .45em .9em;
	font-family: var(--wp--preset--font-family--display);
	font-size: .8125rem;
	font-weight: 600;
	letter-spacing: .04em;
	border: 1px solid var(--pt-line);
	background: #fff;
	border-radius: var(--pt-radius);
}
.pt-section--dark .pt-chips li { background: transparent; border-color: rgba(255, 255, 255, .25); color: #fff; }

/* Link cards */
.pt-link-card {
	position: relative;
	padding: 28px;
	background: #fff;
	border: 1px solid var(--pt-line);
	border-top: 3px solid var(--pt-ink);
	transition: border-color .25s ease, transform .25s ease;
}
.pt-link-card:hover, .pt-link-card:focus-within { border-top-color: var(--pt-copper); transform: translateY(-2px); }
.pt-link-card > * { margin-block: 0; }
.pt-link-card > * + * { margin-block-start: .6rem; }
.pt-link-card h3 { font-size: 1.1875rem; }
.pt-link-card h3 a { color: var(--pt-ink); text-decoration: none; }
.pt-link-card h3 a::after { content: ""; position: absolute; inset: 0; }
.pt-link-card h3 a:focus-visible { outline: none; }
.pt-link-card:focus-within { outline: 2px solid var(--pt-signal); outline-offset: 2px; }
.pt-link-card p { color: var(--pt-steel); font-size: .9375rem; }
.pt-link-card p a { position: relative; z-index: 1; }
.pt-placeholder-card { border-style: dashed; border-top-style: solid; }

/* Stats */
.pt-stats { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
.pt-stats > * { margin: 0 !important; }
.pt-stat { padding: 26px 24px 26px 0; }
.pt-stat + .pt-stat { padding-left: 24px; border-left: 1px solid rgba(255, 255, 255, .14); }
.pt-stat > * { margin: 0; }
.pt-stat__value {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.625rem) !important;
	font-weight: 650;
	font-stretch: 112%;
	line-height: 1;
	color: #fff;
}
.pt-stat__label { margin-top: .55rem !important; font-size: .875rem; color: rgba(255, 255, 255, .66); }
.pt-stats--light .pt-stat + .pt-stat { border-left-color: var(--pt-line); }
.pt-stats--light .pt-stat__value { color: var(--pt-ink); }
.pt-stats--light .pt-stat__label { color: var(--pt-steel); }
@media (max-width: 860px) {
	.pt-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pt-stat:nth-child(odd) { padding-left: 0 !important; border-left: 0 !important; }
	.pt-stat:nth-child(n+3) { border-top: 1px solid rgba(255, 255, 255, .14); }
	.pt-stats--light .pt-stat:nth-child(n+3) { border-top-color: var(--pt-line); }
}

/* Images */
.pt-media img, .pt-drawing img { width: 100%; }
.pt-media { position: relative; margin: 0; }
.pt-media img { aspect-ratio: 4 / 5; object-fit: cover; }
.pt-media::after {
	content: "";
	position: absolute; right: -14px; bottom: -14px;
	width: 38%; height: 38%;
	border-right: 3px solid var(--pt-copper);
	border-bottom: 3px solid var(--pt-copper);
	pointer-events: none;
}
.pt-drawing { background: #fff; border: 1px solid var(--pt-line); padding: 16px; }

/* Placeholder notes for missing content */
.pt-placeholder-note {
	padding: 18px 22px;
	border: 1.5px dashed var(--pt-copper);
	background: #fdf6ef;
	color: #6b3d12;
	font-size: .9375rem;
}
.pt-placeholder-note > * { margin: 0; }

/* Tables */
.wp-block-table.pt-table, .wp-block-table.is-style-pt-spec { overflow-x: auto; }
.wp-block-table.pt-table table, .wp-block-table.is-style-pt-spec table { border-collapse: collapse; width: 100%; }
.wp-block-table.pt-table :is(th, td), .wp-block-table.is-style-pt-spec :is(th, td) { padding: 12px 16px; border: 0; border-bottom: 1px solid var(--pt-line); text-align: left; }
.wp-block-table.pt-table thead th, .wp-block-table.is-style-pt-spec thead th {
	background: var(--pt-ink); color: #fff;
	font-family: var(--wp--preset--font-family--display); font-size: .8125rem; letter-spacing: .08em; text-transform: uppercase;
	border-bottom: 0;
}
.wp-block-table.pt-table tbody tr:nth-child(even), .wp-block-table.is-style-pt-spec tbody tr:nth-child(even) { background: var(--pt-mist); }

/* Buttons (core) */
.wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: var(--pt-brand); border-color: currentColor; }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--pt-brand); color: #fff; border-color: var(--pt-brand); }
.pt-section--dark .wp-block-button:not(.is-style-outline) > .wp-block-button__link,
.pt-hero .wp-block-button:not(.is-style-outline) > .wp-block-button__link { background: #fff; color: var(--pt-ink); border-color: #fff; }
.pt-section--dark .wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover,
.pt-hero .wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover { background: var(--pt-signal); border-color: var(--pt-signal); }
.pt-section--dark .wp-block-button.is-style-outline > .wp-block-button__link,
.pt-hero .wp-block-button.is-style-outline > .wp-block-button__link { color: #fff; border-color: rgba(255, 255, 255, .5); }
.pt-section--dark .wp-block-button.is-style-outline > .wp-block-button__link:hover,
.pt-hero .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #fff; color: var(--pt-ink); border-color: #fff; }
.pt-section--dark .ptc-btn--outline, .pt-product-hero .ptc-btn--outline { --_bg: #fff; border-color: rgba(255, 255, 255, .5); }
.pt-section--dark .ptc-btn--outline:hover, .pt-product-hero .ptc-btn--outline:hover { color: var(--pt-ink); }

/* ==========================================================================
   Home hero
   ========================================================================== */
.pt-hero {
	position: relative;
	padding-block: clamp(4rem, 3rem + 5vw, 7.5rem) 0;
	background:
		radial-gradient(1200px 520px at 85% -10%, rgba(47, 176, 230, .16), transparent 60%),
		var(--pt-plus-grid),
		linear-gradient(180deg, var(--pt-ink) 0%, var(--pt-navy) 100%);
	color: #fff;
	overflow: hidden;
}
.pt-hero > * { margin-block-start: 0; }
.pt-hero__cols { align-items: center !important; gap: clamp(2rem, 5vw, 5rem) !important; }
.pt-hero__text > *, .pt-hero__cols .wp-block-column > * { margin-block: 0; }
.pt-hero__text > * + *, .pt-hero__cols .wp-block-column > * + * { margin-block-start: 1.5rem; }
.pt-hero__title {
	color: #fff;
	font-size: clamp(2.5rem, 1.6rem + 3.8vw, 4.75rem) !important;
	font-stretch: 112%;
	font-weight: 650;
	line-height: 1.02;
	letter-spacing: -.025em;
	max-width: 14ch;
}
.pt-hero__title em { font-style: normal; color: var(--pt-copper); }
.pt-hero .pt-lead { max-width: 58ch; }
.pt-hero__image { position: relative; margin: 0; }
.pt-hero__image img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; }
.pt-hero__image::before {
	content: "";
	position: absolute; left: -16px; top: -16px;
	width: 40%; height: 40%;
	border-left: 3px solid var(--pt-copper);
	border-top: 3px solid var(--pt-copper);
}
.pt-hero .pt-stats {
	margin-block-start: clamp(3rem, 2rem + 4vw, 5.5rem) !important;
	border-top: 1px solid rgba(255, 255, 255, .14);
}

/* ==========================================================================
   Inner page hero
   ========================================================================== */
.pt-page-hero {
	padding-block: clamp(2.75rem, 2rem + 3vw, 4.75rem);
	background:
		var(--pt-plus-grid),
		linear-gradient(120deg, var(--pt-ink) 0%, var(--pt-navy) 70%, #12385a 100%);
	color: rgba(255, 255, 255, .8);
}
.pt-page-hero__inner > * { margin-block: 0; }
.pt-page-hero__inner > * + * { margin-block-start: 1rem; }
.pt-page-hero__title { color: #fff; font-size: clamp(2.125rem, 1.6rem + 2.4vw, 3.5rem) !important; max-width: 22ch; }
.pt-page-hero .ptc-breadcrumbs { color: rgba(255, 255, 255, .8); }
.pt-page-hero__lead, .pt-page-hero__meta { max-width: 62ch; color: rgba(255, 255, 255, .75); }

/* ==========================================================================
   Product page
   ========================================================================== */
.pt-product-hero {
	padding-block: clamp(2.75rem, 2rem + 3vw, 5rem);
	background: var(--pt-plus-grid), linear-gradient(135deg, var(--pt-ink), var(--pt-navy));
	color: rgba(255, 255, 255, .82);
}
.pt-product-hero__cols { align-items: center !important; gap: clamp(2rem, 5vw, 4.5rem) !important; }
.pt-product-hero__text > * { margin-block: 0; }
.pt-product-hero__text > * + * { margin-block-start: 1.25rem; }
.pt-product-hero__title { color: #fff; font-size: clamp(2rem, 1.4rem + 2.6vw, 3.5rem) !important; overflow-wrap: anywhere; hyphens: auto; }
.pt-product-hero__terms { font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 600; }
.pt-product-hero__terms a { color: var(--pt-signal); text-decoration: none; }
.pt-product-hero__lead { font-size: var(--wp--preset--font-size--large); color: rgba(255, 255, 255, .78); max-width: 60ch; }
.pt-product-hero .ptc-breadcrumbs { color: rgba(255, 255, 255, .8); }
.pt-product-hero .ptc-facts { --ptc-facts-bg: rgba(11, 23, 36, .55); background: rgba(255, 255, 255, .14); border-color: rgba(255, 255, 255, .14); color: #fff; }
.pt-product-hero .wp-block-post-featured-image { margin: 0; background: #fff; }
.pt-product-hero .wp-block-post-featured-image img { object-fit: contain !important; padding: 6%; background: #fff; }
.pt-product-hero .ptc-featured-placeholder { background: rgba(255, 255, 255, .06); color: rgba(255, 255, 255, .7); border: 1px solid rgba(255, 255, 255, .14); }
.pt-product-body > .wp-block-post-content > * + * { margin-block-start: 1.25rem; }
.pt-product-body .pt-section-head { margin-block-start: var(--pt-section-y); }
.pt-product-body .pt-grid { margin-block-start: 2rem; }
.pt-product-body .wp-block-table.pt-table { margin-block-start: 1.25rem; }
.pt-product-body h2:not(.pt-section-head h2) { margin-block-start: var(--pt-section-y); }

/* ==========================================================================
   CTA band
   ========================================================================== */
.pt-section--cta { background: var(--pt-brand) var(--pt-plus-grid); }
.pt-cta { display: grid !important; grid-template-columns: minmax(0, 1.6fr) auto; align-items: center; gap: 32px; }
.pt-cta > * { margin: 0 !important; }
.pt-cta__text > * { margin-block: 0; }
.pt-cta__text > * + * { margin-block-start: .8rem; }
.pt-cta__text .pt-eyebrow { color: #fff; }
.pt-cta__text .pt-eyebrow::before { filter: brightness(1.4); }
.pt-cta__text .pt-lead { color: rgba(255, 255, 255, .85); max-width: 60ch; }
.pt-cta__actions { gap: 12px; }
@media (max-width: 860px) { .pt-cta { grid-template-columns: 1fr; } }

/* ==========================================================================
   Footer
   ========================================================================== */
.pt-footer-part { margin-block-start: 0 !important; }
.pt-footer {
	padding-block: clamp(3.5rem, 2.5rem + 4vw, 5.5rem) 1.5rem;
	background: var(--pt-ink);
	color: rgba(255, 255, 255, .7);
	font-size: .9375rem;
}
.pt-footer a { color: rgba(255, 255, 255, .82); text-decoration: none; }
.pt-footer a:hover, .pt-footer a:focus-visible { color: #fff; text-decoration: underline; }
.pt-footer__grid { display: grid !important; grid-template-columns: 1.5fr 1fr 1fr 1.1fr; gap: 40px; }
.pt-footer__grid > * { margin: 0 !important; }
.pt-footer__brand > * + * { margin-block-start: 1.25rem; }
.pt-footer .wp-block-site-title { color: #fff; }
.pt-footer .ptc-about { max-width: 42ch; }
.pt-footer__title {
	margin: 0 0 1.1rem;
	font-size: .75rem !important;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: #fff;
}
.pt-footer .wp-block-navigation { font-family: var(--wp--preset--font-family--body); font-size: .9375rem; font-weight: 400; }
.pt-footer .wp-block-navigation__container { gap: .55rem !important; }
.pt-footer .wp-block-navigation-item__content { padding: 0; }
.pt-footer .ptc-icon { color: var(--pt-copper); }
.pt-footer .ptc-social a { border-color: rgba(255, 255, 255, .25); }
.pt-footer__bottom {
	margin-block-start: clamp(2.5rem, 2rem + 2vw, 4rem) !important;
	padding-top: 1.5rem;
	border-top: 1px solid rgba(255, 255, 255, .12);
	font-size: .8125rem;
	gap: 12px;
}
.pt-footer__bottom p { margin: 0; }
.pt-footer .ptc-lang__list { border-color: rgba(255, 255, 255, .22); }
.pt-footer .ptc-lang__item.is-current .ptc-lang__link { background: #fff; color: var(--pt-ink); }
@media (max-width: 960px) { .pt-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .pt-footer__grid { grid-template-columns: 1fr; } }

/* ==========================================================================
   Misc templates
   ========================================================================== */
.pt-post-card > * + * { margin-block-start: .6rem; }
.pt-post-card__date { font-size: .8125rem; color: var(--pt-steel); }
.pt-404 { text-align: center; }
.pt-404 > * { margin-inline: auto; }
.pt-404__code {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(4rem, 3rem + 6vw, 8rem);
	font-weight: 700;
	font-stretch: 125%;
	line-height: 1;
	color: var(--pt-copper);
}
.pt-search { max-width: 520px; }
.ptc-form-wrap { background: #fff; padding: clamp(1.5rem, 1rem + 2vw, 2.5rem); border: 1px solid var(--pt-line); }
.pt-section--mist .ptc-contact--cards .ptc-contact__item { background: #fff; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
	.pt-feature:hover, .pt-link-card:hover { transform: none; }
}

/* Mobile overlay: left-align every level */
.pt-nav-primary .is-menu-open .wp-block-navigation__responsive-container-content,
.pt-nav-primary .is-menu-open .wp-block-navigation__container,
.pt-nav-primary .is-menu-open .wp-block-navigation-item,
.pt-nav-primary .is-menu-open .wp-block-navigation__submenu-container {
	align-items: flex-start !important;
	justify-content: flex-start !important;
	text-align: left;
}
.pt-nav-primary .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { width: 100%; }
