/*
Theme Name: Pilotech
Theme URI: https://pilotech.ir/
Author: Pilotech
Author URI: https://pilotech.ir/
Description: A lightweight, RTL-first block theme for the Pilotech corporate website.
Requires at least: 7.0
Tested up to: 7.0
Requires PHP: 7.4
Version: 0.1.0
Text Domain: pilotech
*/

/* Direction B — Cinematic Hardware. Layout CSS is intentionally theme-local. */
:root {
	--pilotech-dark: #080d14;
	--pilotech-dark-raised: #101722;
	--pilotech-dark-line: rgba(255, 255, 255, .14);
	--pilotech-red: #c50a48;
	/* Logo red. Used for navigation accent, where #c50a48 (the action red) would
	   read as a second button. Passes AA on white at 4.94:1; on the dark header
	   it only reaches 3.94:1, so dark surfaces take the same hue lifted. */
	--pilotech-red-accent: #dd0c52;
	--pilotech-red-accent-dark: #e8447b;
	--pilotech-red-hover: #a5083c;
	--pilotech-red-active: #880631;
	--pilotech-blue: #38b6ff;
	--pilotech-blue-ink: #0369a1;
	--pilotech-blue-ink-strong: #075985;
	--pilotech-ink: #111827;
	--pilotech-muted: #4b5563;
	--pilotech-muted-accessible: #6b7280;
	--pilotech-border: #e5e7eb;
	--pilotech-border-strong: #d1d5db;
	--pilotech-control-border: #6b7280;
	--pilotech-radius-xs: 4px;
	--pilotech-radius-sm: 6px;
	--pilotech-radius-md: 8px;
	--pilotech-radius-lg: 12px;
	--pilotech-radius-xl: 16px;
	--pilotech-gutter: clamp(1rem, 3vw, 2.5rem);
	--pilotech-header-pad: .8rem;
	--pilotech-header-rail: 3.25rem;
	/* What the sticky header actually occupies: padding, rail, hairline. */
	--pilotech-header-h: calc(var(--pilotech-header-pad) * 2 + var(--pilotech-header-rail) + 1px);
	--pilotech-section: clamp(4.5rem, 8vw, 7.5rem);
}

*, *::before, *::after { box-sizing: border-box; }
html { min-height: 100%; scroll-behavior: smooth; }
body {
	min-height: 100%;
	margin: 0;
	overflow-x: clip;
	background-color: #fff;
	color: var(--pilotech-ink);
	font-family: IRANSans, Vazirmatn, Tahoma, Arial, sans-serif;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.9;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
body.home { background-color: var(--pilotech-dark); }

/* Layout Shell & Short-Page Sticky Footer */
.wp-site-blocks {
	display: flex;
	min-height: 100vh;
	min-height: 100dvh;
	flex-direction: column;
}
.wp-site-blocks > main { width: 100%; flex: 1 0 auto; }
.wp-site-blocks > footer.wp-block-template-part { margin-block-start: auto; width: 100%; }
.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: 0;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 100;
	margin: 0;
}
.admin-bar .wp-site-blocks > header.wp-block-template-part {
	top: 32px;
}
@media screen and (max-width: 782px) {
	.admin-bar .wp-site-blocks > header.wp-block-template-part {
		top: 46px;
	}
}
@media screen and (max-width: 600px) {
	#wpadminbar {
		position: fixed !important;
		top: 0 !important;
		left: 0 !important;
		right: 0 !important;
		z-index: 99999 !important;
	}
	.admin-bar .wp-site-blocks > header.wp-block-template-part {
		top: 46px;
	}
}

/* ==========================================================================
   Global Typography Foundation
   ========================================================================== */
h1, h2, h3, h4, h5, h6,
.wp-block-heading {
	color: var(--pilotech-ink);
	font-family: inherit;
	font-weight: 700;
	text-wrap: balance;
	overflow-wrap: break-word;
}

h1, .has-heading-1-font-size {
	font-size: clamp(2.25rem, 1.9rem + 1.6vw, 3.25rem);
	line-height: 1.3;
	letter-spacing: -.02em;
}

h2, .has-heading-2-font-size {
	font-size: clamp(1.75rem, 1.55rem + 1vw, 2.5rem);
	line-height: 1.35;
	letter-spacing: -.015em;
}

h3, .has-heading-3-font-size {
	font-size: clamp(1.375rem, 1.25rem + .5vw, 1.75rem);
	line-height: 1.45;
}

h4, .has-title-font-size {
	font-size: clamp(1.125rem, 1.05rem + .35vw, 1.25rem);
	line-height: 1.55;
}

h5, .has-body-large-font-size {
	font-size: 1.125rem;
	line-height: 1.85;
	font-weight: 500;
}

h6 {
	font-size: 1rem;
	line-height: 1.8;
	font-weight: 700;
}

p, .wp-block-paragraph {
	margin-block: 0 1.25rem;
	color: inherit;
	line-height: 1.9;
	overflow-wrap: break-word;
}

.has-body-large-font-size,
.pilotech-lead {
	font-size: 1.125rem;
	line-height: 1.9;
}

.has-small-font-size,
small {
	font-size: .875rem;
	line-height: 1.75;
}

.has-caption-font-size,
figcaption {
	font-size: .8125rem;
	line-height: 1.7;
	color: var(--pilotech-muted);
}

ul, ol {
	margin-block: 0 1.25rem;
	padding-inline-start: 1.5rem;
	line-height: 1.85;
}

/* Prose list spacing. Block navigation renders its items as <li> too, and it
   lays them out with flex — where a top margin on every item but the first
   pushes those items off the row's centre line. Scoped here rather than
   neutralised downstream, which is what the nav, footer, route and index
   lists were each having to do separately. */
:not(.wp-block-navigation__container) > li + li {
	margin-top: .35rem;
}

/* BiDi Isolation & Technical Monospace */
[dir="ltr"], bdi, bdo {
	unicode-bidi: isolate;
}

[dir="ltr"] {
	direction: ltr;
	text-align: left;
}

code, pre, kbd, samp, .wp-block-code, .pilotech-index {
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
	direction: ltr;
	unicode-bidi: isolate;
}

code:not(pre code) {
	padding: .12em .4em;
	border-radius: var(--pilotech-radius-xs);
	background: #f3f4f6;
	color: var(--pilotech-ink);
	font-size: .88em;
}

/* ==========================================================================
   Global Links & Interactive Focus
   ========================================================================== */
a {
	color: inherit;
	text-underline-offset: .25em;
	transition: color 150ms cubic-bezier(0.2, 0, 0, 1), text-decoration-color 150ms cubic-bezier(0.2, 0, 0, 1);
}

p a,
.wp-block-paragraph a,
.pilotech-text-link,
.pilotech-article-content a {
	color: var(--pilotech-blue-ink);
	font-weight: 700;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-decoration-color: rgba(3, 105, 161, .4);
	text-underline-offset: .25em;
}

p a:hover,
.wp-block-paragraph a:hover,
.pilotech-text-link:hover,
.pilotech-article-content a:hover {
	color: var(--pilotech-blue-ink-strong);
	text-decoration-color: var(--pilotech-blue-ink-strong);
	text-decoration-thickness: 1.5px;
}

p a:visited,
.wp-block-paragraph a:visited {
	color: var(--pilotech-blue-ink-strong);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.wp-element-button:focus-visible,
.wp-block-button__link:focus-visible {
	outline: 3px solid var(--pilotech-blue-ink);
	outline-offset: 3px;
}

.pilotech-site-header--home a:focus-visible,
.pilotech-site-header--home button:focus-visible,
.pilotech-site-header--home input:focus-visible,
.pilotech-site-header--home .wp-element-button:focus-visible,
.pilotech-hero a:focus-visible,
.pilotech-hero button:focus-visible,
.pilotech-hero-domains a:focus-visible,
.pilotech-bridge a:focus-visible,
.pilotech-final-cta a:focus-visible,
.pilotech-final-cta button:focus-visible,
.pilotech-site-footer a:focus-visible,
.pilotech-site-footer button:focus-visible,
.pilotech-domain-band a:focus-visible,
.pilotech-about-structure a:focus-visible,
.pilotech-about-cta a:focus-visible,
.pilotech-about-cta button:focus-visible {
	outline: 3px solid var(--pilotech-blue);
	outline-offset: 3px;
}

/* ==========================================================================
   Global Button System
   ========================================================================== */
.wp-block-button__link,
.wp-element-button {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	padding: .75rem 1.5rem;
	border-radius: var(--pilotech-radius-md);
	font-family: inherit;
	font-size: .9375rem;
	font-weight: 700;
	line-height: 1.25;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color 150ms cubic-bezier(0.2, 0, 0, 1),
	            border-color 150ms cubic-bezier(0.2, 0, 0, 1),
	            color 150ms cubic-bezier(0.2, 0, 0, 1),
	            box-shadow 150ms cubic-bezier(0.2, 0, 0, 1);
}

/* Primary Action (Red) */
.wp-block-button:not(.is-style-outline) .wp-block-button__link,
.pilotech-primary-action .wp-block-button__link,
.pilotech-about-primary-action .wp-block-button__link,
.pilotech-capabilities-primary-action .wp-block-button__link,
.pilotech-final-cta .wp-element-button,
.pilotech-contact-form__actions button {
	background: var(--pilotech-red);
	border: 1px solid var(--pilotech-red);
	color: #fff;
}

.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.pilotech-primary-action .wp-block-button__link:hover,
.pilotech-about-primary-action .wp-block-button__link:hover,
.pilotech-capabilities-primary-action .wp-block-button__link:hover,
.pilotech-final-cta .wp-element-button:hover,
.pilotech-contact-form__actions button:hover {
	background: var(--pilotech-red-hover);
	border-color: var(--pilotech-red-hover);
	color: #fff;
}

.wp-block-button:not(.is-style-outline) .wp-block-button__link:active,
.pilotech-primary-action .wp-block-button__link:active,
.pilotech-about-primary-action .wp-block-button__link:active,
.pilotech-capabilities-primary-action .wp-block-button__link:active,
.pilotech-final-cta .wp-element-button:active,
.pilotech-contact-form__actions button:active {
	background: var(--pilotech-red-active);
	border-color: var(--pilotech-red-active);
	color: #fff;
}

/* Secondary / Outline Button */
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	border: 1px solid var(--pilotech-control-border);
	color: var(--pilotech-ink);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: #f9fafb;
	border-color: var(--pilotech-ink);
	color: var(--pilotech-ink);
}

/* Disabled Button State */
button:disabled,
.wp-block-button__link[aria-disabled="true"],
.wp-element-button:disabled {
	background: #6b7280 !important;
	border-color: #9ca3af !important;
	color: #fff !important;
	cursor: not-allowed !important;
	opacity: .75;
}

/* ==========================================================================
   Global Form Controls (Visual Only)
   ========================================================================== */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="search"],
input[type="url"],
input[type="password"],
input[type="number"],
select,
textarea {
	width: 100%;
	min-height: 44px;
	margin: 0;
	padding: .75rem .9rem;
	border: 1px solid var(--pilotech-control-border);
	border-radius: var(--pilotech-radius-md);
	background: #fff;
	color: var(--pilotech-ink);
	font: inherit;
	font-size: .9375rem;
	line-height: 1.6;
	transition: border-color 150ms cubic-bezier(0.2, 0, 0, 1),
	            box-shadow 150ms cubic-bezier(0.2, 0, 0, 1);
}

input[type="text"]:hover,
input[type="email"]:hover,
input[type="tel"]:hover,
input[type="search"]:hover,
input[type="url"]:hover,
input[type="password"]:hover,
input[type="number"]:hover,
select:hover,
textarea:hover {
	border-color: var(--pilotech-ink);
}

input[type="text"]:focus-visible,
input[type="email"]:focus-visible,
input[type="tel"]:focus-visible,
input[type="search"]:focus-visible,
input[type="url"]:focus-visible,
input[type="password"]:focus-visible,
input[type="number"]:focus-visible,
select:focus-visible,
textarea:focus-visible {
	border-color: var(--pilotech-blue-ink);
	outline: 3px solid var(--pilotech-blue-ink);
	outline-offset: 2px;
}

input::placeholder,
textarea::placeholder {
	color: #9ca3af;
	opacity: 1;
}

input:disabled,
select:disabled,
textarea:disabled {
	border-color: #d1d5db;
	background: #f3f4f6;
	color: #6b7280;
	cursor: not-allowed;
}

[aria-invalid="true"] {
	border-color: #b42318 !important;
}

textarea {
	min-height: 10.5rem;
	resize: vertical;
}

label {
	color: var(--pilotech-ink);
	font-size: .9rem;
	font-weight: 700;
	display: block;
	margin-bottom: .5rem;
}


.pilotech-site-header {
	margin: 0;
	padding: var(--pilotech-header-pad) var(--pilotech-gutter);
	border-bottom: 1px solid var(--pilotech-border);
	transition: background-color .15s ease, border-color .15s ease;
}
.pilotech-site-header--home {
	background: var(--pilotech-dark);
	border-color: var(--pilotech-dark-line);
	color: #fff;
}
.pilotech-site-header--light { background: #fff; color: var(--pilotech-ink); }
.pilotech-header-inner {
	position: relative;
	min-height: var(--pilotech-header-rail);
	gap: clamp(1rem, 2.2vw, 2rem);
	align-items: center;
}
.pilotech-brand-lockup {
	display: inline-flex;
	align-items: center;
	gap: .65rem;
	min-height: 44px;
	color: inherit;
	text-decoration: none;
	direction: ltr;
	flex: none;
	border-radius: 6px;
}
.pilotech-brand-mark { width: 2.7rem; height: 2.7rem; object-fit: contain; display: block; }
.pilotech-wordmark { font-family: Nasa, sans-serif; font-size: 1.36rem; line-height: 1; letter-spacing: .015em; white-space: nowrap; }
.pilotech-wordmark-pilo { color: #38b6ff; }
.pilotech-wordmark-tech { color: #dd0c52; }
.pilotech-primary-navigation {
	align-self: center;
	font-size: clamp(.78rem, 1vw, .9rem);
	font-weight: 500;
	display: flex;
	justify-content: center;
	flex: 1 1 auto;
}
.pilotech-primary-navigation .wp-block-navigation__container {
	gap: clamp(.85rem, 1.7vw, 1.55rem);
	align-items: center;
	justify-content: center;
}
.pilotech-primary-navigation .wp-block-navigation-item__content {
	position: relative;
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	padding: .35rem .25rem;
	text-decoration: none;
	transition: color 180ms cubic-bezier(0.2, 0, 0, 1), text-decoration-color 180ms cubic-bezier(0.2, 0, 0, 1);
}
/* Navigation state system -------------------------------------------------
   default : ink (light) / white at .78 (dark), weight 500
   hover   : brand red, plus a hairline rule that draws in from the inline start
   current : weight 700 and a solid, heavier rule that is simply always there
   focus   : the global blue focus ring, so the state never rests on red alone
   Hover and current therefore differ in two ways at once — colour and weight —
   rather than only in the thickness of one line. */
.pilotech-site-header--light { --pilotech-nav-accent: var(--pilotech-red-accent); }
.pilotech-site-header--home { --pilotech-nav-accent: var(--pilotech-red-accent-dark); }

.pilotech-primary-navigation .wp-block-navigation-item__content:hover {
	color: var(--pilotech-nav-accent);
}
.pilotech-primary-navigation a[aria-current="page"] {
	font-weight: 700;
}
.pilotech-site-header--home .pilotech-primary-navigation a[aria-current="page"] {
	color: #fff;
}

/* The rule is a rail affordance: in the drawer, rows carry their own borders. */
@media (min-width: 1024px) {
	.pilotech-primary-navigation .wp-block-navigation-item__content::after {
		content: "";
		position: absolute;
		inset-inline: .25rem;
		bottom: .5rem;
		height: 1.5px;
		background: var(--pilotech-nav-accent);
		transform: scaleX(0);
		/* RTL: the rule grows from the right, which is the inline start. */
		transform-origin: right center;
		transition: transform 200ms cubic-bezier(0.2, 0, 0, 1);
	}
	.pilotech-primary-navigation .wp-block-navigation-item__content:hover::after {
		transform: scaleX(1);
	}
	.pilotech-primary-navigation a[aria-current="page"]::after {
		height: 2.5px;
		transform: scaleX(1);
	}
}

/* Shop leaves the site for the storefront, so it carries the brand red and a
   heavier weight at the same size as its neighbours — a peer in the rail, not
   a second call to action. */
.pilotech-shop-nav-link .wp-block-navigation-item__content {
	font-weight: 700;
}
.pilotech-site-header--light .pilotech-shop-nav-link .wp-block-navigation-item__content {
	color: var(--pilotech-red-accent);
}
.pilotech-site-header--light .pilotech-shop-nav-link .wp-block-navigation-item__content:hover {
	color: var(--pilotech-red-hover);
}
.pilotech-site-header--home .pilotech-shop-nav-link .wp-block-navigation-item__content {
	color: var(--pilotech-red-accent-dark);
}
.pilotech-site-header--home .pilotech-shop-nav-link .wp-block-navigation-item__content:hover {
	color: #f2568a;
}
.pilotech-header-actions {
	display: flex;
	align-items: center;
	gap: clamp(.6rem, 1.4vw, 1.15rem);
	margin: 0;
	flex: none;
}
/* Header search — a contained mode inside the rail, not a floating panel.
   Collapsed it is a 44px control. Open, the navigation yields its space and
   the field expands into it, so the header stays exactly one row and nothing
   is ever painted over page content. Core owns the toggle, the focus move and
   Escape; this only describes the two states. */
.pilotech-header-search.wp-block-search {
	position: relative;
	display: flex;
	width: 2.75rem;
	min-width: 2.75rem;
	height: 2.75rem;
	align-items: center;
	margin: 0;
	flex: none;
	transition: width 200ms cubic-bezier(0.2, 0, 0, 1);
}
.pilotech-header-search .wp-block-search__inside-wrapper {
	width: 100%;
	height: 2.75rem;
	min-height: 2.75rem;
	align-items: center;
	/* No gap while collapsed. Core clips this wrapper (`overflow: hidden`), so
	   a gap here pushes the 44px button 8px past the 44px wrapper and the clip
	   shaves its leading border off. The gap belongs to the open state only. */
	gap: 0;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
}
.pilotech-header-search:not(.wp-block-search__searchfield-hidden) .wp-block-search__inside-wrapper {
	gap: .5rem;
}
.pilotech-header-search .wp-block-search__button {
	display: inline-flex;
	width: 2.75rem;
	height: 2.75rem;
	min-width: 2.75rem;
	margin: 0;
	padding: 0;
	flex: none;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--pilotech-control-border);
	border-radius: var(--pilotech-radius-sm);
	background: transparent;
	color: inherit;
	cursor: pointer;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.pilotech-site-header--light .pilotech-header-search .wp-block-search__button {
	border-color: var(--pilotech-control-border);
	color: var(--pilotech-ink);
}
.pilotech-site-header--light .pilotech-header-search .wp-block-search__button:hover {
	border-color: var(--pilotech-ink);
	background: #f9fafb;
}
.pilotech-site-header--home .pilotech-header-search .wp-block-search__button {
	border-color: rgba(255, 255, 255, .46);
	color: #fff;
}
.pilotech-site-header--home .pilotech-header-search .wp-block-search__button:hover {
	border-color: #fff;
	background: rgba(255, 255, 255, .1);
}

/* Collapsed: the field is present for core to reveal, but takes no space. */
.pilotech-header-search.wp-block-search__searchfield-hidden .wp-block-search__input {
	width: 0;
	min-width: 0;
	flex-basis: 0;
	padding: 0;
	border: 0;
}

/* Open: the block itself widens; the field fills whatever it gained.
   A plain length, not a percentage — the actions group is shrink-to-fit, so a
   percentage here resolves against a width this element is itself defining. */
.pilotech-header-search.wp-block-search:not(.wp-block-search__searchfield-hidden) {
	width: 24rem;
}
.pilotech-header-search:not(.wp-block-search__searchfield-hidden) .wp-block-search__input {
	flex: 1 1 auto;
	width: auto;
	min-width: 0;
	height: 2.75rem;
	min-height: 2.75rem;
	padding-inline: .75rem;
	border: 1px solid var(--pilotech-control-border);
	border-radius: var(--pilotech-radius-sm);
	background: #fff;
	color: var(--pilotech-ink);
	font-family: inherit;
	font-size: .9rem;
}
.pilotech-site-header--home .pilotech-header-search:not(.wp-block-search__searchfield-hidden) .wp-block-search__input {
	background: #0b111b;
	border-color: rgba(255, 255, 255, .32);
	color: #fff;
}
.pilotech-site-header--home .pilotech-header-search .wp-block-search__input::placeholder {
	color: #9ca3af;
}

/* The rail yields: navigation steps aside so the field has room to open into.
   Red stays reserved for the one primary action, so the submit control keeps
   the same neutral treatment it had as a trigger. */
@media (min-width: 1024px) {
	.pilotech-header-inner:has(.pilotech-header-search:not(.wp-block-search__searchfield-hidden)) .pilotech-primary-navigation {
		/* Taken out of flow rather than shrunk: a zero-basis flex item still
		   reserves its min-content width, and squeezing the row of links to
		   nothing wraps them into a column that stretches the whole header. */
		position: absolute;
		inset-inline-start: 0;
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transition: opacity 160ms cubic-bezier(0.2, 0, 0, 1);
	}
	/* Drawer-only controls: the rail has its own search field and CTA.
	   Scoped through the nav, because core styles the item at two classes. */
	.pilotech-primary-navigation .pilotech-nav-search,
	.pilotech-primary-navigation .pilotech-nav-contact { display: none; }
}
.pilotech-header-cta,
.pilotech-header-cta .wp-block-button { display: flex; align-items: center; margin: 0; }
.pilotech-header-cta .wp-block-button__link {
	display: inline-flex;
	height: 2.75rem;
	min-height: 2.75rem;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--pilotech-red);
	border-radius: 6px;
	padding: .65rem 1.15rem;
	color: #fff;
	background: var(--pilotech-red);
	font-size: .875rem;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color .15s ease, border-color .15s ease;
}
.pilotech-header-cta .wp-block-button__link:hover { border-color: var(--pilotech-red-hover); background: var(--pilotech-red-hover); }
.pilotech-site-header--home .pilotech-header-cta .wp-block-button__link {
	border-color: rgba(255,255,255,.42);
	background: transparent;
	color: #fff;
}
.pilotech-site-header--home .pilotech-header-cta .wp-block-button__link:hover,
.pilotech-site-header--home .pilotech-header-cta .wp-block-button__link:focus-visible {
	border-color: #fff;
	background: rgba(255, 255, 255, .14);
	color: #fff;
}
.pilotech-site-header--home .pilotech-header-cta .wp-block-button__link:active {
	border-color: #fff;
	background: rgba(255, 255, 255, .22);
	color: #fff;
}

.pilotech-page-main { background: #fff; }
.pilotech-listing-page > h1 { margin-bottom: .5rem; }
.pilotech-listing-page > h1 + p { max-width: 44rem; color: var(--pilotech-muted); }
.pilotech-listing-page .wp-block-query-no-results {
	margin-top: 2.5rem;
	padding-top: 2rem;
	border-top: 1px solid var(--pilotech-border);
	color: var(--pilotech-muted);
}
/* Search results — an index, not a landing page. The opening states what was
   asked and how much came back, then hands over to the records. Everything
   hugs the container's start edge: the old opening centred itself with
   auto margins on max-widths, which read as a hero and lined up with nothing
   in the list below it. */
.pilotech-search-page {
	padding-block: clamp(2.75rem, 5vw, 4rem) var(--pilotech-section);
}
.pilotech-search-heading {
	margin-bottom: clamp(2rem, 4vw, 2.75rem);
}
.pilotech-search-opening__kicker {
	margin: 0 0 .5rem;
	color: var(--pilotech-muted-accessible);
	font-size: .8125rem;
	font-weight: 500;
	letter-spacing: .06em;
}
.pilotech-search-opening__title {
	max-width: 44rem;
	margin: 0;
	font-size: clamp(1.85rem, 1.5rem + 1.6vw, 2.75rem);
	line-height: 1.35;
	/* The term is user input: it may be Persian, Latin, or both. <bdi> keeps
	   its internal order intact without dragging the RTL page around it. */
	overflow-wrap: anywhere;
}
.pilotech-search-opening__count {
	max-width: 44rem;
	margin: .75rem 0 0;
	color: var(--pilotech-muted);
	font-size: .9375rem;
}
.pilotech-search-opening__count strong {
	color: var(--pilotech-ink);
	font-weight: 700;
}

/* Re-search: a working control, sized like a form field rather than a hero
   input. Same height, radius, border and focus treatment as the header field
   and the 404 field — one control language across all three. */
.pilotech-search-form {
	max-width: 34rem;
	margin: 1.75rem 0 0;
}
.pilotech-search-form .wp-block-search__label {
	display: block;
	margin-bottom: .5rem;
	font-size: .875rem;
	font-weight: 700;
}
.pilotech-search-form .wp-block-search__inside-wrapper { gap: .5rem; }
.pilotech-search-form .wp-block-search__input {
	min-height: 2.75rem;
	padding-inline: .85rem;
	border: 1px solid var(--pilotech-control-border);
	border-radius: var(--pilotech-radius-md);
	font-family: inherit;
	font-size: .9375rem;
}
.pilotech-search-form .wp-block-search__button {
	min-height: 2.75rem;
	margin: 0;
	padding-inline: 1.25rem;
	border: 1px solid var(--pilotech-red);
	border-radius: var(--pilotech-radius-md);
	background: var(--pilotech-red);
	color: #fff;
	font-family: inherit;
	font-size: .9375rem;
	font-weight: 700;
	cursor: pointer;
	transition: background-color 150ms cubic-bezier(0.2, 0, 0, 1),
	            border-color 150ms cubic-bezier(0.2, 0, 0, 1);
}
.pilotech-search-form .wp-block-search__button:hover {
	border-color: var(--pilotech-red-hover);
	background: var(--pilotech-red-hover);
}

/* Records. One rule per result, no cards — the same editorial language the
   blog index uses. */
.pilotech-search-results { border-top: 1px solid var(--pilotech-ink); }
.pilotech-search-result {
	margin: 0;
	padding: clamp(1.5rem, 3vw, 2rem) 0;
	border-bottom: 1px solid var(--pilotech-border);
}
.pilotech-search-result h2 {
	margin: 0;
	font-size: clamp(1.2rem, 1.05rem + .7vw, 1.5rem);
	line-height: 1.5;
}
.pilotech-search-result h2 a {
	color: var(--pilotech-ink);
	text-decoration: none;
}
.pilotech-search-result h2 a:hover {
	color: var(--pilotech-blue-ink);
	text-decoration: underline;
	text-decoration-thickness: 1.5px;
	text-underline-offset: .22em;
}
/* The whole record is one target, so the title carries the hover. */
.pilotech-search-result:hover h2 a { color: var(--pilotech-blue-ink); }
.pilotech-search-result__meta {
	margin: .5rem 0 0;
	color: var(--pilotech-muted-accessible);
	font-size: .8125rem;
}
/* Pages have no meaningful publication date — every one carries the date the
   site was built. Only posts show it, which also means the distinction
   appears on its own once the blog has content. */
.type-page .pilotech-search-result__meta { display: none; }
.pilotech-search-result .wp-block-post-excerpt {
	max-width: 46rem;
	margin-top: .6rem;
}
.pilotech-search-result .wp-block-post-excerpt__excerpt {
	margin: 0;
	color: var(--pilotech-muted);
	font-size: .9375rem;
	line-height: 1.85;
}

.pilotech-search-pagination { margin-top: 2.5rem; }

/* No results. The count line above has already said nothing matched, so this
   block does the useful part: how to search better, and where else to go. */
.pilotech-search-empty { margin: 0; padding: clamp(2rem, 4vw, 2.75rem) 0 0; }
.pilotech-search-empty h2 { margin: 0; font-size: 1.35rem; }
.pilotech-search-empty > p { max-width: 42rem; margin: .75rem 0 0; color: var(--pilotech-muted); }
.pilotech-search-empty__routes-title { margin-top: clamp(2rem, 4vw, 2.75rem); }

/* ==========================================================================
   Home — Cinematic Hardware
   Rhythm: dark hero -> light statement -> white capabilities -> dark bridge
   -> white services -> white journal -> dark close.
   ========================================================================== */
.pilotech-home { margin-top: 0; }
.pilotech-home > .wp-block-post-content { margin: 0; }

/* Shared home typography ------------------------------------------------- */
/* Technical label. Persian keeps IRANSans: monospace and letter-spacing both
   break connected script, so they are reserved for Latin terms only. */
.pilotech-kicker,
.pilotech-section .pilotech-kicker {
	margin: 0 0 .9rem;
	color: var(--pilotech-blue-ink);
	font-size: .875rem;
	font-weight: 700;
	line-height: 1.7;
}
.pilotech-section-route { margin: 2.5rem 0 0; }
.pilotech-section-route a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--pilotech-blue-ink);
	font-weight: 700;
	text-underline-offset: .35em;
}

/* Hero -------------------------------------------------------------------- */
.pilotech-hero {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	margin: 0;
	min-height: min(640px, calc(100svh - 78px));
	background: var(--pilotech-dark);
	color: #fff;
	overflow: hidden;
	isolation: isolate;
}
.pilotech-hero-media {
	position: absolute;
	z-index: -1;
	inset: 0;
	margin: 0;
	background: var(--pilotech-dark);
}
.pilotech-hero-media picture,
.pilotech-hero-media img { display: block; width: 100%; height: 100%; }
.pilotech-hero-media img { object-fit: cover; object-position: 32% 46%; }
/* Scrim: opaque under the RTL copy column (right), clear over the board (left). */
.pilotech-hero-media::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(to left, var(--pilotech-dark) 0%, rgba(8, 13, 20, .96) 30%, rgba(8, 13, 20, .74) 52%, rgba(8, 13, 20, .34) 78%, rgba(8, 13, 20, .22) 100%),
		linear-gradient(to top, rgba(8, 13, 20, .85) 0%, rgba(8, 13, 20, 0) 32%);
}
.pilotech-hero-stage {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 100%;
	padding: clamp(4rem, 9vw, 7.5rem) var(--pilotech-gutter) clamp(3rem, 6vw, 4.5rem);
}
.pilotech-hero-stage > * { max-width: 34rem; margin-inline: 0; }
.pilotech-hero-eyebrow {
	margin: 0 0 1.1rem;
	color: var(--pilotech-blue);
	font-size: .9rem;
	font-weight: 700;
	line-height: 1.7;
}
.pilotech-hero-title {
	margin: 0;
	max-width: 20ch;
	color: #fff;
	font-size: clamp(2.5rem, 4.4vw, 4.15rem);
	font-weight: 700;
	line-height: 1.24;
	letter-spacing: -.03em;
	text-wrap: balance;
}
.pilotech-hero-lead {
	max-width: 36rem;
	margin: 1.5rem 0 0;
	color: #d3dbe6;
	font-size: clamp(1rem, 1.15vw, 1.1rem);
	line-height: 1.95;
}
.pilotech-hero-actions {
	margin-top: 2.25rem;
	gap: .75rem 1.75rem;
	align-items: center;
}
.pilotech-hero-actions .wp-block-buttons { margin: 0; }
.pilotech-hero-actions .wp-block-button__link {
	min-height: 3.25rem;
	padding: .85rem 1.6rem;
	font-size: 1rem;
}
.pilotech-hero-secondary { margin: 0; }
.pilotech-hero-secondary a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: #e2e8f0;
	font-weight: 500;
	text-decoration-color: rgba(226, 232, 240, .45);
	text-underline-offset: .35em;
}
.pilotech-hero-secondary a:hover { color: #fff; text-decoration-color: currentColor; }

/* Hero domain rail — the engineering breadth, inside the first viewport. */
.pilotech-hero-domains {
	position: relative;
	z-index: 1;
	margin: 0;
	padding: 1.05rem var(--pilotech-gutter);
	border-top: 1px solid rgba(255, 255, 255, .14);
	background: rgba(8, 13, 20, .72);
}
.pilotech-hero-domains__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem 2.25rem;
	direction: ltr;
}
.pilotech-hero-domains p {
	margin: 0;
	color: #cbd5e1;
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: .78rem;
	letter-spacing: .01em;
	line-height: 1.6;
}

