@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@500;600&family=IBM+Plex+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap");

:root {
	--navy: #071b35;
	--blue: #003798;
	--lime: #9bfc00;
	--mist: #eef3fa;
	--line: #d5deeb;
	--bg: #f7f9fb;
	--ink: #172033;
	--ink-2: #4c5565;
	--ink-3: #586377;
	--ink-4: #6e7888;
	--muted-on-dark: #bcc7de;
	--amber: #e2a400;
	--red: #ba1a1a;
	--sans: "IBM Plex Sans", "Be Vietnam Pro", system-ui, sans-serif;
	--mono: "IBM Plex Mono", ui-monospace, monospace;
	--head: "Manrope", var(--sans);

	/* Full-screen deck scale */
	--deck-bar-h: 48px;
	--deck-progress-h: 2px;
	--vh: 1vh;
	--vh: 1dvh;
	--screen-h: 100vh;
	--screen-h: 100dvh;
	--slide-pad-top: calc(var(--deck-bar-h) + var(--deck-progress-h) + clamp(16px, 2.2vh, 32px));
	--slide-pad-bottom: clamp(56px, 6vh, 80px);
	--slide-pad-x: clamp(20px, 2.5vw, 48px);
	--slide-gap: clamp(18px, 2.8vh, 36px);
	--content-w: min(1520px, calc(100vw - 2 * var(--slide-pad-x)));
	--banner-h: clamp(96px, 16vh, 180px);
	--banner-h-sm: clamp(72px, 12vh, 140px);
	--fs-eyebrow: clamp(13px, 0.85vw, 16px);
	--fs-h2: clamp(36px, 4.2vw, 56px);
	--fs-body: clamp(17px, 1.2vw, 23px);
	--fs-card: clamp(16px, 1.1vw, 21px);
	--fs-small: clamp(14px, 0.95vw, 18px);
}

*, *::before, *::after { box-sizing: border-box; }
html {
	margin: 0;
	height: var(--screen-h);
	height: -webkit-fill-available;
	background: var(--bg);
	color: var(--ink);
	font-family: var(--sans);
	-webkit-font-smoothing: antialiased;
	overflow: hidden;
}
body {
	margin: 0;
	height: var(--screen-h);
	min-height: var(--screen-h);
	min-height: -webkit-fill-available;
	overflow: hidden;
	background: var(--bg);
	color: var(--ink);
	font-family: var(--sans);
}
h1, h2, h3, p, ul, ol, blockquote { margin: 0; }
img { display: block; max-width: 100%; }
button { font: inherit; }

.material-symbols-outlined { font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24; }

