/* ================================================================
   ПНП – Пегас Premium · Design system
   Standalone CSS, no framework, no external font dependency.
   ================================================================ */

:root {
	--ink: #0a0d10;
	--ink-2: #11161b;
	--ink-3: #181e24;
	--paper: #f2efe8;
	--paper-2: #e7e2d9;
	--white: #fffdf8;
	--steel: #8f9aa3;
	--steel-light: #c9d0d4;
	--line: rgba(255, 255, 255, 0.14);
	--line-dark: rgba(10, 13, 16, 0.16);
	--accent: #f06a2f;
	--accent-deep: #c94717;
	--accent-soft: #ff9562;
	--success: #3b7d55;
	--error: #a63d2b;
	--shadow: 0 28px 90px rgba(0, 0, 0, 0.25);
	--shadow-soft: 0 18px 55px rgba(0, 0, 0, 0.12);
	--radius-xs: 4px;
	--radius-sm: 10px;
	--radius-md: 18px;
	--radius-lg: 30px;
	--container: 1360px;
	--gutter: clamp(20px, 4vw, 64px);
	--header-h: 84px;
	--display: clamp(3.05rem, 6.2vw, 7.4rem);
	--h1: clamp(3rem, 6.8vw, 7.4rem);
	--h2: clamp(2.45rem, 5vw, 5.7rem);
	--h3: clamp(1.45rem, 2.25vw, 2.25rem);
	--body: clamp(1rem, 1.1vw, 1.15rem);
	--ease: cubic-bezier(0.22, 1, 0.36, 1);
	--ease-smooth: cubic-bezier(0.65, 0, 0.35, 1);
}

@view-transition {
	navigation: auto;
}

::view-transition-old(root),
::view-transition-new(root) {
	animation-duration: 0.36s;
	animation-timing-function: var(--ease);
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	background: var(--ink);
	font-size: 16px;
}

body {
	margin: 0;
	min-width: 320px;
	background: var(--ink);
	color: var(--white);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-size: var(--body);
	font-weight: 400;
	line-height: 1.62;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}

body.menu-open {
	overflow: hidden;
}

::selection {
	background: var(--accent);
	color: var(--ink);
}

img,
picture,
svg,
video {
	display: block;
	max-width: 100%;
}

img {
	height: auto;
}

figure,
blockquote,
p,
h1,
h2,
h3,
h4,
ul,
ol {
	margin-top: 0;
}

figure {
	margin-left: 0;
	margin-right: 0;
}

a {
	color: inherit;
	text-decoration: none;
}

button,
input,
select,
textarea {
	font: inherit;
}

button,
select {
	cursor: pointer;
}

button {
	color: inherit;
}

address {
	font-style: normal;
}

:focus-visible {
	outline: 3px solid var(--accent);
	outline-offset: 4px;
}

.skip-link {
	position: fixed;
	top: 12px;
	left: 12px;
	z-index: 9999;
	padding: 12px 18px;
	background: var(--paper);
	color: var(--ink);
	font-weight: 750;
	transform: translateY(-160%);
	transition: transform 0.2s ease;
}

.skip-link:focus {
	transform: translateY(0);
}

.site-shell {
	position: relative;
	isolation: isolate;
}

.site-main {
	min-height: 70vh;
}

.container {
	width: min(calc(100% - (var(--gutter) * 2)), var(--container));
	margin-inline: auto;
}

.section {
	position: relative;
	padding-block: clamp(92px, 11vw, 180px);
	background: var(--ink);
	color: var(--white);
	content-visibility: auto;
	contain-intrinsic-size: auto 900px;
}

.section--compact {
	padding-block: clamp(76px, 8vw, 132px);
}

.section--paper {
	background: var(--paper);
	color: var(--ink);
}

.section--dark {
	background: var(--ink-2);
	color: var(--white);
}

.eyebrow {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 22px;
	color: var(--accent-soft);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.2em;
	line-height: 1.2;
	text-transform: uppercase;
}

.eyebrow::before {
	content: "";
	width: 30px;
	height: 1px;
	background: currentColor;
}

.eyebrow--dark {
	color: var(--accent-deep);
}

.eyebrow--light {
	color: var(--accent-soft);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-weight: 760;
	line-height: 0.98;
	letter-spacing: -0.045em;
	text-transform: uppercase;
}

h1,
h2 {
	text-wrap: balance;
}

h1 {
	font-size: var(--h1);
}

h2 {
	font-size: var(--h2);
}

h3 {
	font-size: var(--h3);
}

h1 em,
h2 em,
.display-title em {
	display: inline-block;
	color: var(--accent);
	font-family: Georgia, "Times New Roman", serif;
	font-weight: 400;
	letter-spacing: -0.06em;
}

.display-title {
	margin-bottom: 30px;
	font-size: var(--display);
	line-height: 0.84;
	letter-spacing: -0.065em;
}

.display-title span,
.display-title em {
	display: block;
}

.lead,
.hero-intro {
	max-width: 650px;
	color: rgba(255, 253, 248, 0.68);
	font-size: clamp(1.08rem, 1.45vw, 1.38rem);
	line-height: 1.55;
}

.section--paper .lead,
.lead--dark {
	color: rgba(10, 13, 16, 0.7);
}

.lead--light {
	color: rgba(255, 253, 248, 0.72);
}

.content-note {
	display: block;
	margin-top: 24px;
	color: rgba(10, 13, 16, 0.58);
	font-size: 0.84rem;
	line-height: 1.55;
}

.section-heading {
	margin-bottom: clamp(56px, 7vw, 100px);
}

.section-heading--split,
.projects-heading {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.72fr);
	gap: clamp(46px, 8vw, 130px);
	align-items: end;
}

.section-heading h2,
.projects-heading h2 {
	margin-bottom: 0;
}

.cover-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.icon,
.text-link .icon,
.button .icon,
.social-link .icon,
.header-phone .icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
}

.icon svg,
.text-link svg,
.button svg,
.social-link svg,
.header-phone svg {
	width: 1em;
	height: 1em;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.7;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.button {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
	min-height: 58px;
	padding: 15px 24px;
	border: 1px solid transparent;
	border-radius: 999px;
	font-size: 0.86rem;
	font-weight: 800;
	letter-spacing: 0.055em;
	line-height: 1.1;
	text-transform: uppercase;
	transition: color 0.45s var(--ease), background 0.45s var(--ease), border-color 0.45s var(--ease), transform 0.3s var(--ease), box-shadow 0.45s var(--ease);
	will-change: transform;
}

.button .icon {
	font-size: 1.25rem;
	transition: transform 0.45s var(--ease);
}

.button:hover .icon {
	transform: translateX(4px);
}

.button--accent {
	background: var(--accent);
	color: var(--ink);
	box-shadow: 0 12px 40px rgba(240, 106, 47, 0.22);
}

.button--accent:hover {
	background: var(--accent-soft);
	box-shadow: 0 18px 55px rgba(240, 106, 47, 0.34);
}

.button--ghost,
.button--outline-light {
	border-color: var(--line);
	background: transparent;
	color: var(--white);
}

.button--ghost:hover,
.button--outline-light:hover {
	border-color: var(--accent);
	background: rgba(240, 106, 47, 0.08);
}

.button--light {
	background: var(--paper);
	color: var(--ink);
}

.button--light:hover {
	background: var(--white);
}

.button--ghost-light {
	border-color: rgba(255, 255, 255, 0.28);
	background: transparent;
	color: var(--white);
}

.button--ghost-light:hover {
	border-color: var(--white);
}

.button--dark {
	background: var(--ink);
	color: var(--white);
}

.button--small {
	min-height: 46px;
	padding: 11px 18px;
	font-size: 0.72rem;
}

.button--wide {
	min-width: min(100%, 300px);
}

.text-link {
	display: inline-flex;
	align-items: center;
	gap: 13px;
	padding-block: 8px;
	color: var(--white);
	font-size: 0.82rem;
	font-weight: 780;
	letter-spacing: 0.075em;
	text-transform: uppercase;
}

.text-link span {
	position: relative;
}

.text-link span::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -5px;
	width: 100%;
	height: 1px;
	background: currentColor;
	transform-origin: right;
	transition: transform 0.45s var(--ease);
}

.text-link:hover span::after {
	transform: scaleX(0);
}

.text-link .icon {
	font-size: 1.25rem;
	transition: transform 0.45s var(--ease);
}

.text-link:hover .icon {
	transform: translateX(5px);
}

.text-link--dark {
	color: var(--ink);
}

.text-link--light {
	color: var(--white);
}

.hero-actions,
.location-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 22px;
}

.check-list {
	display: grid;
	gap: 16px;
	margin: 34px 0;
	padding: 0;
	list-style: none;
}

.check-list li {
	display: grid;
	grid-template-columns: 28px 1fr;
	gap: 12px;
	align-items: start;
}

.check-list .icon {
	width: 25px;
	height: 25px;
	border: 1px solid rgba(10, 13, 16, 0.22);
	border-radius: 50%;
	color: var(--accent-deep);
}

.check-list .icon svg {
	width: 14px;
	height: 14px;
}

.check-list--light .icon {
	border-color: rgba(255, 255, 255, 0.25);
	color: var(--accent-soft);
}

.check-list--compact {
	gap: 10px;
	margin-block: 24px 30px;
	font-size: 0.92rem;
}

.inline-list {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	margin: 24px 0;
	padding: 0;
	list-style: none;
}

.inline-list li,
.gas-hero-tags span {
	padding: 8px 12px;
	border: 1px solid var(--line);
	border-radius: 999px;
	color: rgba(255, 253, 248, 0.68);
	font-size: 0.7rem;
	font-weight: 750;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* Progressive enhancement: visible without JS. */
[data-reveal] {
	opacity: 1;
	transform: none;
	filter: none;
}

.has-js.motion-ready [data-reveal] {
	--reveal-x: 0px;
	--reveal-y: 34px;
	--reveal-scale: 0.985;
	opacity: 0;
	filter: blur(7px);
	transform: translate3d(var(--reveal-x), var(--reveal-y), 0) scale(var(--reveal-scale));
	animation: pnpRevealFailsafe 0.001s 1.95s forwards;
	transition: opacity 0.86s var(--ease), transform 1s var(--ease), filter 0.86s var(--ease), clip-path 1.05s var(--ease);
	transition-delay: calc(var(--reveal-delay, 0) * 95ms);
	will-change: opacity, transform, filter;
}

.has-js.motion-ready [data-reveal-style="left"] { --reveal-x: -42px; --reveal-y: 0px; }
.has-js.motion-ready [data-reveal-style="right"] { --reveal-x: 42px; --reveal-y: 0px; }
.has-js.motion-ready [data-reveal-style="scale"] {
	--reveal-y: 18px;
	--reveal-scale: 0.94;
	clip-path: inset(5% 4% 5% 4%);
}

.has-js.motion-ready [data-reveal][data-reveal-delay="1"] { --reveal-delay: 1; }
.has-js.motion-ready [data-reveal][data-reveal-delay="2"] { --reveal-delay: 2; }
.has-js.motion-ready [data-reveal][data-reveal-delay="3"] { --reveal-delay: 3; }
.has-js.motion-ready [data-reveal][data-reveal-delay="4"] { --reveal-delay: 4; }
.has-js.motion-ready [data-reveal][data-reveal-delay="5"] { --reveal-delay: 5; }

.has-js.motion-ready [data-reveal].is-visible {
	opacity: 1;
	filter: blur(0);
	transform: translate3d(0, 0, 0) scale(1);
	clip-path: inset(0 0 0 0);
	animation: none;
}

.has-js.motion-ready [data-reveal][data-parallax] {
	transform: translate3d(var(--reveal-x), calc(var(--reveal-y) + var(--parallax-y, 0px)), 0) scale(var(--reveal-scale));
}

.has-js.motion-ready [data-reveal][data-parallax].is-visible {
	transform: translate3d(0, var(--parallax-y, 0px), 0) scale(1);
}

@keyframes pnpRevealFailsafe {
	to { opacity: 1; transform: none; filter: none; clip-path: inset(0); }
}

[data-parallax] {
	transform: translate3d(0, var(--parallax-y, 0px), 0);
	will-change: transform;
}

/* Scroll-linked scene details. JavaScript only sets CSS variables; content stays usable without it. */
.section-heading,
.projects-heading {
	position: relative;
}

.scroll-scene .section-heading::after,
.scroll-scene .projects-heading::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -24px;
	height: 1px;
	background: linear-gradient(90deg, var(--accent), rgba(240, 106, 47, 0.18), transparent 82%);
	transform: scaleX(var(--scene-progress, 0));
	transform-origin: left center;
	opacity: 0.72;
}

.scroll-scene .eyebrow::before {
	transform: scaleX(clamp(0.15, var(--scene-progress, 1), 1));
	transform-origin: left center;
}

.scroll-scene figure > picture {
	transform: translate3d(0, var(--scene-media-shift, 0px), 0);
	will-change: transform;
}

.scroll-scene .image-index,
.scroll-scene figcaption {
	transform: translate3d(0, var(--scene-caption-shift, 0px), 0);
}


/* Header --------------------------------------------------------- */
.site-header {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 1000;
	width: 100%;
	color: var(--white);
	transition: background 0.45s var(--ease), border-color 0.45s var(--ease), transform 0.45s var(--ease);
}

.site-header.is-scrolled {
	background: rgba(10, 13, 16, 0.88);
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	backdrop-filter: blur(18px) saturate(1.25);
}

.site-header.is-hidden {
	transform: translate3d(0, calc(-100% - 8px), 0);
}

.scroll-progress {
	position: absolute;
	bottom: -1px;
	left: 0;
	width: 100%;
	height: 1px;
	background: transparent;
	overflow: hidden;
}

.scroll-progress span {
	display: block;
	width: 100%;
	height: 100%;
	background: var(--accent);
	transform: scaleX(0);
	transform-origin: left;
}

.header-inner {
	display: grid;
	grid-template-columns: minmax(210px, 0.8fr) auto minmax(210px, 0.8fr);
	align-items: center;
	gap: 34px;
	width: min(calc(100% - 44px), 1540px);
	min-height: var(--header-h);
	margin-inline: auto;
}

.site-brand {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	width: fit-content;
}

.brand-symbol {
	position: relative;
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border: 1px solid rgba(255, 255, 255, 0.45);
	border-radius: 50%;
}

.brand-symbol::before,
.brand-symbol::after,
.brand-symbol i,
.brand-symbol b {
	content: "";
	position: absolute;
	inset: 7px;
	border: 1px solid rgba(255, 255, 255, 0.36);
	border-radius: 50%;
}

.brand-symbol::after {
	inset: 16px;
	background: var(--accent);
	border: 0;
}

.brand-symbol i {
	inset: 19px 5px;
	border-radius: 0;
	border-width: 1px 0 0;
	transform: rotate(45deg);
}