/* Statement — carries the dark-to-light transition. -----------------------  */
.pilotech-statement {
	margin: 0;
	padding: clamp(3.5rem, 6vw, 5.5rem) var(--pilotech-gutter);
	background: #f3f4f6;
}
.pilotech-statement__inner p {
	max-width: 44rem;
	margin: 0;
	color: var(--pilotech-ink);
	font-size: clamp(1.25rem, 2.1vw, 1.75rem);
	font-weight: 500;
	line-height: 1.8;
	letter-spacing: -.01em;
	text-wrap: pretty;
}

/* Shared light-section frame --------------------------------------------- */
.pilotech-section { margin: 0; padding: var(--pilotech-section) var(--pilotech-gutter); }
.pilotech-section h2 {
	margin: 0;
	color: var(--pilotech-ink);
	font-size: clamp(1.85rem, 3vw, 2.85rem);
	line-height: 1.35;
	letter-spacing: -.022em;
	text-wrap: balance;
}
.pilotech-section p { color: var(--pilotech-muted); line-height: 2; }

/* Capabilities preview ---------------------------------------------------- */
.pilotech-capabilities { background: #fff; }
.pilotech-section-heading { margin-bottom: 2.75rem; }
.pilotech-section-heading h2 { max-width: 24ch; }
.pilotech-capability-list { border-top: 1px solid var(--pilotech-ink); }
.pilotech-capability-row {
	display: grid;
	grid-template-columns: 4rem minmax(0, 1.15fr) minmax(0, .85fr);
	align-items: baseline;
	gap: 1.5rem;
	margin: 0;
	padding: 1.55rem 0;
	border-bottom: 1px solid var(--pilotech-border);
}
.pilotech-capability-row h3,
.pilotech-capability-row p { margin: 0; }
.pilotech-capability-row h3 {
	font-size: clamp(1.15rem, 1.7vw, 1.5rem);
	font-weight: 700;
	line-height: 1.5;
}
.pilotech-capability-en {
	direction: ltr;
	text-align: left;
	color: var(--pilotech-muted);
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: .82rem;
	line-height: 1.7;
}
.pilotech-index {
	color: var(--pilotech-blue-ink) !important;
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: .8rem;
	line-height: 1.7;
}

/* Engineering <-> Supply bridge — the second dark anchor. ------------------ */
.pilotech-bridge {
	margin: 0;
	padding: 0 0 clamp(2.5rem, 4vw, 4rem);
	background: var(--pilotech-dark);
	color: #fff;
}
.pilotech-bridge__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	direction: ltr;
	align-items: stretch;
	gap: clamp(2rem, 5vw, 4.5rem);
	max-width: none !important;
	padding: 0;
}
.pilotech-bridge-media {
	grid-column: 1;
	margin: 0;
	min-height: clamp(20rem, 34vw, 30rem);
	overflow: hidden;
	background: #0b111b;
}
.pilotech-bridge-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 42% 52%;
}
.pilotech-bridge__copy {
	grid-column: 2;
	direction: rtl;
	align-self: center;
	max-width: 34rem;
	padding: clamp(3.5rem, 6vw, 5.5rem) var(--pilotech-gutter) clamp(3.5rem, 6vw, 5.5rem) 0;
}
.pilotech-bridge__copy .pilotech-kicker { color: var(--pilotech-blue); }
.pilotech-bridge__copy h2 {
	margin: 0;
	color: #fff;
	font-size: clamp(1.85rem, 3vw, 2.85rem);
	line-height: 1.35;
	letter-spacing: -.022em;
	text-wrap: balance;
}
.pilotech-bridge__copy p { margin: 1.35rem 0 0; color: #cbd5e1; line-height: 2; }

/* The chain: five ordered steps on a single rule. No flowchart. */
.pilotech-chain { margin-top: clamp(2.5rem, 5vw, 4rem); padding-inline: var(--pilotech-gutter); }
.pilotech-chain__list {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
}
/* Border sits on each step, so the rule survives any column count / wrap. */
.pilotech-chain__list li {
	position: relative;
	display: flex;
	flex-direction: column;
	/* flex-start keeps the LTR English label on the same inline edge as the
	   Persian label, instead of flushing it to the opposite side of the cell. */
	align-items: flex-start;
	gap: .4rem;
	padding: 1.4rem 1.25rem 1.4rem 0;
	border-top: 1px solid rgba(255, 255, 255, .22);
}
.pilotech-chain__list li::before {
	content: "";
	position: absolute;
	inset-block-start: -1px;
	inset-inline-start: 0;
	width: 1px;
	height: 1.6rem;
	background: var(--pilotech-blue);
}
.pilotech-chain__num {
	color: var(--pilotech-blue);
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: .78rem;
	line-height: 1.6;
}
.pilotech-chain__label { color: #fff; font-size: 1.02rem; font-weight: 700; line-height: 1.6; }
.pilotech-chain__en {
	color: #94a3b8;
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: .74rem;
	line-height: 1.6;
}

/* Services preview -------------------------------------------------------- */
.pilotech-services { background: #fff; }
.pilotech-services-grid {
	display: grid;
	grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr);
	gap: clamp(2.5rem, 7vw, 6.5rem);
}
.pilotech-services-intro { position: sticky; top: 6rem; align-self: start; }
.pilotech-services-intro p:not(.pilotech-kicker):not(.pilotech-section-route) { margin: 1.1rem 0 0; }
.pilotech-services-intro .pilotech-section-route { margin-top: 1.75rem; }
.pilotech-service-list { border-top: 1px solid var(--pilotech-ink); }
.pilotech-service-row {
	display: grid;
	grid-template-columns: minmax(9rem, .6fr) minmax(0, 1.4fr);
	gap: .6rem 1.75rem;
	padding: 2rem 0;
	border-bottom: 1px solid var(--pilotech-border);
}
.pilotech-service-row h3,
.pilotech-service-row p { margin: 0; }
.pilotech-service-row h3 { grid-row: 1; font-size: 1.3rem; line-height: 1.5; }
.pilotech-service-row > p:not(.pilotech-service-row__links) { grid-column: 2; grid-row: 1; }
.pilotech-service-row__links {
	grid-column: 2;
	grid-row: 2;
	display: flex;
	flex-wrap: wrap;
	gap: .25rem 1.75rem;
}
.pilotech-service-row__links a {
	display: inline-flex;
	align-items: center;
	/* inline-flex drops the whitespace text node before a nested LTR span. */
	gap: .35em;
	min-height: 44px;
	color: var(--pilotech-blue-ink);
	font-weight: 700;
	text-underline-offset: .35em;
}

/* Journal preview --------------------------------------------------------- */
.pilotech-journal { background: #fff; padding-top: 0; }
.pilotech-journal-heading {
	align-items: end;
	margin-bottom: 2.25rem;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid var(--pilotech-ink);
}
.pilotech-journal-heading h2 { margin: 0; }
.pilotech-journal-heading > a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--pilotech-blue-ink);
	font-weight: 700;
	text-underline-offset: .35em;
}
/* Three previews, image-led where an image exists. Each is a plain column:
   media, then the same meta/title/excerpt stack the archive uses. */
.pilotech-home-query .wp-block-post-template {
	column-gap: clamp(1.5rem, 3vw, 2.5rem);
	row-gap: 0;
	align-items: stretch;
}
.pilotech-preview {
	display: flex;
	flex-direction: column;
	height: 100%;
	margin: 0;
}
/* Every card carries the same fixed 3:2 picture and the same clamped title and
   excerpt, so the three columns come out level without threading shared row
   tracks through the grid. Subgrid did align them, but it also reserved the
   picture row for a post that has no picture, which opened a hole where the
   image should be. */
@media (min-width: 900px) {
	/* The three columns are the same height: the post-template grid stretches
	   every cell to the tallest, and the clamps below keep the content itself
	   close enough that the stretch never has much slack to absorb. */
	.pilotech-preview h3 a {
		display: -webkit-box;
		overflow: hidden;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 3;
	}
	.pilotech-preview .wp-block-post-excerpt__excerpt { -webkit-line-clamp: 3; }

	/* A post with no artwork is not a broken card, and it does not get an empty
	   picture slot either. Its own title is promoted into that slot as a ruled
	   typographic panel on the picture's exact 3:2 box, so the three columns
	   open on blocks of equal height and equal weight, and every column is
	   filled with something the post actually has. */
	.pilotech-preview:not(:has(.pilotech-preview__media)) h3 {
		display: flex;
		order: -1;
		align-items: center;
		aspect-ratio: 3 / 2;
		margin-bottom: 1.1rem;
		padding-block: 1rem;
		overflow: hidden;
		border-top: 2px solid var(--pilotech-ink);
		border-bottom: 1px solid var(--pilotech-border);
		font-size: clamp(1.375rem, 1.9vw, 1.625rem);
		line-height: 1.45;
	}
	/* The panel is a fixed 3:2 box that already crops; a second clamp inside it
	   would only fight the box. */
	.pilotech-preview:not(:has(.pilotech-preview__media)) h3 a {
		display: block;
		-webkit-line-clamp: none;
	}
	/* Its title lives in the panel above, so this card has one row fewer than
	   its neighbours; the extract takes that row back. */
	.pilotech-preview:not(:has(.pilotech-preview__media)) .wp-block-post-excerpt {
		margin-top: .35rem;
	}
	.pilotech-preview:not(:has(.pilotech-preview__media)) .wp-block-post-excerpt__excerpt {
		-webkit-line-clamp: 5;
	}
}
/* Below the 3-up breakpoint the preview becomes a compact row — thumbnail
   beside the text — rather than three squeezed columns or tall stacked cards.
   Three items then stay skimmable in one screen on tablet and phone. */
@media (max-width: 899px) {
	.pilotech-home-query .wp-block-post-template { grid-template-columns: 1fr; gap: 0; }
	.pilotech-preview {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 7rem;
		align-items: center;
		gap: 0 1.1rem;
		padding: 1.25rem 0;
		border-top: 1px solid var(--pilotech-border);
	}
	.pilotech-preview:not(:has(.pilotech-preview__media)) { grid-template-columns: minmax(0, 1fr); }
	.pilotech-preview__media { grid-column: 2; grid-row: 1 / span 3; margin: 0; }
	.pilotech-preview__meta,
	.pilotech-preview h3,
	.pilotech-preview .wp-block-post-excerpt { grid-column: 1; }
	.pilotech-preview .wp-block-post-excerpt__excerpt { -webkit-line-clamp: 2; }
}

@media (min-width: 600px) and (max-width: 899px) {
	.pilotech-preview { grid-template-columns: minmax(0, 1fr) 10rem; gap: 0 1.5rem; }
}

@media (max-width: 399px) {
	.pilotech-preview { grid-template-columns: minmax(0, 1fr) 5.5rem; gap: 0 .9rem; }
}

.pilotech-preview__media {
	margin: 0 0 1.1rem;
	overflow: hidden;
	border-radius: var(--pilotech-radius-sm);
	background: var(--wp--preset--color--surface);
}
.pilotech-preview__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: opacity 150ms cubic-bezier(.2, 0, 0, 1);
}
.pilotech-preview:hover .pilotech-preview__media img { opacity: .9; }
.pilotech-preview__media a:focus-visible {
	outline: 3px solid var(--pilotech-blue-ink);
	outline-offset: 2px;
}
.pilotech-preview__meta {
	gap: .25rem .75rem;
	margin: 0 0 .5rem;
	color: var(--pilotech-muted-accessible);
	font-size: .8125rem;
	line-height: 1.7;
}
.pilotech-preview__meta .wp-block-post-terms,
.pilotech-preview__meta .wp-block-post-date { margin: 0; }
.pilotech-preview__meta .wp-block-post-terms a { color: inherit; font-weight: 500; text-decoration: none; }
.pilotech-preview__meta .wp-block-post-terms a:hover,
.pilotech-preview__meta .wp-block-post-terms a:focus-visible { color: var(--pilotech-blue-ink); text-decoration: underline; text-underline-offset: .2em; }
.pilotech-preview__meta .wp-block-post-date::before {
	content: "";
	display: inline-block;
	width: 3px;
	height: 3px;
	margin-inline-end: .75rem;
	border-radius: 50%;
	background: currentColor;
	vertical-align: middle;
}
.pilotech-preview__meta .wp-block-post-terms:empty + .wp-block-post-date::before { content: none; margin-inline-end: 0; }
.pilotech-preview__meta time { direction: rtl; unicode-bidi: isolate; }
.pilotech-preview h3 { margin: 0; font-size: 1.1875rem; line-height: 1.5; text-wrap: pretty; }
/* The clamp lives on the anchor, not the heading: the heading is a flex item
   of the card, and a flex item blockifies `-webkit-box` back to a plain block,
   which silently drops the line clamp. */
.pilotech-preview h3 a { color: var(--pilotech-ink); text-decoration: none; }
.pilotech-preview h3 a:hover { text-decoration: underline; text-underline-offset: .25em; }
.pilotech-preview h3 a:focus-visible { outline: 3px solid var(--pilotech-blue-ink); outline-offset: 3px; }
.pilotech-preview .wp-block-post-excerpt { margin: .55rem 0 0; }
.pilotech-preview .wp-block-post-excerpt__excerpt {
	display: -webkit-box;
	margin: 0;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	color: var(--pilotech-muted);
	font-size: .9375rem;
	line-height: 1.8;
}
.pilotech-preview .wp-block-post-excerpt__more-text { display: none; }
/* Empty state stays a single quiet row, never a whole section of nothing. */
.pilotech-empty-state {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .5rem 2rem;
	padding: 1.6rem 0;
	border-bottom: 1px solid var(--pilotech-border);
}
.pilotech-empty-state p { margin: 0; color: var(--pilotech-muted); }
.pilotech-empty-state a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--pilotech-blue-ink);
	font-weight: 700;
	text-underline-offset: .35em;
}

/* Final CTA — one action, on dark. ---------------------------------------- */
.pilotech-final-cta {
	margin: 0;
	padding: clamp(4.5rem, 8vw, 7rem) var(--pilotech-gutter);
	background: var(--pilotech-dark);
	color: #fff;
}
.pilotech-final-cta__inner { max-width: 46rem; margin-inline: 0; }
.pilotech-final-cta h2 {
	margin: 0;
	color: #fff;
	font-size: clamp(1.9rem, 3.4vw, 3rem);
	line-height: 1.35;
	letter-spacing: -.025em;
	text-wrap: balance;
}
.pilotech-final-cta p { max-width: 40rem; margin: 1.35rem 0 0; color: #cbd5e1; line-height: 2; }
.pilotech-final-cta__actions { margin-top: 2.25rem; }
.pilotech-final-cta__actions .wp-block-button__link { min-height: 3.25rem; padding: .85rem 1.6rem; font-size: 1rem; }

/* Contact — Technical Handoff Ledger. The Global Shell remains unchanged. */
.pilotech-contact,
.pilotech-contact > .wp-block-post-content { margin: 0; background: #fff; }
.pilotech-contact .pilotech-ltr { unicode-bidi: isolate; }

/* Opening ----------------------------------------------------------------- */
.pilotech-contact-intro {
	margin: 0;
	padding: clamp(3.75rem, 7vw, 6rem) var(--pilotech-gutter) clamp(3rem, 5vw, 4.5rem);
	background: #fff;
}
.pilotech-contact-intro__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.3fr) minmax(18rem, .82fr);
	align-items: start;
	gap: clamp(2.5rem, 5vw, 5rem);
	margin: 0 auto;
}
.pilotech-contact-intro__lead { min-width: 0; }
.pilotech-contact-intro h1 {
	max-width: 20ch;
	margin: 0;
	color: var(--pilotech-ink);
	font-size: clamp(2.4rem, 4.2vw, 3.6rem);
	line-height: 1.35;
	letter-spacing: -.025em;
}
.pilotech-contact-intro .has-body-large-font-size {
	max-width: 44rem;
	margin: 1.25rem 0 0;
	color: var(--pilotech-muted);
	line-height: 2;
}
.pilotech-contact-intro__note {
	max-width: 44rem;
	margin: .9rem 0 0;
	color: var(--pilotech-muted);
	font-size: .94rem;
	line-height: 1.95;
}
.pilotech-contact-availability {
	max-width: 44rem;
	margin-top: 1.75rem;
	padding: 1rem 0;
	border-block: 1px solid #7dd3fc;
	color: var(--pilotech-ink);
}
.pilotech-contact-availability strong { display: block; color: var(--pilotech-blue-ink); }
.pilotech-contact-availability p { margin: .35rem 0 0; color: var(--pilotech-muted); font-size: .9rem; line-height: 1.8; }