/* Chrome */
.deck-bar {
	position: fixed; inset: 0 0 auto 0; z-index: 20;
	display: flex; align-items: center; gap: 16px;
	height: var(--deck-bar-h); padding: 0 var(--slide-pad-x);
	background: rgba(247, 249, 251, 0.85); backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--line);
	font-size: clamp(12px, 1.1vw, 15.5px); color: var(--ink-3);
}
.deck-brand img { height: 22px; }
body.on-dark .deck-bar {
	background: rgba(7, 27, 53, 0.72);
	border-bottom-color: rgba(255, 255, 255, 0.08);
	color: #bcc7de;
}
body.on-dark .deck-progress { background: rgba(255, 255, 255, 0.12); }
.deck-title { flex: 1; font-weight: 500; letter-spacing: 0.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.deck-counter { font-family: var(--mono); font-weight: 500; }
.deck-progress {
	position: fixed; top: var(--deck-bar-h); left: 0; right: 0;
	height: var(--deck-progress-h); background: #e1e7ef; z-index: 20;
}
.deck-progress span { display: block; height: 100%; width: 0; background: var(--blue); transition: width 0.3s ease; }

.deck-nav { position: fixed; right: var(--slide-pad-x); bottom: clamp(16px, 3vh, 24px); z-index: 25; display: flex; gap: 8px; }
.deck-nav button { width: 40px; height: 40px; border-radius: 999px; border: 1px solid var(--line); background: #fff; color: var(--navy); cursor: pointer; display: grid; place-items: center; }
.deck-nav button:hover { border-color: var(--blue); color: var(--blue); }

.notes {
	position: fixed; left: var(--slide-pad-x); right: var(--slide-pad-x); bottom: clamp(16px, 3vh, 24px); z-index: 30;
	padding: 14px 18px; border-radius: 8px; background: var(--navy); color: #fff;
	border: 1px solid var(--lime); font-size: clamp(13px, 1.4vw, 17.5px); line-height: 1.5;
	max-height: 28vh; overflow: auto;
}
.notes__label { margin-bottom: 4px; font-family: var(--mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--lime); }
.notes:not([hidden]) ~ .deck-nav { bottom: calc(28vh + 16px); }

/* Slides — exactly one screen each */
.slides {
	position: relative;
	height: var(--screen-h);
	width: 100vw;
	overflow-x: hidden;
	overflow-y: auto;
	scroll-snap-type: y mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	overscroll-behavior: contain;
}
.slides::-webkit-scrollbar { display: none; }

.slide {
	box-sizing: border-box;
	width: 100vw;
	height: var(--screen-h);
	min-height: var(--screen-h);
	max-height: var(--screen-h);
	scroll-snap-align: start;
	scroll-snap-stop: always;
	display: flex;
	align-items: stretch;
	justify-content: center;
	padding: var(--slide-pad-top) var(--slide-pad-x) var(--slide-pad-bottom);
	border-bottom: 1px solid #e1e7ef;
	position: relative;
	overflow: hidden;
}
.slide--dark { background: var(--navy); color: #fff; border-bottom-color: #0f2a4f; }
.slide__inner {
	width: var(--content-w);
	max-width: 100%;
	height: 100%;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	gap: var(--slide-gap);
	position: relative;
	z-index: 1;
	min-height: 0;
	overflow: auto;
	scrollbar-width: thin;
	padding-top: clamp(8px, 1.5vh, 20px);
}
.slide__inner--center {
	align-items: center;
	text-align: center;
	justify-content: center;
	gap: clamp(16px, 2.5vh, 28px);
	padding-top: 0;
}

/* Fullscreen presentation — use entire display */
:fullscreen,
:fullscreen body,
:-webkit-full-screen,
:-webkit-full-screen body {
	height: 100%;
	background: var(--bg);
}
:fullscreen .deck-bar,
:fullscreen .deck-progress,
:-webkit-full-screen .deck-bar,
:-webkit-full-screen .deck-progress {
	display: none !important;
}
:fullscreen .slides,
:-webkit-full-screen .slides {
	height: 100%;
}
:fullscreen .slide,
:-webkit-full-screen .slide {
	height: 100%;
	min-height: 100%;
	max-height: 100%;
	padding-top: clamp(24px, 4vh, 48px);
	padding-bottom: clamp(32px, 5vh, 56px);
}
:fullscreen .deck-nav,
:-webkit-full-screen .deck-nav {
	opacity: 0.35;
}
:fullscreen .deck-nav:hover,
:-webkit-full-screen .deck-nav:hover {
	opacity: 1;
}

/* Full-bleed photo heroes (title / closing) */
.slide--photo {
	background-color: var(--navy);
	background-size: cover;
	background-position: center;
	isolation: isolate;
}
.slide--photo::before {
	content: "";
	position: absolute; inset: 0; z-index: 0;
	background:
		linear-gradient(180deg, rgba(7, 27, 53, 0.72) 0%, rgba(7, 27, 53, 0.88) 55%, rgba(7, 27, 53, 0.94) 100%),
		linear-gradient(90deg, rgba(7, 27, 53, 0.55) 0%, transparent 45%);
}
.slide--photo-title { background-image: url("photos/hero-event.jpg"); }
.slide--photo-end { background-image: url("photos/visual-audience.jpg"); }
.slide--photo-end::before {
	background: linear-gradient(180deg, rgba(7, 27, 53, 0.78) 0%, rgba(7, 27, 53, 0.92) 100%);
}
.slide--photo-clients { background-image: url("photos/bg-network.jpg"); }
.slide--photo-clients::before {
	background: linear-gradient(180deg, rgba(7, 27, 53, 0.82) 0%, rgba(7, 27, 53, 0.9) 100%);
}

/* Soft photo wash on light slides — readable text, visible atmosphere */
.slide--wash {
	background-color: var(--bg);
	background-size: cover;
	background-position: center;
	isolation: isolate;
}
.slide--wash::before {
	content: "";
	position: absolute; inset: 0; z-index: 0;
	background:
		linear-gradient(105deg, rgba(247, 249, 251, 0.94) 0%, rgba(247, 249, 251, 0.82) 55%, rgba(247, 249, 251, 0.7) 100%),
		linear-gradient(180deg, rgba(247, 249, 251, 0.55) 0%, rgba(247, 249, 251, 0.88) 100%);
}
.slide--wash-areas { background-image: url("photos/bg-tech.jpg"); }
.slide--wash-engineering { background-image: url("photos/bg-factory.jpg"); }
.slide--wash-enterprise { background-image: url("photos/bg-laptop.jpg"); }
.slide--wash-method { background-image: url("photos/bg-data.jpg"); }
.slide--wash-industries { background-image: url("photos/visual-fitout.jpg"); }
.slide--wash-enerteam { background-image: url("photos/bg-blueprint.jpg"); }
.slide--wash-ait { background-image: url("photos/bg-meeting.jpg"); }
.slide--wash-value { background-image: url("photos/bg-collab.jpg"); }

/* Banner strip under headline — clear illustrative photo */
.slide-banner {
	margin: 0;
	border-radius: 10px;
	overflow: hidden;
	height: 140px;
	box-shadow: 0 8px 24px rgba(7, 27, 53, 0.08);
}
.slide-banner img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.slide-banner--sm { height: 110px; }

/* Keep content cards opaque over wash */
.slide--wash .tile,
.slide--wash .stack,
.slide--wash .cap-list,
.slide--wash .ind,
.slide--wash .case > div,
.slide--wash .horizon,
.slide--wash .takeaway,
.slide--wash .flow li {
	background: rgba(255, 255, 255, 0.94);
	backdrop-filter: blur(6px);
}

/* Photo panel used in split layouts */
.visual {
	margin: 0;
	border-radius: 10px;
	overflow: hidden;
	min-height: 220px;
	background: #0f2a4f;
}
.visual img {
	width: 100%;
	height: 100%;
	min-height: 220px;
	object-fit: cover;
	display: block;
}
.visual--tall { min-height: 360px; }
.visual--tall img { min-height: 360px; }
.visual--banner {
	min-height: 140px;
	max-height: 160px;
}
.visual--banner img {
	min-height: 140px;
	max-height: 160px;
}
.visual figcaption {
	position: absolute;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0);
	white-space: nowrap; border: 0;
}
.split--visual { grid-template-columns: 1.15fr 0.85fr; align-items: stretch; }
.split--visual-left { grid-template-columns: 0.85fr 1.15fr; }

/* Atmosphere strip under section openers */
.photo-strip {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin-top: 4px;
}
.photo-strip figure {
	margin: 0;
	border-radius: 8px;
	overflow: hidden;
	aspect-ratio: 16 / 10;
	background: #d5deeb;
}
.photo-strip img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Type */
.eyebrow { font-family: var(--mono); font-size: var(--fs-eyebrow); letter-spacing: 0.14em; text-transform: uppercase; color: var(--blue); font-weight: 600; }
.eyebrow--lime { color: var(--lime); }
.display { font-family: var(--head); font-weight: 800; font-size: clamp(48px, 6.5vw, 88px); line-height: 1.02; letter-spacing: -0.02em; }
.display--sm { font-size: clamp(36px, 5vw, 64px); }
.h2 { font-family: var(--head); font-weight: 700; font-size: var(--fs-h2); line-height: 1.1; letter-spacing: -0.015em; color: var(--navy); }
.h2--light { color: #fff; }
.lead { font-size: clamp(19px, 1.7vw, 24px); line-height: 1.5; max-width: 68ch; }
.lead--muted { color: var(--muted-on-dark); }
.title-meta { display: flex; gap: 24px; flex-wrap: wrap; justify-content: center; font-size: clamp(14px, 1.2vw, 19px); color: #8a97ad; font-family: var(--mono); margin-top: 24px; }
.takeaway { padding: clamp(16px, 2vh, 24px) clamp(20px, 2vw, 28px); border-left: 5px solid var(--blue); background: var(--mist); font-size: clamp(18px, 1.6vw, 23px); line-height: 1.45; color: var(--navy); font-weight: 500; }
.footnote { font-size: var(--fs-small); color: var(--ink-4); }

/* Layout helpers */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: stretch; }
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.grid-5 { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }

/* Hook */
.quote-label { margin-bottom: 10px; font-family: var(--mono); font-size: clamp(12px, 0.8vw, 17.5px); color: var(--ink-3); text-transform: uppercase; letter-spacing: 0.1em; }
.quote { font-family: var(--head); font-size: clamp(22px, 2.4vw, 32px); line-height: 1.3; font-weight: 600; color: var(--navy); }
.quote em { font-style: normal; color: var(--blue); border-bottom: 3px solid var(--lime); }
.contrast { padding: 24px 28px; background: var(--navy); color: #fff; border-radius: 8px; }
.contrast .quote-label { color: var(--lime); }
.contrast-list { padding: 0; list-style: none; display: grid; gap: 12px; font-size: clamp(16px, 1.02vw, 19.5px); }
.contrast-list li::before { content: "—"; color: var(--lime); margin-right: 10px; }

/* Tiles */
.tile { padding: 20px; border: 1px solid var(--line); border-radius: 8px; background: #fff; display: flex; flex-direction: column; gap: 8px; }
.tile .material-symbols-outlined { font-size: 26px; color: var(--blue); }
.tile h3 { font-size: clamp(16px, 1.02vw, 19.5px); font-weight: 600; }
.tile p { font-size: clamp(14px, 0.92vw, 20.5px); line-height: 1.5; color: var(--ink-2); }
.tile--tight { padding: 16px 18px; gap: 6px; }
.tile--tight h3 { font-size: clamp(15.5px, 0.98vw, 18.5px); }
.tile--tight p { font-size: clamp(13px, 0.88vw, 19.5px); color: var(--ink-3); }
.tile--hot { border-color: var(--blue); background: var(--mist); }
.area-groups { display: grid; gap: 22px; }
.area-groups .quote-label { margin-bottom: 10px; }

/* Engineering stack cards */
.stack-cards { gap: 12px; }
.stack {
	padding: 18px 16px;
	border: 1px solid var(--line);
	border-radius: 8px;
	background: #fff;
	display: flex; flex-direction: column; gap: 6px;
	border-top: 3px solid var(--blue);
}
.stack strong { font-size: clamp(14.5px, 0.93vw, 18px); color: var(--navy); }
.stack span { font-size: clamp(13px, 0.85vw, 19px); line-height: 1.4; color: var(--ink-2); }
.stack em { font-style: normal; font-family: var(--mono); font-size: clamp(12px, 0.8vw, 17.5px); color: var(--ink-3); }

/* Capability rows (enterprise slide) */
.cap-list { display: grid; gap: 0; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: #fff; }
.cap {
	display: grid;
	grid-template-columns: 200px 1fr 220px;
	gap: 16px;
	align-items: center;
	padding: 14px 18px;
	border-bottom: 1px solid var(--line);
}
.cap:last-child { border-bottom: 0; }
.cap strong { font-size: clamp(14.5px, 0.93vw, 18px); color: var(--navy); }
.cap span { font-size: clamp(14px, 0.92vw, 20.5px); color: var(--ink-2); line-height: 1.4; }
.cap em {
	font-style: normal; font-family: var(--mono); font-size: clamp(12px, 0.8vw, 17.5px);
	color: var(--blue); text-align: right; font-weight: 600;
}

/* Who we work with — logo wall */
.who { display: grid; gap: clamp(20px, 3vh, 32px); }
.who--logos { gap: clamp(16px, 2.4vh, 24px); }

.logo-grid {
	list-style: none; margin: 0; padding: 0;
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: clamp(10px, 1.4vw, 16px);
}
.logo-grid--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.logo-grid--7 { grid-template-columns: repeat(7, minmax(0, 1fr)); }
.logo-tile {
	margin: 0;
	display: flex; align-items: center; justify-content: center;
	min-height: clamp(72px, 11vh, 100px);
	padding: clamp(12px, 1.6vh, 16px) clamp(12px, 1.4vw, 18px);
	border-radius: 10px;
	background: #fff;
	border: 1px solid rgba(255,255,255,0.2);
	box-shadow: 0 8px 24px rgba(0, 20, 50, 0.18);
}
.logo-tile img {
	max-width: 100%;
	max-height: clamp(36px, 6.5vh, 56px);
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
}
.logo-tile--wordmark span {
	font-family: var(--head);
	font-weight: 700;
	font-size: clamp(13px, 1.15vw, 19px);
	letter-spacing: 0.06em;
	color: var(--navy);
}
.logo-tile--industry {
	flex-direction: column;
	gap: 6px;
	min-height: clamp(78px, 12vh, 108px);
	padding: clamp(12px, 1.5vh, 16px) 8px;
}
.logo-tile--industry .material-symbols-outlined {
	font-size: clamp(22px, 2.4vw, 28px);
	color: var(--blue);
	font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
}
.logo-tile--industry > span:last-child {
	font-size: clamp(11px, 1vw, 16px);
	font-weight: 600;
	color: var(--navy);
	text-align: center;
	line-height: 1.2;
}
@media (max-width: 900px) {
	.logo-grid, .logo-grid--6, .logo-grid--7 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Industry compact rows */
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.industry-rows { gap: 14px; }
.ind {
	padding: 18px 20px; border: 1px solid var(--line); border-radius: 8px; background: #fff;
	display: grid; gap: 4px;
}
.ind__k { font-family: var(--mono); font-size: clamp(12px, 0.8vw, 17.5px); letter-spacing: 0.08em; text-transform: uppercase; color: var(--blue); font-weight: 600; }
.ind strong { font-size: clamp(16px, 1.02vw, 19.5px); color: var(--navy); }
.ind p { font-size: clamp(14px, 0.9vw, 20.5px); line-height: 1.45; color: var(--ink-2); margin: 0; }

/* Case tight */
.case--tight > div { padding: 16px 18px; }
.case--tight li { font-size: clamp(13px, 0.88vw, 19.5px); }

/* Value horizons */
.horizon {
	padding: 22px 20px; border: 1px solid var(--line); border-radius: 8px; background: #fff;
	display: flex; flex-direction: column; gap: 8px;
	border-top: 3px solid var(--blue);
}
.horizon__k { font-family: var(--mono); font-size: clamp(12px, 0.8vw, 17.5px); letter-spacing: 0.08em; text-transform: uppercase; color: var(--blue); font-weight: 600; }
.horizon strong { font-size: 22px; color: var(--navy); font-family: var(--head); }
.horizon p { font-size: clamp(14.5px, 0.93vw, 18px); color: var(--ink-2); margin: 0; }
.horizon em { font-style: normal; font-size: clamp(13px, 0.88vw, 19.5px); line-height: 1.45; color: var(--ink-3); border-top: 1px solid var(--line); padding-top: 10px; margin-top: 4px; }

/* Bars */
.bars { display: grid; gap: 14px; }
.bar-row { display: grid; grid-template-columns: 300px 1fr 40px; align-items: center; gap: 16px; }
.bar-label strong { display: block; font-size: clamp(14.5px, 0.93vw, 18px); font-weight: 600; }
.bar-label span { font-size: clamp(12.5px, 0.82vw, 18.5px); color: var(--ink-4); }
.bar-track { position: relative; height: 22px; background: #e8edf3; border-radius: 4px; }
.bar-fill { height: 100%; background: var(--blue); border-radius: 4px; min-width: 3px; }
.bar-target { position: absolute; top: -4px; bottom: -4px; left: 60%; width: 2px; background: var(--lime); }
.bar-value { font-family: var(--mono); font-weight: 600; text-align: right; }
.legend { display: flex; gap: 24px; font-size: clamp(13px, 0.85vw, 19px); color: var(--ink-2); }
.legend i { display: inline-block; width: 14px; height: 10px; vertical-align: middle; margin-right: 6px; border-radius: 2px; }
.legend-fill { background: var(--blue); }
.legend-target { background: var(--lime); width: 3px !important; height: 14px !important; }

/* Plain cards */
.card-plain { display: flex; flex-direction: column; gap: 10px; padding-top: 16px; border-top: 1px solid var(--line); }
.card-plain .num { font-family: var(--mono); color: var(--blue); font-weight: 600; font-size: clamp(13px, 0.85vw, 19px); }
.card-plain h3 { font-size: 20px; font-weight: 600; }
.card-plain p { font-size: clamp(14.5px, 0.93vw, 18px); line-height: 1.55; color: var(--ink-2); }

/* Pillars (dark) */
.pillar { padding: 22px; border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 8px; display: flex; flex-direction: column; gap: 10px; }
.pillar .material-symbols-outlined { color: var(--lime); font-size: 28px; }
.pillar h3 { font-size: clamp(16px, 1.02vw, 19.5px); font-weight: 600; }
.pillar p { font-size: clamp(14px, 0.92vw, 20.5px); line-height: 1.5; color: var(--muted-on-dark); }

/* Steps */
.steps { padding: 0; list-style: none; counter-reset: s; }
.steps li { display: grid; grid-template-columns: 56px 180px 1fr; align-items: center; gap: 20px; padding: 22px 0; border-bottom: 1px solid var(--line); counter-increment: s; }
.steps li::before { content: counter(s, decimal-leading-zero); font-family: var(--mono); color: var(--blue); font-weight: 600; }
.steps__k { font-family: var(--head); font-size: 24px; font-weight: 700; color: var(--navy); }
.steps__v { font-size: clamp(16px, 1.02vw, 19.5px); color: var(--ink-2); line-height: 1.5; }

/* Phases */
.phase { padding: 20px; border: 1px solid var(--line); border-radius: 8px; background: #fff; display: flex; flex-direction: column; gap: 10px; }
.phase--active { border-color: var(--blue); background: var(--mist); }
.phase__time { font-family: var(--mono); font-size: clamp(12px, 0.8vw, 17.5px); color: var(--ink-3); }
.phase h3 { font-size: clamp(16px, 1.02vw, 19.5px); font-weight: 600; }
.phase ul { padding-left: 18px; font-size: clamp(14px, 0.9vw, 20.5px); line-height: 1.5; color: var(--ink-2); display: grid; gap: 4px; }
.phase__out { margin-top: auto; padding-top: 10px; border-top: 1px solid var(--line); font-size: clamp(13px, 0.88vw, 19.5px); color: var(--navy); }

/* Table */
.tbl { width: 100%; border-collapse: separate; border-spacing: 0; font-size: clamp(14.5px, 0.93vw, 18px); background: #fff; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.tbl th, .tbl td { text-align: left; padding: 12px 16px; border-bottom: 1px solid #e1e7ef; vertical-align: top; }
.tbl th { font-family: var(--mono); font-size: clamp(12px, 0.8vw, 17.5px); letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-3); background: #f3f6fa; font-weight: 600; }
.tbl tr:last-child td { border-bottom: 0; }
.tbl td:last-child { white-space: nowrap; color: var(--ink-2); }

/* Conditions */
.cond { display: flex; flex-direction: column; gap: 10px; padding: 20px 18px; border-radius: 8px; background: #fff; border: 1px solid var(--line); }
.cond .material-symbols-outlined { color: var(--blue); font-size: 26px; }
.cond p { font-size: clamp(14px, 0.92vw, 20.5px); line-height: 1.5; }

/* Ask */
.ask-box { padding: 24px 28px; border-radius: 8px; background: var(--navy); color: #fff; }
.ask-box--muted { background: #fff; color: var(--ink); border: 1px solid var(--line); }
.ask-box h3 { margin-bottom: 12px; font-size: clamp(14px, 0.9vw, 20.5px); font-family: var(--mono); text-transform: uppercase; letter-spacing: 0.1em; color: var(--lime); font-weight: 600; }
.ask-box--muted h3 { color: var(--blue); }
.ask-box ul { padding-left: 18px; display: grid; gap: 8px; font-size: clamp(15.5px, 0.98vw, 18.5px); line-height: 1.45; }

.title-logo { height: 44px; margin-bottom: 8px; }
.end-logo { height: 44px; }

@media (max-width: 900px) {
	.split, .grid-3, .grid-4, .grid-5, .split--visual, .split--visual-left, .photo-strip, .grid-2 { grid-template-columns: 1fr; }
	.bar-row { grid-template-columns: 1fr; gap: 6px; }
	.bar-value { text-align: left; }
	.steps li { grid-template-columns: 40px 1fr; }
	.steps__v { grid-column: 2; }
	.slide { padding: 72px 0 48px; }
	.tbl td:last-child { white-space: normal; }
	.visual, .visual img, .visual--tall, .visual--tall img { min-height: 200px; }
	.cap { grid-template-columns: 1fr; gap: 4px; }
	.cap em { text-align: left; }
}

@media print {
	body { overflow: visible; }
	.deck-bar, .deck-progress, .deck-nav, .notes { display: none !important; }
	.slides { height: auto; overflow: visible; }
	.slide { min-height: 0; page-break-after: always; padding: 40px 0; border: 0; }
}

/* Wrapping / compact table variant for challenge & solution maps */
.tbl--wrap td:last-child { white-space: normal; }
.tbl--compact { font-size: clamp(14px, 0.9vw, 20.5px); }
.tbl--compact th, .tbl--compact td { padding: 10px 14px; }
.tbl td strong { color: var(--navy); }

/* Facts strip on the About slide */
.facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 8px 0 4px; }
.fact { border-top: 2px solid var(--lime, #c6f432); padding-top: 12px; }
.fact strong { display: block; font-size: 30px; font-weight: 700; color: #fff; line-height: 1.1; }
.fact span { font-size: clamp(14px, 0.9vw, 20.5px); color: rgba(255,255,255,0.72); line-height: 1.45; }
.split .facts { grid-template-columns: 1fr 1fr; }

/* Unfinished content the presenter must fill before the meeting */
.todo { border: 1px dashed #d97706; background: #fff7ed; color: #9a3412; border-radius: 6px; padding: 6px 10px; font-size: clamp(13px, 0.88vw, 19.5px); }

@media (max-width: 760px) { .facts { grid-template-columns: 1fr 1fr; } }

/* Readiness levels */
.levels { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.level { padding: 18px; border: 1px solid var(--line); border-radius: 8px; background: #fff; display: flex; flex-direction: column; gap: 8px; }
.level__k { font-family: var(--mono); font-size: clamp(12px, 0.8vw, 17.5px); letter-spacing: 0.08em; text-transform: uppercase; color: var(--blue); font-weight: 600; }
.level h3 { font-size: clamp(16px, 1.02vw, 19.5px); font-weight: 600; color: var(--navy); }
.level p { font-size: clamp(14px, 0.9vw, 20.5px); line-height: 1.5; color: var(--ink-2); }
.level__verdict { margin-top: auto; font-size: clamp(13px, 0.88vw, 19.5px); font-weight: 600; color: var(--navy); border-top: 1px solid var(--line); padding-top: 8px; }
.level--hot { border-color: var(--blue); box-shadow: 0 0 0 1px var(--blue) inset; }

/* Company-type cards */
.type { padding: 20px; border: 1px solid var(--line); border-radius: 8px; background: #fff; display: flex; flex-direction: column; gap: 10px; }
.type__k { font-family: var(--mono); font-size: clamp(12px, 0.8vw, 17.5px); letter-spacing: 0.08em; text-transform: uppercase; color: var(--blue); font-weight: 600; }
.type h3 { font-size: clamp(17px, 1.06vw, 20.5px); font-weight: 600; color: var(--navy); }
.type dl { display: grid; gap: 8px; }
.type dt { font-size: clamp(12px, 0.8vw, 17.5px); font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-3); }
.type dd { margin: 0; font-size: clamp(14px, 0.9vw, 20.5px); line-height: 1.5; color: var(--ink-2); }

/* FAQ */
.faq { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 28px; }
.faq div { border-top: 1px solid var(--line); padding-top: 10px; }
.faq h3 { font-size: clamp(15px, 0.95vw, 18px); font-weight: 600; color: var(--navy); margin-bottom: 4px; }
.faq p { font-size: clamp(14px, 0.9vw, 20.5px); line-height: 1.5; color: var(--ink-2); }

/* Guardrails and "no friction" list */
.checks { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.checks li { font-size: clamp(14px, 0.92vw, 20.5px); line-height: 1.5; color: var(--ink-2); padding: 14px 16px; background: var(--mist); border-radius: 8px; }
.checks li strong { display: block; color: var(--navy); margin-bottom: 2px; }

@media (max-width: 900px) {
	.levels, .checks { grid-template-columns: 1fr 1fr; }
	.faq { grid-template-columns: 1fr; }
}

/* End-to-end flow */
.flow { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; counter-reset: flow; }
.flow li { position: relative; padding: 16px 16px 16px 18px; background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--blue); border-radius: 8px; counter-increment: flow; }
.flow li::before { content: counter(flow, decimal-leading-zero); font-family: var(--mono); font-size: clamp(12px, 0.8vw, 17.5px); color: var(--blue); font-weight: 600; display: block; margin-bottom: 4px; }
.flow strong { display: block; font-size: clamp(15px, 0.95vw, 18px); color: var(--navy); margin-bottom: 2px; }
.flow span { font-size: clamp(13px, 0.88vw, 19.5px); line-height: 1.45; color: var(--ink-2); display: block; }
.flow em { font-style: normal; font-family: var(--mono); font-size: clamp(12px, 0.8vw, 17.5px); color: var(--ink-3); display: block; margin-top: 6px; }

/* Case study */
.case { display: grid; grid-template-columns: 1fr 1.6fr 1fr; gap: 18px; }
.case > div { padding: 20px; border-radius: 8px; background: #fff; border: 1px solid var(--line); }
.case h3 { font-family: var(--mono); font-size: clamp(12px, 0.8vw, 17.5px); letter-spacing: 0.08em; text-transform: uppercase; color: var(--blue); margin-bottom: 10px; font-weight: 600; }
.case p, .case li { font-size: clamp(14px, 0.9vw, 20.5px); line-height: 1.5; color: var(--ink-2); }
.case ul { margin: 0; padding-left: 18px; display: grid; gap: 6px; }
.case li strong { color: var(--navy); }
.case .case__who { font-size: clamp(17px, 1.06vw, 20.5px); font-weight: 600; color: var(--navy); margin-bottom: 6px; }
.case-meta { display: flex; flex-wrap: wrap; gap: 8px; }
.case-meta span { font-family: var(--mono); font-size: clamp(12px, 0.8vw, 17.5px); padding: 4px 10px; border-radius: 999px; background: var(--mist); color: var(--navy); }

/* Approval chain */
.chain { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.chain span { padding: 6px 11px; border-radius: 999px; background: #fff; border: 1px solid var(--line); font-size: clamp(13px, 0.85vw, 19px); color: var(--navy); font-weight: 500; white-space: nowrap; }
.chain i { font-style: normal; color: var(--ink-3); }

@media (max-width: 900px) {
	.flow { grid-template-columns: 1fr 1fr; }
	.case { grid-template-columns: 1fr; }
}
.flow--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 900px) { .flow--5 { grid-template-columns: 1fr 1fr; } }

/* ========== Diagrams & charts ========== */
.slide-banner { height: var(--banner-h); }
.slide-banner--sm { height: var(--banner-h-sm); }

.pipe {
	display: flex; align-items: stretch; gap: 0; width: 100%;
	list-style: none; margin: 0; padding: 0;
	flex: 0 0 auto;
	min-height: clamp(110px, 16vh, 160px);
}
.pipe li {
	flex: 1; position: relative;
	padding: clamp(18px, 2.4vh, 28px) clamp(14px, 1.5vw, 22px);
	background: #fff; border: 1px solid var(--line);
	display: flex; flex-direction: column; gap: 8px; min-width: 0;
	justify-content: center;
}
.pipe li:first-child { border-radius: 10px 0 0 10px; }
.pipe li:last-child { border-radius: 0 10px 10px 0; border-color: var(--blue); background: var(--mist); }
.pipe li + li { border-left: 0; }
.pipe li + li::before {
	content: "";
	position: absolute; left: -9px; top: 50%; transform: translateY(-50%);
	width: 0; height: 0;
	border-top: 9px solid transparent; border-bottom: 9px solid transparent;
	border-left: 10px solid var(--blue); z-index: 2;
}
.pipe__n {
	font-family: var(--mono); font-size: clamp(13px, 1.15vw, 17.5px); font-weight: 600;
	color: var(--blue); letter-spacing: 0.06em;
}
.pipe strong { font-size: clamp(17px, 1.6vw, 22px); color: var(--navy); line-height: 1.2; }
.pipe span { font-size: clamp(14px, 1.25vw, 20px); color: var(--ink-3); line-height: 1.35; }

.compare {
	display: grid; grid-template-columns: 1fr auto 1fr; gap: clamp(16px, 2vw, 28px); align-items: stretch;
	flex: 1 1 auto; min-height: clamp(160px, 24vh, 260px);
}
.compare__col {
	padding: clamp(22px, 3vh, 36px) clamp(22px, 2.2vw, 32px);
	border-radius: 10px; border: 1px solid var(--line); background: #fff;
	display: flex; flex-direction: column; justify-content: center;
}
.compare__col--bad { border-top: 4px solid var(--red); }
.compare__col--good { border-top: 4px solid var(--blue); background: var(--mist); }
.compare__col h3 {
	font-family: var(--mono); font-size: clamp(13px, 1.2vw, 17.5px); letter-spacing: 0.08em;
	text-transform: uppercase; margin-bottom: 14px; font-weight: 600;
}
.compare__col--bad h3 { color: var(--red); }
.compare__col--good h3 { color: var(--blue); }
.compare__col ul { margin: 0; padding-left: 20px; display: grid; gap: 10px; }
.compare__col li { font-size: var(--fs-card); line-height: 1.45; color: var(--ink-2); }
.compare__arrow {
	align-self: center; font-family: var(--mono); font-size: clamp(28px, 2.5vw, 36px);
	font-weight: 700; color: var(--blue);
}

.chart {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;
	align-items: end; min-height: clamp(200px, 32vh, 320px);
	padding: 16px 8px 0; border-bottom: 2px solid var(--line);
	flex: 1 1 auto;
}
.chart__bar {
	display: flex; flex-direction: column; align-items: center; gap: 10px; height: 100%;
	justify-content: flex-end;
}
.chart__fill {
	width: 100%; max-width: 120px; border-radius: 10px 10px 2px 2px;
	background: linear-gradient(180deg, var(--blue) 0%, #0050c8 100%);
	display: flex; align-items: flex-start; justify-content: center;
	padding-top: 14px; color: #fff; font-family: var(--mono);
	font-size: clamp(14px, 1.3vw, 18px); font-weight: 600; transition: height 0.6s ease;
}
.chart__bar:nth-child(1) .chart__fill { height: 42%; background: linear-gradient(180deg, #5b8fd9, var(--blue)); }
.chart__bar:nth-child(2) .chart__fill { height: 68%; }
.chart__bar:nth-child(3) .chart__fill {
	height: 100%;
	background: linear-gradient(180deg, var(--lime) 0%, #6bb800 100%);
	color: var(--navy);
}
.chart__label { text-align: center; font-size: clamp(16px, 1.4vw, 20px); color: var(--navy); font-weight: 600; }
.chart__sub { text-align: center; font-size: var(--fs-small); color: var(--ink-3); line-height: 1.35; max-width: 20ch; }

.stack-arch {
	display: grid; gap: 0; border-radius: 12px; overflow: hidden; border: 1px solid var(--line);
}
.stack-arch__row {
	display: grid; grid-template-columns: 160px 1fr; gap: 20px; align-items: center;
	padding: clamp(16px, 2.2vh, 24px) clamp(20px, 2vw, 28px); border-bottom: 1px solid var(--line); background: #fff;
}
.stack-arch__row:last-child { border-bottom: 0; }
.stack-arch__row--top { background: var(--navy); color: #fff; }
.stack-arch__row--mid { background: var(--mist); }
.stack-arch__k {
	font-family: var(--mono); font-size: clamp(13px, 1.15vw, 17.5px); font-weight: 600;
	letter-spacing: 0.06em; text-transform: uppercase; color: var(--blue);
}
.stack-arch__row--top .stack-arch__k { color: var(--lime); }
.stack-arch__row strong { display: block; font-size: clamp(17px, 1.5vw, 21px); margin-bottom: 4px; }
.stack-arch__row span { font-size: var(--fs-body); color: var(--ink-2); }
.stack-arch__row--top span { color: var(--muted-on-dark); }

.meter {
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; align-items: end;
	margin: 8px 0 12px;
}
.meter__step {
	text-align: center; padding: 0 8px; position: relative;
}
.meter__step::after {
	content: ""; position: absolute; top: 22px; left: 50%; right: -50%;
	height: 4px; background: var(--line); z-index: 0;
}
.meter__step:last-child::after { display: none; }
.meter__dot {
	position: relative; z-index: 1; width: 48px; height: 48px; margin: 0 auto 10px;
	border-radius: 50%; background: #fff; border: 3px solid var(--line);
	display: grid; place-items: center; font-family: var(--mono); font-size: clamp(15.5px, 0.98vw, 18.5px);
	font-weight: 700; color: var(--ink-3);
}
.meter__step--on .meter__dot {
	border-color: var(--blue); background: var(--blue); color: #fff;
	box-shadow: 0 0 0 5px rgba(0, 55, 152, 0.15);
}
.meter__step--on::after { background: var(--blue); }
.meter__step strong { display: block; font-size: clamp(15px, 1.3vw, 18px); color: var(--navy); }
.meter__step span { font-size: var(--fs-small); color: var(--ink-3); }

.rail {
	display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 8px;
	position: relative;
}
.rail::before {
	content: ""; position: absolute; left: 4%; right: 4%; top: 28px;
	height: 4px; background: linear-gradient(90deg, var(--blue), var(--lime));
	z-index: 0; border-radius: 2px;
}
.rail__node {
	position: relative; z-index: 1; text-align: center;
	display: flex; flex-direction: column; align-items: center; gap: 10px;
}
.rail__dot {
	width: 56px; height: 56px; border-radius: 50%;
	background: var(--navy); color: #fff; display: grid; place-items: center;
	font-family: var(--mono); font-size: clamp(14px, 0.9vw, 20.5px); font-weight: 700;
	border: 3px solid #fff; box-shadow: 0 0 0 2px var(--blue);
}
.rail__node:last-child .rail__dot { background: var(--blue); box-shadow: 0 0 0 2px var(--lime); }
.rail__node strong { font-size: clamp(13px, 1.15vw, 19px); color: var(--navy); line-height: 1.25; display: block; }
.rail__node span {
	font-family: var(--mono); font-size: clamp(11px, 1vw, 15.5px); color: var(--ink-3);
	line-height: 1.2;
}

.gates {
	display: flex; align-items: stretch; gap: 0; width: 100%; overflow-x: auto;
	min-height: clamp(120px, 18vh, 180px);
}
.gates__step {
	flex: 1; min-width: 120px; padding: clamp(16px, 2vh, 22px) 12px; text-align: center;
	background: #fff; border: 1px solid var(--line); position: relative;
	display: flex; flex-direction: column; justify-content: center; gap: 6px;
}
.gates__step + .gates__step { border-left: 0; }
.gates__step + .gates__step::before {
	content: "▸"; position: absolute; left: -9px; top: 50%; transform: translateY(-50%);
	color: var(--blue); font-size: clamp(15.5px, 0.98vw, 18.5px); background: var(--bg); z-index: 1; line-height: 1;
}
.gates__step strong { display: block; font-size: clamp(14px, 1.25vw, 20px); color: var(--navy); }
.gates__step span { font-size: var(--fs-small); color: var(--ink-3); line-height: 1.35; }
.gates__step em {
	display: block; margin-top: 4px; font-style: normal; font-family: var(--mono);
	font-size: clamp(11px, 1vw, 15.5px); color: var(--blue); font-weight: 600;
}

.timeline {
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; align-items: stretch;
	flex: 1 1 auto;
}
.timeline__phase {
	padding: clamp(16px, 2vh, 22px); border-radius: 10px; background: #fff; border: 1px solid var(--line);
	display: flex; flex-direction: column; gap: 10px; position: relative;
}
.timeline__phase--hot { border-color: var(--blue); background: var(--mist); }
.timeline__bar {
	height: 10px; border-radius: 5px; background: var(--mist); overflow: hidden;
}
.timeline__bar > i {
	display: block; height: 100%; border-radius: 5px; background: var(--blue);
	font-style: normal;
}
.timeline__phase:nth-child(1) .timeline__bar > i { width: 36%; }
.timeline__phase:nth-child(2) .timeline__bar > i { width: 55%; background: linear-gradient(90deg, var(--blue), #2a6ad4); }
.timeline__phase:nth-child(3) .timeline__bar > i { width: 12%; }
.timeline__phase:nth-child(4) .timeline__bar > i { width: 100%; background: linear-gradient(90deg, var(--blue), var(--lime)); }
.timeline__phase .phase__time { margin: 0; font-size: var(--fs-small); }
.timeline__phase h3 { font-size: clamp(17px, 1.5vw, 21px); margin: 0; }
.timeline__phase ul { margin: 0; padding-left: 18px; font-size: var(--fs-small); color: var(--ink-2); display: grid; gap: 5px; }

.diag-svg { width: 100%; height: auto; display: block; max-height: clamp(120px, 18vh, 180px); }

.tile { padding: clamp(18px, 2.2vh, 26px); border: 1px solid var(--line); border-radius: 10px; background: #fff; display: flex; flex-direction: column; gap: 10px; }
.tile .material-symbols-outlined { font-size: 30px; color: var(--blue); }
.tile h3 { font-size: clamp(17px, 1.45vw, 20px); font-weight: 600; }
.tile p { font-size: var(--fs-body); line-height: 1.5; color: var(--ink-2); }
.tile--tight { padding: clamp(16px, 2vh, 22px) clamp(16px, 1.8vw, 22px); gap: 8px; }
.tile--tight h3 { font-size: clamp(16px, 1.4vw, 19px); }
.tile--tight p { font-size: var(--fs-small); color: var(--ink-3); }

.level { padding: clamp(18px, 2.2vh, 24px); border: 1px solid var(--line); border-radius: 10px; background: #fff; display: flex; flex-direction: column; gap: 10px; }
.level__k { font-family: var(--mono); font-size: var(--fs-eyebrow); letter-spacing: 0.08em; text-transform: uppercase; color: var(--blue); font-weight: 600; }
.level h3 { font-size: clamp(17px, 1.45vw, 20px); font-weight: 600; color: var(--navy); }
.level p { font-size: var(--fs-body); line-height: 1.5; color: var(--ink-2); }
.level__verdict { margin-top: auto; font-size: var(--fs-small); font-weight: 600; color: var(--navy); border-top: 1px solid var(--line); padding-top: 10px; }

.ind {
	padding: clamp(18px, 2.2vh, 24px) clamp(20px, 2vw, 26px); border: 1px solid var(--line); border-radius: 10px; background: #fff;
	display: grid; gap: 6px;
}
.ind__k { font-family: var(--mono); font-size: var(--fs-eyebrow); letter-spacing: 0.08em; text-transform: uppercase; color: var(--blue); font-weight: 600; }
.ind strong { font-size: clamp(18px, 1.5vw, 22px); color: var(--navy); }
.ind p { font-size: var(--fs-body); line-height: 1.45; color: var(--ink-2); margin: 0; }

.horizon {
	padding: clamp(22px, 2.8vh, 32px) clamp(20px, 2vw, 26px); border: 1px solid var(--line); border-radius: 10px; background: #fff;
	display: flex; flex-direction: column; gap: 10px;
	border-top: 4px solid var(--blue);
}
.horizon__k { font-family: var(--mono); font-size: var(--fs-eyebrow); letter-spacing: 0.08em; text-transform: uppercase; color: var(--blue); font-weight: 600; }
.horizon strong { font-size: clamp(24px, 2.2vw, 32px); color: var(--navy); font-family: var(--head); }
.horizon p { font-size: var(--fs-body); color: var(--ink-2); margin: 0; }
.horizon em { font-style: normal; font-size: var(--fs-small); line-height: 1.45; color: var(--ink-3); border-top: 1px solid var(--line); padding-top: 12px; margin-top: 6px; }

.cap {
	display: grid;
	grid-template-columns: 240px 1fr 240px;
	gap: 18px;
	align-items: center;
	padding: clamp(16px, 2vh, 22px) clamp(18px, 2vw, 24px);
	border-bottom: 1px solid var(--line);
}
.cap strong { font-size: clamp(16px, 1.4vw, 19px); color: var(--navy); }
.cap span { font-size: var(--fs-body); color: var(--ink-2); line-height: 1.4; }
.cap em {
	font-style: normal; font-family: var(--mono); font-size: var(--fs-small);
	color: var(--blue); text-align: right; font-weight: 600;
}

.stack {
	padding: clamp(18px, 2.2vh, 24px) clamp(16px, 1.6vw, 20px);
	border: 1px solid var(--line);
	border-radius: 10px;
	background: #fff;
	display: flex; flex-direction: column; gap: 8px;
	border-top: 3px solid var(--blue);
}
.stack strong { font-size: clamp(16px, 1.4vw, 19px); color: var(--navy); }
.stack span { font-size: var(--fs-small); line-height: 1.4; color: var(--ink-2); }
.stack em { font-style: normal; font-family: var(--mono); font-size: clamp(12px, 1.05vw, 16.5px); color: var(--ink-3); }

/* Engineering lifecycle pipe */
.eng-pipe {
	flex: 1 1 auto;
	min-height: clamp(220px, 38vh, 360px);
}
.eng-pipe li {
	gap: 10px;
	padding: clamp(20px, 2.8vh, 32px) clamp(14px, 1.4vw, 20px);
	align-items: flex-start;
}
.eng-pipe .material-symbols-outlined {
	font-size: clamp(32px, 3.2vw, 42px);
	color: var(--blue);
	line-height: 1;
}
.eng-pipe .pipe__n {
	font-size: clamp(12px, 1.1vw, 16.5px);
}
.eng-pipe strong {
	font-size: clamp(20px, 1.9vw, 26px);
}
.eng-pipe span:not(.pipe__n):not(.material-symbols-outlined) {
	font-size: clamp(14px, 1.25vw, 20px);
}
.eng-pipe em {
	font-style: normal;
	font-family: var(--mono);
	font-size: clamp(13px, 1.15vw, 17.5px);
	color: var(--ink-3);
	margin-top: auto;
	padding-top: 8px;
	border-top: 1px solid var(--line);
	width: 100%;
}
.eng-pipe li:last-child em { border-top-color: rgba(0, 55, 152, 0.2); }
.eng-proof {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(14px, 1.8vw, 22px);
}
.eng-proof__item {
	padding: clamp(16px, 2vh, 22px) clamp(18px, 2vw, 24px);
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.94);
	border: 1px solid var(--line);
	border-left: 4px solid var(--blue);
}
.eng-proof__item strong {
	display: block;
	font-size: clamp(16px, 1.4vw, 19px);
	color: var(--navy);
	margin-bottom: 6px;
}
.eng-proof__item span {
	font-size: var(--fs-body);
	color: var(--ink-2);
	line-height: 1.45;
}
@media (max-width: 900px) {
	.eng-proof { grid-template-columns: 1fr; }
	.eng-pipe { min-height: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
	.eng-pipe li { border-radius: 10px !important; border: 1px solid var(--line) !important; }
}

@media (max-width: 900px) {
	.pipe, .rail, .gates, .meter, .chart, .timeline, .compare { grid-template-columns: 1fr 1fr; display: grid; }
	.pipe { gap: 8px; }
	.pipe li + li::before, .gates__step + .gates__step::before, .rail::before { display: none; }
	.pipe li { border-radius: 8px !important; border: 1px solid var(--line) !important; }
	.compare { grid-template-columns: 1fr; }
	.compare__arrow { transform: rotate(90deg); justify-self: center; }
	.stack-arch__row { grid-template-columns: 1fr; gap: 4px; }
	.rail { grid-template-columns: repeat(4, 1fr); }
}

/* ========== Partner Part 3 · role / service / training / safety ========== */
.role-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(12px, 1.4vw, 18px);
	flex: 1;
	min-height: 0;
}
.role-card {
	display: flex; flex-direction: column; gap: 8px;
	padding: clamp(16px, 2vh, 22px);
	background: #fff; border: 1px solid var(--line); border-radius: 10px;
}
.role-card .material-symbols-outlined {
	font-size: 28px; color: var(--blue); font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
}
.role-card h3 { font-size: clamp(17px, 1.35vw, 20px); font-weight: 600; color: var(--navy); margin: 0; }
.role-card p { font-size: clamp(14px, 1.1vw, 19px); line-height: 1.45; color: var(--ink-2); margin: 0; }
.role-card__need {
	margin-top: auto !important;
	padding-top: 10px;
	border-top: 1px solid var(--line);
	font-family: var(--mono);
	font-size: clamp(12px, 0.95vw, 16px) !important;
	letter-spacing: 0.02em;
	color: var(--navy) !important;
	font-weight: 500;
}

.svc-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(12px, 1.4vw, 18px);
	flex: 1;
	min-height: 0;
}
.svc-card {
	display: flex; flex-direction: column; gap: 8px;
	padding: clamp(16px, 2vh, 22px);
	background: #fff; border: 1px solid var(--line); border-radius: 10px;
	border-top: 3px solid var(--blue);
}
.svc-card__n {
	font-family: var(--mono); font-size: clamp(12px, 0.8vw, 17.5px); letter-spacing: 0.1em;
	color: var(--blue); font-weight: 600;
}
.svc-card h3 { font-size: clamp(16px, 1.25vw, 19px); font-weight: 600; color: var(--navy); margin: 0; }
.svc-card p { font-size: clamp(13.5px, 1.05vw, 18.5px); line-height: 1.45; color: var(--ink-2); margin: 0; }
.svc-card__wont { color: var(--ink-3) !important; }
.svc-card__ok {
	margin-top: auto !important;
	padding-top: 8px;
	border-top: 1px solid var(--line);
	font-weight: 600;
	color: var(--navy) !important;
	font-size: clamp(13px, 1vw, 17px) !important;
}

.train-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(12px, 1.4vw, 18px);
	flex: 1;
	min-height: 0;
}
.train-card {
	display: flex; flex-direction: column; gap: 10px;
	padding: clamp(16px, 2vh, 22px);
	background: #fff; border: 1px solid var(--line); border-radius: 10px;
}
.train-card--all { border-color: var(--blue); box-shadow: 0 0 0 1px var(--blue) inset; }
.train-card__head {
	display: flex; align-items: baseline; justify-content: space-between; gap: 10px; flex-wrap: wrap;
}
.train-card h3 { font-size: clamp(16px, 1.25vw, 19px); font-weight: 600; color: var(--navy); margin: 0; }
.train-card__fmt {
	font-family: var(--mono); font-size: clamp(12px, 0.8vw, 17.5px); letter-spacing: 0.04em;
	padding: 4px 10px; border-radius: 999px;
	background: var(--mist); color: var(--navy); font-weight: 600; white-space: nowrap;
}
.train-card ul { margin: 0; padding-left: 18px; display: grid; gap: 6px; }
.train-card li { font-size: clamp(13.5px, 1.05vw, 18.5px); line-height: 1.45; color: var(--ink-2); }

.principle-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(12px, 1.4vw, 18px);
	flex: 1;
	min-height: 0;
}
.principle {
	display: flex; flex-direction: column; gap: 10px;
	padding: clamp(18px, 2.2vh, 26px);
	background: var(--mist); border-radius: 12px;
}
.principle .material-symbols-outlined {
	font-size: 36px; color: var(--blue);
	font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
}
.principle strong { font-size: clamp(17px, 1.3vw, 20px); color: var(--navy); }
.principle p { font-size: clamp(14px, 1.1vw, 19px); line-height: 1.5; color: var(--ink-2); margin: 0; }

@media (max-width: 900px) {
	.role-grid, .svc-grid, .train-grid { grid-template-columns: 1fr 1fr; }
	.principle-grid { grid-template-columns: 1fr 1fr; }
}


/* Who we work with — refined hierarchy */
#clients .slide__inner { justify-content: center; }
#clients .h2 { max-width: 30ch; font-size: clamp(30px, 3.6vw, 48px); }
.who__label { display: flex; align-items: center; gap: 14px; margin: 0 0 12px; font-family: var(--mono); font-size: clamp(12px, 0.8vw, 17.5px); letter-spacing: 0.14em; text-transform: uppercase; color: var(--lime); font-weight: 600; }
.who__label::after { content: ""; flex: 1; height: 1px; background: rgba(255,255,255,0.18); }
#clients .logo-tile { box-shadow: 0 10px 30px rgba(0, 12, 32, 0.28); border: 0; transition: transform .2s ease; }
#clients .logo-grid:not(.logo-grid--sm) .logo-tile { min-height: clamp(84px, 12.5vh, 112px); }
#clients .logo-grid:not(.logo-grid--sm) .logo-tile img { max-height: clamp(40px, 6.8vh, 60px); max-width: 82%; }
.logo--enerteam { max-height: clamp(48px, 7.5vh, 64px) !important; }
.logo-grid--sm .logo-tile { min-height: clamp(58px, 8.5vh, 76px); padding: 10px 16px; background: rgba(255,255,255,0.94); }
.logo-grid--sm .logo-tile img { max-height: clamp(24px, 4.2vh, 36px); max-width: 78%; }
.logo-tile--lockup { gap: 10px; }
.logo-tile--lockup img { max-height: clamp(22px, 3.6vh, 30px) !important; }
.logo-tile--lockup span { font-family: var(--head); font-weight: 700; font-size: clamp(14px, 1.2vw, 20px); color: #2a8fe0; letter-spacing: -0.01em; white-space: nowrap; }
.industry-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.industry-chips li { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px 9px 12px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.28); background: rgba(255,255,255,0.06); backdrop-filter: blur(6px); color: #fff; font-size: clamp(13px, 1.05vw, 17.5px); font-weight: 500; }
.industry-chips .material-symbols-outlined { font-size: 20px; color: var(--lime); }
.logo-grid--sm .logo-tile img.logo--ptc { max-height: clamp(30px, 5.2vh, 44px); }


/* About NEAX — clear hierarchy and even rhythm */
.about { align-items: center; }
.about__text { display: flex; flex-direction: column; gap: 0; }
.about .h2 { font-size: clamp(32px, 3.3vw, 52px); line-height: 1.12; margin: 0 0 clamp(14px, 1.8vh, 20px); max-width: 16ch; }
.about__lead { margin: 0 0 clamp(24px, 3.4vh, 40px); font-size: clamp(16px, 1.1vw, 21px); line-height: 1.55; color: var(--muted-on-dark); max-width: 46ch; }
.about .facts { grid-template-columns: 1fr 1fr; gap: clamp(20px, 2.6vh, 30px) clamp(24px, 2.4vw, 40px); margin: 0 0 clamp(24px, 3.4vh, 40px); }
.about .fact { border-top: 1px solid rgba(155, 252, 0, 0.55); padding-top: clamp(10px, 1.4vh, 14px); display: flex; flex-direction: column; gap: 6px; }
.about .fact strong { font-family: var(--head); font-size: clamp(20px, 1.6vw, 28px); font-weight: 700; letter-spacing: -0.01em; line-height: 1.15; }
.about .fact span { font-size: clamp(14px, 0.9vw, 17px); line-height: 1.5; color: rgba(255,255,255,0.68); }
.leader { border-left: 2px solid var(--lime); padding: 2px 0 2px clamp(14px, 1.2vw, 18px); max-width: 52ch; }
.leader p { margin: 0; }
.leader__label { font-family: var(--mono); font-size: clamp(11.5px, 0.75vw, 14px); letter-spacing: 0.14em; text-transform: uppercase; color: var(--lime); font-weight: 600; margin-bottom: 4px !important; }
.leader__name { font-family: var(--head); font-size: clamp(17px, 1.2vw, 22px); font-weight: 700; color: #fff; margin-bottom: 4px !important; }
.leader__bio { font-size: clamp(14px, 0.9vw, 17px); line-height: 1.5; color: rgba(255,255,255,0.68); }
.about .h2 { max-width: 22ch; text-wrap: balance; }
.about { align-items: stretch; }
.about .visual { height: 100%; min-height: 0; margin: 0; }
.about .visual img { width: 100%; height: 100%; object-fit: cover; }
#neax .slide__inner { justify-content: center; min-height: 100%; }

/* ===== Deck-wide polish ===== */
/* Centre each slide's content vertically; never clip when it is taller than the screen */
.slide__inner { justify-content: safe center; }
/* Balanced headlines: no single orphan word on the last line */
.h2, .display, .quote { text-wrap: balance; }
.lead, .about__lead, .compare__col li, .tile p, .type dd { text-wrap: pretty; }
/* Components keep their natural height instead of stretching into empty boxes */
.compare, .eng-pipe, .chart { flex: 0 0 auto; }
.compare { min-height: 0; }
.compare__col { justify-content: flex-start; }
.eng-pipe { min-height: 0; }
.eng-pipe li { gap: 8px; }
.eng-pipe em { margin-top: 14px; }
.chart { min-height: clamp(240px, 38vh, 380px); }
.chart__sub { font-size: clamp(14px, 0.95vw, 18px); max-width: 26ch; }
/* Vietnamese: monospace labels with wide tracking break up diacritics — use the sans face, tighter */
html[lang="vi"] { --mono: "IBM Plex Sans", system-ui, sans-serif; }
html[lang="vi"] :is(.eyebrow, .who__label, .quote-label, .compare__col h3, .type__k, .level__k, .leader__label, .ind__k, .horizon__k, .notes__label, .case h3) { letter-spacing: 0.06em; }
html[lang="vi"] :is(.pipe__n, .case-meta span, .eng-pipe em, .chart__fill) { letter-spacing: 0; }
/* Blocks never get squashed (which clipped rounded containers); the slide scrolls instead */
.slide__inner > * { flex-shrink: 0; }
/* Photo strip: cinematic band so text below always fits */
.photo-strip figure { aspect-ratio: auto; height: clamp(110px, 20vh, 240px); }

/* Short screens (1280×720 projectors, small laptops): tighten vertical rhythm */
@media (max-height: 800px) {
	:root {
		--slide-gap: clamp(12px, 2vh, 20px);
		--fs-h2: clamp(28px, 3.2vw, 40px);
		--banner-h: clamp(72px, 12vh, 110px);
		--slide-pad-bottom: 44px;
	}
	.slide__inner { padding-top: 4px; }
	.photo-strip figure { height: clamp(90px, 16vh, 150px); }
	.stack-arch__row { padding-block: 10px; }
	.pipe li { padding-block: 14px; }
	.tile, .type, .level, .case > div { padding: 14px 16px; }
	.logo-tile { min-height: 64px !important; }
	.eng-pipe .material-symbols-outlined { font-size: 28px; }
}
@media (max-height: 760px) { #context .photo-strip figure { height: 72px; } #context .quote { font-size: 20px !important; margin-top: 12px !important; } }

/* Client wall: 20 logos, 10 × 2 */
.logo-grid--clients { grid-template-columns: repeat(10, minmax(0, 1fr)); gap: clamp(8px, 0.8vw, 12px); }
#clients .logo-grid--clients .logo-tile { min-height: clamp(58px, 8.5vh, 84px); padding: 8px 10px; }
#clients .logo-grid--clients .logo-tile img { max-height: clamp(30px, 5.2vh, 48px); max-width: 90%; }
#clients .logo-grid--clients .logo--enerteam { max-height: clamp(34px, 5.6vh, 52px) !important; }
@media (max-width: 1100px) { .logo-grid--clients { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
#clients .h2 { max-width: 34ch; }
#clients .logo-grid--clients .logo-tile { min-height: 0; height: clamp(52px, 7.2vh, 76px); padding: 6px 8px; }
#clients .logo-grid--clients .logo-tile img { max-height: 78%; max-width: 94%; }
#clients .logo-grid.logo-grid--clients:not(.logo-grid--sm) .logo-tile { min-height: 0; height: clamp(52px, 7.2vh, 76px); padding: 6px 8px; }
#clients .logo-grid.logo-grid--clients:not(.logo-grid--sm) .logo-tile img { max-height: 78%; max-width: 94%; }

/* Areas slide: no banner — larger cards carry the slide */
#areas .area-groups { display: grid; gap: clamp(18px, 3vh, 32px); }
#areas .quote-label { margin-bottom: clamp(8px, 1.2vh, 12px); font-size: clamp(12px, 0.85vw, 15px); }
#areas .tile { padding: clamp(20px, 3vh, 32px) clamp(20px, 1.8vw, 28px); gap: 10px; min-height: clamp(150px, 20vh, 220px); }
#areas .tile .material-symbols-outlined { font-size: clamp(30px, 2.4vw, 40px); }
#areas .tile h3 { font-size: clamp(19px, 1.5vw, 26px); }
#areas .tile p { font-size: clamp(15px, 1.05vw, 19px); }

/* Engineering pipe: every row (icon · label · title · platforms · note) lines up across columns */
.eng-pipe { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); grid-template-rows: repeat(5, auto); }
.eng-pipe li { display: grid; grid-row: span 5; grid-template-rows: subgrid; row-gap: 8px; justify-content: stretch; align-content: start; }
.eng-pipe li > * { align-self: start; }
.eng-pipe em { margin-top: 6px; align-self: end; }
@media (max-width: 900px) { .eng-pipe { grid-template-columns: 1fr 1fr; } }
.eng-pipe em { align-self: start; margin-top: 14px; }
.eng-pipe em { font-family: var(--sans); letter-spacing: 0; }
.cap { grid-template-columns: clamp(200px, 18vw, 280px) 1fr; }
.photo-credit { margin: -6px 0 0; font-size: clamp(11.5px, 0.75vw, 13.5px); color: var(--ink-4); text-align: right; }

/* Why-now stats */
.stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(12px, 1.4vw, 20px); }
.stat { padding: clamp(18px, 2.6vh, 28px) clamp(18px, 1.8vw, 26px); border: 1px solid var(--line); border-radius: 10px; background: #fff; display: flex; flex-direction: column; gap: 8px; }
.stat strong { font-family: var(--head); font-size: clamp(34px, 3.4vw, 56px); font-weight: 800; color: var(--navy); line-height: 1; letter-spacing: -0.02em; }
.stat span { font-size: clamp(14px, 0.95vw, 18px); line-height: 1.45; color: var(--ink-2); }
.stat--hot { border-color: var(--blue); background: var(--mist); }
.stat--hot strong { color: var(--blue); }
#whynow .split .takeaway { font-size: clamp(15px, 1.05vw, 19px); font-weight: 400; }
#whynow .split .takeaway strong { font-weight: 700; }
@media (max-width: 760px) { .stats { grid-template-columns: 1fr; } }

/* Gates: title · data · owner rows line up across all seven steps */
.gates { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); grid-template-rows: repeat(3, auto); min-height: 0; overflow: visible; }
.gates__step { display: grid; grid-row: span 3; grid-template-rows: subgrid; row-gap: 8px; align-content: start; justify-items: center; min-width: 0; padding: clamp(16px, 2.2vh, 24px) 10px; }
.gates__step > * { align-self: start; }
.gates__step em { margin-top: 2px; font-family: var(--sans); letter-spacing: 0; }
@media (max-width: 900px) { .gates { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Solution-selection principles */
.principles { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(10px, 1.2vw, 16px); }
.principle { padding: clamp(18px, 2.6vh, 28px) clamp(16px, 1.4vw, 22px); background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--blue); border-radius: 10px; display: flex; flex-direction: column; gap: 10px; }
.principle__n { font-family: var(--head); font-weight: 800; font-size: clamp(22px, 1.8vw, 30px); color: var(--blue); line-height: 1; }
.principle h3 { font-size: clamp(16px, 1.2vw, 21px); color: var(--navy); line-height: 1.25; }
.principle p { margin: 0; font-size: clamp(14px, 0.95vw, 18px); line-height: 1.5; color: var(--ink-2); }
@media (max-width: 1000px) { .principles { grid-template-columns: 1fr 1fr; } }
.takeaway, .footnote, .principle p { text-wrap: balance; }

/* Why-now: market · trends · common problems */
.trends { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(12px, 1.4vw, 20px); }
.trend { padding: clamp(20px, 2.8vh, 30px) clamp(18px, 1.8vw, 26px); background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--blue); border-radius: 10px; display: flex; flex-direction: column; gap: 12px; }
.trend:last-child { border-top-color: var(--red); }
.trend .material-symbols-outlined { font-size: clamp(28px, 2.2vw, 36px); color: var(--blue); }
.trend:last-child .material-symbols-outlined { color: var(--red); }
.trend h3 { font-size: clamp(18px, 1.4vw, 24px); color: var(--navy); }
.trend ul { margin: 0; padding-left: 18px; display: grid; gap: 10px; }
.trend li { font-size: clamp(14.5px, 1vw, 19px); line-height: 1.45; color: var(--ink-2); text-wrap: pretty; }
@media (max-width: 900px) { .trends { grid-template-columns: 1fr; } }

/* Cards: no coloured top bar — one thin border everywhere; emphasis via tint + heading colour */
.stack, .horizon, .svc-card, .principle, .trend, .compare__col, .compare__col--bad, .compare__col--good { border-top: 1px solid var(--line) !important; }
.trend:last-child { border-top-color: var(--line) !important; }

/* Services: number · title · what · won't · measured-by rows line up across each row of cards */
.svc-grid { grid-auto-rows: auto; row-gap: clamp(12px, 1.6vh, 18px); flex: 0 0 auto !important; }
.svc-card { display: grid !important; grid-row: span 5; grid-template-rows: subgrid; row-gap: 8px; align-content: start; }
.svc-card > * { align-self: start; }
.svc-card__ok { margin-top: 6px !important; }

/* No coloured accent bars on any side — rounded boxes with a thin border or soft tint instead */
.takeaway { border-left: 0 !important; border-radius: 10px; border: 1px solid #d9e3f2 !important; }
.flow li, .eng-proof__item { border-left: 1px solid var(--line) !important; }
.slide--dark .takeaway { border-color: rgba(255,255,255,0.18) !important; }

/* ===== Slide 15 · Segments: A/B/C comparison ===== */
.segs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(12px, 1.4vw, 20px); grid-template-rows: auto auto auto; }
.seg { display: grid; grid-row: span 3; grid-template-rows: subgrid; row-gap: 0; background: #fff; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; box-shadow: 0 10px 30px rgba(7, 27, 53, 0.06); }
.seg__head { display: flex; align-items: center; gap: 16px; padding: clamp(18px, 2.4vh, 26px) clamp(18px, 1.6vw, 24px); background: var(--navy); color: #fff; }
.seg__letter { flex: 0 0 auto; width: clamp(46px, 3.6vw, 60px); height: clamp(46px, 3.6vw, 60px); border-radius: 50%; display: grid; place-items: center; background: var(--lime); color: var(--navy); font-family: var(--head); font-weight: 800; font-size: clamp(24px, 2vw, 32px); }
.seg__head h3 { margin: 0; font-size: clamp(17px, 1.3vw, 22px); line-height: 1.3; color: #fff; }
.seg__row { padding: clamp(16px, 2.2vh, 22px) clamp(18px, 1.6vw, 24px); }
.seg__row + .seg__row { border-top: 1px solid var(--line); }
.seg__row--go { background: var(--mist); }
.seg__k { display: flex; align-items: center; gap: 6px; margin: 0 0 8px; font-size: clamp(12px, 0.8vw, 14px); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--blue); }
.seg__k .material-symbols-outlined { font-size: 18px; }
.seg__row p:last-child { margin: 0; font-size: clamp(15px, 1.05vw, 19px); line-height: 1.5; color: var(--ink-2); }
.seg__row--go p:last-child { color: var(--navy); font-weight: 500; }

/* ===== Slide 19 · Teams: hub + rows ===== */
.teams-layout { display: grid; grid-template-columns: minmax(220px, 0.9fr) 3fr; gap: clamp(14px, 1.6vw, 24px); align-items: stretch; }
.teams-hub { background: var(--navy); color: #fff; border-radius: 14px; padding: clamp(22px, 3vh, 34px) clamp(20px, 1.8vw, 28px); display: flex; flex-direction: column; justify-content: center; gap: 8px; background-image: radial-gradient(circle at 100% 0%, rgba(155,252,0,0.18), transparent 55%); }
.teams-hub .material-symbols-outlined { font-size: clamp(40px, 3.2vw, 56px); color: var(--lime); }
.teams-hub strong { font-family: var(--head); font-size: clamp(24px, 2vw, 34px); line-height: 1.1; }
.teams-hub > span:not(.material-symbols-outlined) { color: var(--muted-on-dark); font-size: clamp(14px, 0.95vw, 17px); }
.teams-hub p { margin: 16px 0 0; padding-top: 16px; border-top: 1px solid rgba(255,255,255,0.16); font-size: clamp(13.5px, 0.9vw, 16px); line-height: 1.5; color: rgba(255,255,255,0.78); }
.team-rows { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.team-row { display: grid; grid-template-columns: auto 1.4fr 1fr; gap: clamp(12px, 1.2vw, 20px); align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: clamp(10px, 1.4vh, 14px) clamp(14px, 1.2vw, 18px); }
.team-row__ic { width: 42px; height: 42px; border-radius: 10px; display: grid; place-items: center; background: var(--mist); color: var(--blue); font-size: 24px; }
.team-row__main h3 { margin: 0 0 2px; font-size: clamp(15.5px, 1.1vw, 19px); color: var(--navy); }
.team-row__main p { margin: 0; font-size: clamp(13.5px, 0.92vw, 17px); line-height: 1.45; color: var(--ink-2); }
.team-row__need { margin: 0; font-size: clamp(13px, 0.88vw, 16px); line-height: 1.4; color: var(--navy); font-weight: 500; padding-left: clamp(12px, 1.2vw, 18px); border-left: 1px dashed var(--line); }
.team-row__need span { display: block; font-size: 11.5px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-4); margin-bottom: 2px; }

/* ===== Slide 20 · Services: numeral cards ===== */
.svc2-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(12px, 1.4vw, 18px); }
.svc2 { position: relative; display: flex; gap: clamp(12px, 1vw, 16px); background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: clamp(18px, 2.4vh, 26px) clamp(16px, 1.4vw, 22px); overflow: hidden; }
.svc2__n { font-family: var(--head); font-weight: 800; font-size: clamp(34px, 2.8vw, 48px); line-height: 0.9; color: transparent; -webkit-text-stroke: 1.5px var(--blue); flex: 0 0 auto; }
.svc2__body { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.svc2__body h3 { margin: 0; font-size: clamp(16.5px, 1.2vw, 21px); color: var(--navy); line-height: 1.25; }
.svc2__what { margin: 0; font-size: clamp(14px, 0.95vw, 17.5px); line-height: 1.45; color: var(--ink-2); }
.svc2__ok, .svc2__wont { margin: 0; display: flex; gap: 8px; align-items: flex-start; font-size: clamp(13px, 0.88vw, 16px); line-height: 1.4; }
.svc2__ok { color: var(--navy); margin-top: 4px; }
.svc2__wont { color: var(--ink-3); }
.svc2__ok .material-symbols-outlined { color: #2f9e44; font-size: 19px; }
.svc2__wont .material-symbols-outlined { color: var(--red); font-size: 19px; }
.svc2 b { font-weight: 700; }

/* ===== Slide 21 · AI training timetable ===== */
.timetable { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.tt-row { display: grid; grid-template-columns: clamp(130px, 11vw, 180px) clamp(170px, 14vw, 240px) 1fr; gap: clamp(12px, 1.2vw, 20px); align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: clamp(10px, 1.5vh, 16px) clamp(14px, 1.2vw, 20px); }
.tt-row__fmt { justify-self: start; padding: 6px 12px; border-radius: 999px; background: var(--mist); color: var(--blue); font-weight: 700; font-size: clamp(12.5px, 0.85vw, 15px); white-space: nowrap; }
.tt-row h3 { margin: 0; font-size: clamp(16px, 1.15vw, 20px); color: var(--navy); }
.tt-row__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip { padding: 5px 11px; border-radius: 999px; border: 1px solid var(--line); background: #fbfcfe; font-size: clamp(13px, 0.88vw, 16px); color: var(--ink-2); }
.tt-row--all { background: var(--navy); border-color: var(--navy); }
.tt-row--all h3 { color: #fff; }
.tt-row--all .tt-row__fmt { background: var(--lime); color: var(--navy); }
.tt-row--all .chip { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.22); color: #fff; }

@media (max-width: 1000px) {
	.segs, .svc2-grid { grid-template-columns: 1fr; }
	.seg { grid-row: auto; grid-template-rows: auto; }
	.teams-layout { grid-template-columns: 1fr; }
	.team-row, .tt-row { grid-template-columns: 1fr; }
	.team-row__need { border-left: 0; padding-left: 0; }
}

/* ===== Services · three-step flow ===== */
.svc3-flow { display: grid; grid-template-columns: 1fr 1.9fr 1.3fr; gap: clamp(14px, 1.6vw, 26px); align-items: stretch; }
.svc3-col { position: relative; display: flex; flex-direction: column; gap: 10px; }
.svc3-col + .svc3-col::before { content: "arrow_forward"; font-family: "Material Symbols Outlined"; position: absolute; left: calc(-1 * clamp(14px, 1.6vw, 26px) / 2 - 11px); top: 55%; font-size: 22px; color: var(--blue); }
.svc3-col__k { margin: 0; display: flex; align-items: baseline; gap: 8px; font-size: clamp(14px, 1vw, 18px); font-weight: 600; color: var(--navy); }
.svc3-col__k b { font-size: clamp(11.5px, 0.78vw, 13.5px); letter-spacing: 0.08em; text-transform: uppercase; color: var(--blue); }
.svc3-col__cards { flex: 1; display: grid; gap: 10px; }
.svc3-col--3 .svc3-col__cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.svc3-col--2 .svc3-col__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.svc3 { display: flex; flex-direction: column; gap: 8px; background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: clamp(16px, 2.2vh, 24px) clamp(14px, 1.2vw, 20px); box-shadow: 0 8px 24px rgba(7, 27, 53, 0.05); }
.svc3__top { display: flex; align-items: center; justify-content: space-between; }
.svc3__ic { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--mist); color: var(--blue); font-size: 24px; }
.svc3__n { font-family: var(--head); font-weight: 800; font-size: clamp(15px, 1vw, 18px); color: var(--ink-4); }
.svc3 h3 { margin: 4px 0 0; font-size: clamp(16px, 1.15vw, 20px); line-height: 1.25; color: var(--navy); }
.svc3 p { margin: 0; font-size: clamp(13.5px, 0.92vw, 17px); line-height: 1.45; color: var(--ink-2); }
.svc3__kpi { margin-top: auto !important; padding-top: 10px; border-top: 1px solid var(--line); color: var(--navy) !important; font-weight: 500; }
.svc3__kpi span { display: block; font-size: 11.5px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: #2f9e44; margin-bottom: 2px; }
.svc3--hot { background: var(--navy); border-color: var(--navy); background-image: radial-gradient(circle at 100% 0%, rgba(155,252,0,0.16), transparent 60%); }
.svc3--hot h3 { color: #fff; }
.svc3--hot p { color: rgba(255,255,255,0.78); }
.svc3--hot .svc3__ic { background: rgba(155,252,0,0.14); color: var(--lime); }
.svc3--hot .svc3__n { color: rgba(255,255,255,0.5); }
.svc3--hot .svc3__kpi { border-top-color: rgba(255,255,255,0.16); color: #fff !important; }
.svc3--hot .svc3__kpi span { color: var(--lime); }
@media (max-width: 1100px) { .svc3-flow, .svc3-col--3 .svc3-col__cards, .svc3-col--2 .svc3-col__cards { grid-template-columns: 1fr; } .svc3-col + .svc3-col::before { display: none; } }
.principle-grid { flex: 0 0 auto !important; align-items: start; } .principle-grid .principle { height: auto; }

/* ===== Types · diagnostic rows ===== */
.diag { display: grid; gap: 10px; }
.diag__head, .diag__row { display: grid; grid-template-columns: minmax(260px, 1.05fr) 1.2fr 1.35fr; column-gap: clamp(16px, 1.8vw, 28px); align-items: center; }
.diag__head { padding: 0 clamp(18px, 1.6vw, 26px); font-size: clamp(12px, 0.8vw, 14px); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-4); }
.diag__head > span { display: flex; align-items: center; gap: 6px; }
.diag__head .material-symbols-outlined { font-size: 18px; color: var(--blue); }
.diag__row { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: clamp(16px, 2.4vh, 26px) clamp(18px, 1.6vw, 26px); box-shadow: 0 8px 24px rgba(7, 27, 53, 0.05); }
.diag__who { display: flex; align-items: center; gap: 14px; }
.diag__letter { flex: 0 0 auto; width: clamp(44px, 3.4vw, 56px); height: clamp(44px, 3.4vw, 56px); border-radius: 50%; display: grid; place-items: center; background: var(--navy); color: var(--lime); font-family: var(--head); font-weight: 800; font-size: clamp(22px, 1.8vw, 30px); }
.diag__who h3 { margin: 0; font-size: clamp(17px, 1.3vw, 23px); line-height: 1.25; color: var(--navy); }
.diag__signs { margin: 0; font-size: clamp(14.5px, 1vw, 18.5px); line-height: 1.5; color: var(--ink-2); }
.diag__start { margin: 0; display: flex; gap: 10px; align-items: flex-start; padding: clamp(12px, 1.6vh, 16px) clamp(14px, 1.2vw, 18px); border-radius: 10px; background: var(--mist); font-size: clamp(14.5px, 1vw, 18.5px); line-height: 1.5; color: var(--navy); font-weight: 500; }
.diag__start .material-symbols-outlined { color: var(--blue); font-size: 20px; margin-top: 2px; }
@media (max-width: 1000px) { .diag__head { display: none; } .diag__row { grid-template-columns: 1fr; row-gap: 12px; } }
.principle-grid { align-items: stretch !important; }

/* ===== Types · three vertical stages ===== */
.stages { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(4, auto); gap: 0 clamp(12px, 1.4vw, 20px); }
.stage { display: grid; grid-row: span 4; grid-template-rows: subgrid; row-gap: 12px; background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: clamp(18px, 2.4vh, 26px) clamp(18px, 1.6vw, 24px); box-shadow: 0 8px 24px rgba(7, 27, 53, 0.05); }
.stage__head { display: flex; align-items: center; gap: 12px; }
.stage__ic { width: 48px; height: 48px; flex: 0 0 auto; border-radius: 12px; display: grid; place-items: center; background: var(--navy); color: var(--lime); font-size: 26px; }
.stage__tag { font-size: clamp(12.5px, 0.85vw, 15px); font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--blue); line-height: 1.3; }
.stage h3 { margin: 0; font-size: clamp(18px, 1.35vw, 24px); line-height: 1.25; color: var(--navy); }
.stage__block p { margin: 0; font-size: clamp(14.5px, 1vw, 18.5px); line-height: 1.5; color: var(--ink-2); }
.stage__k { display: flex; align-items: center; gap: 6px; margin-bottom: 6px !important; font-size: clamp(12px, 0.8vw, 14px) !important; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-4) !important; }
.stage__k .material-symbols-outlined { font-size: 18px; color: var(--blue); }
.stage__block--go { background: var(--mist); border-radius: 10px; padding: clamp(12px, 1.6vh, 16px) clamp(14px, 1.2vw, 18px); }
.stage__block--go p:last-child { color: var(--navy); font-weight: 500; }
@media (max-width: 1000px) { .stages { grid-template-columns: 1fr; } .stage { grid-row: auto; grid-template-rows: auto; } }
.stage__k { letter-spacing: 0.05em; color: var(--ink-4) !important; } .stage__block--go .stage__k { color: var(--blue) !important; }