.brand-symbol b {
	inset: 19px 5px;
	border-radius: 0;
	border-width: 1px 0 0;
	transform: rotate(-45deg);
}

.brand-copy {
	display: grid;
	gap: 1px;
	line-height: 1;
}

.brand-copy strong {
	font-size: 1rem;
	font-weight: 850;
	letter-spacing: 0.065em;
	text-transform: uppercase;
}

.brand-copy small {
	color: rgba(255, 255, 255, 0.56);
	font-size: 0.61rem;
	font-weight: 650;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}

.site-brand > .custom-logo,
.custom-logo-link img {
	width: auto;
	max-width: 210px;
	max-height: 54px;
}

.site-nav .menu {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(18px, 2vw, 34px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-nav .menu a {
	position: relative;
	display: block;
	padding: 10px 0;
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.7rem;
	font-weight: 750;
	letter-spacing: 0.075em;
	white-space: nowrap;
	text-transform: uppercase;
	transition: color 0.3s ease;
}

.site-nav .menu a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 4px;
	width: 100%;
	height: 1px;
	background: var(--accent);
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.35s var(--ease);
}

.site-nav .menu a:hover,
.site-nav .menu .current-menu-item > a,
.site-nav .menu .is-current > a,
.site-nav .menu a[aria-current="page"] {
	color: var(--white);
}

.site-nav .menu a:hover::after,
.site-nav .menu .current-menu-item > a::after,
.site-nav .menu .is-current > a::after,
.site-nav .menu a[aria-current="page"]::after {
	transform: scaleX(1);
	transform-origin: left;
}

.header-actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 16px;
}

.header-phone {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	color: rgba(255, 255, 255, 0.78);
	font-size: 0.76rem;
	font-weight: 750;
	letter-spacing: 0.04em;
}

.header-phone .icon {
	font-size: 1.1rem;
	color: var(--accent-soft);
}

.menu-toggle {
	display: none;
	width: 48px;
	height: 48px;
	padding: 13px;
	border: 1px solid var(--line);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.04);
}

.menu-toggle span {
	display: block;
	width: 100%;
	height: 1px;
	margin: 5px 0;
	background: currentColor;
	transition: transform 0.4s var(--ease), opacity 0.3s ease;
}

.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.mobile-nav-meta {
	display: none;
}

/* Home hero ------------------------------------------------------ */
.hero--home {
	position: relative;
	min-height: max(760px, 100svh);
	padding-top: calc(var(--header-h) + clamp(70px, 8vh, 115px));
	padding-bottom: 90px;
	background:
		radial-gradient(circle at 74% 42%, rgba(240, 106, 47, 0.13), transparent 24%),
		linear-gradient(135deg, #080b0e 0%, #11171c 58%, #090c0f 100%);
	overflow: hidden;
}

.hero--home::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
	background-size: 72px 72px;
	mask-image: linear-gradient(to bottom, rgba(0,0,0,0.85), transparent 90%);
	pointer-events: none;
}

.hero--home::after {
	content: "PNP  /  METAL  /  MOTION";
	position: absolute;
	right: -7px;
	bottom: 150px;
	color: rgba(255, 255, 255, 0.2);
	font-size: 0.6rem;
	font-weight: 800;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	writing-mode: vertical-rl;
}

.hero-grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 0.93fr) minmax(500px, 0.82fr);
	gap: clamp(52px, 7vw, 118px);
	align-items: center;
}

.hero-copy {
	padding-block: 32px;
}

.hero-intro {
	margin-bottom: 34px;
}

.hero-proof {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin-top: clamp(50px, 7vh, 88px);
	padding-top: 24px;
	border-top: 1px solid var(--line);
}

.hero-proof > div {
	position: relative;
	display: grid;
	gap: 4px;
	padding-left: 16px;
}

.proof-dot {
	position: absolute;
	left: 0;
	top: 7px;
	width: 5px;
	height: 5px;
	background: var(--accent);
	border-radius: 50%;
	box-shadow: 0 0 12px var(--accent);
}

.hero-proof strong {
	font-size: 0.72rem;
	letter-spacing: 0.025em;
}

.hero-proof small {
	color: rgba(255, 255, 255, 0.48);
	font-size: 0.65rem;
}

.hero-visual {
	position: relative;
	min-height: 610px;
}

.hero-orbit {
	position: absolute;
	top: 50%;
	left: 50%;
	width: min(40vw, 570px);
	aspect-ratio: 1;
	transform: translate(-50%, -50%) rotate(var(--page-rotation, 0deg));
	pointer-events: none;
	will-change: transform;
}

.orbit-ring {
	position: absolute;
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 50%;
}

.orbit-ring--outer {
	inset: 0;
	border-color: rgba(240, 106, 47, 0.38);
	border-style: dashed;
	animation: orbitSpin 36s linear infinite;
}

.orbit-ring--middle { inset: 12%; }
.orbit-ring--inner { inset: 34%; border-color: rgba(255, 255, 255, 0.36); }

.orbit-axis {
	position: absolute;
	top: 50%;
	left: 0;
	width: 100%;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(255,255,255,0.22), transparent);
}

.orbit-axis--two { transform: rotate(90deg); }

@keyframes orbitSpin { to { transform: rotate(360deg); } }

.hero-image {
	position: absolute;
	margin: 0;
	background: var(--ink-2);
	box-shadow: var(--shadow);
	overflow: hidden;
}

.hero-image picture,
.hero-image img {
	width: 100%;
	height: 100%;
}

.hero-image img {
	filter: saturate(0.86) contrast(1.04);
	transition: transform 1.2s var(--ease), filter 0.7s ease;
}

.hero-image:hover img {
	transform: scale(1.055);
	filter: saturate(1) contrast(1.08);
}

.hero-image::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom, transparent 58%, rgba(0, 0, 0, 0.7));
	pointer-events: none;
}

.hero-image--main {
	left: 7%;
	top: 8%;
	z-index: 2;
	width: 63%;
	aspect-ratio: 0.83;
	clip-path: polygon(0 5%, 93% 0, 100% 94%, 8% 100%);
}

.hero-image--top {
	right: 0;
	top: 0;
	z-index: 3;
	width: 34%;
	aspect-ratio: 0.82;
	clip-path: polygon(7% 0, 100% 6%, 93% 100%, 0 92%);
}

.hero-image--bottom {
	right: 2%;
	bottom: 2%;
	z-index: 4;
	width: 42%;
	aspect-ratio: 1.1;
	clip-path: polygon(0 9%, 94% 0, 100% 91%, 8% 100%);
}

.hero-image figcaption {
	position: absolute;
	z-index: 2;
	left: 18px;
	right: 18px;
	bottom: 14px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	color: rgba(255, 255, 255, 0.84);
	font-size: 0.62rem;
	font-weight: 750;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.hero-image figcaption b {
	color: var(--accent-soft);
}

.hero-location-chip {
	position: absolute;
	left: -3%;
	bottom: 3%;
	z-index: 5;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 13px 16px;
	background: var(--paper);
	color: var(--ink);
	box-shadow: var(--shadow-soft);
}

.hero-location-chip > span {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	background: var(--accent);
	border-radius: 50%;
}

.hero-location-chip p {
	margin: 0;
	font-size: 0.72rem;
	line-height: 1.25;
}

.hero-location-chip strong {
	display: block;
	font-size: 0.9rem;
}

.scroll-cue {
	position: absolute;
	z-index: 3;
	left: var(--gutter);
	bottom: 24px;
	display: flex;
	align-items: center;
	gap: 12px;
	color: rgba(255, 255, 255, 0.45);
	font-size: 0.62rem;
	font-weight: 750;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.scroll-cue span {
	position: relative;
	width: 38px;
	height: 1px;
	background: rgba(255, 255, 255, 0.3);
	overflow: hidden;
}

.scroll-cue span::after {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--accent);
	transform: translateX(-100%);
	animation: cueLine 2s var(--ease) infinite;
}

@keyframes cueLine { 55%, 100% { transform: translateX(100%); } }

/* Marquee -------------------------------------------------------- */
.service-marquee {
	position: relative;
	z-index: 4;
	padding-block: 18px;
	background: var(--accent);
	color: var(--ink);
	overflow: hidden;
}

.marquee-track {
	display: flex;
	align-items: center;
	width: max-content;
	animation: marqueeMove 34s linear infinite;
}

.marquee-track span {
	font-size: clamp(0.82rem, 1.1vw, 1.05rem);
	font-weight: 850;
	letter-spacing: 0.12em;
	white-space: nowrap;
	text-transform: uppercase;
}

.marquee-track i {
	width: 7px;
	height: 7px;
	margin-inline: 28px;
	border: 1px solid currentColor;
	border-radius: 50%;
}

@keyframes marqueeMove { to { transform: translateX(-50%); } }

/* Home services -------------------------------------------------- */
.services-index {
	background:
		linear-gradient(90deg, transparent calc(50% - 1px), rgba(255,255,255,0.035) 50%, transparent calc(50% + 1px)),
		var(--ink);
}

.service-list {
	border-top: 1px solid var(--line);
}

.service-row {
	position: relative;
	display: grid;
	grid-template-columns: 56px minmax(240px, 0.65fr) minmax(280px, 0.75fr) 48px;
	gap: clamp(18px, 3.5vw, 52px);
	align-items: center;
	min-height: 160px;
	padding: 28px 0;
	border-bottom: 1px solid var(--line);
	isolation: isolate;
}

.service-row::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0 calc(var(--gutter) * -0.45);
	background: rgba(255, 255, 255, 0.035);
	transform: scaleY(0);
	transform-origin: bottom;
	transition: transform 0.55s var(--ease);
}

.service-row:hover::before {
	transform: scaleY(1);
}

.service-number {
	color: var(--accent-soft);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.12em;
}

.service-row__title {
	display: flex;
	align-items: center;
	gap: 22px;
}

.service-row__title h3 {
	margin: 0;
	font-size: clamp(1.45rem, 2.2vw, 2.5rem);
}

.service-icon {
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	border: 1px solid var(--line);
	border-radius: 50%;
	color: var(--accent-soft);
	transition: background 0.45s var(--ease), color 0.45s var(--ease), transform 0.5s var(--ease);
}

.service-icon svg {
	width: 29px;
	height: 29px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.5;
}

.service-row:hover .service-icon {
	background: var(--accent);
	color: var(--ink);
	transform: rotate(8deg);
}

.service-icon--blast {
	position: relative;
	gap: 3px;
}

.service-icon--blast i {
	display: block;
	width: 22px;
	height: 2px;
	background: currentColor;
}

.service-icon--blast i:nth-child(1) { transform: translateX(-4px); }
.service-icon--blast i:nth-child(3) { transform: translateX(4px); }

.service-row > p {
	margin: 0;
	color: rgba(255, 255, 255, 0.54);
	font-size: 0.92rem;
}

.service-arrow {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--line);
	border-radius: 50%;
	transition: background 0.35s ease, color 0.35s ease, transform 0.45s var(--ease);
}

.service-arrow svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
}

.service-row:hover .service-arrow {
	background: var(--accent);
	color: var(--ink);
	transform: translateX(6px);
}

.service-preview {
	position: absolute;
	z-index: 5;
	right: 72px;
	top: 50%;
	width: 180px;
	aspect-ratio: 1;
	background: var(--ink-2);
	box-shadow: var(--shadow);
	opacity: 0;
	pointer-events: none;
	transform: translate(20px, -50%) rotate(5deg) scale(0.9);
	transition: opacity 0.45s var(--ease), transform 0.55s var(--ease);
	overflow: hidden;
}

.service-row:hover .service-preview {
	opacity: 1;
	transform: translate(0, -50%) rotate(-3deg) scale(1);
}

.service-preview--graphic {
	display: grid;
	place-items: center;
	background: var(--accent);
}

.mini-gas-diagram {
	position: relative;
	width: 86px;
	height: 120px;
	border: 2px solid var(--ink);
	border-radius: 16px 16px 8px 8px;
}

.mini-gas-diagram::before,
.mini-gas-diagram::after,
.mini-gas-diagram i,
.mini-gas-diagram b {
	content: "";
	position: absolute;
}

.mini-gas-diagram::before { inset: 12px 15px 60px; border: 2px solid var(--ink); }
.mini-gas-diagram::after { left: 50%; bottom: 18px; width: 32px; height: 32px; border: 2px solid var(--ink); border-radius: 50%; transform: translateX(-50%); }
.mini-gas-diagram i { right: -24px; top: 18px; width: 24px; height: 46px; border: 2px solid var(--ink); border-left: 0; border-radius: 0 12px 12px 0; }
.mini-gas-diagram b { left: 16px; right: 16px; bottom: -14px; height: 2px; background: var(--ink); }

/* Home craft section -------------------------------------------- */
.craft-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.72fr);
	gap: clamp(60px, 9vw, 150px);
	align-items: center;
}

.craft-gallery {
	position: relative;
	min-height: 720px;
}

.craft-image {
	position: absolute;
	margin: 0;
	background: #d5d0c7;
	box-shadow: 0 18px 55px rgba(10, 13, 16, 0.16);
	overflow: hidden;
}

.craft-image picture,
.craft-image img {
	width: 100%;
	height: 100%;
}

.craft-image img {
	filter: saturate(0.85) contrast(1.02);
	transition: transform 0.9s var(--ease), filter 0.6s ease;
}

.craft-image:hover img {
	transform: scale(1.045);
	filter: saturate(1) contrast(1.04);
}

.craft-image figcaption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	display: flex;
	justify-content: space-between;
	padding: 13px 15px;
	background: rgba(10, 13, 16, 0.88);
	color: var(--white);
	font-size: 0.64rem;
	font-weight: 750;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.craft-image figcaption span {
	color: var(--accent-soft);
}

.craft-image--large {
	left: 0;
	top: 0;
	z-index: 2;
	width: 62%;
	aspect-ratio: 0.82;
}

.craft-image--small {
	right: 0;
	top: 9%;
	z-index: 3;
	width: 40%;
	aspect-ratio: 0.86;
}

.craft-image--wide {
	right: 4%;
	bottom: 0;
	z-index: 4;
	width: 53%;
	aspect-ratio: 1.35;
}

.craft-copy h2 {
	margin-bottom: 32px;
}

.craft-copy .lead {
	margin-bottom: 0;
}

/* Gas feature ---------------------------------------------------- */
.gas-feature {
	background:
		radial-gradient(circle at 75% 45%, rgba(240, 106, 47, 0.16), transparent 27%),
		linear-gradient(120deg, #0a0d10, #151b21 64%, #090c0f);
	overflow: hidden;
}

.gas-feature::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px);
	background-size: 54px 54px;
	mask-image: radial-gradient(circle at 70% 50%, #000, transparent 68%);
}

.gas-grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(360px, 0.8fr) minmax(480px, 1fr);
	gap: clamp(65px, 8vw, 130px);
	align-items: center;
}

.gas-copy h2 {
	margin-bottom: 28px;
}