/* Shop vs Contact --------------------------------------------------------- */
.pilotech-contact-choice {
	min-width: 0;
	padding-top: 1.3rem;
	border-top: 3px solid var(--pilotech-blue-ink);
}
.pilotech-contact-choice__title {
	margin: 0;
	color: var(--pilotech-ink);
	font-size: 1.12rem;
	font-weight: 700;
	line-height: 1.6;
	letter-spacing: -.005em;
}
.pilotech-contact-choice__list { margin: 1.05rem 0 0; }
.pilotech-contact-choice__list dt {
	margin-top: 1.05rem;
	padding-top: 1.05rem;
	border-top: 1px solid var(--pilotech-border);
	color: var(--pilotech-blue-ink);
	font-size: .82rem;
	font-weight: 700;
	line-height: 1.6;
}
.pilotech-contact-choice__list dt:first-of-type { margin-top: 0; padding-top: 0; border-top: 0; }
.pilotech-contact-choice__list dd { margin: .35rem 0 0; }
.pilotech-contact-choice__list dd p {
	margin: 0;
	color: var(--pilotech-muted);
	font-size: .9rem;
	line-height: 1.9;
}
.pilotech-contact-choice__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0 1.35rem;
	margin-top: .1rem;
}
.pilotech-contact-choice__link {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	color: var(--pilotech-blue-ink);
	font-size: .88rem;
	font-weight: 700;
	line-height: 1.7;
	text-underline-offset: .35em;
}
/* An isolated LTR run swallows the space at the RTL boundary. The gap must sit
   on the run's right edge, where the preceding Persian word ends; a logical
   property would resolve against the span's own ltr direction and land left. */
.pilotech-contact-choice__link .pilotech-ltr { margin-right: .3rem; }

/* Stage frame ------------------------------------------------------------- */
.pilotech-contact-flow {
	margin: 0;
	padding: 0 var(--pilotech-gutter) clamp(4.5rem, 8vw, 7rem);
	background: #fff;
}
.pilotech-contact-step {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 10.5rem;
	direction: ltr;
	gap: clamp(2rem, 4vw, 4.5rem);
	margin-inline: auto;
}
.pilotech-contact-step__content,
.pilotech-contact-step__marker { direction: rtl; }
.pilotech-contact-step__content { min-width: 0; }
.pilotech-contact-step__marker {
	position: relative;
	display: flex;
	min-height: 100%;
	align-items: flex-start;
	gap: .8rem;
	padding: .15rem 0 2.5rem;
	color: var(--pilotech-blue-ink);
}
.pilotech-contact-step__marker::before {
	content: "";
	position: absolute;
	top: 1.85rem;
	bottom: -1px;
	right: .94rem;
	width: 1px;
	background: #7dd3fc;
}
.pilotech-contact-step__marker span {
	position: relative;
	z-index: 1;
	display: inline-flex;
	width: 1.9rem;
	height: 1.9rem;
	flex: 0 0 1.9rem;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--pilotech-blue-ink);
	color: #fff;
	direction: ltr;
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: .72rem;
	font-weight: 700;
}
.pilotech-contact-step__marker strong {
	display: block;
	padding-top: .25rem;
	font-size: .9rem;
	line-height: 1.55;
}
.pilotech-contact-section-heading {
	display: grid;
	grid-template-columns: 1fr minmax(16rem, .8fr);
	align-items: end;
	gap: 2rem;
	margin-bottom: 2.25rem;
}
.pilotech-contact-section-heading h2,
.pilotech-contact-form-wrap h2,
.pilotech-contact-reassurance h2 {
	margin: 0;
	color: var(--pilotech-ink);
	font-size: clamp(1.7rem, 2.6vw, 2.35rem);
	line-height: 1.45;
	letter-spacing: -.015em;
}
.pilotech-contact-section-heading p {
	margin: 0;
	color: var(--pilotech-muted);
	line-height: 1.9;
}

/* Route ledger ------------------------------------------------------------ */
.pilotech-contact-ledger {
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--pilotech-ink);
	list-style: none;
}
.pilotech-contact-path {
	display: grid;
	grid-template-columns: 2.75rem minmax(13rem, 1fr) minmax(15rem, 1.05fr) auto;
	align-items: start;
	gap: clamp(1rem, 2.2vw, 2rem);
	margin: 0;
	padding: 1.5rem 0;
	border-bottom: 1px solid var(--pilotech-border);
}
.pilotech-contact-path > * { margin: 0; }
.pilotech-contact-path__index {
	padding-top: .2rem;
	direction: ltr;
	color: var(--pilotech-blue-ink);
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: .8rem;
	font-weight: 700;
}
.pilotech-contact-path__head { min-width: 0; }
.pilotech-contact-path__head h3 {
	margin: 0;
	color: var(--pilotech-ink);
	font-size: clamp(1.1rem, 1.7vw, 1.32rem);
	line-height: 1.55;
}
.pilotech-contact-path__when {
	margin: .4rem 0 0;
	color: var(--pilotech-muted);
	font-size: .92rem;
	line-height: 1.9;
}
.pilotech-contact-path__helps {
	padding-inline-start: clamp(1rem, 2vw, 1.75rem);
	border-inline-start: 1px solid var(--pilotech-border);
	color: var(--pilotech-ink);
	font-size: .9rem;
	line-height: 1.9;
}
.pilotech-contact-path__label {
	display: block;
	margin-bottom: .15rem;
	color: var(--pilotech-blue-ink);
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .02em;
}
.pilotech-contact-path__action { justify-self: end; }
.pilotech-contact-path__action a {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	white-space: nowrap;
	color: var(--pilotech-blue-ink);
	font-size: .88rem;
	font-weight: 700;
	line-height: 1.7;
}

/* Form stage -------------------------------------------------------------- */
.pilotech-contact-form-stage { padding-top: clamp(3.5rem, 6vw, 5.5rem); }
.pilotech-contact-form-layout {
	display: grid;
	grid-template-columns: minmax(13rem, .5fr) minmax(0, 1.5fr);
	direction: ltr;
	align-items: start;
	gap: clamp(2.5rem, 5vw, 5.5rem);
}
.pilotech-contact-guide,
.pilotech-contact-form-wrap { direction: rtl; min-width: 0; }
.pilotech-contact-guide {
	padding-top: 1.35rem;
	border-top: 1px solid var(--pilotech-ink);
}
.pilotech-contact-guide__list { margin: 0; }
.pilotech-contact-guide__list dt {
	margin-top: 1.15rem;
	color: var(--pilotech-ink);
	font-size: .84rem;
	font-weight: 700;
	line-height: 1.6;
}
.pilotech-contact-guide__list dt:first-of-type { margin-top: 0; }
.pilotech-contact-guide__list dd {
	margin: .3rem 0 0;
	color: var(--pilotech-muted);
	font-size: .88rem;
	line-height: 1.9;
}
.pilotech-contact-form-wrap {
	width: 100%;
	max-width: 48rem;
	justify-self: end;
	padding-top: 1.75rem;
	border-top: 4px solid var(--pilotech-blue-ink);
}
.pilotech-contact-form-wrap > h2 { font-size: clamp(1.55rem, 2.3vw, 2rem); }
.pilotech-contact-form-policy {
	margin: .6rem 0 0;
	color: var(--pilotech-muted);
	font-size: .86rem;
	line-height: 1.8;
}
.pilotech-contact-selected-route {
	display: flex;
	flex-wrap: wrap;
	gap: 0 .35rem;
	margin: 1rem 0 0;
	padding: .7rem .9rem;
	border-inline-start: 3px solid var(--pilotech-blue-ink);
	background: #f0f9ff;
	color: #0c4a6e;
	font-size: .88rem;
	font-weight: 700;
	line-height: 1.7;
}
.pilotech-contact-selected-route strong { font-weight: 400; }
.pilotech-contact-form-policy > span,
.pilotech-contact-field label > span[aria-hidden="true"] { color: #b42318; }
.pilotech-contact-form {
	position: relative;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.4rem 1.25rem;
	margin-top: 1.8rem;
}
.pilotech-contact-field { display: flex; min-width: 0; flex-direction: column; gap: .5rem; }
.pilotech-contact-field--wide,
.pilotech-contact-form__actions { grid-column: 1 / -1; }
.pilotech-contact-field label {
	color: var(--pilotech-ink);
	font-size: .9rem;
	font-weight: 700;
}
.pilotech-optional {
	margin-inline-start: .35rem;
	color: var(--pilotech-muted) !important;
	font-size: .78rem;
	font-weight: 400;
}
.pilotech-contact-field input,
.pilotech-contact-field select,
.pilotech-contact-field textarea {
	width: 100%;
	min-height: 3.25rem;
	margin: 0;
	padding: .75rem .9rem;
	border: 1px solid var(--pilotech-control-border);
	border-radius: var(--pilotech-radius-md);
	background: #fff;
	color: var(--pilotech-ink);
	font: inherit;
	line-height: 1.6;
}
.pilotech-contact-field textarea { min-height: 10.5rem; resize: vertical; }

/* Subject select. The native control is kept for keyboard and mobile pickers;
   only the closed-state chrome is redrawn. The chevron is an inline data URI,
   so no icon library or extra request is involved. */
.pilotech-contact-field select {
	appearance: none;
	-webkit-appearance: none;
	padding-inline-end: .9rem;
	padding-inline-start: 2.75rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%23111827' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: left 1rem center;
	background-size: .7rem auto;
	color-scheme: light;
	cursor: pointer;
	text-overflow: ellipsis;
}
/* A thin rule separates the chevron from the value, like a ledger field. */
.pilotech-contact-field select:not(:disabled) {
	background-image:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%23111827' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"),
		linear-gradient(var(--pilotech-border), var(--pilotech-border));
	background-repeat: no-repeat, no-repeat;
	background-position: left 1rem center, left 2.15rem center;
	background-size: .7rem auto, 1px 1.65rem;
}
.pilotech-contact-field select:hover:not(:disabled) {
	background-image:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%230369a1' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"),
		linear-gradient(var(--pilotech-border-strong), var(--pilotech-border-strong));
}
/* Unselected placeholder reads as a prompt, not as a chosen value. */
.pilotech-contact-field select:has(option[value=""]:checked) { color: var(--pilotech-muted-accessible); }
.pilotech-contact-field select:disabled {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%236b7280' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	cursor: not-allowed;
}
.pilotech-contact-field select option { color: var(--pilotech-ink); }
.pilotech-contact-field select option[value=""] { color: var(--pilotech-muted-accessible); }

/* Open picker. A native <select> popup cannot be styled, so the whole control
   opts into the customizable-select rendering where the browser supports it.
   Everything above stays the fallback: browsers without base-select keep the
   native popup and the styled closed control, and the element remains a real
   <select>, so keyboard, typeahead and mobile pickers are untouched. */
@supports (appearance: base-select) {
	.pilotech-contact-field select,
	.pilotech-contact-field select::picker(select) { appearance: base-select; }

	.pilotech-contact-field select {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: .75rem;
		padding: .75rem .9rem;
	}
	/* The fallback chevron is drawn as a background layer by rules whose
	   :not(:disabled) outranks a bare reset, so it is cleared per state here.
	   Left in place it paints underneath ::picker-icon as a second chevron. */
	.pilotech-contact-field select,
	.pilotech-contact-field select:not(:disabled),
	.pilotech-contact-field select:hover:not(:disabled),
	.pilotech-contact-field select:disabled { background-image: none; }
	.pilotech-contact-field select::picker-icon {
		content: "";
		width: .7rem;
		height: .5rem;
		flex: 0 0 auto;
		padding-inline-start: .85rem;
		border-inline-start: 1px solid var(--pilotech-border);
		box-sizing: content-box;
		background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%23111827' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat content-box center / contain;
		transition: rotate 150ms cubic-bezier(0.2, 0, 0, 1);
	}
	.pilotech-contact-field select:open::picker-icon { rotate: 180deg; }
	.pilotech-contact-field select:disabled::picker-icon { opacity: .55; }

	.pilotech-contact-field select::picker(select) {
		min-width: anchor-size(self-inline);
		margin-block-start: .3rem;
		padding: .3rem;
		border: 1px solid var(--pilotech-ink);
		border-radius: var(--pilotech-radius-md);
		background: #fff;
		box-shadow: 0 14px 30px rgba(17, 24, 39, .14);
	}
	.pilotech-contact-field select option {
		display: flex;
		min-height: 44px;
		align-items: center;
		gap: .55rem;
		padding: .5rem .7rem;
		border-radius: var(--pilotech-radius-sm);
		background: transparent;
		color: var(--pilotech-ink);
		font: inherit;
		line-height: 1.6;
		cursor: pointer;
	}
	.pilotech-contact-field select option[value=""] { color: var(--pilotech-muted-accessible); }
	.pilotech-contact-field select option:hover,
	.pilotech-contact-field select option:focus {
		background: #f0f9ff;
		color: #0c4a6e;
		outline: none;
	}
	.pilotech-contact-field select option:focus-visible {
		outline: 2px solid var(--pilotech-blue-ink);
		outline-offset: -2px;
	}
	.pilotech-contact-field select option:checked { font-weight: 700; }
	.pilotech-contact-field select option::checkmark {
		content: "";
		width: .8rem;
		height: .8rem;
		flex: 0 0 .8rem;
		background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1.5 6.5 4.5 9.5 10.5 2.5' fill='none' stroke='%230369a1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain;
	}
	.pilotech-contact-field select option:not(:checked)::checkmark { visibility: hidden; }
}
@supports (appearance: base-select) {
	@media (prefers-reduced-motion: reduce) {
		.pilotech-contact-field select::picker-icon { transition: none; }
	}
}
.pilotech-contact-field input:hover,
.pilotech-contact-field select:hover,
.pilotech-contact-field textarea:hover { border-color: var(--pilotech-ink); }
.pilotech-contact-field input:focus-visible,
.pilotech-contact-field select:focus-visible,
.pilotech-contact-field textarea:focus-visible {
	border-color: var(--pilotech-blue-ink);
	outline: 3px solid var(--pilotech-blue-ink);
	outline-offset: 2px;
}
.pilotech-contact-field [aria-invalid="true"] {
	border-color: #b42318;
	border-inline-start-width: 3px;
	background: #fffafa;
}
.pilotech-contact-field input:disabled,
.pilotech-contact-field select:disabled,
.pilotech-contact-field textarea:disabled {
	border-color: #d1d5db;
	background: #f3f4f6;
	color: #6b7280;
	cursor: not-allowed;
}
.pilotech-contact-ltr { direction: ltr; text-align: left; }
.pilotech-contact-helper {
	color: var(--pilotech-muted);
	font-size: .8rem;
	line-height: 1.7;
}
.pilotech-contact-field-error {
	display: flex;
	gap: .35rem;
	color: #b42318;
	font-size: .82rem;
	font-weight: 700;
	line-height: 1.65;
}
.pilotech-contact-field-error::before {
	content: "!";
	display: inline-flex;
	width: 1.05rem;
	height: 1.05rem;
	flex: 0 0 1.05rem;
	align-items: center;
	justify-content: center;
	margin-top: .18rem;
	border-radius: 50%;
	background: #b42318;
	color: #fff;
	font-size: .7rem;
	line-height: 1;
}
.pilotech-contact-form__actions {
	display: grid;
	grid-template-columns: minmax(11rem, 17.5rem) 1fr;
	align-items: center;
	gap: 1.25rem;
	padding-top: .35rem;
}
.pilotech-contact-form__actions button {
	display: inline-flex;
	min-height: 3.25rem;
	align-items: center;
	justify-content: center;
	padding: .75rem 1.5rem;
	border: 1px solid var(--pilotech-red);
	border-radius: var(--pilotech-radius-md);
	background: var(--pilotech-red);
	color: #fff;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
	transition: background-color 150ms cubic-bezier(0.2, 0, 0, 1),
	            border-color 150ms cubic-bezier(0.2, 0, 0, 1);
}
.pilotech-contact-form__actions button:hover { border-color: var(--pilotech-red-hover); background: var(--pilotech-red-hover); }
.pilotech-contact-path__action a:focus-visible,
.pilotech-contact-choice__link:focus-visible,
.pilotech-contact-form__actions button:focus-visible {
	outline: 3px solid var(--pilotech-blue-ink);
	outline-offset: 3px;
}
.pilotech-contact-form__actions button:disabled {
	border-color: #9ca3af;
	background: #6b7280;
	color: #fff;
	cursor: not-allowed;
}
.pilotech-contact-form__actions p {
	margin: 0;
	color: var(--pilotech-muted);
	font-size: .8rem;
	line-height: 1.75;
}
.pilotech-contact-message,
.pilotech-contact-error-summary {
	margin: 1.5rem 0 0;
	padding: 1rem 1.1rem;
	border: 1px solid #9ca3af;
	border-inline-start-width: 4px;
	border-radius: var(--pilotech-radius-sm);
	background: #f9fafb;
}
.pilotech-contact-message strong,
.pilotech-contact-error-summary strong { display: block; color: var(--pilotech-ink); }
.pilotech-contact-message p { margin: .35rem 0 0; color: var(--pilotech-muted); line-height: 1.8; }
.pilotech-contact-message--success { border-color: #15803d; background: #f0fdf4; }
.pilotech-contact-message--error,
.pilotech-contact-error-summary { border-color: #b42318; background: #fff7f7; }
.pilotech-contact-message--notice { border-color: #0369a1; background: #f0f9ff; }
.pilotech-contact-error-summary ul { margin: .65rem 0 0; padding-inline-start: 1.25rem; }
.pilotech-contact-error-summary a { color: #8a1c13; }
.pilotech-contact-error-summary li { margin-top: .2rem; }
.pilotech-contact-error-summary li a {
	display: inline-flex;
	min-height: 2.4rem;
	align-items: center;
	font-weight: 700;
}
.pilotech-contact-error-summary:focus-visible {
	outline: 3px solid #b42318;
	outline-offset: 3px;
}
.pilotech-contact-honeypot {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	border: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
}

/* After submit ------------------------------------------------------------ */
.pilotech-contact-after { padding-top: clamp(3.5rem, 6vw, 5.5rem); }
.pilotech-contact-reassurance {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	align-items: start;
	gap: clamp(1.5rem, 4vw, 4rem);
	margin-inline: auto;
	padding-top: 1.6rem;
	border-top: 1px solid var(--pilotech-ink);
}
.pilotech-contact-reassurance h2 {
	max-width: 22ch;
	font-size: clamp(1.4rem, 2.1vw, 1.85rem) !important;
}
.pilotech-contact-after__body { min-width: 0; }
.pilotech-contact-after__body p {
	max-width: 40rem;
	margin: 0;
	color: var(--pilotech-muted);
	line-height: 2;
}
.pilotech-contact-after__note {
	margin-top: .9rem !important;
	padding-top: .9rem;
	border-top: 1px solid var(--pilotech-border);
	font-size: .88rem !important;
	line-height: 1.85 !important;
}
.pilotech-contact:has(.pilotech-contact-form-wrap.is-unconfigured) .pilotech-contact-reassurance-available,
.pilotech-contact:has(.pilotech-contact-form-wrap.is-configured) .pilotech-contact-reassurance-unavailable { display: none; }

.pilotech-site-footer {
	margin: 0;
	padding: clamp(3.5rem, 5.5vw, 5rem) var(--pilotech-gutter) clamp(1.5rem, 2.5vw, 2.25rem);
	background: #111827;
	color: #f9fafb;
	border-top: 1px solid rgba(255, 255, 255, .08);
}
.pilotech-footer-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 2.65fr);
	gap: clamp(2.5rem, 4.5vw, 5rem);
	padding-bottom: clamp(2.25rem, 3.5vw, 3.25rem);
	align-items: start;
}
.pilotech-footer-brand {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	max-width: 28rem;
}
.pilotech-footer-brand .pilotech-brand-lockup {
	order: 1 !important;
	margin-bottom: 1.15rem !important;
}
.pilotech-footer-intro {
	order: 2 !important;
	color: #9ca3af;
	font-size: .875rem;
	line-height: 1.85;
	margin: 0;
}
.pilotech-footer-socials {
	order: 3 !important;
	display: flex;
	align-items: center;
	gap: .65rem;
	margin-top: 1.25rem;
}
.pilotech-footer-social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 6px;
	color: #9ca3af;
	background: transparent;
	border: 1px solid rgba(255, 255, 255, .08);
	transition: color 140ms ease, border-color 140ms ease, background-color 140ms ease;
}
.pilotech-footer-social-link svg {
	width: 18px;
	height: 18px;
	display: block;
}
.pilotech-footer-social-link:hover {
	color: #fff;
	background: rgba(255, 255, 255, .06);
	border-color: rgba(255, 255, 255, .2);
}
.pilotech-footer-social-link:focus-visible {
	outline: 3px solid var(--pilotech-blue);
	outline-offset: 2px;
}
.pilotech-footer-nav {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.5rem, 2.5vw, 3rem);
}
.pilotech-footer-col {
	display: flex;
	flex-direction: column;
	gap: .75rem;
}
.pilotech-footer-col-title {
	margin: 0;
	color: #9ca3af;
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .04em;
	line-height: 1.5;
	text-transform: uppercase;
}
.pilotech-footer-list {
	display: flex;
	flex-direction: column;
	gap: .25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.pilotech-footer-list li {
	margin: 0;
	padding: 0;
}
.pilotech-footer-list a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding-block: .25rem;
	color: #e5e7eb;
	font-size: .875rem;
	font-weight: 400;
	line-height: 1.5;
	text-decoration: none;
	transition: color 140ms ease, text-decoration-color 140ms ease;
}
.pilotech-footer-list a bdi,
.pilotech-footer-list a span[dir="ltr"] {
	unicode-bidi: isolate;
}
.pilotech-footer-list a:hover {
	color: #fff;
	text-decoration: underline;
	text-decoration-thickness: 1.5px;
	text-decoration-color: #38bdf8;
	text-underline-offset: .35em;
}
.pilotech-footer-list a:focus-visible {
	outline: 3px solid var(--pilotech-blue);
	outline-offset: 3px;
	border-radius: 4px;
}
.pilotech-footer-action-link {
	font-weight: 600;
	color: #f9fafb !important;
}
.pilotech-footer-meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1.5rem;
	border-top: 1px solid rgba(255, 255, 255, .08);
	padding-top: 1.35rem;
	color: #9ca3af;
	font-size: .78rem;
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	direction: ltr;
}
.pilotech-footer-baseline {
	letter-spacing: .02em;
}