.gas-types {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	margin: 42px 0 36px;
	background: var(--line);
	border: 1px solid var(--line);
}

.gas-types > div {
	padding: 24px;
	background: var(--ink-2);
}

.gas-types span {
	color: var(--accent-soft);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.12em;
}

.gas-types h3 {
	margin: 14px 0 10px;
	font-size: 1.16rem;
	letter-spacing: -0.02em;
}

.gas-types p {
	margin: 0;
	color: rgba(255,255,255,0.54);
	font-size: 0.85rem;
}

.gas-visual {
	position: relative;
	min-height: 640px;
	aspect-ratio: 1;
}

.gas-orbit {
	position: absolute;
	border: 1px solid rgba(255,255,255,0.18);
	border-radius: 50%;
}

.gas-orbit--one { inset: 3%; border-color: rgba(240, 106, 47, 0.42); border-style: dashed; animation: orbitSpin 38s linear infinite reverse; }
.gas-orbit--two { inset: 18%; }
.gas-orbit--three { inset: 35%; border-color: rgba(255,255,255,0.35); }

.gas-core {
	position: absolute;
	left: 50%;
	top: 50%;
	display: grid;
	place-items: center;
	width: 130px;
	aspect-ratio: 1;
	background: var(--accent);
	border: 12px solid rgba(10,13,16,0.9);
	border-radius: 50%;
	box-shadow: 0 0 0 1px rgba(255,255,255,0.22), 0 0 80px rgba(240,106,47,0.22);
	color: var(--ink);
	transform: translate(-50%, -50%);
}

.gas-main-icon svg {
	width: 54px;
	height: 54px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.6;
}

.gas-core > span:last-child {
	position: absolute;
	bottom: 16px;
	font-size: 0.55rem;
	font-weight: 900;
	letter-spacing: 0.22em;
}

.gas-node {
	position: absolute;
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 10px 13px;
	background: rgba(10,13,16,0.82);
	border: 1px solid var(--line);
	backdrop-filter: blur(10px);
	font-size: 0.64rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.gas-node i {
	width: 7px;
	height: 7px;
	background: var(--accent);
	border-radius: 50%;
	box-shadow: 0 0 12px var(--accent);
}

.gas-node--fuel { left: 1%; top: 22%; }
.gas-node--engine { right: 0; top: 25%; }
.gas-node--control { left: 5%; bottom: 19%; }

.gas-lines {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.gas-lines path {
	fill: none;
	stroke: rgba(255,255,255,0.22);
	stroke-width: 1;
	stroke-dasharray: 5 8;
}

/* Home process --------------------------------------------------- */
.process-grid {
	position: relative;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1px;
	background: var(--line);
	border: 1px solid var(--line);
}

.process-step {
	min-height: 330px;
	padding: 30px;
	background: var(--ink);
	transition: background 0.45s var(--ease), transform 0.45s var(--ease);
}

.process-step:hover {
	background: var(--ink-2);
	transform: translateY(-6px);
}

.process-step__top {
	display: flex;
	align-items: center;
	gap: 15px;
	margin-bottom: 78px;
}

.process-step__top span {
	color: var(--accent-soft);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.14em;
}

.process-step__top i {
	flex: 1;
	height: 1px;
	background: var(--line);
}

.process-step h3 {
	margin-bottom: 18px;
	font-size: clamp(1.35rem, 1.8vw, 1.9rem);
}

.process-step p {
	margin: 0;
	color: rgba(255,255,255,0.52);
	font-size: 0.9rem;
}

/* Project teaser ------------------------------------------------- */
.projects-teaser {
	background: var(--ink-2);
}

.projects-heading {
	margin-bottom: clamp(52px, 7vw, 90px);
}

.projects-heading .button {
	justify-self: end;
}

.project-mosaic {
	display: grid;
	grid-template-columns: 0.8fr 1.15fr 0.62fr;
	grid-template-rows: 260px 320px;
	gap: 18px;
}

.project-card {
	position: relative;
	margin: 0;
	overflow: hidden;
}

.project-card picture,
.project-card img {
	width: 100%;
	height: 100%;
}

.project-card img {
	filter: saturate(0.85);
	transition: transform 1s var(--ease), filter 0.6s ease;
}

.project-card:hover img {
	transform: scale(1.065);
	filter: saturate(1);
}

.project-card::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0,0,0,0.75), transparent 55%);
	pointer-events: none;
}

.project-card figcaption {
	position: absolute;
	z-index: 2;
	left: 20px;
	right: 20px;
	bottom: 18px;
	display: flex;
	justify-content: space-between;
	align-items: end;
}

.project-card figcaption span {
	font-size: 0.9rem;
	font-weight: 750;
}

.project-card figcaption small {
	color: var(--accent-soft);
	font-size: 0.62rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.project-card--tall { grid-row: 1 / 3; }
.project-card--wide { grid-column: 2 / 4; }
.project-card--small { grid-column: 2 / 3; }

/* FAQ ------------------------------------------------------------ */
.faq-grid {
	display: grid;
	grid-template-columns: minmax(280px, 0.58fr) minmax(440px, 0.9fr);
	gap: clamp(60px, 10vw, 170px);
	align-items: start;
}

.faq-intro {
	position: sticky;
	top: calc(var(--header-h) + 40px);
}

.faq-intro h2 {
	margin-bottom: 28px;
}

.faq-intro > p:not(.eyebrow) {
	color: rgba(10,13,16,0.64);
}

.faq-list {
	border-top: 1px solid var(--line-dark);
}

.faq-list details {
	border-bottom: 1px solid var(--line-dark);
}

.faq-list summary {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 25px;
	padding: 28px 2px;
	font-size: clamp(1.05rem, 1.35vw, 1.3rem);
	font-weight: 680;
	letter-spacing: -0.015em;
	list-style: none;
}

.faq-list summary::-webkit-details-marker { display: none; }

.faq-list summary span {
	position: relative;
	flex: 0 0 auto;
	width: 30px;
	height: 30px;
	border: 1px solid rgba(10,13,16,0.22);
	border-radius: 50%;
}

.faq-list summary span::before,
.faq-list summary span::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 11px;
	height: 1px;
	background: currentColor;
	transform: translate(-50%, -50%);
	transition: transform 0.35s ease;
}

.faq-list summary span::after {
	transform: translate(-50%, -50%) rotate(90deg);
}

.faq-list details[open] summary span::after {
	transform: translate(-50%, -50%) rotate(0);
}

.faq-list details[open] summary {
	color: var(--accent-deep);
}

.faq-list details p {
	max-width: 720px;
	margin: -4px 50px 28px 0;
	color: rgba(10,13,16,0.65);
}

.faq-grid--dark .faq-intro > p:not(.eyebrow),
.faq-list--dark details p {
	color: rgba(255,255,255,0.58);
}

.faq-list--dark {
	border-color: var(--line);
}

.faq-list--dark details {
	border-color: var(--line);
}

.faq-list--dark summary span {
	border-color: var(--line);
}

.faq-list--dark details[open] summary {
	color: var(--accent-soft);
}

/* Home contact --------------------------------------------------- */
.home-contact {
	position: relative;
	padding-block: clamp(100px, 12vw, 190px);
	background: var(--accent);
	color: var(--ink);
	overflow: hidden;
}

.home-contact::after {
	content: "70A";
	position: absolute;
	right: -1vw;
	bottom: -0.27em;
	color: rgba(10,13,16,0.08);
	font-size: clamp(12rem, 30vw, 32rem);
	font-weight: 900;
	line-height: 1;
	letter-spacing: -0.1em;
	pointer-events: none;
}

.home-contact-grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(300px, 0.62fr) minmax(480px, 1fr);
	gap: clamp(58px, 9vw, 150px);
}

.home-contact-copy .eyebrow {
	color: var(--ink);
}

.home-contact-copy h2 {
	margin-bottom: 28px;
}

.home-contact-copy h2 em {
	color: var(--white);
}

.home-contact-copy > p:last-child {
	max-width: 520px;
	color: rgba(10,13,16,0.7);
}

.home-contact-cards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.contact-card {
	position: relative;
	display: grid;
	min-height: 210px;
	padding: 24px;
	background: var(--ink);
	color: var(--white);
	transition: transform 0.45s var(--ease), background 0.45s var(--ease);
	overflow: hidden;
}

.contact-card:hover {
	transform: translateY(-6px);
	background: var(--ink-2);
}

.contact-card > span {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border: 1px solid var(--line);
	border-radius: 50%;
	color: var(--accent-soft);
}

.contact-card small {
	align-self: end;
	margin-top: 42px;
	color: rgba(255,255,255,0.48);
	font-size: 0.62rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.contact-card strong {
	margin-top: 7px;
	font-size: clamp(1rem, 1.2vw, 1.3rem);
	line-height: 1.25;
}

.contact-card > i {
	position: absolute;
	right: 20px;
	top: 20px;
}

.contact-card > i svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	transition: transform 0.45s var(--ease);
}

.contact-card:hover > i svg { transform: translate(4px, -2px); }
.contact-card--address { grid-column: 1 / 3; min-height: 180px; }
.contact-card--address small { margin-top: 26px; }

/* Page hero shared ----------------------------------------------- */
.page-hero {
	position: relative;
	min-height: 620px;
	padding-top: calc(var(--header-h) + clamp(100px, 11vw, 180px));
	padding-bottom: clamp(80px, 9vw, 130px);
	background:
		radial-gradient(circle at 80% 42%, rgba(240,106,47,0.12), transparent 24%),
		linear-gradient(135deg, #0a0d10, #131a20);
	overflow: hidden;
}

.page-hero::before,
.service-hero::before,
.contact-hero::before,
.legal-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px);
	background-size: 64px 64px;
	mask-image: linear-gradient(to bottom, #000, transparent 90%);
	pointer-events: none;
}

.page-hero-grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(330px, 0.56fr);
	gap: clamp(50px, 8vw, 140px);
	align-items: end;
}

.page-hero-copy h1,
.service-hero-copy h1,
.contact-hero-copy h1,
.legal-hero h1 {
	margin-bottom: 30px;
}

.page-hero-copy .lead {
	margin-bottom: 0;
}

.page-hero-index {
	display: grid;
	grid-template-columns: 50px 1fr;
	gap: 0;
	border-top: 1px solid var(--line);
}

.page-hero-index span,
.page-hero-index p {
	margin: 0;
	padding: 17px 0;
	border-bottom: 1px solid var(--line);
}

.page-hero-index span {
	color: var(--accent-soft);
	font-size: 0.68rem;
	font-weight: 800;
}

.page-hero-index p {
	color: rgba(255,255,255,0.65);
	font-size: 0.84rem;
	font-weight: 650;
}

.page-hero-line {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 35%;
	height: 2px;
	background: var(--accent);
}

/* Shared service hero -------------------------------------------- */
.service-hero {
	position: relative;
	min-height: 760px;
	padding-top: calc(var(--header-h) + clamp(76px, 8vw, 130px));
	padding-bottom: clamp(80px, 9vw, 135px);
	background:
		radial-gradient(circle at 75% 35%, rgba(240,106,47,0.14), transparent 25%),
		linear-gradient(135deg, #090c0f, #151b21);
	overflow: hidden;
}

.service-hero-grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(340px, 0.78fr) minmax(450px, 0.82fr);
	gap: clamp(58px, 8vw, 130px);
	align-items: center;
}

.service-hero-grid--reverse {
	grid-template-columns: minmax(450px, 0.82fr) minmax(340px, 0.78fr);
}

.service-hero-media {
	position: relative;
	min-height: 560px;
	margin: 0;
	background: var(--ink-2);
	clip-path: polygon(0 4%, 95% 0, 100% 95%, 5% 100%);
	box-shadow: var(--shadow);
	overflow: hidden;
}

.service-hero-media picture,
.service-hero-media img {
	width: 100%;
	height: 100%;
}

.service-hero-media img {
	filter: saturate(0.85) contrast(1.04);
	transition: transform 1.1s var(--ease), filter 0.6s ease;
}

.service-hero-media:hover img {
	transform: scale(1.05);
	filter: saturate(1) contrast(1.06);
}

.service-hero-media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0,0,0,0.65), transparent 48%);
}

.service-hero-media__meta {
	position: absolute;
	z-index: 2;
	left: 30px;
	right: 30px;
	bottom: 30px;
	display: flex;
	justify-content: space-between;
	color: rgba(255,255,255,0.78);
	font-size: 0.65rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.service-hero-media__meta strong { color: var(--accent-soft); }

/* Service jump --------------------------------------------------- */
.service-jump {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	background: var(--paper);
	border-top: 1px solid var(--line-dark);
	border-bottom: 1px solid var(--line-dark);
	color: var(--ink);
}

.service-jump a {
	display: flex;
	align-items: center;
	gap: 13px;
	min-height: 96px;
	padding: 20px clamp(18px, 3vw, 42px);
	border-right: 1px solid var(--line-dark);
	font-size: 0.82rem;
	font-weight: 760;
	transition: background 0.4s var(--ease), color 0.4s var(--ease);
}

.service-jump a:last-child { border-right: 0; }
.service-jump a:hover { background: var(--ink); color: var(--white); }
.service-jump span { color: var(--accent-deep); font-size: 0.65rem; letter-spacing: 0.1em; }

/* Services page -------------------------------------------------- */
.services-editorial-grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: clamp(26px, 4vw, 54px);
}

.editorial-service {
	position: relative;
	display: grid;
	gap: 28px;
}

.editorial-service--hero {
	grid-column: 1 / 13;
	grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.62fr);
	align-items: center;
	margin-bottom: clamp(40px, 5vw, 76px);
}

.editorial-service--split {
	grid-column: 1 / 9;
	grid-template-columns: minmax(280px, 0.7fr) minmax(0, 1fr);
	align-items: end;
}

.editorial-service--compact {
	grid-column: 9 / 13;
}

.editorial-service--gas {
	grid-column: 3 / 12;
	grid-template-columns: minmax(300px, 0.72fr) minmax(320px, 0.68fr);
	align-items: center;
	margin-top: clamp(46px, 7vw, 100px);
	padding: clamp(38px, 6vw, 76px);
	background: var(--ink-2);
}

.editorial-service__media {
	position: relative;
	display: block;
	min-height: 420px;
	background: var(--ink-2);
	overflow: hidden;
}

.editorial-service--hero .editorial-service__media { min-height: 620px; }
.editorial-service--compact .editorial-service__media { min-height: 360px; }

.editorial-service__media picture,
.editorial-service__media img {
	width: 100%;
	height: 100%;
}

.editorial-service__media img {
	filter: saturate(0.82);
	transition: transform 1s var(--ease), filter 0.55s ease;
}

.editorial-service__media:hover img {
	transform: scale(1.06);
	filter: saturate(1);
}

.image-index {
	position: absolute;
	right: 18px;
	top: 18px;
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	background: var(--paper);
	color: var(--ink);
	font-size: 0.65rem;
	font-weight: 850;
}

.editorial-service__copy h3 {
	margin-bottom: 22px;
	font-size: clamp(2rem, 3.4vw, 4rem);
}

.editorial-service__copy > p:not(.eyebrow) {
	color: rgba(255,255,255,0.58);
}

.editorial-service__graphic {
	position: relative;
	display: grid;
	place-items: center;
	min-height: 420px;
	background: radial-gradient(circle, rgba(240,106,47,0.2), transparent 48%), #0b0e11;
	overflow: hidden;
}

.gas-card-orbit {
	position: absolute;
	inset: 11%;
	border: 1px dashed rgba(240,106,47,0.45);
	border-radius: 50%;
	animation: orbitSpin 32s linear infinite;
}

.gas-card-orbit::before,
.gas-card-orbit::after {
	content: "";
	position: absolute;
	border: 1px solid rgba(255,255,255,0.17);
	border-radius: 50%;
}

.gas-card-orbit::before { inset: 16%; }
.gas-card-orbit::after { inset: 37%; }

.gas-card-icon {
	position: relative;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 120px;
	height: 120px;
	background: var(--accent);
	border-radius: 50%;
	color: var(--ink);
}

.gas-card-icon svg {
	width: 62px;
	height: 62px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.6;
}

.editorial-service__graphic > span:last-child {
	position: absolute;
	right: 22px;
	bottom: 18px;
	color: rgba(255,255,255,0.38);
	font-size: 0.7rem;
	font-weight: 850;
	letter-spacing: 0.2em;
}

.editorial-service--gas .editorial-service__copy h3,
.editorial-service--gas .editorial-service__copy p { color: var(--white); }

.service-matrix-grid {
	display: grid;
	grid-template-columns: minmax(280px, 0.52fr) minmax(600px, 1fr);
	gap: clamp(54px, 9vw, 150px);
	align-items: start;
}

.service-matrix-intro {
	position: sticky;
	top: calc(var(--header-h) + 42px);
}

.service-matrix-intro h2 { margin-bottom: 28px; }
.service-matrix-intro > p:last-child { color: rgba(10,13,16,0.62); }

.service-matrix-table {
	border-top: 1px solid var(--line-dark);
}

.matrix-row {
	display: grid;
	grid-template-columns: minmax(160px, 0.55fr) minmax(300px, 1fr) minmax(140px, 0.45fr);
	gap: 24px;
	align-items: start;
	padding: 26px 0;
	border-bottom: 1px solid var(--line-dark);
}

.matrix-row--head {
	padding-block: 14px;
	color: rgba(10,13,16,0.48);
	font-size: 0.62rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.matrix-row strong { font-size: 1rem; line-height: 1.35; }
.matrix-row p { margin: 0; color: rgba(10,13,16,0.64); font-size: 0.9rem; }
.matrix-row > span:last-child { color: var(--accent-deep); font-size: 0.78rem; font-weight: 750; }

.dual-specialism {
	background: var(--ink-2);
}

.dual-specialism-grid {
	display: grid;
	grid-template-columns: minmax(330px, 0.65fr) minmax(550px, 1fr);
	gap: clamp(55px, 9vw, 150px);
	align-items: center;
}

.dual-specialism-copy h2 { margin-bottom: 28px; }

.dual-cards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.dual-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 390px;
	padding: 30px;
	background: var(--paper);
	color: var(--ink);
	transition: transform 0.45s var(--ease), box-shadow 0.45s var(--ease);
	overflow: hidden;
}

.dual-card:hover { transform: translateY(-7px); box-shadow: var(--shadow); }
.dual-card--accent { background: var(--accent); }
.dual-card__number { color: rgba(10,13,16,0.46); font-size: 0.68rem; font-weight: 850; letter-spacing: 0.14em; }
.dual-card__icon { display: grid; place-items: center; width: 92px; height: 92px; margin: 58px 0 40px; border: 1px solid rgba(10,13,16,0.22); border-radius: 50%; }
.dual-card__icon svg { width: 54px; height: 54px; fill: none; stroke: currentColor; stroke-width: 1.4; }
.dual-card h3 { margin-bottom: 14px; }
.dual-card p { margin-bottom: 0; color: rgba(10,13,16,0.65); }
.dual-card > i { position: absolute; right: 26px; bottom: 26px; }
.dual-card > i svg { width: 24px; height: 24px; fill: none; stroke: currentColor; transition: transform 0.45s var(--ease); }
.dual-card:hover > i svg { transform: translateX(5px); }

.horizontal-process {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
}

.horizontal-process__item {
	position: relative;
	min-height: 300px;
	padding: 30px;
	border-right: 1px solid var(--line);
}

.horizontal-process__item:last-child { border-right: 0; }
.horizontal-process__item > span { color: var(--accent-soft); font-size: 0.68rem; font-weight: 850; letter-spacing: 0.13em; }
.horizontal-process__item h3 { margin: 90px 0 16px; font-size: 1.5rem; }
.horizontal-process__item p { margin: 0; color: rgba(255,255,255,0.55); font-size: 0.9rem; }

/* Wheel repair page ---------------------------------------------- */
.issue-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.issue-card {
	position: relative;
	padding: 18px 18px 28px;
	border: 1px solid var(--line);
	background: var(--ink-2);
}

.issue-card__index {
	position: absolute;
	z-index: 2;
	right: 28px;
	top: 28px;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	background: var(--accent);
	color: var(--ink);
	font-size: 0.65rem;
	font-weight: 850;
}

.issue-card__media {
	aspect-ratio: 1.06;
	margin-bottom: 27px;
	overflow: hidden;
}

.issue-card__media img { transition: transform 0.9s var(--ease); }
.issue-card:hover .issue-card__media img { transform: scale(1.06); }
.issue-card h3 { margin-bottom: 14px; font-size: 1.55rem; }
.issue-card p { margin: 0; color: rgba(255,255,255,0.55); font-size: 0.9rem; }

.repair-principles-grid {
	display: grid;
	grid-template-columns: minmax(340px, 0.65fr) minmax(500px, 1fr);
	gap: clamp(60px, 9vw, 145px);
	align-items: center;
}

.repair-principles-copy h2 { margin-bottom: 30px; }

.principle-list {
	display: grid;
	gap: 0;
	margin-top: 44px;
	border-top: 1px solid var(--line-dark);
}

.principle-list > div {
	display: grid;
	grid-template-columns: 52px 0.55fr 1fr;
	gap: 20px;
	padding: 22px 0;
	border-bottom: 1px solid var(--line-dark);
}

.principle-list span { color: var(--accent-deep); font-size: 0.66rem; font-weight: 850; }
.principle-list h3 { margin: 0; font-size: 1.05rem; line-height: 1.35; letter-spacing: -0.02em; }
.principle-list p { margin: 0; color: rgba(10,13,16,0.62); font-size: 0.86rem; }

.repair-principles-media {
	position: relative;
	min-height: 700px;
}

.repair-detail {
	position: absolute;
	margin: 0;
	background: #cbc6bd;
	box-shadow: var(--shadow-soft);
	overflow: hidden;
}

.repair-detail picture,
.repair-detail img { width: 100%; height: 100%; }
.repair-detail--one { left: 0; top: 0; width: 64%; aspect-ratio: 0.88; }
.repair-detail--two { right: 0; bottom: 0; z-index: 2; width: 50%; aspect-ratio: 0.85; }
.repair-detail figcaption { position: absolute; left: 14px; bottom: 14px; padding: 8px 10px; background: var(--ink); color: var(--white); font-size: 0.62rem; font-weight: 750; letter-spacing: 0.08em; text-transform: uppercase; }

.repair-timeline {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 0;
	border-top: 1px solid var(--line);
}

.repair-timeline article {
	min-height: 280px;
	padding: 28px 24px;
	border-right: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
}

.repair-timeline article:first-child { border-left: 1px solid var(--line); }
.repair-timeline span { color: var(--accent-soft); font-size: 0.68rem; font-weight: 850; letter-spacing: 0.12em; }
.repair-timeline h3 { margin: 80px 0 15px; font-size: 1.3rem; }
.repair-timeline p { margin: 0; color: rgba(255,255,255,0.55); font-size: 0.86rem; }

.wheel-gallery {
	display: grid;
	grid-template-columns: 0.82fr 1.1fr 0.78fr;
	grid-template-rows: 300px 300px;
	gap: 16px;
}

.wheel-gallery__item {
	position: relative;
	margin: 0;
	overflow: hidden;
}