@media (max-width: 1023px) {
	/* Mobile header: two elements on one rail — brand at the start, the menu
	   trigger at the end. Search is not a third control up here; it lives in
	   the drawer, which is the one mobile surface. Ordering is left to the
	   document and to `space-between`, so nothing depends on physical margins
	   or `order`, and RTL needs no special case. */
	.pilotech-site-header .pilotech-header-actions,
	.pilotech-site-header .pilotech-header-cta { display: none; }

	.pilotech-header-inner {
		justify-content: space-between;
		gap: 1rem;
	}
	.pilotech-brand-lockup { flex: 0 1 auto; min-width: 0; }
	.pilotech-primary-navigation { flex: 0 0 auto; }

	/* Menu trigger */
	.pilotech-primary-navigation .wp-block-navigation__responsive-container-open {
		display: inline-flex;
		width: 2.75rem;
		height: 2.75rem;
		align-items: center;
		justify-content: center;
		padding: 0;
		margin: 0;
		border: 1px solid var(--pilotech-control-border);
		border-radius: var(--pilotech-radius-sm);
		background: transparent;
		color: inherit;
		cursor: pointer;
	}
	.pilotech-site-header--light .wp-block-navigation__responsive-container-open {
		border-color: var(--pilotech-control-border);
		color: var(--pilotech-ink);
	}
	.pilotech-site-header--home .wp-block-navigation__responsive-container-open {
		border-color: rgba(255, 255, 255, .46);
		color: #fff;
	}
	.pilotech-primary-navigation .wp-block-navigation__responsive-container-open svg {
		display: block;
		width: 22px;
		height: 22px;
		fill: currentColor;
	}

	/* Navigation surface.
	   ---------------------------------------------------------------------
	   Full-bleed, not a partial drawer. At 320–430px a 360px panel leaves a
	   40–70px offcut beside it, which is too narrow to read as a backdrop and
	   is exactly what was showing up as a "white strip": core paints the
	   overlay white via
	     .wp-block-navigation:not(.has-background) …is-menu-open { background:#fff }
	   and core/navigation has no colour support in WP 7.0, so `has-background`
	   can never be set from block attributes to switch that rule off. Rather
	   than out-specify core to tint a sliver nobody wants, the surface now
	   covers the viewport and that white *is* the light-page surface. Only the
	   dark header needs to say otherwise, below.

	   With one surface there is no panel geometry left to get wrong: no inset,
	   no width, no edge transform, no backdrop. Core's own fade carries it in. */
	.pilotech-site-header .pilotech-primary-navigation .wp-block-navigation__responsive-container:not(.is-menu-open),
	.pilotech-site-header .pilotech-primary-navigation .wp-block-navigation__responsive-container.is-menu-open {
		position: fixed;
		inset: var(--pilotech-header-h) 0 0;
		width: 100%;
	}
	.pilotech-site-header .pilotech-primary-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none;
	}
	.pilotech-site-header .pilotech-primary-navigation .wp-block-navigation__responsive-container.is-menu-open {
		z-index: 1000;
		display: block;
		padding: 0;
		overflow-y: auto;
		overscroll-behavior: contain;
		/* Core's entrance animates translateY, and an element with a transform
		   becomes the containing block for its fixed descendants — which would
		   drop the close control out of the rail and into the surface. Fading
		   on opacity alone keeps the rail slot addressable. */
		/* `backwards`, not `both`: the surface's resting opacity is already 1, so
		   retaining a fill afterwards only leaves a composited layer behind. */
		animation: pilotechSurfaceIn .2s ease-out backwards;
	}

	@keyframes pilotechSurfaceIn {
		from { opacity: 0; }
		to   { opacity: 1; }
	}
	/* Parity with core's own 5-class rule, scoped to the dark header. The theme
	   stylesheet is printed after every block stylesheet, so equal specificity
	   resolves here. */
	.pilotech-site-header--home .pilotech-primary-navigation.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open {
		background-color: var(--pilotech-dark);
	}

	/* Core wraps the dialog in this element and centres it at wide-size; the
	   surface is full-bleed, so it just passes the height through. */
	.pilotech-site-header .pilotech-primary-navigation .wp-block-navigation__responsive-close {
		position: static;
		width: 100%;
		max-width: none;
		min-height: 100%;
		display: flex;
		flex-direction: column;
		margin: 0;
		padding: 0;
		border: 0;
		background: transparent;
		transform: none;
	}

	/* The content column tracks the header rail: same gutter, same wide cap,
	   so the surface reads as the page continuing rather than a panel on top. */
	.pilotech-site-header .pilotech-primary-navigation .wp-block-navigation__responsive-dialog {
		position: relative;
		display: flex;
		width: 100%;
		max-width: var(--wp--style--global--wide-size, 83.5rem);
		min-height: calc(100dvh - var(--pilotech-header-h));
		flex-direction: column;
		margin-inline: auto;
		padding: clamp(1.5rem, 5vw, 2.25rem) var(--pilotech-gutter) max(2rem, env(safe-area-inset-bottom));
		box-shadow: none;
	}
	.pilotech-site-header--light .wp-block-navigation__responsive-dialog { color: var(--pilotech-ink); }
	.pilotech-site-header--home .wp-block-navigation__responsive-dialog { color: #fff; }

	/* Close sits exactly where the trigger was: same size, same inline-end
	   edge, same distance from the top. Opening the menu reads as the ☰
	   becoming an ×, which is the only cue needed that this is the same rail. */
	/* The trigger's own slot in the rail: same box, same offsets, so ☰ turns
	   into × in place. Fixed rather than in-flow because the surface starts
	   below the rail — this is the one control that belongs above the line. */
	.pilotech-site-header .pilotech-primary-navigation .wp-block-navigation__responsive-container-close {
		position: fixed;
		inset-block-start: calc(var(--pilotech-header-pad) + (var(--pilotech-header-rail) - 2.75rem) / 2);
		inset-inline-end: var(--pilotech-gutter);
		display: inline-flex;
		width: 2.75rem;
		height: 2.75rem;
		flex: none;
		align-items: center;
		justify-content: center;
		margin: 0;
		padding: 0;
		border: 1px solid var(--pilotech-control-border);
		border-radius: var(--pilotech-radius-sm);
		color: var(--pilotech-ink);
		cursor: pointer;
		transition: background-color .15s ease, border-color .15s ease;
	}
	.pilotech-site-header--light .pilotech-primary-navigation .wp-block-navigation__responsive-container-close { background: #fff; }
	.pilotech-site-header--home .pilotech-primary-navigation .wp-block-navigation__responsive-container-close { background: var(--pilotech-dark); }
	.pilotech-site-header--light .pilotech-primary-navigation .wp-block-navigation__responsive-container-close:hover {
		border-color: var(--pilotech-ink);
		background: #f9fafb;
	}
	.pilotech-site-header--home .pilotech-primary-navigation .wp-block-navigation__responsive-container-close {
		border-color: rgba(255, 255, 255, .46);
		color: #fff;
	}
	.pilotech-site-header--home .pilotech-primary-navigation .wp-block-navigation__responsive-container-close:hover {
		border-color: #fff;
		background: var(--pilotech-dark-raised);
	}
	.pilotech-primary-navigation .wp-block-navigation__responsive-container-close svg {
		display: block;
		width: 22px;
		height: 22px;
		fill: currentColor;
	}

	/* Contents ------------------------------------------------------------ */
	.pilotech-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		width: 100%;
		margin: 0;
		padding: 0;
		gap: 0;
		/* Core pads this to clear a close button it expects to be overlaid;
		   ours sits in the rail above the surface. */
		padding-top: 0;
		/* Core aligns overlay content with the *desktop* justification, which
		   is centre here; on the surface everything lines up with the rail's
		   inline-start edge instead, the same edge the brand sits on. */
		align-items: flex-start;
		flex: 1 1 auto;
	}
	.pilotech-site-header .pilotech-primary-navigation .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
		display: flex;
		width: 100%;
		max-width: 32rem;
		flex-direction: column;
		gap: 0;
		margin: 0;
		padding: 0;
		list-style: none;
		flex: 1 1 auto;
		/* The nav's desktop layout (justify centre) reaches the list as an
		   align-self here; on the surface it follows the rail like everything
		   else. */
		align-self: flex-start;
	}
	.pilotech-primary-navigation .wp-block-navigation__responsive-container-content .wp-block-navigation-item {
		width: 100%;
		margin: 0;
	}

	/* Primary routes: the largest type on the surface, one per rule. */
	.pilotech-primary-navigation .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content {
		display: flex;
		width: 100%;
		min-height: 4rem;
		align-items: center;
		padding: .9rem 0;
		border-bottom: 1px solid var(--pilotech-border);
		border-radius: 0;
		color: inherit;
		font-size: clamp(1.375rem, 4.5vw, 1.625rem);
		font-weight: 500;
		letter-spacing: -.01em;
		text-decoration: none;
		transition: color 150ms ease, padding-inline-start 150ms ease;
	}
	.pilotech-site-header--home .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content {
		border-color: rgba(255, 255, 255, .12);
	}
	.pilotech-site-header--light .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content:hover {
		color: var(--pilotech-red-accent);
	}
	.pilotech-site-header--home .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content:hover {
		color: var(--pilotech-red-accent-dark);
	}
	/* Current page: weight plus a rule in the information accent. */
	/* Current row: weight plus a rule in the brand red, so the row reads as
	   "you are here" without turning the label itself red — which is what
	   marks the outbound shop link a few rows below. */
	.pilotech-site-header--light .wp-block-navigation__responsive-container-content .current-menu-item > .wp-block-navigation-item__content,
	.pilotech-site-header--light .wp-block-navigation__responsive-container-content a[aria-current="page"] {
		border-bottom-color: var(--pilotech-red-accent);
		font-weight: 700;
	}
	.pilotech-site-header--home .wp-block-navigation__responsive-container-content .current-menu-item > .wp-block-navigation-item__content,
	.pilotech-site-header--home .wp-block-navigation__responsive-container-content a[aria-current="page"] {
		border-bottom-color: var(--pilotech-red-accent-dark);
		color: #fff;
		font-weight: 700;
	}

	/* Shop leaves the site, so it drops out of the route rhythm: no rule,
	   smaller, in the interaction accent, with an outbound mark. */
	/* Shop sits in the run of routes like any other row; the brand red and the
	   heavier weight are what set it apart, not its position. The weight is
	   restated here because the row rule above is a class deeper. */
	.pilotech-primary-navigation .wp-block-navigation__responsive-container-content .pilotech-shop-nav-link .wp-block-navigation-item__content {
		font-weight: 700;
	}
	.pilotech-site-header--light .wp-block-navigation__responsive-container-content .pilotech-shop-nav-link .wp-block-navigation-item__content { color: var(--pilotech-red-accent); }
	.pilotech-site-header--home .wp-block-navigation__responsive-container-content .pilotech-shop-nav-link .wp-block-navigation-item__content { color: var(--pilotech-red-accent-dark); }

	/* The one primary action on the surface. */
	.pilotech-primary-navigation .wp-block-navigation__responsive-container-content .pilotech-nav-contact {
		margin-top: auto;
		padding-top: 1.75rem;
	}
	.pilotech-primary-navigation .wp-block-navigation__responsive-container-content .pilotech-nav-contact .wp-block-navigation-item__content {
		min-height: 3.25rem;
		justify-content: center;
		padding: .8rem 1.25rem;
		border: 1px solid var(--pilotech-red);
		border-radius: var(--pilotech-radius-md);
		background: var(--pilotech-red);
		color: #fff;
		font-size: 1.0625rem;
		font-weight: 700;
	}
	.pilotech-primary-navigation .wp-block-navigation__responsive-container-content .pilotech-nav-contact .wp-block-navigation-item__content:hover {
		border-color: var(--pilotech-red-hover);
		background: var(--pilotech-red-hover);
		color: #fff;
	}

	/* Search leads: first thing under the rail, full width of the column. */
	.pilotech-nav-search.wp-block-search {
		width: 100%;
		max-width: 32rem;
		margin: 0 0 1.75rem;
		padding: 0;
	}
	.pilotech-nav-search .wp-block-search__inside-wrapper {
		position: relative;
		width: 100%;
		padding: 0;
		border: 0;
		background: none;
	}
	.pilotech-nav-search .wp-block-search__input {
		width: 100%;
		min-height: 3rem;
		padding-inline: .9rem 3.1rem;
		border: 1px solid var(--pilotech-control-border);
		border-radius: var(--pilotech-radius-md);
		background: #fff;
		color: var(--pilotech-ink);
		font-family: inherit;
		font-size: 1rem;
	}
	.pilotech-site-header--home .pilotech-nav-search .wp-block-search__input {
		background: var(--pilotech-dark-raised);
		border-color: rgba(255, 255, 255, .32);
		color: #fff;
	}
	.pilotech-site-header--home .pilotech-nav-search .wp-block-search__input::placeholder { color: #9ca3af; }
	.pilotech-nav-search .wp-block-search__button {
		position: absolute;
		inset-inline-end: 1px;
		inset-block: 1px;
		display: inline-flex;
		width: 3rem;
		min-width: 3rem;
		margin: 0;
		padding: 0;
		align-items: center;
		justify-content: center;
		border: 0;
		border-radius: 0 var(--pilotech-radius-md) var(--pilotech-radius-md) 0;
		background: transparent;
		color: var(--pilotech-muted);
		cursor: pointer;
	}
	.pilotech-site-header--home .pilotech-nav-search .wp-block-search__button { color: #9ca3af; }
	.pilotech-nav-search .wp-block-search__button svg { width: 22px; height: 22px; fill: currentColor; }

	/* Items settle in after the surface arrives. */
	.pilotech-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,
	.pilotech-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .pilotech-nav-search {
		animation: pilotechMenuItemIn .3s cubic-bezier(0.16, 1, 0.3, 1) both;
	}
	.pilotech-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .pilotech-nav-search { animation-delay: .03s; }
	.pilotech-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(2) { animation-delay: .06s; }
	.pilotech-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(3) { animation-delay: .09s; }
	.pilotech-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(4) { animation-delay: .12s; }
	.pilotech-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(5) { animation-delay: .15s; }
	.pilotech-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(6) { animation-delay: .18s; }
	.pilotech-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(7) { animation-delay: .21s; }

	@keyframes pilotechMenuItemIn {
		from { opacity: 0; transform: translateY(8px); }
		to   { opacity: 1; transform: translateY(0); }
	}

	html.has-modal-open,
	body:has(.pilotech-primary-navigation .wp-block-navigation__responsive-container.is-menu-open) {
		overflow: hidden;
	}
	.pilotech-hero-title { font-size: clamp(2.4rem, 5vw, 3.4rem); }
	.pilotech-hero-domains__inner { gap: .5rem 1.5rem; }
	.pilotech-bridge__grid { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 2.5rem; }
	.pilotech-chain__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.pilotech-services-grid { gap: 3rem; }
	.pilotech-capability-row { grid-template-columns: 3.5rem minmax(0, 1.2fr) minmax(0, .8fr); gap: 1rem; }
	.pilotech-contact-step { grid-template-columns: minmax(0, 1fr) 8.5rem; gap: 2rem; }
	.pilotech-contact-path { grid-template-columns: 2.5rem minmax(11rem, 1fr) minmax(12rem, 1fr); gap: .9rem 1.4rem; }
	.pilotech-contact-path__action { grid-column: 2 / -1; justify-self: start; }
	.pilotech-contact-form-layout { grid-template-columns: minmax(12rem, .5fr) minmax(0, 1.5fr); gap: 2.5rem; }
}

@media (max-width: 899px) {
	.pilotech-contact-step { grid-template-columns: 1fr; gap: 1rem; }
	.pilotech-contact-step__marker {
		order: -1;
		min-height: 0;
		align-items: center;
		padding: 0 0 1.15rem;
		border-bottom: 1px solid #bae6fd;
	}
	.pilotech-contact-step__marker::before {
		top: .94rem;
		right: 1.9rem;
		bottom: auto;
		left: 0;
		width: auto;
		height: 1px;
	}
	.pilotech-contact-step__marker strong {
		position: relative;
		z-index: 1;
		padding: .15rem .5rem;
		background: #fff;
	}
	.pilotech-contact-intro__inner { grid-template-columns: 1fr; gap: 2.5rem; }
	.pilotech-contact-form-layout { grid-template-columns: 1fr; gap: 2rem; }
	.pilotech-contact-guide { padding-top: 1.15rem; }
	.pilotech-contact-guide__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 1.5rem; }
	.pilotech-contact-guide__list dt { grid-row: 1; margin-top: 0; }
	.pilotech-contact-guide__list dd { grid-row: 2; }
	.pilotech-contact-form-wrap { max-width: 48rem; justify-self: stretch; }
	.pilotech-contact-reassurance { grid-template-columns: 1fr; gap: 1.1rem; }
	.pilotech-footer-grid {
		grid-template-columns: 1fr;
		gap: 2.5rem;
		padding-bottom: 2.25rem;
	}
	.pilotech-footer-brand {
		max-width: 36rem;
	}
	.pilotech-footer-nav {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 1.75rem 2rem;
	}
}

@media (max-width: 767px) {
	:root { --pilotech-section: 4.5rem; }
	html { scroll-behavior: auto; }
	:root { --pilotech-header-pad: .6rem; --pilotech-header-rail: 2.75rem; }
	.pilotech-header-inner { gap: .75rem; }
	.pilotech-brand-mark { width: 2.35rem; height: 2.35rem; }
	.pilotech-wordmark { font-size: 1.18rem; }
	.pilotech-search-form .wp-block-search__inside-wrapper { flex-wrap: wrap; }
	.pilotech-search-form .wp-block-search__input { flex-basis: 100%; }
	.pilotech-search-form .wp-block-search__button { width: 100%; }
	/* Mobile hero is its own surface: portrait art, copy anchored on the scrim. */
	.pilotech-hero { min-height: min(660px, calc(100svh - 64px)); }
	.pilotech-hero-media img { object-position: 50% 34%; }
	/* Copy sits low on mobile, so the scrim stays near-opaque well up the frame;
	   the board stays readable in the top third. Verified against measured
	   pixel contrast, not eyeballed. */
	.pilotech-hero-media::after {
		background: linear-gradient(to top, var(--pilotech-dark) 0%, rgba(8, 13, 20, .97) 42%, rgba(8, 13, 20, .9) 60%, rgba(8, 13, 20, .72) 78%, rgba(8, 13, 20, .5) 100%);
	}
	.pilotech-hero-stage { padding-block: 3rem 2rem; }
	.pilotech-hero-stage > * { max-width: none; }
	.pilotech-hero-eyebrow { margin-bottom: .85rem; font-size: .74rem; }
	.pilotech-hero-title { max-width: none; font-size: clamp(2rem, 8.6vw, 2.7rem); line-height: 1.3; }
	.pilotech-hero-lead { margin-top: 1.05rem; font-size: .95rem; line-height: 1.9; }
	.pilotech-hero-actions { margin-top: 1.6rem; gap: .35rem 1.5rem; }
	.pilotech-hero-actions .wp-block-button__link { min-height: 3rem; padding: .75rem 1.25rem; font-size: .95rem; }
	.pilotech-hero-domains { padding-block: .85rem; }
	.pilotech-hero-domains__inner { gap: .3rem 1.15rem; }
	.pilotech-hero-domains p { font-size: .7rem; }
	.pilotech-statement__inner p { font-size: clamp(1.1rem, 4.6vw, 1.35rem); line-height: 1.75; }
	.pilotech-section-heading, .pilotech-services-grid { grid-template-columns: 1fr; gap: 2.25rem; }
	.pilotech-bridge { padding-bottom: 3rem; }
	.pilotech-bridge__grid { display: flex; flex-direction: column; gap: 0; }
	.pilotech-bridge-media { order: 2; min-height: 0; aspect-ratio: 4 / 3; }
	.pilotech-bridge-media img { object-position: 45% 55%; }
	.pilotech-bridge__copy { order: 1; max-width: none; padding: 3.25rem var(--pilotech-gutter); }
	.pilotech-chain { margin-top: 2.25rem; }
	.pilotech-chain__list { grid-template-columns: 1fr; }
	.pilotech-chain__list li { flex-direction: row; align-items: baseline; gap: .6rem; padding: .9rem 1rem .9rem 0; }
	.pilotech-chain__list li::before { height: 1rem; }
	.pilotech-chain__en { margin-inline-start: auto; }
	.pilotech-footer-grid { grid-template-columns: 1fr; gap: 2rem; padding-bottom: 1.5rem; }
	.pilotech-footer-brand { max-width: none; }
	.pilotech-footer-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 1rem; }
	.pilotech-footer-nav > .pilotech-footer-col:last-child {
		grid-column: 1 / -1;
		padding-top: 1.25rem;
		border-top: 1px solid rgba(255, 255, 255, .08);
	}
	.pilotech-section-heading { margin-bottom: 2rem; }
	.pilotech-capability-row { grid-template-columns: 2.5rem 1fr; gap: .2rem .85rem; padding: 1.3rem 0; }
	.pilotech-capability-en { grid-column: 2; direction: ltr; text-align: right; }
	.pilotech-services-intro { position: static; }
	.pilotech-service-row { grid-template-columns: 1fr; gap: .55rem; padding: 1.65rem 0; }
	.pilotech-service-row h3,
	.pilotech-service-row > p:not(.pilotech-service-row__links),
	.pilotech-service-row > .pilotech-service-row__links { grid-column: 1; grid-row: auto; }
	.pilotech-service-row__links { gap: .1rem 1.5rem; }
	.pilotech-journal-heading { gap: .5rem 1.5rem; }
	.pilotech-final-cta__inner { max-width: none; }
	.pilotech-footer-meta { flex-direction: column; align-items: flex-start; gap: .35rem; font-size: .75rem; text-align: left; }
	.pilotech-contact-intro { padding-top: 3.25rem; padding-bottom: 2.5rem; }
	.pilotech-contact-flow { padding-bottom: 4rem; }
	.pilotech-contact-intro h1 { font-size: clamp(2.1rem, 9.5vw, 3rem); }
	.pilotech-contact-choice__actions { gap: 0 1rem; }
	.pilotech-contact-section-heading { grid-template-columns: 1fr; align-items: start; gap: .75rem; margin-bottom: 1.5rem; }
	.pilotech-contact-path { grid-template-columns: 2.2rem minmax(0, 1fr); gap: .35rem .7rem; padding: 1.15rem 0; }
	.pilotech-contact-path__index { padding-top: .15rem; }
	.pilotech-contact-path__head,
	.pilotech-contact-path__helps,
	.pilotech-contact-path__action { grid-column: 2; }
	.pilotech-contact-path__head h3 { font-size: 1.08rem; }
	.pilotech-contact-path__when { margin-top: .3rem; font-size: .88rem; line-height: 1.8; }
	.pilotech-contact-path__helps { margin-top: .45rem; padding-inline-start: .7rem; font-size: .86rem; line-height: 1.8; }
	.pilotech-contact-path__action { justify-self: start; }
	.pilotech-contact-form-stage { padding-top: 3.25rem; }
	.pilotech-contact-field textarea { min-height: 8.5rem; }
	.pilotech-contact-guide__list { display: block; }
	.pilotech-contact-guide__list dt { margin-top: 1rem; }
	.pilotech-contact-guide__list dt:first-of-type { margin-top: 0; }
	.pilotech-contact-form { grid-template-columns: 1fr; gap: 1.15rem; }
	.pilotech-contact-field--wide,
	.pilotech-contact-form__actions { grid-column: 1; }
	.pilotech-contact-form__actions { grid-template-columns: 1fr; gap: .8rem; }
	.pilotech-contact-form__actions button { width: 100%; }
	.pilotech-contact-after { padding-top: 3.25rem; }
	.pilotech-contact-reassurance { grid-template-columns: 1fr; gap: 1rem; }
}