.wheel-gallery__item picture,
.wheel-gallery__item img { width: 100%; height: 100%; }
.wheel-gallery__item img { filter: saturate(0.82); transition: transform 1s var(--ease), filter 0.5s ease; }
.wheel-gallery__item:hover img { transform: scale(1.06); filter: saturate(1); }
.wheel-gallery__item::after { content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,.7), transparent 54%); }
.wheel-gallery__item figcaption { position:absolute; z-index:2; left:18px; bottom:16px; font-size:.7rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.wheel-gallery__item--one { grid-row: 1 / 3; }
.wheel-gallery__item--two { grid-column: 2 / 3; grid-row: 1 / 3; }
.wheel-gallery__item--three { grid-column: 3; grid-row: 1; }
.wheel-gallery__item--four { grid-column: 3; grid-row: 2; }

.repair-decision-grid {
	display: grid;
	grid-template-columns: minmax(320px, 0.62fr) minmax(520px, 1fr);
	gap: clamp(58px, 9vw, 150px);
	align-items: start;
}

.repair-decision-copy h2 { margin-bottom: 28px; }

.photo-instructions {
	border-top: 1px solid var(--line);
}

.photo-instructions > div {
	display: grid;
	grid-template-columns: 50px minmax(140px, 0.55fr) 1fr;
	gap: 20px;
	padding: 24px 0;
	border-bottom: 1px solid var(--line);
}

.photo-instructions span { color: var(--accent-soft); font-size: 0.68rem; font-weight: 850; }
.photo-instructions h3 { margin: 0; font-size: 1.15rem; line-height: 1.3; }
.photo-instructions p { margin: 0; color: rgba(255,255,255,0.55); font-size: 0.9rem; }

.centered-action {
	display: flex;
	justify-content: center;
	margin-top: clamp(48px, 7vw, 90px);
}

.centered-action--spaced {
	margin-top: 0;
	padding-top: 0;
}

/* Polishing & painting page -------------------------------------- */
.finish-intro-grid,
.blast-definition-grid,
.gas-positioning-grid,
.project-context-grid,
.privacy-note-grid {
	display: grid;
	grid-template-columns: minmax(330px, 0.78fr) minmax(450px, 0.72fr);
	gap: clamp(55px, 10vw, 170px);
	align-items: start;
}

.finish-intro-grid h2,
.blast-definition-grid h2,
.gas-positioning-grid h2,
.project-context-grid h2,
.privacy-note-grid h2 { margin-bottom: 0; }

.finish-intro-copy > p:last-child,
.blast-definition-copy > p:last-child,
.gas-positioning-copy > p:last-child,
.project-context-copy > p:not(.lead),
.privacy-note-grid > div:last-child > p:not(.lead) {
	color: rgba(255,255,255,0.55);
}

.finish-option-list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.finish-option {
	position: relative;
	padding: 16px 16px 30px;
	border: 1px solid var(--line-dark);
	background: rgba(255,255,255,0.28);
}

.finish-option__visual {
	position: relative;
	display: grid;
	place-items: center;
	aspect-ratio: 1.15;
	margin-bottom: 28px;
	background: var(--ink);
	overflow: hidden;
}

.finish-option__number {
	color: var(--accent-deep);
	font-size: 0.66rem;
	font-weight: 850;
	letter-spacing: 0.13em;
}

.finish-option h3 { margin: 13px 0 17px; font-size: 1.7rem; }
.finish-option > p { color: rgba(10,13,16,0.66); font-size: 0.9rem; }
.finish-option ul { display:grid; gap:8px; margin:22px 0 0; padding:0; list-style:none; color:rgba(10,13,16,.72); font-size:.8rem; }
.finish-option li { position:relative; padding-left:16px; }
.finish-option li::before { content:""; position:absolute; left:0; top:.75em; width:6px; height:1px; background:var(--accent-deep); }

.finish-option__visual--polish {
	background: radial-gradient(circle at 28% 25%, #e4e8e9, #7e8990 32%, #23292e 66%, #0b0e11);
}

.finish-sheen {
	position: absolute;
	inset: -40%;
	background: linear-gradient(105deg, transparent 42%, rgba(255,255,255,.62) 49%, transparent 57%);
	transform: translateX(-45%) rotate(12deg);
	animation: finishSheen 5s var(--ease-smooth) infinite;
}

@keyframes finishSheen { 45%,100% { transform: translateX(45%) rotate(12deg); } }

.finish-option__icon {
	position: relative;
	z-index: 2;
	color: var(--white);
}
.finish-option__icon svg { width:72px; height:72px; fill:none; stroke:currentColor; stroke-width:1.2; }

.finish-option__visual--paint {
	display: flex;
	align-items: stretch;
}
.finish-option__visual--paint span { flex:1; }
.finish-option__visual--paint span:nth-child(1) { background:#343a40; }
.finish-option__visual--paint span:nth-child(2) { background:#919aa1; }
.finish-option__visual--paint span:nth-child(3) { background:var(--accent); }
.finish-option__visual--paint::after { content:"FINISH"; position:absolute; left:50%; top:50%; color:var(--white); font-size:.7rem; font-weight:900; letter-spacing:.28em; transform:translate(-50%,-50%) rotate(-90deg); mix-blend-mode:difference; }

.finish-option__visual--restore picture,
.finish-option__visual--restore img { width:100%; height:100%; }

.color-direction-grid {
	display: grid;
	grid-template-columns: minmax(340px, 0.7fr) minmax(520px, 1fr);
	gap: clamp(60px, 9vw, 150px);
	align-items: center;
}

.color-direction-copy h2 { margin-bottom:28px; }

.color-notes {
	display:grid;
	gap:0;
	margin-top:36px;
	border-top:1px solid var(--line);
}

.color-notes > div {
	display:grid;
	grid-template-columns:90px 1fr;
	gap:20px;
	padding:17px 0;
	border-bottom:1px solid var(--line);
}
.color-notes span { color:var(--accent-soft); font-size:.72rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.color-notes p { margin:0; color:rgba(255,255,255,.56); font-size:.86rem; }
.color-direction-copy .content-note { color:rgba(255,255,255,.45); }

.color-direction-visual {
	position:relative;
	min-height:680px;
}
.color-image { position:absolute; margin:0; box-shadow:var(--shadow); overflow:hidden; }
.color-image picture,.color-image img { width:100%; height:100%; }
.color-image--main { right:0; top:0; width:70%; aspect-ratio:.84; }
.color-image--secondary { left:0; bottom:0; z-index:2; width:51%; aspect-ratio:1.05; }
.color-image figcaption { position:absolute; left:14px; bottom:14px; padding:8px 10px; background:rgba(10,13,16,.9); font-size:.62rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }

.surface-steps {
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:1px;
	background:var(--line);
	border:1px solid var(--line);
}
.surface-step { min-height:280px; padding:28px; background:var(--ink-2); }
.surface-step > span { display:grid; place-items:center; width:44px; height:44px; border:1px solid var(--line); border-radius:50%; color:var(--accent-soft); font-size:.65rem; font-weight:850; }
.surface-step h3 { margin:75px 0 15px; font-size:1.42rem; }
.surface-step p { margin:0; color:rgba(255,255,255,.54); font-size:.86rem; }

.finish-gallery {
	display:grid;
	grid-template-columns:1.1fr .8fr .8fr;
	gap:16px;
}
.finish-gallery figure { position:relative; min-height:500px; margin:0; overflow:hidden; }
.finish-gallery figure:nth-child(2),.finish-gallery figure:nth-child(3) { min-height:400px; align-self:end; }
.finish-gallery picture,.finish-gallery img { width:100%; height:100%; }
.finish-gallery img { transition:transform 1s var(--ease); }
.finish-gallery figure:hover img { transform:scale(1.06); }
.finish-gallery figure::after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,.72),transparent 50%); }
.finish-gallery figcaption { position:absolute; z-index:2; left:18px; right:18px; bottom:17px; display:flex; justify-content:space-between; align-items:end; }
.finish-gallery figcaption span { font-weight:750; }
.finish-gallery figcaption small { color:var(--accent-soft); font-size:.62rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }

/* Sandblasting page ---------------------------------------------- */
.blast-hero-visual {
	position:relative;
	min-height:610px;
}

.blast-hero-visual figure {
	position:absolute;
	right:3%;
	top:3%;
	z-index:2;
	width:76%;
	aspect-ratio:.82;
	margin:0;
	clip-path:polygon(0 4%,96% 0,100% 95%,7% 100%);
	box-shadow:var(--shadow);
	overflow:hidden;
}
.blast-hero-visual figure picture,.blast-hero-visual figure img { width:100%; height:100%; }
.blast-hero-visual figcaption { position:absolute; left:20px; right:20px; bottom:18px; display:flex; justify-content:space-between; padding:10px 12px; background:rgba(10,13,16,.82); font-size:.63rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.blast-hero-visual figcaption strong { color:var(--accent-soft); }

.blast-field {
	position:absolute;
	left:0;
	bottom:2%;
	width:60%;
	aspect-ratio:1;
	border:1px solid rgba(240,106,47,.35);
	border-radius:50%;
	animation:orbitSpin 44s linear infinite;
}
.blast-field::before,.blast-field::after { content:""; position:absolute; inset:19%; border:1px dashed rgba(255,255,255,.18); border-radius:50%; }
.blast-field::after { inset:39%; border-style:solid; }
.blast-field i { position:absolute; width:5px; height:5px; background:var(--accent); border-radius:50%; box-shadow:0 0 10px rgba(240,106,47,.6); }
.blast-field i:nth-child(1){left:15%;top:20%}.blast-field i:nth-child(2){left:42%;top:7%}.blast-field i:nth-child(3){left:70%;top:17%}.blast-field i:nth-child(4){left:88%;top:42%}.blast-field i:nth-child(5){left:75%;top:72%}.blast-field i:nth-child(6){left:48%;top:88%}.blast-field i:nth-child(7){left:21%;top:79%}.blast-field i:nth-child(8){left:5%;top:52%}.blast-field i:nth-child(9){left:30%;top:36%}.blast-field i:nth-child(10){left:64%;top:38%}.blast-field i:nth-child(11){left:57%;top:64%}.blast-field i:nth-child(12){left:34%;top:63%}

.blast-case-grid {
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:12px;
}
.blast-case-grid article { min-height:330px; padding:28px; border:1px solid var(--line-dark); background:rgba(255,255,255,.25); }
.blast-case-icon { display:flex; align-items:center; gap:5px; height:52px; }
.blast-case-icon i { display:block; width:6px; height:6px; background:var(--accent-deep); border-radius:50%; }
.blast-case-icon i:nth-child(2){width:10px;height:10px}.blast-case-icon i:nth-child(3){width:4px;height:4px}
.blast-case-grid small { display:block; margin:38px 0 14px; color:var(--accent-deep); font-size:.65rem; font-weight:850; letter-spacing:.12em; }
.blast-case-grid h3 { margin-bottom:16px; font-size:1.45rem; }
.blast-case-grid p { margin:0; color:rgba(10,13,16,.64); font-size:.88rem; }

.blast-process-grid,
.gas-installation-grid,
.about-values-grid {
	display:grid;
	grid-template-columns:minmax(300px,.55fr) minmax(580px,1fr);
	gap:clamp(55px,9vw,150px);
	align-items:start;
}
.blast-process-sticky,
.gas-installation-sticky,
.about-values-sticky { position:sticky; top:calc(var(--header-h) + 42px); }
.blast-process-sticky h2,.gas-installation-sticky h2,.about-values-sticky h2 { margin-bottom:28px; }

.blast-process-list,.gas-installation-steps,.value-list { border-top:1px solid var(--line); }
.blast-process-list article,.gas-installation-steps article,.value-list article { display:grid; grid-template-columns:70px 1fr; gap:24px; padding:30px 0; border-bottom:1px solid var(--line); }
.blast-process-list article > span,.gas-installation-steps article > span,.value-list article > span { color:var(--accent-soft); font-size:.68rem; font-weight:850; letter-spacing:.13em; }
.blast-process-list h3,.gas-installation-steps h3,.value-list h3 { margin-bottom:12px; font-size:1.42rem; }
.blast-process-list p,.gas-installation-steps p,.value-list p { margin:0; color:rgba(255,255,255,.56); font-size:.9rem; }

.blast-safety-grid {
	display:grid;
	grid-template-columns:minmax(330px,.72fr) minmax(440px,.72fr);
	gap:clamp(55px,10vw,170px);
	align-items:start;
}
.blast-safety-grid h2 { margin-bottom:0; }
.blast-safety-copy .check-list { margin-bottom:0; }

.blast-project-grid {
	display:grid;
	grid-template-columns:minmax(450px,1fr) minmax(330px,.63fr);
	gap:clamp(58px,9vw,145px);
	align-items:center;
}
.blast-project-media { position:relative; min-height:620px; margin:0; overflow:hidden; }
.blast-project-media picture,.blast-project-media img { width:100%; height:100%; }
.blast-project-media figcaption { position:absolute; left:18px; bottom:18px; padding:9px 12px; background:var(--ink); font-size:.64rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.blast-project-copy h2 { margin-bottom:28px; }

/* Gas systems page ----------------------------------------------- */
.gas-page-hero {
	position:relative;
	min-height:max(760px,100svh);
	padding-top:calc(var(--header-h) + clamp(78px,9vw,135px));
	padding-bottom:clamp(80px,9vw,130px);
	background:
		radial-gradient(circle at 74% 48%,rgba(240,106,47,.19),transparent 26%),
		linear-gradient(135deg,#080b0e,#111820 68%,#070a0c);
	overflow:hidden;
}
.gas-page-hero::before { content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px); background-size:58px 58px; mask-image:linear-gradient(to bottom,#000,transparent 92%); }
.gas-page-hero-grid { position:relative; z-index:2; display:grid; grid-template-columns:minmax(340px,.78fr) minmax(520px,1fr); gap:clamp(60px,8vw,125px); align-items:center; }
.gas-page-copy h1 { margin-bottom:30px; }
.gas-page-copy .lead { margin-bottom:34px; }
.gas-hero-tags { display:flex; flex-wrap:wrap; gap:8px; margin-top:52px; }

.gas-engine-visual { position:relative; min-height:650px; }
.engine-plate { position:absolute; inset:0; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.018); clip-path:polygon(4% 0,100% 5%,96% 100%,0 95%); backdrop-filter:blur(2px); }
.plate-code { position:absolute; left:26px; top:24px; color:rgba(255,255,255,.38); font-size:.6rem; font-weight:850; letter-spacing:.18em; }
.engine-ring { position:absolute; left:50%; top:50%; border:1px solid rgba(255,255,255,.18); border-radius:50%; transform:translate(-50%,-50%); }
.engine-ring--outer { width:74%; aspect-ratio:1; border-color:rgba(240,106,47,.45); border-style:dashed; animation:orbitSpin 40s linear infinite; }
.engine-ring--inner { width:43%; aspect-ratio:1; }
.engine-core { position:absolute; left:50%; top:50%; display:grid; place-items:center; width:140px; aspect-ratio:1; background:var(--accent); border:14px solid #0b0f13; border-radius:50%; color:var(--ink); transform:translate(-50%,-50%); box-shadow:0 0 0 1px rgba(255,255,255,.28),0 0 80px rgba(240,106,47,.2); }
.engine-core-icon svg { width:58px; height:58px; fill:none; stroke:currentColor; stroke-width:1.5; }
.engine-core > strong { position:absolute; bottom:13px; font-size:.62rem; letter-spacing:.2em; }
.engine-module { position:absolute; width:126px; padding:13px; border:1px solid var(--line); background:rgba(10,13,16,.88); font-size:.62rem; font-weight:800; letter-spacing:.1em; text-align:center; text-transform:uppercase; }
.engine-module i { display:block; width:9px; height:9px; margin:0 auto 9px; background:var(--accent); border-radius:50%; box-shadow:0 0 12px var(--accent); }
.engine-module--tank { left:2%; top:18%; }
.engine-module--control { right:1%; top:18%; }
.engine-module--engine { left:3%; bottom:15%; }
.engine-module--flow { right:0; bottom:15%; }
.engine-connectors { position:absolute; inset:0; width:100%; height:100%; }
.engine-connectors path { fill:none; stroke:rgba(255,255,255,.22); stroke-width:1; stroke-dasharray:5 8; }

.engine-type-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.engine-type-card { min-height:520px; padding:clamp(32px,5vw,58px); border:1px solid var(--line-dark); background:rgba(255,255,255,.3); }
.engine-type-card--dark { background:var(--ink); color:var(--white); }
.engine-type-card__head { display:flex; align-items:center; justify-content:space-between; margin-bottom:100px; }
.engine-type-card__head > span { color:var(--accent-deep); font-size:.68rem; font-weight:850; letter-spacing:.13em; }
.engine-type-card__head b { display:grid; place-items:center; width:76px; height:76px; border:1px solid rgba(10,13,16,.22); border-radius:50%; font-size:1.9rem; }
.engine-type-card--dark .engine-type-card__head b { border-color:var(--line); }
.engine-type-card--dark .engine-type-card__head > span { color:var(--accent-soft); }
.engine-type-card h3 { margin-bottom:20px; font-size:clamp(2rem,3vw,3.25rem); }
.engine-type-card > p { color:rgba(10,13,16,.65); }
.engine-type-card--dark > p { color:rgba(255,255,255,.58); }
.engine-type-card .check-list .icon { border-color:rgba(10,13,16,.2); }
.engine-type-card--dark .check-list .icon { border-color:var(--line); }

.gas-expectations { background:radial-gradient(circle at 75% 50%,rgba(240,106,47,.16),transparent 27%),var(--ink-2); }
.gas-expectations-grid { display:grid; grid-template-columns:minmax(350px,.72fr) minmax(500px,1fr); gap:clamp(58px,9vw,150px); align-items:center; }
.gas-expectations-copy h2 { margin-bottom:28px; }
.gas-expectations-copy > p:not(.eyebrow,.lead) { color:rgba(255,255,255,.54); }
.expectation-meter { position:relative; min-height:520px; }
.meter-ring { position:absolute; left:50%; top:50%; display:grid; place-items:center; width:360px; max-width:78%; aspect-ratio:1; border:1px dashed rgba(240,106,47,.5); border-radius:50%; transform:translate(-50%,-50%); animation:orbitSpin 45s linear infinite reverse; }
.meter-ring::before,.meter-ring::after { content:""; position:absolute; border:1px solid rgba(255,255,255,.18); border-radius:50%; }
.meter-ring::before { inset:16%; }.meter-ring::after{inset:34%;}
.meter-ring i { position:absolute; top:-6px; left:50%; width:12px; height:12px; background:var(--accent); border-radius:50%; box-shadow:0 0 20px var(--accent); transform:translateX(-50%); }
.meter-ring b { position:absolute; inset:50% auto auto 50%; width:34%; height:2px; background:var(--accent); transform-origin:left; transform:rotate(-35deg); }
.meter-ring span { color:var(--white); font-size:.68rem; font-weight:900; letter-spacing:.16em; line-height:1.5; text-align:center; animation:orbitSpin 45s linear infinite; }
.meter-lines { position:absolute; inset:0; }
.meter-lines span { position:absolute; padding:8px 11px; border:1px solid var(--line); background:rgba(10,13,16,.7); color:rgba(255,255,255,.66); font-size:.62rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.meter-lines span:nth-child(1){left:1%;top:14%}.meter-lines span:nth-child(2){right:0;top:20%}.meter-lines span:nth-child(3){left:4%;bottom:14%}.meter-lines span:nth-child(4){right:0;bottom:18%}

.info-token-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); }
.info-token { min-height:180px; padding:24px; background:var(--ink); }
.info-token span { color:var(--accent-soft); font-size:.65rem; font-weight:850; letter-spacing:.12em; }
.info-token strong { display:block; margin-top:68px; font-size:1rem; line-height:1.3; }

/* Projects archive ------------------------------------------------ */
.project-hero-stack { position:relative; min-height:370px; }
.stack-image { position:absolute; margin:0; width:210px; aspect-ratio:.86; box-shadow:var(--shadow); overflow:hidden; }
.stack-image picture,.stack-image img { width:100%; height:100%; }
.stack-image--one { left:0; bottom:0; z-index:2; transform:rotate(-6deg); }
.stack-image--two { left:30%; top:0; z-index:3; transform:rotate(3deg); }
.stack-image--three { right:0; bottom:15px; z-index:1; transform:rotate(8deg); }
.stack-count { position:absolute; z-index:5; right:22%; bottom:0; color:var(--accent-soft); font-size:2.2rem; font-weight:850; line-height:.8; text-align:right; }
.stack-count small { color:rgba(255,255,255,.5); font-size:.5rem; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }

.projects-heading--archive { align-items:center; }
.project-filters { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.project-filters button { padding:10px 15px; border:1px solid var(--line); border-radius:999px; background:transparent; color:rgba(255,255,255,.58); font-size:.68rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; transition:background .35s ease,color .35s ease,border-color .35s ease; }
.project-filters button:hover,.project-filters button.is-active { border-color:var(--accent); background:var(--accent); color:var(--ink); }

.project-archive-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:16px; }
.archive-item { position:relative; grid-column:span 4; min-height:430px; margin:0; background:var(--ink-2); overflow:hidden; transition:opacity .4s ease,transform .5s var(--ease); }
.archive-item--large { grid-column:span 7; min-height:600px; }
.archive-item--wide { grid-column:span 8; min-height:470px; }
.archive-item--tall { grid-column:span 4; min-height:620px; }
.archive-item.is-filtered-out { display:none; }
.archive-item picture,.archive-item img { width:100%; height:100%; }
.archive-item img { filter:saturate(.82); transition:transform 1.1s var(--ease),filter .6s ease; }
.archive-item:hover img { transform:scale(1.06); filter:saturate(1); }
.archive-item::after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,.8),transparent 52%); }
.archive-item figcaption { position:absolute; z-index:2; left:20px; right:20px; bottom:20px; display:flex; justify-content:space-between; gap:20px; align-items:end; }
.archive-item figcaption > span { display:grid; gap:4px; }
.archive-item figcaption small,.archive-item figcaption b { color:var(--accent-soft); font-size:.61rem; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.archive-item figcaption strong { font-size:1rem; line-height:1.25; }
.archive-item figcaption b { color:rgba(255,255,255,.5); white-space:nowrap; }

.project-context-copy .text-link { margin-top:22px; }
.project-photo-guide-grid { display:grid; grid-template-columns:minmax(330px,.65fr) minmax(500px,1fr); gap:clamp(58px,9vw,150px); align-items:start; }
.photo-guide-list { margin:0; padding:0; border-top:1px solid var(--line); list-style:none; }
.photo-guide-list li { display:grid; grid-template-columns:65px 1fr; gap:22px; padding:26px 0; border-bottom:1px solid var(--line); }
.photo-guide-list span { color:var(--accent-soft); font-size:.68rem; font-weight:850; }
.photo-guide-list h3 { margin-bottom:11px; font-size:1.35rem; }
.photo-guide-list p { margin:0; color:rgba(255,255,255,.56); }

/* About page ------------------------------------------------------ */
.about-hero-mark {
	display:grid;
	place-items:center;
	justify-self:end;
	width:min(100%,420px);
	text-align:center;
}
.about-mark-ring { position:relative; display:grid; place-items:center; width:290px; aspect-ratio:1; border:1px dashed rgba(240,106,47,.5); border-radius:50%; animation:orbitSpin 34s linear infinite; }
.about-mark-ring::before,.about-mark-ring::after { content:""; position:absolute; border:1px solid rgba(255,255,255,.18); border-radius:50%; }
.about-mark-ring::before{inset:15%}.about-mark-ring::after{inset:34%}
.about-mark-ring > span { color:var(--white); font-size:2.7rem; font-weight:900; letter-spacing:.14em; animation:orbitSpin 34s linear infinite reverse; }
.about-mark-ring i,.about-mark-ring b { position:absolute; left:50%; top:-6px; width:12px; height:12px; background:var(--accent); border-radius:50%; box-shadow:0 0 14px var(--accent); }
.about-mark-ring b { top:auto; bottom:-4px; width:8px; height:8px; background:var(--white); box-shadow:none; }
.about-hero-mark > p { margin:22px 0 0; color:rgba(255,255,255,.48); font-size:.68rem; font-weight:750; letter-spacing:.12em; line-height:1.55; text-transform:uppercase; }

.about-position-grid { display:grid; grid-template-columns:minmax(350px,.75fr) minmax(420px,.7fr); gap:clamp(60px,10vw,180px); }
.about-position-copy h2 { margin-bottom:0; }
.about-position-text > p:last-child { color:rgba(255,255,255,.55); }

.discipline-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.discipline-card { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(260px,.72fr); min-height:560px; border:1px solid var(--line-dark); background:#fff; color:var(--ink); }
.discipline-card--gas { background:var(--ink); color:var(--white); border-color:var(--ink); }
.discipline-card__media,.discipline-card__graphic { position:relative; min-height:100%; overflow:hidden; }
.discipline-card__media picture,.discipline-card__media img { width:100%; height:100%; }
.discipline-card__media img { transition:transform 1s var(--ease); }
.discipline-card:hover .discipline-card__media img { transform:scale(1.06); }
.discipline-card__copy { display:flex; flex-direction:column; justify-content:flex-end; padding:clamp(26px,4vw,48px); }
.discipline-card__copy > span { margin-bottom:auto; color:var(--accent-deep); font-size:.68rem; font-weight:850; letter-spacing:.13em; }
.discipline-card--gas .discipline-card__copy > span { color:var(--accent-soft); }
.discipline-card__copy h3 { margin:80px 0 18px; font-size:clamp(1.8rem,2.8vw,3rem); }
.discipline-card__copy p { color:rgba(10,13,16,.63); }
.discipline-card--gas .discipline-card__copy p { color:rgba(255,255,255,.57); }
.discipline-card__graphic { display:grid; place-items:center; background:radial-gradient(circle,rgba(240,106,47,.22),transparent 46%); }
.discipline-orbit { position:absolute; width:80%; aspect-ratio:1; border:1px dashed rgba(240,106,47,.45); border-radius:50%; animation:orbitSpin 36s linear infinite; }
.discipline-orbit::before { content:""; position:absolute; inset:22%; border:1px solid rgba(255,255,255,.18); border-radius:50%; }
.discipline-gas-icon { position:relative; z-index:2; display:grid; place-items:center; width:110px; height:110px; background:var(--accent); border-radius:50%; color:var(--ink); }
.discipline-gas-icon svg { width:58px; height:58px; fill:none; stroke:currentColor; stroke-width:1.5; }
.discipline-card__graphic > span:last-child { position:absolute; bottom:24px; left:50%; color:rgba(255,255,255,.38); font-size:.65rem; font-weight:900; letter-spacing:.22em; transform:translateX(-50%); }

.about-workshop { background:radial-gradient(circle at 30% 50%,rgba(240,106,47,.1),transparent 28%),var(--ink-2); }
.about-workshop-grid { display:grid; grid-template-columns:minmax(520px,1fr) minmax(330px,.62fr); gap:clamp(60px,9vw,145px); align-items:center; }
.about-workshop-gallery { position:relative; min-height:710px; }
.workshop-image { position:absolute; margin:0; box-shadow:var(--shadow); overflow:hidden; }
.workshop-image picture,.workshop-image img { width:100%; height:100%; }
.workshop-image--one { left:0; top:0; width:63%; aspect-ratio:.88; }
.workshop-image--two { right:0; top:9%; width:44%; aspect-ratio:.9; z-index:2; }
.workshop-image--three { right:7%; bottom:0; width:45%; aspect-ratio:1.18; z-index:3; }
.about-workshop-copy h2 { margin-bottom:28px; }
.about-workshop-copy > p:not(.eyebrow,.lead) { color:rgba(255,255,255,.54); }
.about-workshop-copy .button { margin-top:22px; }

.about-location-grid { display:grid; grid-template-columns:minmax(350px,.7fr) minmax(500px,1fr); gap:clamp(60px,9vw,150px); align-items:center; }
.about-location-copy h2 { margin-bottom:28px; }
.map-abstract,.contact-location-map { position:relative; min-height:540px; border:1px solid var(--line); background:var(--ink-2); overflow:hidden; }
.map-grid-lines { position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px); background-size:42px 42px; }
.map-road { position:absolute; height:3px; background:rgba(255,255,255,.18); border-radius:999px; transform-origin:left; }
.map-road--one { left:-5%; top:31%; width:110%; transform:rotate(12deg); }
.map-road--two { left:7%; top:64%; width:94%; transform:rotate(-17deg); }
.map-road--three { left:44%; top:-5%; width:86%; transform:rotate(82deg); }
.map-road--four { left:-10%; top:77%; width:120%; transform:rotate(4deg); }
.map-pin-large { position:absolute; left:54%; top:47%; display:grid; place-items:center; width:88px; height:88px; background:var(--accent); border:10px solid rgba(10,13,16,.9); border-radius:50%; color:var(--ink); box-shadow:0 0 0 1px rgba(255,255,255,.2),0 0 70px rgba(240,106,47,.3); transform:translate(-50%,-50%); }
.map-pin-large svg { width:35px; height:35px; fill:none; stroke:currentColor; stroke-width:1.6; }
.map-pin-large span { position:absolute; bottom:-28px; color:var(--white); font-size:.64rem; font-weight:900; letter-spacing:.13em; }
.map-abstract > p { position:absolute; right:22px; bottom:18px; color:rgba(255,255,255,.38); font-size:.65rem; font-weight:800; letter-spacing:.13em; line-height:1.55; text-align:right; }

/* Contact page ---------------------------------------------------- */
.contact-hero {
	position:relative;
	min-height:620px;
	padding-top:calc(var(--header-h) + clamp(110px,12vw,190px));
	padding-bottom:clamp(80px,9vw,130px);
	background:linear-gradient(135deg,#080b0e,#151b21);
	overflow:hidden;
}
.contact-hero-grid { position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1fr) minmax(360px,.62fr); gap:clamp(60px,9vw,150px); align-items:end; }
.contact-hero-number { display:grid; gap:12px; padding-top:26px; border-top:1px solid var(--line); }
.contact-hero-number a { font-size:clamp(2.2rem,4.3vw,5rem); font-weight:780; letter-spacing:-.05em; line-height:1; transition:color .35s ease; }
.contact-hero-number a:hover { color:var(--accent-soft); }
.contact-hero-number span { color:rgba(255,255,255,.45); font-size:.66rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }

.contact-details-grid { display:grid; grid-template-columns:minmax(300px,.55fr) minmax(600px,1fr); gap:clamp(55px,8vw,130px); align-items:start; }
.contact-details-intro h2 { margin-bottom:28px; }
.contact-details-intro > p:last-child { color:rgba(255,255,255,.55); }
.contact-detail-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.contact-detail-card { position:relative; display:flex; flex-direction:column; min-height:280px; padding:26px; border:1px solid var(--line); background:var(--ink-2); transition:transform .45s var(--ease),border-color .35s ease; }
.contact-detail-card:hover { transform:translateY(-6px); border-color:rgba(240,106,47,.55); }
.contact-detail-card:nth-child(3) { grid-column:1 / 3; min-height:220px; }
.contact-detail-card > span { display:grid; place-items:center; width:46px; height:46px; border:1px solid var(--line); border-radius:50%; color:var(--accent-soft); }
.contact-detail-card small { margin-top:auto; color:rgba(255,255,255,.43); font-size:.62rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.contact-detail-card strong { margin-top:6px; font-size:clamp(1.25rem,2vw,2rem); line-height:1.2; }
.contact-detail-card p { margin:10px 40px 0 0; color:rgba(255,255,255,.53); font-size:.85rem; }
.contact-detail-card > i { position:absolute; right:24px; bottom:24px; }
.contact-detail-card > i svg { width:21px; height:21px; fill:none; stroke:currentColor; transition:transform .4s var(--ease); }
.contact-detail-card:hover > i svg { transform:translateX(5px); }

.contact-location-grid { display:grid; grid-template-columns:minmax(500px,1fr) minmax(340px,.65fr); gap:clamp(60px,9vw,150px); align-items:center; }
.contact-location-map { border-color:var(--line-dark); background:#d8d2c8; }
.contact-location-map .map-grid-lines { background-image:linear-gradient(rgba(10,13,16,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(10,13,16,.08) 1px,transparent 1px); }
.contact-location-map .map-road { background:rgba(10,13,16,.25); }
.contact-location-map .map-pin-large { border-color:rgba(242,239,232,.9); box-shadow:0 0 0 1px rgba(10,13,16,.16),0 0 60px rgba(240,106,47,.25); }
.contact-location-map .map-pin-large span { color:var(--ink); }
.map-city-label { position:absolute; left:22px; bottom:18px; color:rgba(10,13,16,.55); font-size:.67rem; font-weight:850; letter-spacing:.13em; }
.contact-location-copy h2 { margin-bottom:22px; }
.contact-location-copy address { margin-bottom:12px; font-size:1.15rem; font-weight:680; }
.contact-location-copy > p { color:rgba(10,13,16,.62); }
.contact-location-copy .location-actions { margin-top:32px; }

.contact-response-note { margin-top:40px; padding:22px; border:1px solid var(--line); background:var(--ink-2); }
.contact-response-note span { color:var(--accent-soft); font-size:.64rem; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.contact-response-note p { margin:9px 0 0; color:rgba(255,255,255,.56); font-size:.84rem; }

/* Quote page & form ---------------------------------------------- */
.quote-hero-steps { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); }
.quote-hero-steps > div { min-height:110px; padding:18px; background:var(--ink-2); }
.quote-hero-steps span { color:var(--accent-soft); font-size:.65rem; font-weight:850; letter-spacing:.12em; }
.quote-hero-steps p { margin:28px 0 0; font-size:.85rem; font-weight:680; }

.quote-layout { display:grid; grid-template-columns:minmax(300px,.55fr) minmax(580px,1fr); gap:clamp(55px,9vw,150px); align-items:start; }
.quote-sidebar { position:sticky; top:calc(var(--header-h) + 42px); }
.quote-sidebar h2 { margin-bottom:28px; }
.quote-sidebar > p:not(.eyebrow) { color:rgba(255,255,255,.56); }
.quote-help-list { display:grid; gap:1px; margin-top:38px; background:var(--line); border:1px solid var(--line); }
.quote-help-list > div { padding:22px; background:var(--ink-2); }
.quote-help-list > div > span { display:grid; place-items:center; width:42px; height:42px; border:1px solid var(--line); border-radius:50%; color:var(--accent-soft); }
.quote-help-list svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.5; }
.quote-help-list h3 { margin:18px 0 9px; font-size:1.15rem; }
.quote-help-list p { margin:0; color:rgba(255,255,255,.52); font-size:.82rem; }
.direct-contact-box { display:grid; gap:8px; margin-top:22px; padding:22px; border:1px solid var(--line); }
.direct-contact-box small { margin-bottom:5px; color:rgba(255,255,255,.43); font-size:.65rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.direct-contact-box a { display:flex; align-items:center; gap:10px; font-size:.9rem; font-weight:680; }
.direct-contact-box .icon { color:var(--accent-soft); }

.quote-form-wrap { width:100%; }
.form-status { margin-bottom:18px; padding:15px 18px; border:1px solid; font-size:.9rem; }
.form-status--success { border-color:rgba(59,125,85,.55); background:rgba(59,125,85,.13); color:#a8dbb8; }
.form-status--error { border-color:rgba(166,61,43,.6); background:rgba(166,61,43,.12); color:#ffc0b3; }
.quote-form { position:relative; padding:clamp(28px,5vw,58px); border:1px solid var(--line); background:var(--ink-2); }
.form-honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.form-grid { display:grid; gap:18px; }
.form-grid--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.field { display:grid; gap:9px; margin-bottom:18px; }
.field > span { color:rgba(255,255,255,.63); font-size:.68rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.field > span b { color:var(--accent-soft); }
.field input,.field select,.field textarea { width:100%; border:1px solid var(--line); border-radius:0; background:#0b0f13; color:var(--white); outline:none; transition:border-color .3s ease,background .3s ease; }
.field input,.field select { min-height:56px; padding:0 16px; }
.field textarea { min-height:160px; padding:15px 16px; resize:vertical; }
.field input::placeholder,.field textarea::placeholder { color:rgba(255,255,255,.29); }
.field input:focus,.field select:focus,.field textarea:focus { border-color:var(--accent); background:#0d1217; }
.field select { appearance:none; background-image:linear-gradient(45deg,transparent 50%,rgba(255,255,255,.6) 50%),linear-gradient(135deg,rgba(255,255,255,.6) 50%,transparent 50%); background-position:calc(100% - 19px) 25px,calc(100% - 14px) 25px; background-size:5px 5px,5px 5px; background-repeat:no-repeat; }
.file-field { display:flex; align-items:center; gap:17px; min-height:110px; margin:4px 0 22px; padding:20px; border:1px dashed rgba(255,255,255,.28); background:rgba(255,255,255,.02); cursor:pointer; transition:border-color .3s ease,background .3s ease; }
.file-field:hover { border-color:var(--accent); background:rgba(240,106,47,.05); }
.file-field input { position:absolute; width:1px; height:1px; opacity:0; }
.file-field__icon { display:grid; place-items:center; flex:0 0 auto; width:52px; height:52px; background:var(--accent); border-radius:50%; color:var(--ink); }
.file-field__icon svg { width:24px; height:24px; fill:none; stroke:currentColor; }
.file-field__copy { display:grid; gap:3px; }
.file-field__copy strong { font-size:.92rem; }
.file-field__copy small { color:rgba(255,255,255,.4); font-size:.72rem; }
.consent-field { display:grid; grid-template-columns:18px 1fr; gap:12px; align-items:start; margin:0 0 28px; color:rgba(255,255,255,.5); font-size:.76rem; }
.consent-field input { width:18px; height:18px; accent-color:var(--accent); }
.consent-field a { color:var(--white); text-decoration:underline; text-underline-offset:3px; }
.form-submit-row { display:grid; grid-template-columns:minmax(220px,.55fr) 1fr; gap:24px; align-items:center; }
.form-submit-row p { margin:0; color:rgba(255,255,255,.4); font-size:.72rem; }

.photo-quality-grid { display:grid; grid-template-columns:minmax(330px,.65fr) minmax(500px,1fr); gap:clamp(60px,9vw,150px); align-items:center; }
.photo-quality-example { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.photo-quality-example figure { position:relative; aspect-ratio:.86; margin:0; overflow:hidden; }
.photo-quality-example picture,.photo-quality-example img { width:100%; height:100%; }
.photo-quality-example figcaption { position:absolute; left:14px; right:14px; bottom:14px; padding:10px 12px; background:rgba(10,13,16,.86); color:var(--white); font-size:.66rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.photo-quality-example figcaption span { color:var(--accent-soft); margin-right:8px; }

/* Legal content --------------------------------------------------- */
.legal-hero { position:relative; min-height:520px; padding-top:calc(var(--header-h) + clamp(100px,11vw,170px)); padding-bottom:90px; background:linear-gradient(135deg,#090c0f,#151b21); }
.legal-hero-grid { position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1fr) minmax(330px,.55fr); gap:clamp(55px,9vw,150px); align-items:end; }
.legal-layout { display:grid; grid-template-columns:260px minmax(0,820px); gap:clamp(60px,9vw,140px); justify-content:center; align-items:start; }
.legal-index { position:sticky; top:calc(var(--header-h) + 40px); }
.legal-index nav { display:grid; border-top:1px solid var(--line); }
.legal-index nav a { padding:12px 0; border-bottom:1px solid var(--line); color:rgba(255,255,255,.56); font-size:.78rem; transition:color .3s ease,padding-left .3s ease; }
.legal-index nav a:hover { color:var(--accent-soft); padding-left:6px; }
.legal-content { display:grid; gap:70px; }
.legal-content section { scroll-margin-top:calc(var(--header-h) + 30px); }
.legal-content section > span { color:var(--accent-soft); font-size:.68rem; font-weight:850; letter-spacing:.13em; }
.legal-content h2 { margin:14px 0 24px; font-size:clamp(2rem,3.2vw,3.6rem); }
.legal-content p,.legal-content li { color:rgba(255,255,255,.62); }
.legal-content ul { padding-left:20px; }
.legal-content a { color:var(--accent-soft); text-decoration:underline; text-underline-offset:3px; }

/* Generic content, posts & 404 ----------------------------------- */
.content-section { background:var(--paper); color:var(--ink); }
.prose { max-width:880px; }
.prose > *:first-child { margin-top:0; }
.prose h2 { margin:1.5em 0 .55em; font-size:clamp(2rem,3vw,3.5rem); }
.prose h3 { margin:1.4em 0 .55em; }
.prose p,.prose li { color:rgba(10,13,16,.72); }
.prose a { color:var(--accent-deep); text-decoration:underline; text-underline-offset:3px; }
.prose img { margin-block:32px; }

.post-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.post-card { border:1px solid var(--line); background:var(--ink-2); }
.post-card__image { display:block; aspect-ratio:1.35; overflow:hidden; }
.post-card__image img { width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.post-card:hover .post-card__image img { transform:scale(1.05); }
.post-card__copy { padding:24px; }
.post-card time { color:var(--accent-soft); font-size:.65rem; font-weight:850; letter-spacing:.1em; }
.post-card h2 { margin:14px 0 18px; font-size:1.65rem; }
.post-card p { color:rgba(255,255,255,.55); }
.pagination { grid-column:1 / -1; margin-top:35px; }
.nav-links { display:flex; gap:8px; }
.page-numbers { display:grid; place-items:center; min-width:42px; height:42px; border:1px solid var(--line); }
.page-numbers.current { background:var(--accent); color:var(--ink); border-color:var(--accent); }
.empty-state { grid-column:1 / -1; padding:80px 30px; border:1px solid var(--line); text-align:center; }
.empty-state h2 { margin-bottom:18px; }
.empty-state p { color:rgba(255,255,255,.55); }

.article-hero { padding-top:calc(var(--header-h) + 100px); padding-bottom:80px; background:var(--ink-2); }
.article-hero-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.7fr); gap:clamp(55px,8vw,130px); align-items:end; }
.article-hero figure { min-height:400px; margin:0; overflow:hidden; }
.article-hero figure img { width:100%; height:100%; object-fit:cover; }

.error-page { display:grid; align-items:center; min-height:100svh; padding-top:var(--header-h); background:radial-gradient(circle at 38% 50%,rgba(240,106,47,.13),transparent 24%),var(--ink); }
.error-page-grid { display:grid; grid-template-columns:minmax(420px,1fr) minmax(340px,.72fr); gap:clamp(60px,9vw,150px); align-items:center; }
.error-code { display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.1); font-size:clamp(8rem,20vw,20rem); font-weight:900; letter-spacing:-.1em; line-height:1; }
.error-wheel { display:block; width:.68em; aspect-ratio:1; margin-inline:.03em; border:5px solid rgba(240,106,47,.5); border-radius:50%; background:repeating-conic-gradient(from 0deg,transparent 0 14deg,rgba(240,106,47,.35) 15deg 18deg); animation:orbitSpin 16s linear infinite; }
.error-copy h1 { margin-bottom:25px; font-size:clamp(3rem,5.5vw,6.6rem); }
.error-copy > p:not(.eyebrow) { color:rgba(255,255,255,.55); }
.error-copy .hero-actions { margin-top:30px; }

/* Prefooter & footer --------------------------------------------- */
.prefooter {
	position:relative;
	padding-block:clamp(80px,9vw,130px);
	background:var(--accent);
	color:var(--ink);
	overflow:hidden;
}
.prefooter::after { content:"PNP"; position:absolute; right:-1vw; bottom:-.35em; color:rgba(10,13,16,.07); font-size:clamp(12rem,28vw,29rem); font-weight:900; letter-spacing:-.1em; line-height:1; pointer-events:none; }
.prefooter-grid { position:relative; z-index:2; display:grid; grid-template-columns:minmax(380px,1fr) auto; gap:50px; align-items:end; }
.prefooter .eyebrow { color:var(--ink); }
.prefooter h2 { margin-bottom:0; font-size:clamp(2.8rem,5.6vw,6.2rem); }
.prefooter h2 em { color:var(--white); }
.prefooter-actions { display:flex; flex-direction:column; gap:10px; min-width:260px; }

.site-footer { padding-top:clamp(70px,8vw,110px); background:#07090b; }
.footer-grid { display:grid; grid-template-columns:minmax(280px,1.25fr) .65fr .85fr .65fr; gap:clamp(35px,6vw,90px); padding-bottom:75px; }
.site-brand--footer { margin-bottom:24px; }
.footer-brand > p { max-width:390px; color:rgba(255,255,255,.44); font-size:.85rem; }
.footer-label { margin-bottom:18px; color:rgba(255,255,255,.35); font-size:.62rem; font-weight:850; letter-spacing:.14em; text-transform:uppercase; }
.footer-menu { display:grid!important; justify-content:stretch!important; gap:6px!important; margin:0; padding:0; list-style:none; }
.footer-menu a,.footer-contact a,.footer-contact address,.social-link { display:flex; align-items:center; gap:9px; padding:5px 0; color:rgba(255,255,255,.62); font-size:.82rem; transition:color .3s ease; }
.footer-menu a:hover,.footer-contact a:hover,.social-link:hover { color:var(--white); }
.footer-contact address { line-height:1.55; }
.social-link .icon { color:var(--accent-soft); }
.footer-bottom { display:flex; justify-content:space-between; gap:30px; padding-block:20px; border-top:1px solid var(--line); color:rgba(255,255,255,.32); font-size:.66rem; }
.footer-bottom p { margin:0; }

.back-to-top {
	position:fixed;
	right:22px;
	bottom:22px;
	z-index:800;
	display:grid;
	place-items:center;
	width:46px;
	height:46px;
	padding:0;
	border:1px solid var(--line);
	border-radius:50%;
	background:rgba(10,13,16,.82);
	color:var(--white);
	backdrop-filter:blur(10px);
	opacity:0;
	pointer-events:none;
	transform:translateY(12px);
	transition:opacity .3s ease,transform .3s var(--ease),background .3s ease;
}
.back-to-top.is-visible { opacity:1; pointer-events:auto; transform:none; }
.back-to-top:hover { background:var(--accent); color:var(--ink); }
.back-to-top svg { width:19px; height:19px; fill:none; stroke:currentColor; transform:rotate(-90deg); }

/* Custom cursor -------------------------------------------------- */
.cursor,.cursor-dot { position:fixed; z-index:9998; left:0; top:0; pointer-events:none; opacity:0; transform:translate3d(-100px,-100px,0); }
.cursor { width:34px; height:34px; border:1px solid rgba(255,255,255,.52); border-radius:50%; background:rgba(10,13,16,.12); backdrop-filter:blur(3px); box-shadow:0 0 0 0 rgba(240,106,47,0); transition:width .35s var(--ease),height .35s var(--ease),background .35s ease,border-color .35s ease,box-shadow .35s ease,opacity .25s ease; }
.cursor-dot { width:5px; height:5px; background:var(--accent); border-radius:50%; transition:opacity .25s ease,transform .12s linear; }
.cursor.is-active { width:58px; height:58px; border-color:rgba(240,106,47,.92); background:rgba(240,106,47,.10); box-shadow:0 0 0 7px rgba(240,106,47,.06); }
.has-custom-cursor .cursor,.has-custom-cursor .cursor-dot { opacity:1; }

/* Tilt is enhanced via JS; no effect required for use. */
[data-tilt] { transform-style:preserve-3d; transition:transform .25s ease-out; }

/* Responsive ----------------------------------------------------- */
@media (max-width: 1260px) {
	:root { --header-h:78px; --gutter:clamp(20px,3vw,42px); }
	.header-inner { grid-template-columns:minmax(190px,.8fr) auto minmax(165px,.7fr); gap:22px; width:min(calc(100% - 32px),1480px); }
	.site-nav .menu { gap:18px; }
	.site-nav .menu a { font-size:.64rem; }
	.header-phone span { display:none; }
	.hero-grid { grid-template-columns:minmax(0,.92fr) minmax(450px,.8fr); gap:55px; }
	.service-preview { display:none; }
	.discipline-card { grid-template-columns:1fr; }
	.discipline-card__media,.discipline-card__graphic { min-height:360px; }
	.discipline-card__copy { min-height:300px; }
}

@media (max-width: 1080px) {
	.header-quote { display:none; }
	.header-inner { grid-template-columns:minmax(185px,1fr) auto; }
	.site-nav { grid-column:1 / -1; order:3; }
	.site-nav .menu { flex-wrap:wrap; justify-content:flex-start; gap:4px 18px; padding-bottom:12px; }
	.header-actions { grid-column:2; grid-row:1; }

	html:not(.has-js) .site-header { position:relative; background:var(--ink); border-bottom:1px solid var(--line); }
	html:not(.has-js) .header-inner { padding-top:8px; }
	html:not(.has-js) .site-nav .menu a { padding-block:7px; }

	.has-js .header-inner { grid-template-columns:minmax(185px,1fr) auto; }
	.has-js .site-nav { position:fixed; inset:0; z-index:-1; display:flex; flex-direction:column; justify-content:center; padding:110px var(--gutter) 50px; background:rgba(7,9,11,.98); opacity:0; visibility:hidden; transform:translateY(-12px); transition:opacity .4s var(--ease),visibility .4s,transform .4s var(--ease); }
	.has-js .site-nav.is-open { z-index:998; opacity:1; visibility:visible; transform:none; }
	.has-js .site-nav .menu { display:grid; justify-items:start; gap:8px; width:100%; max-width:720px; margin:auto; }
	.has-js .site-nav .menu a { font-size:clamp(1.8rem,5vw,4rem); font-weight:720; letter-spacing:-.04em; text-transform:none; }
	.has-js .site-nav .menu a::after { bottom:3px; }
	.has-js .mobile-nav-meta { display:grid; gap:8px; width:100%; max-width:720px; margin:40px auto 0; padding-top:22px; border-top:1px solid var(--line); }
	.has-js .mobile-nav-meta a { display:flex; align-items:center; gap:10px; color:rgba(255,255,255,.65); font-size:.85rem; }
	.has-js .menu-toggle { position:relative; z-index:1001; display:block; }

	.hero--home { min-height:auto; }
	.hero-grid { grid-template-columns:1fr; }
	.hero-copy { max-width:850px; padding-top:30px; }
	.hero-visual { min-height:650px; width:min(100%,760px); margin-inline:auto; }
	.hero-orbit { width:560px; max-width:80vw; }
	.hero-image--main { width:58%; }
	.hero-image--top { width:31%; }
	.hero-image--bottom { width:38%; }

	.craft-grid,.gas-grid,.service-matrix-grid,.dual-specialism-grid,.repair-principles-grid,.color-direction-grid,.blast-project-grid,.gas-expectations-grid,.about-workshop-grid,.about-location-grid,.contact-details-grid,.contact-location-grid,.quote-layout,.photo-quality-grid { grid-template-columns:1fr; }
	.craft-copy,.gas-copy,.dual-specialism-copy,.repair-principles-copy,.color-direction-copy,.blast-project-copy,.gas-expectations-copy,.about-workshop-copy,.about-location-copy,.contact-details-intro,.contact-location-copy { max-width:760px; }
	.craft-gallery { width:min(100%,780px); }
	.gas-visual { width:min(100%,690px); margin-inline:auto; }
	.service-matrix-intro,.quote-sidebar,.faq-intro,.blast-process-sticky,.gas-installation-sticky,.about-values-sticky,.legal-index { position:static; }
	.service-matrix-grid { gap:50px; }
	.editorial-service--split { grid-column:1 / 8; }
	.editorial-service--compact { grid-column:8 / 13; }
	.editorial-service--gas { grid-column:1 / 13; }
	.discipline-grid { grid-template-columns:1fr; }
	.discipline-card { grid-template-columns:minmax(0,1fr) minmax(300px,.7fr); }
	.about-workshop-gallery,.repair-principles-media,.color-direction-visual { width:min(100%,760px); }
	.contact-location-map { order:2; }
	.form-submit-row { grid-template-columns:1fr; }
}

@media (max-width: 880px) {
	:root { --h1:clamp(3rem,11vw,6rem); --h2:clamp(2.35rem,8vw,4.6rem); }
	.section-heading--split,.projects-heading,.page-hero-grid,.legal-hero-grid,.finish-intro-grid,.blast-definition-grid,.gas-positioning-grid,.project-context-grid,.privacy-note-grid,.about-position-grid,.blast-safety-grid,.repair-decision-grid,.project-photo-guide-grid { grid-template-columns:1fr; gap:35px; }
	.page-hero { min-height:auto; }
	.page-hero-index { max-width:480px; }
	.service-hero-grid,.service-hero-grid--reverse,.gas-page-hero-grid,.contact-hero-grid,.article-hero-grid,.error-page-grid { grid-template-columns:1fr; }
	.service-hero-media { min-height:540px; }
	.service-hero-grid--reverse .service-hero-media { order:2; }
	.service-hero-copy { max-width:760px; }
	.gas-engine-visual { width:min(100%,700px); min-height:620px; }
	.service-row { grid-template-columns:48px 1fr 44px; min-height:145px; }
	.service-row__title { grid-column:2; }
	.service-row > p { grid-column:2 / 4; padding-right:40px; }
	.service-arrow { grid-column:3; grid-row:1; }
	.service-number { grid-row:1 / 3; align-self:start; padding-top:18px; }
	.project-mosaic { grid-template-columns:1fr 1fr; grid-template-rows:380px 320px; }
	.project-card--tall { grid-row:1 / 3; }
	.project-card--wide { grid-column:2; }
	.project-card--small { grid-column:2; }
	.faq-grid { grid-template-columns:1fr; gap:50px; }
	.faq-intro { max-width:650px; }
	.home-contact-grid { grid-template-columns:1fr; }
	.home-contact-copy { max-width:700px; }
	.editorial-service--hero,.editorial-service--split,.editorial-service--gas { grid-template-columns:1fr; }
	.editorial-service--hero { grid-column:1 / 13; }
	.editorial-service--split { grid-column:1 / 8; }
	.editorial-service--compact { grid-column:8 / 13; }
	.editorial-service--gas { grid-column:1 / 13; }
	.matrix-row { grid-template-columns:1fr; gap:8px; }
	.matrix-row--head { display:none; }
	.dual-cards,.engine-type-grid { grid-template-columns:1fr; }
	.process-grid,.horizontal-process,.surface-steps,.blast-case-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.process-step:nth-child(2),.horizontal-process__item:nth-child(2),.blast-case-grid article:nth-child(2) { border-right:0; }
	.repair-timeline { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.repair-timeline article:nth-child(2n) { border-right:1px solid var(--line); }
	.repair-timeline article:nth-child(3),.repair-timeline article:nth-child(5) { border-left:1px solid var(--line); }
	.issue-grid,.finish-option-list { grid-template-columns:1fr 1fr; }
	.issue-card:last-child,.finish-option:last-child { grid-column:1 / -1; }
	.wheel-gallery { grid-template-columns:1fr 1fr; grid-template-rows:420px 280px; }
	.wheel-gallery__item--one { grid-row:1; }
	.wheel-gallery__item--two { grid-column:2; grid-row:1; }
	.wheel-gallery__item--three { grid-column:1; grid-row:2; }
	.wheel-gallery__item--four { grid-column:2; grid-row:2; }
	.finish-gallery { grid-template-columns:1fr 1fr; }
	.finish-gallery figure:first-child { grid-column:1 / -1; }
	.info-token-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
	.project-hero-stack { justify-self:start; width:min(100%,560px); }
	.project-archive-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.archive-item,.archive-item--large,.archive-item--wide,.archive-item--tall { grid-column:auto; min-height:460px; }
	.archive-item--large:first-child { grid-column:1 / -1; min-height:580px; }
	.about-values-grid,.blast-process-grid,.gas-installation-grid { grid-template-columns:1fr; }
	.discipline-card { grid-template-columns:1fr; }
	.contact-detail-cards { grid-template-columns:1fr; }
	.contact-detail-card:nth-child(3) { grid-column:auto; }
	.quote-layout { gap:55px; }
	.legal-layout { grid-template-columns:1fr; }
	.legal-index nav { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; }
	.prefooter-grid { grid-template-columns:1fr; align-items:start; }
	.prefooter-actions { flex-direction:row; flex-wrap:wrap; }
	.footer-grid { grid-template-columns:1.2fr 1fr; }
	.error-code { font-size:clamp(8rem,34vw,17rem); }
}

@media (max-width: 640px) {
	:root { --header-h:72px; --gutter:20px; --display:clamp(3rem,15.5vw,5rem); --h1:clamp(2.7rem,13.2vw,4.7rem); --h2:clamp(2.15rem,10vw,3.8rem); }
	body { font-size:1rem; }
	.section { padding-block:82px; }
	.header-inner { width:calc(100% - 28px); min-height:var(--header-h); }
	.brand-symbol { width:38px; height:38px; }
	.brand-copy strong { font-size:.88rem; }
	.brand-copy small { font-size:.54rem; }
	.header-phone { display:none; }
	html:not(.has-js) .site-nav .menu { gap:2px 14px; }
	html:not(.has-js) .site-nav .menu a { font-size:.6rem; }
	.has-js .site-nav { padding-inline:22px; }
	.has-js .site-nav .menu a { font-size:clamp(1.8rem,9vw,3.1rem); }

	.hero--home { padding-top:calc(var(--header-h) + 55px); padding-bottom:76px; }
	.hero-copy { padding-top:20px; }
	.display-title { margin-bottom:24px; }
	.hero-actions { align-items:flex-start; flex-direction:column; }
	.hero-proof { grid-template-columns:1fr; gap:13px; }
	.hero-proof > div { min-height:34px; }
	.hero-visual { min-height:500px; margin-top:20px; }
	.hero-orbit { width:420px; max-width:94vw; }
	.hero-image--main { left:0; top:7%; width:67%; }
	.hero-image--top { right:0; width:38%; }
	.hero-image--bottom { right:0; bottom:0; width:48%; }
	.hero-location-chip { left:0; bottom:-4%; }
	.scroll-cue { display:none; }
	.service-marquee { padding-block:14px; }

	.section-heading,.projects-heading { margin-bottom:48px; }
	.service-row { grid-template-columns:38px 1fr 42px; gap:13px; padding-block:22px; }
	.service-icon { width:46px; height:46px; }
	.service-icon svg { width:24px; height:24px; }
	.service-row__title { gap:13px; }
	.service-row__title h3 { font-size:1.25rem; }
	.service-row > p { padding-right:0; font-size:.82rem; }

	.craft-gallery { min-height:540px; }
	.craft-image--large { width:68%; }
	.craft-image--small { width:43%; }
	.craft-image--wide { width:60%; }
	.gas-types { grid-template-columns:1fr; }
	.gas-visual { min-height:460px; }
	.gas-core { width:100px; border-width:10px; }
	.gas-main-icon svg { width:40px; height:40px; }
	.gas-node { padding:8px; font-size:.52rem; }
	.process-grid,.horizontal-process,.surface-steps,.blast-case-grid { grid-template-columns:1fr; }
	.process-step,.horizontal-process__item,.surface-step { min-height:240px; }
	.process-step__top { margin-bottom:52px; }
	.horizontal-process__item { border-right:0; border-bottom:1px solid var(--line); }
	.horizontal-process__item h3 { margin-top:58px; }
	.project-mosaic { display:grid; grid-template-columns:1fr; grid-template-rows:none; }
	.project-card,.project-card--tall,.project-card--wide,.project-card--small { grid-column:auto; grid-row:auto; min-height:370px; }
	.home-contact-cards { grid-template-columns:1fr; }
	.contact-card--address { grid-column:auto; }

	.page-hero,.contact-hero,.legal-hero { padding-top:calc(var(--header-h) + 72px); }
	.page-hero-index { width:100%; }
	.service-hero { min-height:auto; padding-top:calc(var(--header-h) + 62px); }
	.service-hero-media { min-height:430px; }
	.service-jump { grid-template-columns:1fr 1fr; }
	.service-jump a { min-height:78px; padding:14px; border-bottom:1px solid var(--line-dark); }
	.service-jump a:nth-child(2) { border-right:0; }

	.editorial-service--hero,.editorial-service--split,.editorial-service--compact,.editorial-service--gas { grid-column:1 / 13; }
	.editorial-service__media,.editorial-service--hero .editorial-service__media,.editorial-service--compact .editorial-service__media { min-height:410px; }
	.editorial-service--gas { padding:22px; }
	.editorial-service__graphic { min-height:340px; }
	.dual-card { min-height:340px; }
	.dual-card__icon { margin:45px 0 30px; }

	.issue-grid,.finish-option-list { grid-template-columns:1fr; }
	.issue-card:last-child,.finish-option:last-child { grid-column:auto; }
	.repair-principles-media,.color-direction-visual,.about-workshop-gallery { min-height:520px; }
	.principle-list > div,.photo-instructions > div { grid-template-columns:42px 1fr; }
	.principle-list p,.photo-instructions p { grid-column:2; }
	.repair-timeline { grid-template-columns:1fr; }
	.repair-timeline article,.repair-timeline article:nth-child(2n),.repair-timeline article:nth-child(3),.repair-timeline article:nth-child(5) { border-left:1px solid var(--line); border-right:1px solid var(--line); }
	.wheel-gallery { grid-template-columns:1fr; grid-template-rows:none; }
	.wheel-gallery__item--one,.wheel-gallery__item--two,.wheel-gallery__item--three,.wheel-gallery__item--four { grid-column:auto; grid-row:auto; min-height:360px; }
	.color-direction-visual { min-height:540px; }
	.finish-gallery { grid-template-columns:1fr; }
	.finish-gallery figure,.finish-gallery figure:nth-child(2),.finish-gallery figure:nth-child(3) { grid-column:auto; min-height:380px; }
	.blast-hero-visual { min-height:480px; }
	.blast-hero-visual figure { width:84%; }
	.engine-plate { clip-path:none; }
	.gas-engine-visual { min-height:520px; }
	.engine-ring--outer { width:84%; }
	.engine-core { width:105px; border-width:9px; }
	.engine-core-icon svg { width:42px; height:42px; }
	.engine-module { width:96px; padding:9px; font-size:.5rem; }
	.info-token-grid { grid-template-columns:1fr 1fr; }
	.info-token:last-child { grid-column:1 / -1; }
	.info-token { min-height:140px; }
	.info-token strong { margin-top:45px; }
	.project-hero-stack { min-height:310px; }
	.stack-image { width:150px; }
	.project-filters { justify-content:flex-start; }
	.project-archive-grid { grid-template-columns:1fr; }
	.archive-item,.archive-item--large,.archive-item--wide,.archive-item--tall,.archive-item--large:first-child { grid-column:auto; min-height:430px; }
	.archive-item figcaption { flex-direction:column; align-items:flex-start; }
	.about-mark-ring { width:230px; }
	.discipline-card__media,.discipline-card__graphic { min-height:330px; }
	.map-abstract,.contact-location-map { min-height:420px; }
	.contact-hero-number a { font-size:2.3rem; }
	.quote-hero-steps { grid-template-columns:1fr 1fr; }
	.form-grid--two,.form-submit-row { grid-template-columns:1fr; }
	.quote-form { padding:22px; }
	.file-field { align-items:flex-start; }
	.photo-quality-example { grid-template-columns:1fr; }
	.legal-index nav { grid-template-columns:1fr; }
	.footer-grid { grid-template-columns:1fr; }
	.footer-bottom { flex-direction:column; gap:7px; }
	.prefooter-actions { flex-direction:column; align-items:stretch; }
	.prefooter-actions .button { width:100%; }
	.has-js.motion-ready [data-reveal-style="left"] { --reveal-x:-22px; }
	.has-js.motion-ready [data-reveal-style="right"] { --reveal-x:22px; }
	.has-js.motion-ready [data-reveal] { filter:blur(4px); }
	.scroll-scene .section-heading::after,.scroll-scene .projects-heading::after { bottom:-16px; }
	.back-to-top { right:14px; bottom:14px; }
}


@media (hover: hover) and (pointer: fine) {
	.service-row:hover,
	.contact-card:hover,
	.contact-detail-card:hover,
	.dual-card:hover,
	.archive-item:hover {
		isolation: isolate;
	}
}

@media (pointer: coarse) {
	.button:active,
	.text-link:active,
	.service-row:active,
	.contact-card:active,
	.contact-detail-card:active,
	.dual-card:active,
	.archive-item:active {
		transform: scale(.985);
	}
}

@media (pointer: coarse) {
	.cursor,.cursor-dot { display:none!important; }
	.service-preview { display:none; }
	[data-tilt] { transform:none!important; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior:auto; }
	*,*::before,*::after { animation-duration:.001ms!important; animation-iteration-count:1!important; scroll-behavior:auto!important; transition-duration:.001ms!important; }
	.has-js.motion-ready [data-reveal] { opacity:1!important; transform:none!important; animation:none!important; }
	[data-parallax] { transform:none!important; }
	.cursor,.cursor-dot { display:none!important; }
}

@media print {
	.site-header,.prefooter,.site-footer,.back-to-top,.cursor,.cursor-dot,.service-marquee { display:none!important; }
	body,.section,.section--paper,.section--dark { background:#fff!important; color:#000!important; }
	.site-main { padding:0; }
	a { color:#000!important; text-decoration:underline; }
}