@media (max-width: 340px) {
	.pilotech-footer-nav { grid-template-columns: 1fr; gap: 1.25rem; }
	.pilotech-footer-nav > .pilotech-footer-col:last-child { padding-top: 0; border-top: 0; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	/* Only the travel is dropped. The rule itself still has to appear on hover
	   and stay put on the current item, so the transform is left alone. */
	.pilotech-primary-navigation .wp-block-navigation-item__content::after {
		transition: none;
	}
	.wp-block-navigation__responsive-container,
	.wp-block-navigation__responsive-close,
	.wp-block-navigation__responsive-dialog,
	.wp-block-navigation__responsive-container .wp-block-navigation-item,
	.wp-block-navigation__responsive-container .pilotech-nav-search,
	.pilotech-header-inner .pilotech-primary-navigation,
	.pilotech-header-search.wp-block-search,
	.pilotech-header-search .wp-block-search__inside-wrapper {
		transition: none !important;
		transform: none !important;
		animation: none !important;
	}
}

/* Capabilities — Engineering Journal. Scope is local to the slug template.
   Rhythm: white opening + index -> white chapter run with a sticky rail
   -> cool-tinted system view -> neutral close. RTL-first throughout. */
.pilotech-capabilities-page,
.pilotech-capabilities-page > .wp-block-post-content {
	margin: 0;
	background: #fff;
}
.pilotech-capabilities-page section[id] { scroll-margin-top: 6rem; }

/* Opening: statement on one side, working index on the other. --------------- */
.pilotech-capabilities-opening {
	margin: 0;
	padding: clamp(3.5rem, 7vw, 6rem) var(--pilotech-gutter) clamp(3.5rem, 6vw, 5.5rem);
	background: #fff;
}
.pilotech-capabilities-opening__grid {
	display: grid;
	grid-template-columns: minmax(20rem, .92fr) minmax(24rem, 1.08fr);
	align-items: start;
	gap: clamp(2.5rem, 5vw, 5rem);
}
.pilotech-figure-label {
	margin: 0;
	color: var(--pilotech-blue-ink);
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: .75rem;
	font-weight: 500;
	line-height: 1.65;
	letter-spacing: .02em;
}
/* bdi is stripped by kses on save, which breaks --resync idempotency.
   A span carries the same BiDi isolation when told to explicitly. */
.pilotech-capabilities-page .pilotech-ltr { unicode-bidi: isolate; }
.pilotech-capabilities-opening__copy { margin: 0; }
.pilotech-capabilities-opening__copy h1 {
	max-width: 20ch;
	margin: 1.25rem 0 0;
	color: var(--pilotech-ink);
	font-size: clamp(2.4rem, 4vw, 3.9rem);
	line-height: 1.34;
	letter-spacing: -.03em;
}
.pilotech-capabilities-opening__copy p {
	max-width: 42rem;
	margin: 1.5rem 0 0;
	color: var(--pilotech-muted);
	line-height: 2;
}

/* Chapter index. A navigation table, not a pill row. ----------------------- */
.pilotech-capability-index { margin: 0; }
.pilotech-capability-index > .pilotech-figure-label {
	padding-bottom: .9rem;
	border-bottom: 1px solid var(--pilotech-ink);
}
.pilotech-capability-index ol {
	margin: 0;
	padding: 0;
	list-style: none;
}
.pilotech-capability-index li { margin: 0; }
.pilotech-capability-index li a {
	display: grid;
	min-height: 3.5rem;
	grid-template-columns: 2.25rem minmax(0, 1fr);
	align-content: center;
	gap: .15rem .9rem;
	padding: .85rem 0;
	border-bottom: 1px solid var(--pilotech-border);
	color: var(--pilotech-ink);
	text-decoration: none;
}
.pilotech-capability-index li a > span {
	grid-row: 1 / span 2;
	color: var(--pilotech-blue-ink);
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: .75rem;
	font-weight: 500;
	line-height: 1.9;
}
.pilotech-capability-index li strong {
	font-size: clamp(1rem, 1.2vw, 1.15rem);
	font-weight: 700;
	line-height: 1.7;
}
.pilotech-capability-index li strong .pilotech-ltr {
	margin-inline-start: .4rem;
	color: var(--pilotech-muted);
	font-size: .82em;
	font-weight: 500;
}
.pilotech-capability-index li small {
	color: var(--pilotech-muted);
	font-size: .85rem;
	line-height: 1.75;
}
.pilotech-capability-index li a:hover strong,
.pilotech-capability-index li a:hover { color: var(--pilotech-blue-ink); }
.pilotech-capability-index li a:hover strong { text-decoration: underline; }
.pilotech-capability-index li a:focus-visible { outline-offset: .3rem; }
.pilotech-capability-index__jump {
	margin: 1.1rem 0 0;
}
.pilotech-capability-index__jump a {
	display: inline-flex;
	min-height: 2.75rem;
	align-items: center;
	color: var(--pilotech-blue-ink);
	font-size: .88rem;
	font-weight: 700;
	text-decoration-thickness: 1px;
}

/* Chapter run: sticky rail beside a continuous chapter flow. --------------- */
.pilotech-capability-chapters {
	margin: 0;
	padding: 0 var(--pilotech-gutter);
	background: #fff;
}
.pilotech-capability-chapters__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0;
}
.pilotech-capability-chapters__flow { margin: 0; }

.pilotech-chapter-rail { display: none; }
.pilotech-chapter-rail ol {
	margin: .9rem 0 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--pilotech-border);
}
.pilotech-chapter-rail li { margin: 0; }
.pilotech-chapter-rail li a,
.pilotech-chapter-rail__jump a {
	display: flex;
	min-height: 2.75rem;
	align-items: center;
	gap: .65rem;
	padding: .45rem 0;
	border-bottom: 1px solid var(--pilotech-border);
	color: var(--pilotech-muted);
	font-size: .82rem;
	line-height: 1.6;
	text-decoration: none;
}
.pilotech-chapter-rail li a > span {
	color: var(--pilotech-blue-ink);
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: .7rem;
	font-weight: 500;
}
.pilotech-chapter-rail li a:hover,
.pilotech-chapter-rail__jump a:hover {
	color: var(--pilotech-blue-ink);
	text-decoration: underline;
}
.pilotech-chapter-rail__jump { margin: 0; }
.pilotech-chapter-rail__jump a {
	border-bottom: 0;
	color: var(--pilotech-blue-ink);
	font-weight: 700;
}

/* One chapter. ------------------------------------------------------------ */
.pilotech-capability-chapter {
	margin: 0;
	padding-block: clamp(3rem, 6vw, 5rem);
	border-top: 1px solid var(--pilotech-ink);
}
.pilotech-capability-chapter:first-child { border-top-width: 2px; }
.pilotech-chapter-head {
	display: flex;
	align-items: baseline;
	gap: 1rem;
	margin: 0 0 .35rem;
}
.pilotech-chapter-number {
	margin: 0;
	/* Decorative and aria-hidden, but kept at >=3:1 for large text anyway. */
	color: #8a97a4;
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: clamp(2.75rem, 4.5vw, 4.25rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -.04em;
}
.pilotech-capability-chapter > h2 {
	max-width: 24ch;
	margin: 0;
	font-size: clamp(1.85rem, 2.9vw, 2.9rem);
	line-height: 1.4;
	letter-spacing: -.02em;
}
.pilotech-capability-chapter > h2 .pilotech-ltr {
	display: block;
	margin-top: .2rem;
	color: var(--pilotech-muted);
	font-size: .56em;
	font-weight: 500;
	letter-spacing: 0;
	/* dir="ltr" would otherwise pull this line away from the Persian above it. */
	text-align: right;
}
.pilotech-chapter-body {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: start;
	gap: clamp(2rem, 4vw, 3.5rem);
	margin-top: clamp(1.75rem, 3vw, 2.5rem);
}
.pilotech-chapter-prose { margin: 0; }
.pilotech-chapter-prose p {
	max-width: 46rem;
	margin: 0 0 1.15rem;
	color: var(--pilotech-muted);
	line-height: 2;
}
.pilotech-chapter-prose p:first-child { color: var(--pilotech-ink); }
.pilotech-chapter-prose p:last-of-type { margin-bottom: 0; }
.pilotech-chapter-apparatus { margin: 0; }

/* Scope register: the "what is usually in scope" answer. ------------------ */
.pilotech-scope { margin: 0; }
.pilotech-scope h3 {
	margin: 0;
	padding-bottom: .6rem;
	border-bottom: 1px solid var(--pilotech-ink);
	color: var(--pilotech-ink);
	font-size: .9rem;
	font-weight: 700;
	line-height: 1.6;
}
.pilotech-scope ol {
	margin: 0;
	padding: 0;
	list-style: none;
}
/* Deliberately not grid/flex: an inline <span dir="ltr"> gloss inside the label
   would become its own grid item and drop to a second row. */
.pilotech-scope li {
	position: relative;
	margin: 0;
	padding: .7rem 0;
	padding-inline-start: 3.5rem;
	border-bottom: 1px solid var(--pilotech-border);
	color: var(--pilotech-ink);
	font-size: .9rem;
	line-height: 1.75;
}
.pilotech-scope li > span:first-child {
	position: absolute;
	inset-inline-start: 0;
	top: .78rem;
	color: var(--pilotech-blue-ink);
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: .7rem;
	font-weight: 500;
}
.pilotech-scope li .pilotech-ltr {
	color: var(--pilotech-muted);
	/* Keeps hyphenated terms such as "MCU-based" from splitting across lines. */
	white-space: nowrap;
}

/* Cross references between chapters. -------------------------------------- */
.pilotech-chapter-refs {
	margin: 1.35rem 0 0;
	color: var(--pilotech-muted);
	font-size: .84rem;
	line-height: 2.1;
}
.pilotech-chapter-refs a {
	display: inline-block;
	min-height: 2.75rem;
	padding-block: .55rem;
	color: var(--pilotech-blue-ink);
	font-weight: 700;
	text-decoration-thickness: 1px;
	text-underline-offset: .2em;
}

/* Figures. Each shape is chosen for what that domain actually is. --------- */
.pilotech-capability-figure { margin: 1.85rem 0 0; }
.pilotech-capability-figure figcaption,
.pilotech-system-view figcaption {
	margin-top: .8rem;
	color: var(--pilotech-muted);
	font-size: .8125rem;
	line-height: 1.8;
}

/* 01 — two decisions converging on one behaviour. */
.pilotech-converge {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: .6rem;
	padding: 1.5rem;
	border: 1px solid var(--pilotech-border-strong);
	background: #fbfcfd;
}
.pilotech-converge b,
.pilotech-converge u {
	display: flex;
	min-height: 3.5rem;
	align-items: center;
	justify-content: center;
	padding: .6rem;
	border: 1px solid #a9cade;
	background: #fff;
	font-size: .85rem;
	font-weight: 700;
	text-align: center;
	text-decoration: none;
}
.pilotech-converge i {
	position: relative;
	display: block;
	height: 1.6rem;
	grid-column: 1 / -1;
	justify-self: center;
	width: 1px;
	background: var(--pilotech-blue-ink);
}
.pilotech-converge i::after {
	position: absolute;
	bottom: 0;
	left: 50%;
	border-top: 6px solid var(--pilotech-blue-ink);
	border-inline: 4px solid transparent;
	content: "";
	transform: translateX(-50%);
}
.pilotech-converge u {
	grid-column: 1 / -1;
	border-color: var(--pilotech-blue-ink);
	background: #eff8fd;
}

/* 02 — firmware is the one genuinely layered concept. */
.pilotech-stack {
	margin: 0;
	padding: 0;
	list-style: none;
	border-inline-start: 2px solid var(--pilotech-blue-ink);
}
.pilotech-stack li {
	display: flex;
	min-height: 3rem;
	align-items: center;
	gap: .85rem;
	margin: 0 0 .35rem;
	padding: .65rem 1rem;
	border: 1px solid var(--pilotech-border-strong);
	border-inline-start: 0;
	background: #fff;
	font-size: .87rem;
	font-weight: 700;
}
.pilotech-stack li:last-child {
	margin-bottom: 0;
	background: #f4f7f9;
	font-weight: 500;
}
.pilotech-stack li > span {
	color: var(--pilotech-blue-ink);
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: .72rem;
	font-weight: 500;
}

/* 03 — an open chain: every link is required, none is the whole thing.
   Name is IoT-specific on purpose; the bare chain class belongs to Home. */
.pilotech-iot-chain {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 2.25rem;
	margin: 0;
	padding: 1.75rem 1.5rem;
	border-block: 1px solid var(--pilotech-ink);
	list-style: none;
	background: #fbfcfd;
}
.pilotech-iot-chain li {
	position: relative;
	display: flex;
	min-height: 6rem;
	flex-direction: column;
	justify-content: center;
	gap: .3rem;
	margin: 0;
	padding: 1rem;
	border: 1px solid #a9cade;
	background: #fff;
	text-align: center;
}
.pilotech-iot-chain li + li::before {
	position: absolute;
	top: 50%;
	inset-inline-end: calc(100% + 1px);
	width: 2.25rem;
	height: 1px;
	background: var(--pilotech-blue-ink);
	content: "";
}
.pilotech-iot-chain li + li::after {
	position: absolute;
	top: 50%;
	inset-inline-end: calc(100% + 1px);
	border-inline-end: 6px solid var(--pilotech-blue-ink);
	border-block: 4px solid transparent;
	content: "";
	transform: translateY(-50%);
}
.pilotech-iot-chain li > span {
	color: var(--pilotech-blue-ink);
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: .68rem;
	font-weight: 500;
}
.pilotech-iot-chain li strong { font-size: .92rem; }
.pilotech-iot-chain li small {
	color: var(--pilotech-muted);
	font-size: .72rem;
}

/* 04 — a closed loop, which is what separates control from a chain. */
.pilotech-loop {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .6rem;
	margin: 0;
	padding: 1.5rem 1.5rem 1rem;
	border: 1px solid var(--pilotech-border-strong);
	list-style: none;
	background: #fbfcfd;
}
.pilotech-loop li {
	display: flex;
	min-height: 4rem;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	margin: 0;
	padding: .75rem;
	border: 1px solid #a9cade;
	background: #fff;
	font-size: .88rem;
	font-weight: 700;
}
/* Visual order closes the ring (start -> across -> down -> back) instead of
   reading as a Z. Each cell carries its printed ordinal, so the sequence stays
   unambiguous and DOM order is untouched. */
.pilotech-loop li:nth-child(3) { order: 4; }
.pilotech-loop li:nth-child(4) { order: 3; }
.pilotech-loop li > span {
	color: var(--pilotech-blue-ink);
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: .68rem;
	font-weight: 500;
}
.pilotech-loop__return {
	display: flex;
	align-items: center;
	gap: .6rem;
	margin: 0;
	padding: .85rem 1.5rem 1.25rem;
	border: 1px solid var(--pilotech-border-strong);
	border-top: 0;
	background: #fbfcfd;
	color: var(--pilotech-blue-ink);
	font-size: .78rem;
	font-weight: 700;
}
.pilotech-loop__return::before {
	flex: 1;
	height: 1px;
	background: var(--pilotech-blue-ink);
	content: "";
}
.pilotech-loop__return::after {
	border-inline-end: 6px solid var(--pilotech-blue-ink);
	border-block: 4px solid transparent;
	content: "";
}

/* Cross-capability system view: one ordered stack, no second list. -------- */
.pilotech-capability-connections {
	margin: 0;
	padding: clamp(4rem, 7vw, 6.5rem) var(--pilotech-gutter);
	background: #f0f9ff;
	border-top: 1px solid #bfdcee;
}
.pilotech-capability-connections__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: start;
	gap: clamp(2.25rem, 4vw, 4rem);
}
.pilotech-capability-connections__copy { margin: 0; }
.pilotech-capability-connections__copy h2 {
	max-width: 18ch;
	margin: 1.1rem 0 0;
	font-size: clamp(1.85rem, 2.9vw, 2.9rem);
	line-height: 1.4;
	letter-spacing: -.02em;
}
.pilotech-capability-connections__copy p {
	max-width: 40rem;
	margin: 1.35rem 0 0;
	color: var(--pilotech-muted);
	line-height: 2;
}
.pilotech-system-view { margin: 0; }
.pilotech-system-view ol {
	margin: 0;
	padding: 0;
	list-style: none;
}
.pilotech-system-view li {
	position: relative;
	margin: 0 0 .5rem;
}
.pilotech-system-view li:last-child { margin-bottom: 0; }
.pilotech-system-view li a {
	display: grid;
	min-height: 4rem;
	grid-template-columns: 2.5rem minmax(0, 1fr);
	align-content: center;
	gap: .15rem .85rem;
	padding: .95rem 1.1rem;
	border: 1px solid #bfdcee;
	background: #fff;
	color: var(--pilotech-ink);
	text-decoration: none;
}
.pilotech-system-view li a > span {
	grid-row: 1 / span 2;
	color: var(--pilotech-blue-ink);
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: .72rem;
	font-weight: 500;
	line-height: 1.9;
}
.pilotech-system-view li strong {
	font-size: .98rem;
	line-height: 1.6;
}
.pilotech-system-view li small {
	color: var(--pilotech-muted);
	font-size: .82rem;
	line-height: 1.7;
}
.pilotech-system-view li a:hover { border-color: var(--pilotech-blue-ink); }
.pilotech-system-view li a:hover strong {
	color: var(--pilotech-blue-ink);
	text-decoration: underline;
}
.pilotech-system-view li + li::before {
	position: absolute;
	bottom: calc(100% + 1px);
	inset-inline-start: 2.35rem;
	height: .5rem;
	width: 1px;
	background: var(--pilotech-blue-ink);
	content: "";
}

/* Close. One primary action, one secondary. ------------------------------- */
.pilotech-capabilities-cta {
	margin: 0;
	padding: clamp(4rem, 7vw, 6.5rem) var(--pilotech-gutter);
	background: #f7f8fa;
	border-top: 1px solid var(--pilotech-border);
}
.pilotech-capabilities-cta__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: start;
	gap: clamp(2.25rem, 4vw, 4rem);
}
.pilotech-capabilities-cta__copy { margin: 0; }
.pilotech-capabilities-cta__copy h2 {
	max-width: 18ch;
	margin: 0;
	font-size: clamp(1.85rem, 2.9vw, 2.9rem);
	line-height: 1.4;
	letter-spacing: -.02em;
}
.pilotech-capabilities-cta__copy p {
	max-width: 38rem;
	margin: 1.35rem 0 0;
	color: var(--pilotech-muted);
	line-height: 2;
}
.pilotech-capabilities-cta__copy .wp-block-buttons {
	margin-top: 2rem;
	gap: .75rem 1rem;
}
.pilotech-brief-register { margin: 0; }
.pilotech-brief-register h3 { padding-bottom: .75rem; border-bottom: 1px solid var(--pilotech-ink); }
.pilotech-brief-register ul {
	margin: 0;
	padding: 0;
	list-style: none;
}
.pilotech-brief-register li {
	margin: 0;
	padding: .85rem 0;
	border-bottom: 1px solid var(--pilotech-border);
	color: var(--pilotech-ink);
	font-size: .92rem;
	line-height: 1.75;
}

@media (min-width: 768px) {
	.pilotech-chapter-body { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
	.pilotech-capability-chapter.is-wide-figure .pilotech-capability-figure { grid-column: 1 / -1; }
	.pilotech-capability-connections__inner,
	.pilotech-capabilities-cta__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.pilotech-loop { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
	.pilotech-capability-connections__inner { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); }
}

@media (min-width: 1280px) {
	.pilotech-capability-chapters__inner {
		grid-template-columns: 13rem minmax(0, 1fr);
		gap: clamp(2.5rem, 4vw, 4.5rem);
	}
	.pilotech-chapter-rail {
		position: sticky;
		top: 6rem;
		display: block;
		align-self: start;
		margin-top: clamp(3rem, 6vw, 5rem);
	}
	.pilotech-capability-chapter > h2 { max-width: 28ch; }
}

@media (max-width: 1023px) {
	.pilotech-capabilities-opening__grid { grid-template-columns: minmax(0, 1fr); }
	.pilotech-capabilities-opening__copy h1 { max-width: 24ch; }
}

@media (max-width: 767px) {
	.pilotech-capabilities-page section[id] { scroll-margin-top: 5rem; }
	.pilotech-chapter-head { gap: .75rem; }
	/* Long-form page: recover vertical budget without dropping any content. */
	.pilotech-capability-chapter { padding-block: 2.5rem; }
	.pilotech-chapter-prose p,
	.pilotech-capabilities-opening__copy p,
	.pilotech-capability-connections__copy p { line-height: 1.9; }
	/* padding-block only: the shorthand would drop the inline-start gutter that
	   keeps the absolutely positioned ordinal clear of the label. */
	.pilotech-scope li { padding-block: .6rem; }
	.pilotech-capability-figure { margin-top: 1.5rem; }
	.pilotech-iot-chain {
		grid-template-columns: minmax(0, 1fr);
		gap: 1.25rem;
		padding: 1.25rem 1rem;
	}
	.pilotech-iot-chain li { min-height: 4rem; }
	.pilotech-iot-chain li + li::before {
		top: auto;
		bottom: calc(100% + 1px);
		inset-inline-end: 50%;
		width: 1px;
		height: 1.5rem;
	}
	.pilotech-iot-chain li + li::after {
		top: auto;
		bottom: calc(100% + 1px);
		inset-inline-end: 50%;
		border-inline: 4px solid transparent;
		border-top: 6px solid var(--pilotech-blue-ink);
		border-bottom: 0;
		transform: translateX(50%);
	}
	.pilotech-loop,
	.pilotech-loop__return { padding-inline: 1rem; }
	.pilotech-converge { padding: 1.1rem; }
}

@media (max-width: 399px) {
	.pilotech-loop { grid-template-columns: minmax(0, 1fr); }
	/* Single column reads top-to-bottom, so the ring reorder must not apply. */
	.pilotech-loop li:nth-child(3),
	.pilotech-loop li:nth-child(4) { order: 0; }
	.pilotech-converge { grid-template-columns: minmax(0, 1fr); }
	.pilotech-capability-index li a { grid-template-columns: minmax(0, 1fr); }
	.pilotech-capability-index li a > span { grid-row: auto; line-height: 1.4; }
	.pilotech-system-view li a { grid-template-columns: minmax(0, 1fr); }
	.pilotech-system-view li a > span { grid-row: auto; line-height: 1.4; }
	.pilotech-system-view li + li::before { inset-inline-start: 1.1rem; }
}

/* ==========================================================================
   Services — Technical Service Routing
   Rhythm: white opening carrying the role frame -> a routing switchboard that
   is the page's spine -> three detail sections in the switchboard's order ->
   the one arc common to all three -> the Shop/Contact rule and a single close.
   Services runs a tighter type scale than About/Capabilities on purpose: this
   page is scanned for a destination, not read through as an argument.
   ========================================================================== */
.pilotech-services-page,
.pilotech-services-page > .wp-block-post-content {
	margin: 0;
	background: #fff;
}
.pilotech-services-page section[id] { scroll-margin-top: 6rem; }
.pilotech-services-page .pilotech-ltr { unicode-bidi: isolate; }

.pilotech-services-page h2 {
	margin: 0;
	max-width: 26ch;
	color: var(--pilotech-ink);
	font-size: clamp(1.7rem, 2.7vw, 2.5rem);
	line-height: 1.4;
	letter-spacing: -.022em;
	text-wrap: balance;
}
.pilotech-services-page h3 {
	margin: 0;
	color: var(--pilotech-ink);
	font-size: clamp(1.05rem, 1.5vw, 1.25rem);
	line-height: 1.55;
}
.pilotech-services-note {
	max-width: 40rem;
	margin: 1.5rem 0 0 !important;
	padding-top: 1.1rem;
	border-top: 1px solid var(--pilotech-border-strong);
	color: #374151;
	font-size: .86rem;
	line-height: 1.9;
}

/* --- Shared action vocabulary -------------------------------------------
   One solid button exists on this page: the final CTA. Every other action is
   an outlined or text control, so Shop never reads as the page's goal.
   Meaning is carried by the label; colour only reinforces it. */
.pilotech-services-action {
	display: inline-flex;
	min-height: 44px;
	box-sizing: border-box;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	padding: .6rem 1.1rem;
	border: 1px solid transparent;
	border-radius: var(--pilotech-radius-sm);
	font-size: .875rem;
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
	text-decoration: none;
}
.pilotech-services-action--shop {
	border-color: var(--pilotech-blue-ink);
	background: #fff;
	color: var(--pilotech-blue-ink);
}
.pilotech-services-action--shop::after {
	content: "\2197";
	font-weight: 400;
}
.pilotech-services-action--shop:hover { background: #f0f9ff; }
.pilotech-services-action--talk {
	border-color: var(--pilotech-red);
	background: #fff;
	color: var(--pilotech-red);
}
.pilotech-services-action--talk:hover { background: #fff1f4; }
.pilotech-services-action--detail {
	padding-inline: .35rem;
	background: none;
	color: var(--pilotech-blue-ink);
	text-decoration: underline;
	text-underline-offset: .3em;
}
.pilotech-services-action--detail:hover { color: var(--pilotech-blue-ink-strong); }
.pilotech-services-action--primary {
	padding: .85rem 1.75rem;
	border-color: var(--pilotech-red);
	background: var(--pilotech-red);
	color: #fff;
	font-size: .95rem;
}
.pilotech-services-action--primary:hover { background: var(--pilotech-red-hover); border-color: var(--pilotech-red-hover); }
.pilotech-services-action--primary:active { background: var(--pilotech-red-active); border-color: var(--pilotech-red-active); }

/* These actions sit inside <p>, so the global `p a { color: blue-ink }` link
   colour applies to them too. Pin every state explicitly and scope past it, so
   a solid button never renders blue-on-red and the outline actions keep their
   own colour after being visited. */
.pilotech-services-page .pilotech-services-action--primary,
.pilotech-services-page .pilotech-services-action--primary:link,
.pilotech-services-page .pilotech-services-action--primary:visited,
.pilotech-services-page .pilotech-services-action--primary:hover,
.pilotech-services-page .pilotech-services-action--primary:focus,
.pilotech-services-page .pilotech-services-action--primary:active { color: #fff; }
.pilotech-services-page .pilotech-services-action--shop,
.pilotech-services-page .pilotech-services-action--shop:link,
.pilotech-services-page .pilotech-services-action--shop:visited { color: var(--pilotech-blue-ink); }
.pilotech-services-page .pilotech-services-action--talk,
.pilotech-services-page .pilotech-services-action--talk:link,
.pilotech-services-page .pilotech-services-action--talk:visited { color: var(--pilotech-red); }
.pilotech-services-page .pilotech-services-action--detail,
.pilotech-services-page .pilotech-services-action--detail:link,
.pilotech-services-page .pilotech-services-action--detail:visited { color: var(--pilotech-blue-ink); }
.pilotech-services-page .pilotech-services-action--detail:hover { color: var(--pilotech-blue-ink-strong); }

.pilotech-services-pathactions {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	margin: 1.75rem 0 0;
}

/* --- Opening ------------------------------------------------------------ */
.pilotech-services-opening {
	margin: 0;
	padding: clamp(3.5rem, 6.5vw, 6rem) var(--pilotech-gutter) clamp(3rem, 5.5vw, 5rem);
	background: #fff;
}
.pilotech-services-opening__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
	align-items: start;
	gap: clamp(2.5rem, 6vw, 5.5rem);
}
.pilotech-services-opening__copy h1 {
	max-width: 20ch;
	margin: 0;
	color: var(--pilotech-ink);
	font-size: clamp(2.2rem, 4vw, 3.5rem);
	line-height: 1.3;
	letter-spacing: -.03em;
	text-wrap: balance;
}
.pilotech-services-opening__copy p {
	max-width: 40rem;
	margin: 1.25rem 0 0;
	color: var(--pilotech-muted);
	line-height: 2;
}
.pilotech-services-opening__copy .has-body-large-font-size {
	color: var(--pilotech-ink);
	font-size: clamp(1rem, 1.2vw, 1.12rem) !important;
}

/* The positioning that must not be missed sits in the first viewport, in the
   same visual register as the coordination table further down the page. */
.pilotech-services-roleframe {
	margin-top: .5rem;
	border: 1px solid var(--pilotech-ink);
	border-radius: var(--pilotech-radius-sm);
	background: #fff;
}
/* Scoped past .pilotech-services-page h2 (including its responsive overrides,
   which sit later in the file) so this stays a label, not a section heading. */
.pilotech-services-page .pilotech-services-roleframe h2 {
	margin: 0;
	max-width: none;
	padding: 1rem 1.35rem;
	border-bottom: 1px solid var(--pilotech-ink);
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .02em;
	color: var(--pilotech-blue-ink);
}
.pilotech-services-roleframe dl { margin: 0; }
.pilotech-services-roleframe__row { padding: 1.25rem 1.35rem; }
.pilotech-services-roleframe__row + .pilotech-services-roleframe__row { border-top: 1px solid var(--pilotech-border); }
.pilotech-services-roleframe__row--self { background: #f0f9ff; }
.pilotech-services-roleframe dt {
	margin-bottom: .5rem;
	color: var(--pilotech-ink);
	font-size: .95rem;
	font-weight: 700;
}
.pilotech-services-roleframe dd {
	margin: 0;
	color: var(--pilotech-muted);
	font-size: .84rem;
	line-height: 1.9;
}

/* --- Routing switchboard ------------------------------------------------
   The spine of the page. Each row answers need / Pilotech's role / next
   action, so the Shop-vs-Contact decision is available before any scrolling. */
.pilotech-services-switchboard {
	margin: 0;
	padding: clamp(3.5rem, 6.5vw, 5.5rem) var(--pilotech-gutter);
	background: #f9fafb;
	border-block: 1px solid var(--pilotech-border-strong);
}
.pilotech-services-switchboard__inner { margin-inline: auto; }
.pilotech-services-section-heading {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: end;
	gap: clamp(1.5rem, 4vw, 4rem);
	margin-bottom: 2.25rem;
}
.pilotech-services-section-heading p {
	max-width: 36rem;
	margin: 0;
	color: var(--pilotech-muted);
	font-size: .92rem;
	line-height: 1.95;
}
.pilotech-services-routes {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--pilotech-ink);
}
.pilotech-services-route {
	display: grid;
	margin: 0;
	grid-template-columns: 3rem minmax(13rem, .9fr) minmax(0, 1fr) minmax(14rem, auto);
	align-items: start;
	gap: 1.5rem clamp(1.25rem, 3vw, 2.75rem);
	padding: 1.9rem .25rem;
	border-bottom: 1px solid var(--pilotech-border-strong);
}
.pilotech-services-route__id {
	margin: 0;
	color: var(--pilotech-blue-ink);
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: .8rem;
	font-weight: 700;
	line-height: 1.9;
}
.pilotech-services-route__head h3 { font-size: clamp(1.15rem, 1.8vw, 1.4rem); }
.pilotech-services-route__need {
	margin: .6rem 0 0;
	color: var(--pilotech-ink);
	font-size: .88rem;
	line-height: 1.85;
}
.pilotech-services-route__role {
	margin: 0;
	color: var(--pilotech-muted);
	font-size: .84rem;
	line-height: 1.9;
}
.pilotech-services-route__label {
	display: block;
	margin-bottom: .3rem;
	color: var(--pilotech-blue-ink);
	font-size: .72rem;
	font-weight: 700;
}
.pilotech-services-route__actions {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: .5rem;
	margin: 0;
}

/* --- Detail sections ---------------------------------------------------- */
.pilotech-pcb-service,
.pilotech-components-service,
.pilotech-engineering-service {
	margin: 0;
	padding: clamp(3.75rem, 7vw, 6rem) var(--pilotech-gutter);
}
.pilotech-pcb-service { background: #f0f9ff; }
.pilotech-components-service { background: #fff; }
.pilotech-engineering-service { background: #fff; border-top: 1px solid var(--pilotech-border); }

.pilotech-pcb-service__grid {
	display: grid;
	grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
	gap: clamp(2.5rem, 5vw, 4.5rem);
}
.pilotech-pcb-service__copy { grid-column: 1; grid-row: 1 / 3; align-self: start; }
.pilotech-pcb-service__copy p:not(.pilotech-kicker):not(.pilotech-services-note) {
	max-width: 38rem;
	margin: 1.25rem 0 0;
	color: var(--pilotech-muted);
	line-height: 2;
}
.pilotech-pcb-service__copy .pilotech-services-note { border-top-color: #93c9e1; }
.pilotech-pcb-coordination { grid-column: 2; grid-row: 1; }
.pilotech-pcb-coordination dl {
	margin: 1rem 0 0;
	padding: 0;
	border-top: 1px solid var(--pilotech-ink);
}
.pilotech-pcb-coordination dl > div {
	display: grid;
	grid-template-columns: minmax(9rem, .7fr) minmax(0, 1.3fr);
	gap: 1rem;
	padding: 1.05rem 0;
	border-bottom: 1px solid #beddea;
}
.pilotech-pcb-coordination dt {
	color: var(--pilotech-ink);
	font-size: .88rem;
	font-weight: 700;
}
.pilotech-pcb-coordination dd { margin: 0; }
.pilotech-pcb-coordination dd strong {
	display: block;
	color: var(--pilotech-blue-ink);
	font-size: .78rem;
	font-weight: 700;
}
/* The one row that is not Pilotech's is marked structurally, not by colour
   alone: it carries its own label and an explicit disclaimer line. */
.pilotech-pcb-coordination__partner dd strong { color: var(--pilotech-ink); }
.pilotech-pcb-coordination__partner { background: rgba(255,255,255,.6); }
.pilotech-pcb-coordination dd span {
	display: block;
	margin-top: .25rem;
	color: var(--pilotech-muted);
	font-size: .8rem;
	line-height: 1.75;
}
.pilotech-pcb-inputs { grid-column: 2; grid-row: 2; }
.pilotech-pcb-inputs > p {
	max-width: 46rem;
	margin: .7rem 0 0;
	color: var(--pilotech-muted);
	font-size: .84rem;
	line-height: 1.9;
}
/* Chips stay a single band: stretch equalises their height so the Latin labels
   with descenders do not sit taller than the all-caps and Persian ones. */
.pilotech-pcb-input-list {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: .6rem;
	margin: 1.25rem 0 0;
	padding: 0;
	list-style: none;
}
.pilotech-pcb-input-list li {
	display: flex;
	margin: 0;
	min-height: 2.6rem;
	align-items: center;
	justify-content: center;
	padding: .5rem .85rem;
	border: 1px solid #8fc4dd;
	border-radius: var(--pilotech-radius-xs);
	background: rgba(255,255,255,.72);
	font-size: .8rem;
	/* Pinned so the Latin chips, whose fallback font has taller metrics than
	   IRANSans, produce the same line box as the Persian ones. */
	line-height: 1.5;
}

.pilotech-components-service__grid,
.pilotech-engineering-service__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: start;
	gap: clamp(2.5rem, 6vw, 5.5rem);
}
.pilotech-components-service__copy p:not(.pilotech-kicker):not(.pilotech-services-note),
.pilotech-engineering-service__copy p:not(.pilotech-kicker):not(.pilotech-services-note) {
	max-width: 38rem;
	margin: 1.25rem 0 0;
	color: var(--pilotech-muted);
	line-height: 2;
}
.pilotech-components-inputs {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 1rem 0 0;
	border-top: 1px solid var(--pilotech-ink);
}
.pilotech-components-inputs > div {
	min-height: 6.5rem;
	padding: 1.15rem 1.15rem 1.15rem 0;
	border-bottom: 1px solid var(--pilotech-border);
}
.pilotech-components-inputs > div:nth-child(odd) { border-inline-end: 1px solid var(--pilotech-border); }
.pilotech-components-inputs > div:nth-child(even) { padding-inline-start: 1.15rem; }
.pilotech-components-inputs dt {
	color: var(--pilotech-blue-ink);
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: .76rem;
	font-weight: 700;
}
.pilotech-components-inputs dd { margin: .8rem 0 0; font-size: .86rem; line-height: 1.75; }

.pilotech-engineering-cases ul {
	margin: 1rem 0 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--pilotech-ink);
}
.pilotech-engineering-cases li {
	margin: 0;
	padding: .95rem 0 .95rem 0;
	border-bottom: 1px solid var(--pilotech-border);
	color: var(--pilotech-muted);
	font-size: .88rem;
	line-height: 1.8;
}
.pilotech-engineering-cases li::before {
	content: "";
	display: inline-block;
	width: .4rem;
	height: .4rem;
	margin-inline-end: .7rem;
	margin-bottom: .15rem;
	border-radius: 50%;
	background: var(--pilotech-blue-ink);
	vertical-align: middle;
}

/* --- The arc common to all three ---------------------------------------- */
.pilotech-services-common {
	margin: 0;
	padding: clamp(3.5rem, 6.5vw, 5.5rem) var(--pilotech-gutter);
	background: #f9fafb;
	border-block: 1px solid var(--pilotech-border-strong);
}
.pilotech-services-common__inner { margin-inline: auto; }
.pilotech-services-pipeline {
	position: relative;
	margin: 2rem 0 0;
	padding: 1.75rem 0 0;
	border-top: 1px solid var(--pilotech-ink);
	direction: rtl;
}
.pilotech-services-pipeline ol {
	position: relative;
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
}
.pilotech-services-pipeline ol::before {
	position: absolute;
	top: 1.35rem;
	right: 10%;
	left: 10%;
	height: 1px;
	background: #7db9d6;
	content: "";
}
.pilotech-services-pipeline li {
	position: relative;
	margin: 0;
	z-index: 1;
	min-width: 0;
	padding-inline: .35rem;
	text-align: center;
}
.pilotech-services-pipeline li > span {
	display: grid;
	width: 2.7rem;
	height: 2.7rem;
	place-items: center;
	margin-inline: auto;
	border: 1px solid var(--pilotech-blue-ink);
	border-radius: 50%;
	background: #fff;
	color: var(--pilotech-blue-ink);
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: .7rem;
	font-weight: 700;
}
.pilotech-services-pipeline strong,
.pilotech-services-pipeline small { display: block; direction: rtl; }
.pilotech-services-pipeline strong { margin-top: .9rem; font-size: .8rem; line-height: 1.6; }
.pilotech-services-pipeline small { margin-top: .25rem; color: var(--pilotech-muted); font-size: .75rem; line-height: 1.7; }
.pilotech-services-pipeline figcaption {
	max-width: 52rem;
	margin-top: 1.75rem;
	padding-top: 1.1rem;
	border-top: 1px solid var(--pilotech-border);
	color: var(--pilotech-muted);
	direction: rtl;
	font-size: .82rem;
	line-height: 1.9;
	text-align: right;
}

/* --- The Shop / Contact rule and the single close ----------------------- */
.pilotech-services-decision {
	margin: 0;
	padding: clamp(3.75rem, 7vw, 6rem) var(--pilotech-gutter);
	background: #fff;
}
.pilotech-services-decision__inner { margin-inline: auto; }
.pilotech-services-decision__copy p {
	max-width: 42rem;
	margin: 1rem 0 0;
	color: var(--pilotech-muted);
	line-height: 1.95;
}
.pilotech-services-rule {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-top: 2rem;
	border-top: 1px solid var(--pilotech-ink);
}
.pilotech-services-rule__item {
	padding: 1.4rem 1.35rem 1.4rem 0;
	border-bottom: 1px solid var(--pilotech-border);
}
.pilotech-services-rule__item:first-child { border-inline-end: 1px solid var(--pilotech-border); }
.pilotech-services-rule__item:last-child { padding-inline-start: 1.35rem; }
.pilotech-services-rule__where {
	margin: 0 0 .5rem;
	color: var(--pilotech-ink);
	font-size: .95rem;
	font-weight: 700;
}
.pilotech-services-rule__when {
	margin: 0;
	color: var(--pilotech-muted);
	font-size: .86rem;
	line-height: 1.85;
}
.pilotech-services-final {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem 2.5rem;
	margin-top: 2.5rem;
	padding: 1.9rem 1.75rem;
	border: 1px solid var(--pilotech-ink);
	border-radius: var(--pilotech-radius-sm);
	background: #f9fafb;
}
.pilotech-services-final__text {
	max-width: 44rem;
	margin: 0;
	color: var(--pilotech-ink);
	font-size: .95rem;
	line-height: 1.9;
}
.pilotech-services-final__action { margin: 0; }

@media (max-width: 1100px) {
	.pilotech-services-opening__grid { grid-template-columns: minmax(0, 1fr) minmax(0, .85fr); gap: 2.5rem; }
	.pilotech-pcb-service__grid { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 3rem; }
	.pilotech-services-route { grid-template-columns: 2.5rem minmax(11rem, .9fr) minmax(0, 1fr) minmax(13rem, auto); }
}

@media (max-width: 900px) {
	.pilotech-services-opening__grid { grid-template-columns: 1fr; gap: 2.75rem; }
	.pilotech-services-opening__copy { max-width: 48rem; }
	.pilotech-services-section-heading { grid-template-columns: 1fr; align-items: start; gap: 1rem; }
	/* Mobile is not the desktop row stacked: the row becomes a small record
	   with the id inline beside the title and the actions on their own line. */
	.pilotech-services-route {
		grid-template-columns: 2.25rem minmax(0, 1fr);
		gap: .85rem 1rem;
		padding: 1.6rem .1rem;
	}
	.pilotech-services-route__id { grid-column: 1; grid-row: 1; }
	.pilotech-services-route__head { grid-column: 2; grid-row: 1; }
	.pilotech-services-route__role { grid-column: 2; grid-row: 2; }
	.pilotech-services-route__actions { grid-column: 2; grid-row: 3; flex-direction: row; flex-wrap: wrap; }
	.pilotech-services-route__actions .pilotech-services-action { flex: 1 1 auto; }
	.pilotech-pcb-service__grid,
	.pilotech-components-service__grid,
	.pilotech-engineering-service__grid { grid-template-columns: 1fr; gap: 2.25rem; }
	.pilotech-pcb-service__copy,
	.pilotech-pcb-coordination,
	.pilotech-pcb-inputs { grid-column: 1; grid-row: auto; }
	.pilotech-services-final { justify-content: flex-start; }
	/* Once the two-column sections collapse, the desktop measure and rhythm are
	   no longer doing any work, so the whole page tightens rather than just
	   stacking at full height. */
	.pilotech-services-switchboard,
	.pilotech-pcb-service,
	.pilotech-components-service,
	.pilotech-engineering-service,
	.pilotech-services-common,
	.pilotech-services-decision { padding-block: 3.25rem; }
	.pilotech-services-page h2 { font-size: clamp(1.65rem, 3.6vw, 2.05rem); }
	.pilotech-services-opening__copy p,
	.pilotech-pcb-service__copy p:not(.pilotech-kicker):not(.pilotech-services-note),
	.pilotech-components-service__copy p:not(.pilotech-kicker):not(.pilotech-services-note),
	.pilotech-engineering-service__copy p:not(.pilotech-kicker):not(.pilotech-services-note) { line-height: 1.9; margin-top: 1.1rem; }
	.pilotech-services-section-heading { margin-bottom: 1.75rem; }
	.pilotech-pcb-coordination dl > div { padding-block: .9rem; }
	.pilotech-engineering-cases li { padding-block: .8rem; }
	.pilotech-components-inputs > div { min-height: 0; }
}

@media (max-width: 600px) {
	.pilotech-services-page section[id] { scroll-margin-top: 5rem; }
	.pilotech-services-opening { padding-top: 3rem; padding-bottom: 2.75rem; }
	.pilotech-services-opening__copy h1 { font-size: clamp(1.95rem, 8.5vw, 2.6rem); line-height: 1.35; }
	.pilotech-services-opening__copy p { margin-top: 1rem; }
	.pilotech-services-switchboard,
	.pilotech-pcb-service,
	.pilotech-components-service,
	.pilotech-engineering-service,
	.pilotech-services-common,
	.pilotech-services-decision { padding-block: 2.5rem; }
	/* Actions stay on one wrapping row rather than becoming full-width stacked
	   blocks: six action pairs stacked would add roughly a screen of height. */
	.pilotech-services-route { padding-block: 1.35rem; gap: .7rem 1rem; }
	.pilotech-services-route__actions { flex-direction: row; flex-wrap: wrap; align-items: center; gap: .4rem .85rem; }
	.pilotech-services-route__actions .pilotech-services-action { flex: 0 1 auto; }
	/* The secondary link always takes its own line so every route row reads the
	   same way, instead of wrapping differently per label length. Scoped to beat
	   the container rules above, which are more specific than the class alone. */
	.pilotech-services-action--detail { justify-content: flex-start; padding-inline: 0; }
	.pilotech-services-route__actions .pilotech-services-action--detail,
	.pilotech-services-pathactions .pilotech-services-action--detail { flex: 1 1 100%; }
	.pilotech-services-pathactions { gap: .4rem .85rem; margin-top: 1.35rem; }
	.pilotech-services-page h2 { font-size: clamp(1.55rem, 6.5vw, 1.95rem); }
	.pilotech-services-opening__copy p,
	.pilotech-pcb-service__copy p:not(.pilotech-kicker):not(.pilotech-services-note),
	.pilotech-components-service__copy p:not(.pilotech-kicker):not(.pilotech-services-note),
	.pilotech-engineering-service__copy p:not(.pilotech-kicker):not(.pilotech-services-note) { line-height: 1.85; }
	.pilotech-services-note { margin-top: 1.15rem !important; padding-top: .9rem; line-height: 1.8; }
	.pilotech-pcb-coordination dl > div { grid-template-columns: 1fr; gap: .4rem; padding-block: .85rem; }
	.pilotech-pcb-input-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pilotech-pcb-input-list li:last-child { grid-column: 1 / -1; }
	/* The four supply inputs stay two-up on a phone; one-per-row is pure height
	   for four short labels. They only fall to a single column at 360 and below. */
	.pilotech-components-inputs > div { min-height: 0; padding: .9rem .9rem .9rem 0; }
	.pilotech-components-inputs dd { margin-top: .5rem; }
	.pilotech-engineering-cases li { padding-block: .75rem; }
	/* The pipeline turns from a five-across band into a vertical ledger; the
	   connecting rule follows it so the arc still reads as one sequence. */
	.pilotech-services-pipeline { padding-top: 1.4rem; }
	.pilotech-services-pipeline ol { grid-template-columns: 1fr; gap: 0; }
	.pilotech-services-pipeline ol::before {
		top: 1.35rem;
		right: 1.35rem;
		bottom: 1.35rem;
		left: auto;
		width: 1px;
		height: auto;
	}
	.pilotech-services-pipeline li {
		display: grid;
		grid-template-columns: 2.7rem minmax(6.5rem, auto) minmax(0, 1fr);
		align-items: center;
		gap: .75rem;
		min-height: 4rem;
		padding: 0;
		text-align: right;
	}
	.pilotech-services-pipeline li > span { margin: 0; }
	.pilotech-services-pipeline strong,
	.pilotech-services-pipeline small { margin: 0; }
	.pilotech-services-pipeline figcaption { margin-top: 1.25rem; }
	.pilotech-services-rule { grid-template-columns: 1fr; }
	.pilotech-services-rule__item { padding: 1.15rem 0; }
	.pilotech-services-rule__item:first-child { border-inline-end: 0; }
	.pilotech-services-rule__item:last-child { padding-inline-start: 0; }
	.pilotech-services-final { padding: 1.5rem 1.25rem; }
	.pilotech-services-final__action,
	.pilotech-services-final__action .pilotech-services-action { width: 100%; }
}

@media (max-width: 360px) {
	.pilotech-components-inputs { grid-template-columns: 1fr; }
	.pilotech-components-inputs > div { padding-inline: 0; }
	.pilotech-components-inputs > div:nth-child(odd) { border-inline-end: 0; }
	.pilotech-components-inputs > div:nth-child(even) { padding-inline-start: 0; }
	.pilotech-pcb-input-list { grid-template-columns: 1fr; }
	.pilotech-pcb-input-list li:last-child { grid-column: auto; }
	/* At the narrowest width the pipeline stage name and its gloss stack rather
	   than squeezing into two columns of three or four characters each. */
	.pilotech-services-pipeline li { grid-template-columns: 2.7rem minmax(0, 1fr); row-gap: .15rem; }
	.pilotech-services-pipeline li > span { grid-row: 1 / 3; }
	.pilotech-services-route__actions .pilotech-services-action--shop,
	.pilotech-services-route__actions .pilotech-services-action--talk,
	.pilotech-services-pathactions .pilotech-services-action--shop,
	.pilotech-services-pathactions .pilotech-services-action--talk { flex: 1 1 100%; }
}

/* ==========================================================================
   About — Company System View
   Rhythm: white editorial opening -> dark two-field structure -> white role
   boundary -> grey operating model -> white audience -> dark close.
   Each section owns a different composition; no section repeats the one above.
   ========================================================================== */
.pilotech-about-page,
.pilotech-about-page > .wp-block-post-content { margin: 0; }
.pilotech-about-page { background: #fff; color: var(--pilotech-ink); }

.pilotech-about-opening,
.pilotech-about-structure,
.pilotech-about-boundary,
.pilotech-about-operating,
.pilotech-about-audience,
.pilotech-about-cta {
	margin: 0;
	/* About is a read-through page: the rhythm is a little tighter than the
	   global section scale so the whole argument stays in reach. */
	padding: clamp(3.75rem, 6.5vw, 6rem) var(--pilotech-gutter);
}

.pilotech-about-page h2 {
	margin: 0;
	max-width: 24ch;
	color: var(--pilotech-ink);
	font-size: clamp(1.85rem, 3vw, 2.85rem);
	line-height: 1.35;
	letter-spacing: -.022em;
	text-wrap: balance;
}
.pilotech-about-section-heading > p:not(.pilotech-kicker) {
	max-width: 44rem;
	margin: 1.35rem 0 0;
	color: var(--pilotech-muted);
	line-height: 2;
}

/* Opening — editorial, no marketing hero. -------------------------------- */
.pilotech-about-opening { padding-block: clamp(2.75rem, 5vw, 4.5rem) clamp(3.25rem, 5.5vw, 4.75rem); }
.pilotech-about-opening__inner > * { margin: 0; }
.pilotech-about-title {
	max-width: 22ch;
	color: var(--pilotech-ink);
	font-size: clamp(2.1rem, 4.4vw, 3.9rem);
	font-weight: 700;
	line-height: 1.28;
	letter-spacing: -.03em;
	text-wrap: balance;
}
.pilotech-about-lead {
	max-width: 44rem;
	margin-top: 1.6rem;
	color: var(--pilotech-muted);
	font-size: clamp(1.05rem, 1.4vw, 1.185rem);
	line-height: 1.95;
}

/* Technical framing strip: a short definition, never a statistics band. */
.pilotech-about-definition {
	display: grid;
	margin-top: clamp(2.5rem, 5vw, 3.75rem);
	border-top: 1px solid var(--pilotech-ink);
}
.pilotech-about-definition > div {
	display: grid;
	gap: .3rem;
	padding: 1.05rem 0;
	border-bottom: 1px solid var(--pilotech-border);
}
.pilotech-about-definition dt {
	color: var(--pilotech-blue-ink);
	font-size: .8rem;
	font-weight: 700;
	line-height: 1.7;
}
.pilotech-about-definition dd {
	margin: 0;
	color: var(--pilotech-ink);
	font-size: clamp(.95rem, 1.25vw, 1.05rem);
	line-height: 1.8;
}
.pilotech-about-definition dd span[dir="ltr"] {
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: .84em;
	line-height: 1.9;
}

/* Structure — the two fields and the Pilotech axis. ---------------------- */
.pilotech-about-structure { background: var(--pilotech-dark); color: #fff; }
.pilotech-about-structure .pilotech-kicker { color: var(--pilotech-blue); }
.pilotech-about-structure h2 { color: #fff; }
.pilotech-about-structure__head { max-width: 46rem; margin-bottom: clamp(2.75rem, 5vw, 4rem); }
.pilotech-about-structure__head > p:not(.pilotech-kicker) {
	margin: 1.4rem 0 0;
	color: #cbd5e1;
	line-height: 2;
}

.pilotech-about-fields { display: grid; }
.pilotech-about-field { margin: 0; }
.pilotech-about-field__title {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .25rem .75rem;
	margin: 0 0 1.15rem;
	color: #fff;
	font-size: clamp(1.15rem, 1.7vw, 1.4rem);
	font-weight: 700;
	line-height: 1.5;
}
.pilotech-about-field__title span[dir="ltr"] {
	color: var(--pilotech-blue);
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: .7em;
	font-weight: 400;
}
.pilotech-about-field__list {
	margin: 0;
	padding: 0;
	border-top: 1px solid rgba(255, 255, 255, .24);
	list-style: none;
}
.pilotech-about-field__list li {
	position: relative;
	display: grid;
	gap: .15rem;
	padding: .95rem 1.4rem .95rem 0;
	border-bottom: 1px solid rgba(255, 255, 255, .12);
}
/* Field identity is carried by marker shape, not by colour alone. */
.pilotech-about-field__list li::before {
	content: "";
	position: absolute;
	top: 1.5rem;
	inset-inline-start: 0;
	width: .45rem;
	height: .45rem;
	border: 1px solid var(--pilotech-blue);
}
.pilotech-about-field-engineering .pilotech-about-field__list li::before { background: var(--pilotech-blue); }
.pilotech-about-field__list b {
	color: #fff;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.7;
}
.pilotech-about-field__list b span[dir="ltr"] { font: inherit; color: inherit; }
.pilotech-about-field__list > li > span[dir="ltr"] {
	color: #94a3b8;
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: .74rem;
	line-height: 1.7;
}
.pilotech-about-field__route { margin: 1.5rem 0 0; }
.pilotech-about-field__route a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--pilotech-blue);
	font-weight: 700;
	text-decoration-color: rgba(56, 182, 255, .5);
	text-underline-offset: .35em;
}
.pilotech-about-field__route a:hover { color: #fff; text-decoration-color: currentColor; }

/* The axis: one line and one label. Not a flowchart. */
.pilotech-about-axis {
	position: relative;
	padding-block: 2.5rem;
	text-align: center;
}
.pilotech-about-axis::before,
.pilotech-about-axis::after {
	content: "";
	position: absolute;
	inset-inline-start: calc(50% - .5px);
	width: 1px;
	height: 2.5rem;
	background: rgba(255, 255, 255, .4);
}
.pilotech-about-axis::before { top: 0; }
.pilotech-about-axis::after { bottom: 0; }
.pilotech-about-axis__name {
	position: relative;
	display: inline-block;
	margin: 0;
	padding: .5rem 1.4rem;
	border: 1px solid var(--pilotech-blue);
	/* Small radius keeps this an annotation, not something that reads clickable. */
	border-radius: var(--pilotech-radius-sm);
	color: #fff;
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.6;
}
.pilotech-about-axis__role {
	max-width: 26rem;
	margin: 1rem auto 0;
	color: #94a3b8;
	font-size: .875rem;
	line-height: 1.85;
}

/* Role boundary — the fastest read on the page. -------------------------- */
.pilotech-about-boundary { background: #fff; }
.pilotech-about-boundary__inner { display: grid; gap: clamp(2.5rem, 5vw, 3.75rem); }
.pilotech-about-scope { display: grid; }
.pilotech-about-scope__col { padding: 1.6rem 0 2rem; }
.pilotech-about-scope__col--own { border-top: 2px solid var(--pilotech-ink); }
.pilotech-about-scope__col--partner {
	margin-top: 1.75rem;
	padding-inline: 1.25rem;
	border-top: 1px solid var(--pilotech-border-strong);
	background: #f9fafb;
}
.pilotech-about-scope__label {
	margin: 0 0 .45rem;
	font-size: .78rem;
	font-weight: 700;
	line-height: 1.7;
}
.pilotech-about-scope__col--own .pilotech-about-scope__label { color: var(--pilotech-blue-ink); }
.pilotech-about-scope__col--partner .pilotech-about-scope__label { color: var(--pilotech-muted-accessible); }
.pilotech-about-scope h3 {
	margin: 0 0 1.2rem;
	color: var(--pilotech-ink);
	font-size: clamp(1.2rem, 1.9vw, 1.55rem);
	font-weight: 700;
	line-height: 1.5;
}
.pilotech-about-scope ul { margin: 0; padding: 0; list-style: none; }
.pilotech-about-scope li {
	position: relative;
	padding: .7rem 1.5rem .7rem 0;
	border-top: 1px solid var(--pilotech-border);
	line-height: 1.85;
}
.pilotech-about-scope__col--own li { color: var(--pilotech-ink); }
.pilotech-about-scope__col--partner li { color: var(--pilotech-muted); }
.pilotech-about-scope__col--own li::before {
	content: "";
	position: absolute;
	top: 1.35rem;
	inset-inline-start: 0;
	width: .5rem;
	height: .5rem;
	background: var(--pilotech-blue-ink);
}
.pilotech-about-scope__col--partner li::before {
	content: "";
	position: absolute;
	top: 1.55rem;
	inset-inline-start: 0;
	width: .6rem;
	border-top: 1px solid var(--pilotech-muted-accessible);
}
.pilotech-about-scope__note {
	margin: 1.75rem 0 0;
	padding-top: 1.5rem;
	max-width: 62rem;
	border-top: 1px solid var(--pilotech-ink);
	color: var(--pilotech-ink);
	font-size: clamp(1rem, 1.35vw, 1.1rem);
	font-weight: 500;
	line-height: 1.9;
}

/* Operating model — numbered editorial rows, not a flowchart. ------------ */
.pilotech-about-operating { background: #f3f4f6; }
.pilotech-about-operating__inner { display: grid; gap: clamp(2.5rem, 5vw, 3.5rem); }
.pilotech-about-steps {
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--pilotech-ink);
	list-style: none;
}
.pilotech-about-steps li {
	display: grid;
	grid-template-columns: 2.6rem minmax(0, 1fr);
	column-gap: .9rem;
	padding: 1.4rem 0;
	border-bottom: 1px solid var(--pilotech-border-strong);
}
.pilotech-about-steps__num {
	grid-row: 1 / span 2;
	color: var(--pilotech-blue-ink);
	font-size: .95rem;
	font-weight: 700;
	line-height: 1.85;
}
.pilotech-about-steps b {
	color: var(--pilotech-ink);
	font-size: clamp(1.05rem, 1.55vw, 1.25rem);
	font-weight: 700;
	line-height: 1.65;
}
.pilotech-about-steps__body {
	max-width: 46rem;
	margin-top: .3rem;
	color: var(--pilotech-muted);
	line-height: 1.95;
}

/* Audience — a short definition list, never a card grid. ----------------- */
.pilotech-about-audience { background: #fff; }
.pilotech-about-audience__inner { display: grid; gap: clamp(2rem, 4vw, 2.75rem); }
.pilotech-about-audience-list { margin: 0; border-top: 1px solid var(--pilotech-ink); }
.pilotech-about-audience-list > div {
	display: grid;
	gap: .25rem;
	padding: 1.2rem 0;
	border-bottom: 1px solid var(--pilotech-border);
}
.pilotech-about-audience-list dt {
	color: var(--pilotech-ink);
	font-size: clamp(1.05rem, 1.45vw, 1.2rem);
	font-weight: 700;
	line-height: 1.7;
}
.pilotech-about-audience-list dd {
	margin: 0;
	color: var(--pilotech-muted);
	line-height: 1.9;
}

/* Close — one primary action, one reference route. ----------------------- */
.pilotech-about-cta { background: var(--pilotech-dark); color: #fff; }
.pilotech-about-cta__inner { display: grid; gap: 2.5rem; align-items: end; }
.pilotech-about-cta h2 { max-width: 22ch; color: #fff; }
.pilotech-about-cta__copy > p {
	max-width: 42rem;
	margin: 1.2rem 0 0;
	color: #cbd5e1;
	line-height: 2;
}
.pilotech-about-cta__actions { display: grid; gap: 1rem; justify-items: start; }
.pilotech-about-cta__links { margin: 0; }
.pilotech-about-cta__links a {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	color: var(--pilotech-blue);
	font-size: .9375rem;
	font-weight: 700;
	text-decoration-color: rgba(56, 182, 255, .5);
	text-underline-offset: .35em;
}
.pilotech-about-cta__links a:hover { color: #fff; text-decoration-color: currentColor; }

/* Tablet: the two fields still stack, but each list uses the width it has
   instead of running one item per row for a whole screen. */
@media (min-width: 640px) and (max-width: 1039.98px) {
	.pilotech-about-field__list {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: clamp(1.5rem, 4vw, 2.5rem);
		border-bottom: 1px solid rgba(255, 255, 255, .24);
	}
	.pilotech-about-field__list li { border-top: 1px solid rgba(255, 255, 255, .12); border-bottom: 0; }
	.pilotech-about-field__list li:nth-child(-n+2) { border-top: 0; }
}

@media (min-width: 900px) {
	.pilotech-about-definition { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.pilotech-about-definition > div { padding: 1.15rem 0 1.35rem; padding-inline-end: 2rem; }
	.pilotech-about-definition > div:not(:last-child) { border-inline-end: 1px solid var(--pilotech-border); }
	.pilotech-about-definition > div + div { padding-inline-start: 2rem; }

	.pilotech-about-scope { grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); }
	.pilotech-about-scope__col { padding: 1.75rem 2rem 2.25rem; }
	.pilotech-about-scope__col--own { padding-inline-start: 0; }
	.pilotech-about-scope__col--partner {
		margin-top: 0;
		padding-inline-end: 2rem;
		border-top: 2px solid var(--pilotech-border-strong);
		border-inline-start: 1px solid var(--pilotech-border);
	}
	.pilotech-about-scope__note { grid-column: 1 / -1; }

	/* Two ruled columns, four items: a compact band, not a card grid and not a
	   second copy of the operating model's heading-beside-list composition. */
	.pilotech-about-audience-list {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: clamp(2rem, 4vw, 4rem);
	}
	.pilotech-about-audience-list > div { align-content: start; padding: 1.4rem 0; }

	.pilotech-about-cta__inner { grid-template-columns: minmax(0, 1.35fr) minmax(16rem, .65fr); }
	.pilotech-about-cta__actions { justify-items: end; }
}

@media (min-width: 1040px) {
	/* Editorial opening: the statement and the lead share one baseline row,
	   so the first screen carries copy instead of empty canvas. */
	.pilotech-about-opening__inner {
		display: grid;
		grid-template-columns: minmax(0, 1.06fr) minmax(0, .94fr);
		column-gap: clamp(2.5rem, 5vw, 5rem);
		align-items: end;
	}
	.pilotech-about-opening__inner > .pilotech-kicker { grid-area: 1 / 1; align-self: end; }
	.pilotech-about-title { grid-area: 2 / 1; max-width: 17ch; }
	.pilotech-about-lead { grid-area: 2 / 2; margin-top: 0; }
	.pilotech-about-definition { grid-area: 3 / 1 / auto / -1; }

	.pilotech-about-fields {
		grid-template-columns: minmax(0, 1fr) minmax(14rem, .72fr) minmax(0, 1fr);
		gap: clamp(1.5rem, 3vw, 3rem);
		align-items: start;
	}
	.pilotech-about-axis { align-self: center; padding: 0; }
	/* The connector reads horizontally here, and hangs off the label itself so
	   it always meets the label's centre line whatever the copy wraps to. */
	.pilotech-about-axis::before,
	.pilotech-about-axis::after { content: none; }
	.pilotech-about-axis__name::before,
	.pilotech-about-axis__name::after {
		content: "";
		position: absolute;
		top: calc(50% - .5px);
		width: clamp(2rem, 4.5vw, 4.5rem);
		height: 1px;
		background: rgba(255, 255, 255, .4);
	}
	.pilotech-about-axis__name::before { inset-inline-start: calc(-1 * clamp(2rem, 4.5vw, 4.5rem)); }
	.pilotech-about-axis__name::after { inset-inline-end: calc(-1 * clamp(2rem, 4.5vw, 4.5rem)); }

	.pilotech-about-operating__inner {
		grid-template-columns: minmax(16rem, .68fr) minmax(0, 1.32fr);
		gap: clamp(2.5rem, 5vw, 5rem);
		align-items: start;
	}
	.pilotech-about-steps li { grid-template-columns: 3.25rem minmax(0, 1fr); padding: 1.75rem 0; }
}

@media (max-width: 520px) {
	.pilotech-about-cta__actions,
	.pilotech-about-cta__actions .wp-block-buttons,
	.pilotech-about-cta__actions .wp-block-button,
	.pilotech-about-cta__actions .wp-block-button__link { width: 100%; }
	.pilotech-about-scope__col--partner { padding-inline: 1rem; }
}

/* ==========================================================================
   Technical Index — the article record, shared by the blog index and archives.

   The 3:2 media block is the metric: it is the tallest thing in a record, so
   it sets that row's height on its own. Records without artwork are simply
   shorter rather than being propped open to a borrowed height — a reserved
   empty block is a placeholder by another name, and it left every image row
   with a band of dead space under the picture.
   ========================================================================== */
.pilotech-blog-index {
	--pilotech-record-media: 13rem;
	--pilotech-record-measure: 44rem;
	padding: clamp(2.5rem, 5vw, 4rem) var(--pilotech-gutter) clamp(4rem, 8vw, 6rem);
}

/* ---- Index opening ---- */
.pilotech-blog-intro {
	padding-bottom: clamp(1.75rem, 3vw, 2.5rem);
}

.pilotech-blog-kicker {
	margin: 0 0 .7rem;
	color: var(--pilotech-muted-accessible);
	font-size: .8125rem;
	font-weight: 500;
	letter-spacing: .06em;
	line-height: 1.6;
}

.pilotech-blog-intro h1,
.pilotech-blog-intro .wp-block-query-title {
	max-width: 20ch;
	margin: 0;
	font-size: clamp(1.875rem, 3.2vw, 2.75rem);
	line-height: 1.3;
}

.pilotech-blog-intro h1 + p,
.pilotech-blog-intro .wp-block-term-description {
	max-width: var(--pilotech-record-measure);
	margin-top: .85rem;
	margin-bottom: 0;
	color: var(--pilotech-muted);
	font-size: 1rem;
	line-height: 1.85;
}

/* ---- Record list ---- */
.pilotech-blog-query {
	margin-top: 0;
	border-top: 1px solid var(--pilotech-ink);
}

.pilotech-blog-query .wp-block-post-template {
	margin: 0;
	padding: 0;
}

.pilotech-blog-query .wp-block-post-template > li {
	margin: 0;
}

/* Text and media share a centre line. Top-aligning them left the shorter of
   the two hanging with empty space beneath it on every single row. */
.pilotech-record {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1rem;
	align-items: center;
	margin: 0;
	padding: clamp(1.5rem, 2.4vw, 1.85rem) 0;
	border-bottom: 1px solid var(--pilotech-border);
}

.pilotech-record__text {
	min-width: 0;
	max-width: var(--pilotech-record-measure);
	margin: 0;
}

/* Metadata leads every record, in the same place on every row. */
.pilotech-record__meta {
	gap: .25rem .85rem;
	margin: 0 0 .55rem;
	color: var(--pilotech-muted-accessible);
	font-size: .8125rem;
	line-height: 1.7;
}

.pilotech-record__meta .wp-block-post-terms,
.pilotech-record__meta .wp-block-post-date {
	margin: 0;
}

.pilotech-record__meta .wp-block-post-terms a {
	color: inherit;
	font-weight: 500;
	text-decoration: none;
}

.pilotech-record__meta .wp-block-post-terms a:hover,
.pilotech-record__meta .wp-block-post-terms a:focus-visible {
	color: var(--pilotech-blue-ink);
	text-decoration: underline;
	text-underline-offset: .2em;
}

.pilotech-record__meta .wp-block-post-terms a:focus-visible {
	outline: 2px solid var(--pilotech-blue-ink);
	outline-offset: 3px;
}

/* Dot separator; the date still reads correctly when no category exists. */
.pilotech-record__meta .wp-block-post-date::before {
	content: "";
	display: inline-block;
	width: 3px;
	height: 3px;
	margin-inline-end: .85rem;
	border-radius: 50%;
	background: currentColor;
	vertical-align: middle;
}

.pilotech-record__meta .wp-block-post-terms:empty + .wp-block-post-date::before {
	content: none;
	margin-inline-end: 0;
}

.pilotech-record__meta time {
	direction: rtl;
	unicode-bidi: isolate;
}

.pilotech-record .wp-block-post-title {
	margin: 0;
	font-size: clamp(1.1875rem, 1.7vw, 1.4375rem);
	line-height: 1.45;
	text-wrap: pretty;
}

/* Title and image are the two explicit targets. No stretched overlay, so
   the excerpt stays selectable and hover/right-click behave normally. */
.pilotech-record .wp-block-post-title a {
	color: var(--pilotech-ink);
	text-decoration: none;
	text-underline-offset: .22em;
	text-decoration-thickness: 1px;
}

.pilotech-record:hover .wp-block-post-title a,
.pilotech-record .wp-block-post-title a:hover {
	text-decoration: underline;
}

.pilotech-record .wp-block-post-title a:focus-visible {
	outline: 3px solid var(--pilotech-blue-ink);
	outline-offset: 3px;
	border-radius: 2px;
}

.pilotech-record .wp-block-post-excerpt {
	margin: .5rem 0 0;
}

/* Clamped so long and short posts occupy a comparable band. Three lines on
   the wide measure, two where the column is narrow and the list has to stay
   scannable. The full text is one click away, so nothing becomes unreachable. */
.pilotech-record .wp-block-post-excerpt__excerpt {
	display: -webkit-box;
	margin: 0;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	color: var(--pilotech-muted);
	font-size: .9375rem;
	line-height: 1.85;
}

.pilotech-record .wp-block-post-excerpt__more-text {
	display: none;
}

/* Media slot: rendered only when a post really has a thumbnail. */
.pilotech-record__media {
	margin: 0;
	overflow: hidden;
	border-radius: var(--pilotech-radius-sm);
	background: var(--wp--preset--color--surface);
}

.pilotech-record__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: opacity 150ms cubic-bezier(.2, 0, 0, 1);
}

.pilotech-record:hover .pilotech-record__media img {
	opacity: .9;
}

.pilotech-record__media a:focus-visible {
	outline: 3px solid var(--pilotech-blue-ink);
	outline-offset: 2px;
	border-radius: var(--pilotech-radius-sm);
}

/* ---- Pagination ---- */
.pilotech-blog-pagination {
	gap: .5rem;
	margin-top: clamp(2rem, 4vw, 3rem);
	font-size: .9375rem;
}

.pilotech-blog-pagination a,
.pilotech-blog-pagination .page-numbers {
	display: inline-flex;
	min-width: 2.75rem;
	min-height: 2.75rem;
	align-items: center;
	justify-content: center;
	padding: .5rem .85rem;
	border: 1px solid var(--pilotech-border-strong);
	border-radius: var(--pilotech-radius-sm);
	color: var(--pilotech-ink);
	text-decoration: none;
}

.pilotech-blog-pagination .wp-block-query-pagination-numbers {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin: 0;
}

.pilotech-blog-pagination a:hover {
	border-color: var(--pilotech-ink);
	background: var(--wp--preset--color--surface);
}

.pilotech-blog-pagination a:focus-visible {
	outline: 3px solid var(--pilotech-blue-ink);
	outline-offset: 2px;
}

/* Current page carries fill and weight, never colour alone. */
.pilotech-blog-pagination .page-numbers.current {
	border-color: var(--pilotech-ink);
	background: var(--pilotech-ink);
	color: #fff;
	font-weight: 700;
}

.pilotech-blog-pagination .page-numbers.dots {
	min-width: 1.5rem;
	padding-inline: 0;
	border-color: transparent;
	color: var(--pilotech-muted-accessible);
}

/* ---- Empty state ---- */
.pilotech-blog-empty {
	padding: clamp(2.5rem, 5vw, 4rem) 0;
}

.pilotech-blog-empty h2 {
	margin: 0;
	font-size: clamp(1.25rem, 2vw, 1.5rem);
}

.pilotech-blog-empty p {
	max-width: 38rem;
	margin: .6rem 0 0;
	color: var(--pilotech-muted);
	line-height: 1.85;
}

/* ==========================================================================
   Single post — one reading axis, with a controlled break-out for wide media.
   ========================================================================== */
.pilotech-single-page {
	/* Two widths, and only two. 44rem is the `reading` container DESIGN.md
	   defines and every prose block sits on it; the body size is raised with
	   it so the line still lands at ~70 characters. 52rem is the wide tier for
	   things that are not prose — the opening block, the featured image,
	   figures, tables and code — which need room to be read as artefacts
	   rather than as indented paragraphs. Content wider than 52rem scrolls
	   inside its own wrapper instead of widening the page. */
	--pilotech-measure: 44rem;
	--pilotech-measure-wide: 52rem;
	padding: clamp(1.75rem, 3.5vw, 2.75rem) var(--pilotech-gutter) clamp(4rem, 8vw, 6rem);
}

/* One centred axis for the whole article; the two tiers differ only in width,
   so every block stays optically centred on the same line. */
.pilotech-article-header > *,
.pilotech-article-footer > *,
.pilotech-article-content > * {
	max-width: var(--pilotech-measure);
	margin-inline: auto;
}

/* The opening block — back link, kicker, title, date — shares the wide tier
   with the featured image beneath it, so the article opens on one width and
   then steps in to the reading measure for the body. */
.pilotech-article-back p,
.pilotech-article-header > * {
	max-width: var(--pilotech-measure-wide);
}

.pilotech-article-back p {
	margin-top: 0;
	margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
	margin-inline: auto;
}

.pilotech-article-back a,
.pilotech-article-all a {
	display: inline-flex;
	min-height: 2.75rem;
	align-items: center;
	color: var(--pilotech-blue-ink);
	font-size: .9375rem;
	font-weight: 700;
	text-decoration-thickness: 1px;
	text-underline-offset: .2em;
}

/* RTL: "back" travels to the right. */
.pilotech-article-back a::before,
.pilotech-article-all a::before {
	content: "→";
	margin-inline-end: .5rem;
}

.pilotech-article-back a:focus-visible,
.pilotech-article-all a:focus-visible {
	outline: 3px solid var(--pilotech-blue-ink);
	outline-offset: 3px;
}

.pilotech-article-kicker {
	margin: 0 auto .7rem;
	color: var(--pilotech-muted-accessible);
	font-size: .8125rem;
	font-weight: 500;
	letter-spacing: .06em;
	line-height: 1.6;
}

.pilotech-article-kicker a {
	color: inherit;
	text-decoration: none;
}

.pilotech-article-kicker a:hover,
.pilotech-article-kicker a:focus-visible {
	color: var(--pilotech-blue-ink);
	text-decoration: underline;
	text-underline-offset: .2em;
}

/* margin-inline must stay auto here: a blanket `margin: 0` drops the title off
   the shared reading axis and parks it against the container edge. */
.pilotech-article-header h1 {
	margin-block: 0;
	margin-inline: auto;
	font-size: clamp(1.75rem, 3.4vw, 2.5rem);
	line-height: 1.32;
	text-wrap: pretty;
}

.pilotech-article-date {
	margin: .85rem auto 0;
	color: var(--pilotech-muted-accessible);
	font-size: .8125rem;
	line-height: 1.7;
}

.pilotech-article-date time {
	direction: rtl;
	unicode-bidi: isolate;
}

/* The featured image is the article's opening artefact, not a hero. The ratio
   is set here rather than on the block so it can follow the width: 16:9 on the
   wide tier, which gives the picture presence without letting it own the
   viewport, and 3:2 on phones where a letterbox would shrink it back to the
   size of an inline image. */
.pilotech-article-featured {
	max-width: var(--pilotech-measure-wide);
	margin: clamp(1.75rem, 3.5vw, 2.5rem) auto 0;
	overflow: hidden;
	border-radius: var(--pilotech-radius-sm);
	background: var(--wp--preset--color--surface);
	aspect-ratio: 3 / 2;
}

@media (min-width: 600px) {
	.pilotech-article-featured { aspect-ratio: 16 / 9; }
}

.pilotech-article-featured img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ---- Long-form typography ---- */
.pilotech-article-content {
	margin-top: clamp(2rem, 4vw, 3rem);
	font-size: clamp(1.0625rem, .95rem + .45vw, 1.1875rem);
	line-height: 1.9;
	overflow-wrap: break-word;
}

/* post-content runs on flow layout, so the two width tiers live here rather
   than in generated layout CSS that would centre them with !important. */
.pilotech-article-content > .alignwide,
.pilotech-article-content > pre,
.pilotech-article-content > .wp-block-code,
.pilotech-article-content > .wp-block-preformatted,
.pilotech-article-content > .wp-block-table,
.pilotech-article-content > figure,
.pilotech-article-content > .wp-block-image,
.pilotech-article-content > .wp-block-embed,
.pilotech-article-content > .wp-block-gallery {
	max-width: var(--pilotech-measure-wide);
}

.pilotech-article-content > .alignfull { max-width: none; }

.pilotech-article-content > :first-child { margin-top: 0; }
.pilotech-article-content > :last-child { margin-bottom: 0; }

.pilotech-article-content p,
.pilotech-article-content ul,
.pilotech-article-content ol {
	font-size: inherit;
	margin-top: 1.35rem;
	margin-bottom: 1.35rem;
}

.pilotech-article-content h2,
.pilotech-article-content h3,
.pilotech-article-content h4 {
	scroll-margin-top: 7rem;
	line-height: 1.4;
	text-wrap: pretty;
}

.pilotech-article-content h2 {
	margin-top: 3rem;
	margin-bottom: .9rem;
	font-size: clamp(1.375rem, 2.2vw, 1.75rem);
}

.pilotech-article-content h3 {
	margin-top: 2.25rem;
	margin-bottom: .7rem;
	font-size: clamp(1.1875rem, 1.7vw, 1.375rem);
}

.pilotech-article-content h4 {
	margin-top: 1.85rem;
	margin-bottom: .55rem;
	font-size: 1.0625rem;
	color: var(--pilotech-muted);
}

.pilotech-article-content ul,
.pilotech-article-content ol { padding-inline-start: 1.35rem; }
.pilotech-article-content li + li { margin-top: .4rem; }
.pilotech-article-content li > ul,
.pilotech-article-content li > ol { margin-top: .4rem; margin-bottom: 0; }

.pilotech-article-content strong {
	font-weight: 700;
	color: var(--pilotech-ink);
}

.pilotech-article-content em {
	font-style: normal;
	background: linear-gradient(transparent 82%, var(--wp--preset--color--technology-soft) 0);
}

.pilotech-article-content a {
	color: var(--pilotech-blue-ink);
	text-decoration-thickness: 1px;
	text-underline-offset: .2em;
}

.pilotech-article-content a:hover { color: var(--pilotech-blue-ink-strong); }

.pilotech-article-content a:focus-visible {
	outline: 3px solid var(--pilotech-blue-ink);
	outline-offset: 2px;
	border-radius: 2px;
}

/* ---- Inline code ---- */
.pilotech-article-content :not(pre) > code {
	direction: ltr;
	unicode-bidi: isolate;
	padding: .12em .38em;
	border: 1px solid var(--pilotech-border);
	border-radius: var(--pilotech-radius-xs);
	background: var(--wp--preset--color--surface-strong);
	color: #1f2937;
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
	font-size: .875em;
	overflow-wrap: break-word;
}

/* ---- Code blocks: LTR, wider than the measure, keyboard scrollable ---- */
.pilotech-article-content pre,
.pilotech-article-content .wp-block-code,
.pilotech-article-content .wp-block-preformatted {
	max-width: var(--pilotech-measure-wide);
	direction: ltr;
	margin-top: 2rem;
	margin-bottom: 2rem;
	margin-inline: auto;
	padding: clamp(1rem, 2.5vw, 1.35rem);
	overflow-x: auto;
	overscroll-behavior-x: contain;
	border: 1px solid #2a3646;
	border-radius: var(--pilotech-radius-sm);
	background: var(--pilotech-dark-raised);
	color: #f1f5f9;
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
	font-size: clamp(.8125rem, 1.4vw, .875rem);
	line-height: 1.7;
	text-align: left;
	white-space: pre;
	tab-size: 2;
	scrollbar-color: #64748b #1e293b;
	scrollbar-width: thin;
}

.pilotech-article-content pre:focus-visible,
.pilotech-article-content .wp-block-code:focus-visible,
.pilotech-article-content .wp-block-table:focus-visible {
	outline: 3px solid var(--pilotech-blue-ink);
	outline-offset: 2px;
}

.pilotech-article-content pre code,
.pilotech-article-content .wp-block-code code {
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	font-size: inherit;
	overflow-wrap: normal;
	white-space: inherit;
	word-break: normal;
}

/* ---- Blockquote ---- */
.pilotech-article-content blockquote,
.pilotech-article-content .wp-block-quote {
	margin: 2.25rem auto;
	padding: .1rem 0;
	padding-inline: 1.35rem 0;
	border: 0;
	border-inline-start: 2px solid var(--pilotech-red);
	color: var(--pilotech-ink);
	font-size: 1.125rem;
	line-height: 1.9;
}

.pilotech-article-content blockquote p { margin: 0; font-size: inherit; }
.pilotech-article-content blockquote p + p { margin-top: .9rem; }

.pilotech-article-content blockquote cite {
	display: block;
	margin-top: .7rem;
	color: var(--pilotech-muted-accessible);
	font-size: .8125rem;
	font-style: normal;
}

/* ---- Tables ---- */
.pilotech-article-content .wp-block-table {
	max-width: var(--pilotech-measure-wide);
	margin-top: 2.25rem;
	margin-bottom: 2.25rem;
	margin-inline: auto;
	padding-bottom: .35rem;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	-webkit-overflow-scrolling: touch;
	scrollbar-color: var(--pilotech-control-border) var(--pilotech-border);
	scrollbar-width: thin;
}

.pilotech-article-content table {
	width: 100%;
	min-width: 34rem;
	border-collapse: collapse;
	font-size: .9375rem;
	line-height: 1.7;
}

.pilotech-article-content th,
.pilotech-article-content td {
	padding: .7rem .9rem;
	border: 1px solid var(--pilotech-border);
	text-align: start;
	vertical-align: top;
}

.pilotech-article-content th {
	background: var(--wp--preset--color--surface);
	font-weight: 700;
	white-space: nowrap;
}

.pilotech-article-content tbody tr:nth-child(even) {
	background: var(--wp--preset--color--surface);
}

/* ---- Figures and captions ---- */
.pilotech-article-content figure:not(.wp-block-table) {
	max-width: var(--pilotech-measure-wide);
	margin-top: 2.25rem;
	margin-bottom: 2.25rem;
	margin-inline: auto;
}

.pilotech-article-content figure img {
	display: block;
	max-width: 100%;
	height: auto;
	border-radius: var(--pilotech-radius-sm);
}

.pilotech-article-content figcaption,
.pilotech-article-content .wp-element-caption {
	margin-top: .65rem;
	margin-bottom: 0;
	color: var(--pilotech-muted-accessible);
	font-size: .8125rem;
	line-height: 1.75;
	text-align: start;
}

.pilotech-article-content hr,
.pilotech-article-content .wp-block-separator {
	max-width: var(--pilotech-measure);
	height: 0;
	margin: 2.75rem auto;
	border: 0;
	border-top: 1px solid var(--pilotech-border);
	opacity: 1;
}

.pilotech-article-content .wp-block-details {
	margin: 2rem auto;
	padding: 1rem 1.25rem;
	border: 1px solid var(--pilotech-border);
	border-radius: var(--pilotech-radius-sm);
}

.pilotech-article-content .wp-block-details summary { cursor: pointer; font-weight: 700; }
.pilotech-article-content .wp-block-columns { gap: clamp(1.25rem, 3vw, 2rem); }
.pilotech-article-content .wp-block-button__link { border-radius: var(--pilotech-radius-md); }
.pilotech-article-content iframe,
.pilotech-article-content video { max-width: 100%; }

/* ---- Previous / next ---- */
.pilotech-article-footer {
	margin-top: clamp(3.5rem, 7vw, 5rem);
}

.pilotech-article-navigation {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	max-width: var(--pilotech-measure-wide);
	margin-inline: auto;
	padding-top: 1.75rem;
	border-top: 1px solid var(--pilotech-ink);
}

/* Explicit cells so a missing sibling never shifts the remaining link. */
.pilotech-article-navigation .post-navigation-link-previous { grid-column: 1; }
.pilotech-article-navigation .post-navigation-link-next { grid-column: 2; }

/* Core's flow-layout rule adds a block margin to the second child, which in a
   grid offsets one card and stops the pair matching height. */
.pilotech-article-navigation > * { margin-block: 0; }

/* The adjacent article's thumbnail leads the card when one exists; cards
   without an image simply run text-only and keep the same box. */
.pilotech-article-navigation__media {
	display: block;
	margin-bottom: .85rem;
	overflow: hidden;
	border-radius: var(--pilotech-radius-xs);
	background: var(--wp--preset--color--surface);
	aspect-ratio: 3 / 2;
}

.pilotech-article-navigation__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.pilotech-article-navigation a {
	display: block;
	height: 100%;
	padding: 1rem 1.15rem;
	border: 1px solid var(--pilotech-border);
	border-radius: var(--pilotech-radius-sm);
	color: var(--pilotech-ink);
	text-decoration: none;
	transition: border-color 150ms cubic-bezier(.2, 0, 0, 1), background-color 150ms cubic-bezier(.2, 0, 0, 1);
}

.pilotech-article-navigation a:hover {
	border-color: var(--pilotech-ink);
	background: var(--wp--preset--color--surface);
}

.pilotech-article-navigation a:focus-visible {
	outline: 3px solid var(--pilotech-blue-ink);
	outline-offset: 2px;
}

.pilotech-article-navigation .post-navigation-link__label {
	display: block;
	margin-bottom: .35rem;
	color: var(--pilotech-muted-accessible);
	font-size: .8125rem;
	font-weight: 400;
	line-height: 1.6;
}

.pilotech-article-navigation .post-navigation-link__title {
	display: block;
	font-size: .9375rem;
	font-weight: 700;
	line-height: 1.65;
}

.pilotech-article-navigation .post-navigation-link-previous .post-navigation-link__label::before {
	content: "→";
	margin-inline-end: .4rem;
}

.pilotech-article-navigation .post-navigation-link-next .post-navigation-link__label::before {
	content: "←";
	margin-inline-end: .4rem;
}

.pilotech-article-all {
	max-width: var(--pilotech-measure-wide);
	margin: 1.5rem auto 0;
}

/* ==========================================================================
   404 — a routed error record. States the fault, then offers real routes.
   ========================================================================== */
.pilotech-404 {
	--pilotech-404-measure: 46rem;
	/* Keeps the footer at the bottom without a dead white field above it. */
	min-height: clamp(24rem, 52vh, 34rem);
	padding: clamp(2.5rem, 5vw, 4rem) var(--pilotech-gutter) clamp(3.5rem, 7vw, 5.5rem);
}

/* One measure for every block on the page, start-aligned like every other
   editorial surface. The main uses the `default` layout rather than
   `constrained` precisely so nothing here has to fight generated auto margins. */
.pilotech-404 > * {
	max-width: var(--pilotech-404-measure);
}

.pilotech-404__code {
	margin: 0 0 .7rem;
	color: var(--pilotech-muted-accessible);
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
	font-size: .8125rem;
	letter-spacing: .06em;
	line-height: 1.6;
}

.pilotech-404 h1 {
	margin: 0;
	font-size: clamp(1.875rem, 3.2vw, 2.75rem);
	line-height: 1.3;
}

.pilotech-404__head p {
	margin: .85rem 0 0;
	color: var(--pilotech-muted);
	font-size: 1rem;
	line-height: 1.85;
}

/* Search is a tool here, not the subject of the page: the field is held back
   from the page measure so it reads as one control, not a banner. */
.pilotech-404__search {
	margin-top: clamp(1.75rem, 3vw, 2.25rem);
}

.pilotech-404__search .wp-block-search__inside-wrapper {
	max-width: 34rem;
	gap: .5rem;
}

.pilotech-404__search .wp-block-search__label {
	display: block;
	margin-bottom: .5rem;
	color: var(--pilotech-ink);
	font-size: .875rem;
	font-weight: 500;
}

.pilotech-404__search .wp-block-search__input {
	min-height: 2.75rem;
	padding: .5rem .85rem;
	border: 1px solid var(--pilotech-control-border);
	border-radius: var(--pilotech-radius-md);
	background: var(--wp--preset--color--canvas);
	color: var(--pilotech-ink);
	font-size: .9375rem;
}

.pilotech-404__search .wp-block-search__input:focus-visible {
	outline: 3px solid var(--pilotech-blue-ink);
	outline-offset: 2px;
}

.pilotech-404__search .wp-block-search__button {
	min-height: 2.75rem;
	margin: 0;
	padding: .5rem 1.25rem;
	border: 1px solid var(--pilotech-control-border);
	border-radius: var(--pilotech-radius-md);
	background: var(--wp--preset--color--canvas);
	color: var(--pilotech-ink);
	font-size: .9375rem;
	font-weight: 700;
}

.pilotech-404__search .wp-block-search__button:hover {
	border-color: var(--pilotech-ink);
	background: var(--wp--preset--color--surface);
}

.pilotech-404__search .wp-block-search__button:focus-visible {
	outline: 3px solid var(--pilotech-blue-ink);
	outline-offset: 2px;
}

/* Routes as an editorial list — the same record language as the blog index. */
.pilotech-404__routes {
	margin-top: clamp(2.5rem, 5vw, 3.5rem);
}

.pilotech-404__routes-title,
.pilotech-search-empty__routes-title {
	margin: 0 0 .25rem;
	padding-bottom: .9rem;
	border-bottom: 1px solid var(--pilotech-ink);
	font-size: .8125rem;
	font-weight: 500;
	letter-spacing: .06em;
	color: var(--pilotech-muted-accessible);
}

.pilotech-route-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pilotech-route-list li {
	margin: 0;
	border-bottom: 1px solid var(--pilotech-border);
}

.pilotech-route-list a {
	display: block;
	padding: 1rem .5rem 1rem 0;
	padding-inline: .5rem 0;
	color: var(--pilotech-ink);
	text-decoration: none;
	transition: background-color 150ms cubic-bezier(.2, 0, 0, 1);
}

.pilotech-route-list a:hover {
	background: var(--wp--preset--color--surface);
}

.pilotech-route-list a:focus-visible {
	outline: 3px solid var(--pilotech-blue-ink);
	outline-offset: -2px;
}

.pilotech-route-list__name {
	display: block;
	font-size: 1.0625rem;
	font-weight: 700;
	line-height: 1.6;
}

.pilotech-route-list a:hover .pilotech-route-list__name {
	text-decoration: underline;
	text-underline-offset: .22em;
}

/* Arrow points left: in RTL that is "onward", the opposite of the "→" the
   back links on this page and in the article use. */
.pilotech-route-list__name::after {
	content: "←";
	margin-inline-start: .5rem;
	color: var(--pilotech-blue-ink);
}

.pilotech-route-list__note {
	display: block;
	margin-top: .2rem;
	color: var(--pilotech-muted);
	font-size: .9375rem;
	line-height: 1.8;
}

.pilotech-404__home {
	margin: 1.5rem 0 0;
}

.pilotech-404__home a {
	display: inline-flex;
	min-height: 2.75rem;
	align-items: center;
	color: var(--pilotech-blue-ink);
	font-size: .9375rem;
	font-weight: 700;
	text-underline-offset: .2em;
}

.pilotech-404__home a::before {
	content: "→";
	margin-inline-end: .5rem;
}

.pilotech-404__home a:focus-visible {
	outline: 3px solid var(--pilotech-blue-ink);
	outline-offset: 3px;
}

/* Desktop: the statement and its search sit beside the routes instead of
   stacking into a narrow ribbon with half the viewport left empty next to it.
   The grid band is the same 74rem the rest of the site uses, so the page keeps
   its axis. In RTL the first column is the right one, so reading order still
   runs statement -> search -> routes, exactly as the blocks are written. */
@media (min-width: 900px) {
	.pilotech-404 {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 28rem);
		/* The routes column spans both rows, and a spanning item spreads its
		   height across the tracks it covers. `auto 1fr` keeps that growth in
		   the second track, so the search stays directly under the statement
		   instead of being pushed down by the list beside it. */
		grid-template-rows: auto 1fr;
		column-gap: clamp(3rem, 6vw, 5rem);
		align-content: start;
		align-items: start;
		max-width: calc(74rem + 2 * var(--pilotech-gutter));
		margin-inline: auto;
	}

	.pilotech-404__routes {
		grid-column: 2;
		grid-row: 1 / span 2;
		/* Aligns the "routes" label with the HTTP status line opposite it. */
		margin-top: 0;
	}
}

/* ==========================================================================
   Responsive
   ========================================================================== */

/* The media always sits beside the text, at every width. Stacking it on phones
   was what made image rows twice the height of text-only rows. */
.pilotech-record {
	grid-template-columns: minmax(0, 1fr) 5.5rem;
	gap: .9rem;
}

.pilotech-record:not(:has(.pilotech-record__media)) {
	grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 400px) {
	.pilotech-record { grid-template-columns: minmax(0, 1fr) 7rem; gap: 1.1rem; }
}

@media (min-width: 600px) {
	.pilotech-record { grid-template-columns: minmax(0, 1fr) 9.5rem; gap: 1.35rem; }
}

/* Two lines of excerpt while the text column is narrow: the row stays a
   scannable entry rather than a paragraph with a stamp next to it. */
@media (max-width: 819px) {
	.pilotech-record .wp-block-post-excerpt__excerpt { -webkit-line-clamp: 2; }
}

/* From here the record takes its full two-column measure and the picture is
   large enough to carry the row rather than annotate it. No inline padding:
   the media edge, the rule above the list and the pagination below it all
   have to land on the same axis as the page heading. */
@media (min-width: 820px) {
	.pilotech-record {
		grid-template-columns: minmax(0, 1fr) var(--pilotech-record-media);
		gap: clamp(1.5rem, 3vw, 2.5rem);
	}

	.pilotech-record__media { width: var(--pilotech-record-media); }
}

@media (min-width: 1100px) {
	.pilotech-blog-index { --pilotech-record-media: 15rem; }
}

@media (min-width: 1280px) {
	.pilotech-blog-index { --pilotech-record-media: 16.5rem; }
}

@media (max-width: 599px) {
	.pilotech-article-navigation {
		grid-template-columns: minmax(0, 1fr);
	}

	.pilotech-article-navigation .post-navigation-link-previous,
	.pilotech-article-navigation .post-navigation-link-next {
		grid-column: 1;
	}

	.pilotech-404__search .wp-block-search__inside-wrapper {
		flex-wrap: wrap;
	}

	.pilotech-404__search .wp-block-search__input { flex: 1 1 100%; }
	.pilotech-404__search .wp-block-search__button { flex: 1 1 auto; }
}

@media (max-width: 420px) {
	.pilotech-blog-index,
	.pilotech-single-page,
	.pilotech-404 { padding-inline: 1rem; }

	.pilotech-article-content blockquote,
	.pilotech-article-content .wp-block-quote { padding-inline: 1rem 0; }
}

@media (prefers-reduced-motion: reduce) {
	.pilotech-record__media img,
	.pilotech-preview__media img,
	.pilotech-article-navigation a,
	.pilotech-route-list a {
		transition: none;
	}
}
