/* =====================================================================
   LCGC Thermal — design system
   ===================================================================== */

/* ---------- Fonts (self-hosted, variable) ---------- */
@font-face {
	font-family: 'Inter';
	src: url('../fonts/inter-var-latin.woff2') format('woff2');
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Space Grotesk';
	src: url('../fonts/space-grotesk-var-latin.woff2') format('woff2');
	font-weight: 300 700;
	font-style: normal;
	font-display: swap;
}

/* ---------- Tokens ---------- */
:root {
	--navy-950: #060f20;
	--navy-900: #0b1b34;
	--navy-800: #102544;
	--navy-700: #17325a;
	--ink: #14263f;
	--ink-soft: #46586f;
	--ink-mute: #6b7c92;
	--paper: #ffffff;
	--mist: #f4f7fb;
	--mist-2: #e9eef6;
	--line: #dde5ef;
	--flame: #ff5a3c;
	--amber: #ffb13c;
	--teal: #00b4d8;
	--grad-heat: linear-gradient(100deg, #ff5a3c, #ff8a3c 55%, #ffb13c);
	--grad-cool: linear-gradient(120deg, #00b4d8, #4361ee);
	--radius: 16px;
	--radius-lg: 24px;
	--shadow-sm: 0 1px 2px rgba(11, 27, 52, .06), 0 4px 12px rgba(11, 27, 52, .06);
	--shadow-md: 0 6px 24px rgba(11, 27, 52, .10);
	--shadow-lg: 0 20px 50px rgba(11, 27, 52, .16);
	--font-head: 'Space Grotesk', 'Inter', system-ui, sans-serif;
	--font-body: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--container: 1240px;
	--header-h: 76px;
}

/* ---------- Reset-ish ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
html, body { overflow-x: clip; }
::selection { background: rgba(255, 90, 60, .25); color: var(--navy-950); }
/* Slim branded scrollbar */
::-webkit-scrollbar { width: 11px; }
::-webkit-scrollbar-track { background: var(--mist); }
::-webkit-scrollbar-thumb { background: linear-gradient(var(--flame), var(--amber)); border-radius: 8px; border: 3px solid var(--mist); }
::-webkit-scrollbar-thumb:hover { border-width: 2px; }
body {
	margin: 0;
	font-family: var(--font-body);
	font-size: 16.5px;
	line-height: 1.65;
	color: var(--ink);
	background: var(--paper);
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--flame); text-decoration: none; }
a:hover { color: #e14526; }
h1, h2, h3, h4, h5 {
	font-family: var(--font-head);
	line-height: 1.15;
	color: var(--navy-900);
	margin: 0 0 .5em;
	letter-spacing: -.015em;
	text-wrap: balance;
}
h1 { font-size: clamp(2.1rem, 4.4vw, 3.4rem); font-weight: 700; }
h2 { font-size: clamp(1.8rem, 3.2vw, 2.75rem); font-weight: 700; letter-spacing: -.02em; }
h3 { font-size: 1.25rem; font-weight: 600; }
p { margin: 0 0 1em; }
ul { padding-left: 1.2em; }
.container { max-width: var(--container); margin-inline: auto; padding-inline: clamp(18px, 4vw, 32px); }
.icon { flex: none; vertical-align: -.18em; }

.skip-link {
	position: absolute; left: -9999px; top: 0; z-index: 999;
	background: var(--navy-900); color: #fff; padding: 10px 18px; border-radius: 0 0 10px 0;
}
.skip-link:focus { left: 0; color: #fff; }

/* ---------- Buttons ---------- */
.btn {
	display: inline-flex; align-items: center; gap: 9px;
	font-family: var(--font-head); font-weight: 600; font-size: 1rem;
	padding: 14px 26px; border-radius: 999px; border: 2px solid transparent;
	cursor: pointer; transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s;
	line-height: 1.2; text-align: center;
}
.btn:hover { transform: translateY(-2px); }
.btn { position: relative; overflow: hidden; }
.btn::after {
	content: ""; position: absolute; top: 0; bottom: 0; width: 44%; left: -60%;
	background: linear-gradient(105deg, transparent, rgba(255,255,255,.45), transparent);
	transform: skewX(-20deg); transition: none; pointer-events: none;
}
.btn:hover::after { left: 130%; transition: left .6s ease; }
.btn--sm { padding: 10px 20px; font-size: .92rem; }
.btn--primary { background: var(--grad-heat); color: #fff; box-shadow: 0 8px 20px rgba(255, 90, 60, .35); }
.btn--primary:hover { color: #fff; box-shadow: 0 12px 28px rgba(255, 90, 60, .45); }
.btn--dark { background: var(--navy-900); color: #fff; }
.btn--dark:hover { color: #fff; background: var(--navy-800); }
.btn--ghost { border-color: var(--line); color: var(--navy-900); background: #fff; }
.btn--ghost:hover { border-color: var(--navy-900); color: var(--navy-900); }
.btn--light { background: #fff; color: var(--navy-900); }
.btn--light:hover { color: var(--flame); }
.btn--ghost-light { border-color: rgba(255,255,255,.4); color: #fff; }
.btn--ghost-light:hover { border-color: #fff; color: #fff; }

.kicker {
	display: inline-flex; align-items: center; gap: 8px;
	font-family: var(--font-head); font-size: .8rem; font-weight: 600;
	letter-spacing: .14em; text-transform: uppercase; color: var(--flame);
	margin: 0 0 14px;
}
.kicker::before { content: ""; width: 26px; height: 2px; background: var(--grad-heat); border-radius: 2px; }

/* ---------- Topbar ---------- */
.topbar { background: var(--navy-950); color: #b9c6d8; font-size: .8rem; }
.topbar__inner { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 36px; flex-wrap: wrap; }
.topbar__note { margin: 0; display: flex; align-items: center; gap: 7px; color: #b9c6d8; }
.topbar__links { display: flex; gap: 10px 18px; flex-wrap: wrap; justify-content: center; }
.topbar__links a { color: #dbe4f0; display: inline-flex; align-items: center; gap: 6px; }
.topbar__links a:hover { color: var(--amber); }

/* ---------- Header — floating island ---------- */
.scroll-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 300; pointer-events: none; }
.scroll-progress span { display: block; height: 100%; width: 100%; background: var(--grad-heat); transform: scaleX(0); transform-origin: left; }

.site-header {
	position: sticky; top: 12px; z-index: 130;
	background: transparent; border: 0;
	padding-inline: 14px;
	margin-bottom: -66px; /* pull following content up by exactly the island height — no more, or it covers the topbar */
	transition: top .25s ease;
}
.hero__inner { --hero-extra-top: 92px; }
.page-hero .container { padding-top: calc(clamp(52px, 7vw, 88px) + 86px); }
.site-header__inner.island {
	display: flex; align-items: center; flex-wrap: nowrap; gap: 14px; height: 66px;
	max-width: 1240px; margin-inline: auto;
	background: rgba(255, 255, 255, .82);
	backdrop-filter: blur(18px) saturate(1.5); -webkit-backdrop-filter: blur(18px) saturate(1.5);
	border: 1px solid rgba(255, 255, 255, .7);
	box-shadow: 0 8px 32px rgba(11, 27, 52, .10), inset 0 1px 0 rgba(255,255,255,.9);
	border-radius: 20px;
	padding: 8px 10px 8px 18px;
	transition: box-shadow .3s ease, background .3s ease, border-radius .3s;
}
.site-header.is-stuck .island { box-shadow: 0 14px 44px rgba(11, 27, 52, .18); background: rgba(255, 255, 255, .92); }
.island .nav { margin-inline: auto; min-width: 0; }
.site-header__actions { display: flex; align-items: center; gap: 12px; margin-left: 0; flex: none; }
.brand { flex: none; }
@media (max-width: 1500px) { .site-header .brand__tag { display: none; } }

.brand { display: inline-flex; align-items: center; gap: 12px; }
.brand__text { display: flex; flex-direction: column; line-height: 1.1; }
.brand__name { font-family: var(--font-head); font-weight: 700; font-size: 1.3rem; color: var(--navy-900); letter-spacing: -.02em; }
.brand__name em { font-style: normal; background: var(--grad-heat); -webkit-background-clip: text; background-clip: text; color: transparent; }
.brand__tag { font-size: .64rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ink-mute); }

/* ---------- Nav ---------- */
.nav__head, .nav__foot { display: none; }
.nav__list { list-style: none; display: flex; align-items: center; gap: 2px; margin: 0; padding: 0; }
.nav__item > a, .nav__link {
	position: relative;
	display: inline-flex; align-items: center; gap: 5px; white-space: nowrap;
	font-family: var(--font-head); font-weight: 600; font-size: .94rem; color: var(--navy-800);
	padding: 11px 13px; border-radius: 12px; background: none; border: 0; cursor: pointer;
	transition: color .18s;
}
.nav__item > a::after, .nav__link::after {
	content: ""; position: absolute; left: 13px; right: 13px; bottom: 5px; height: 2.5px; border-radius: 3px;
	background: var(--grad-heat);
	transform: scaleX(0); transform-origin: left;
	transition: transform .28s cubic-bezier(.4, 0, .2, 1);
}
.nav__item > a:hover, .nav__link:hover, .nav__item.is-open .nav__link { color: var(--flame); }
.nav__item > a:hover::after, .nav__link:hover::after, .nav__item.is-open .nav__link::after { transform: scaleX(1); }
.nav__link .icon--chevron { transition: transform .25s ease; opacity: .55; }
.nav__item.is-open .nav__link .icon--chevron, .nav__item--mega:hover .nav__link .icon--chevron, .nav__item--drop:hover .nav__link .icon--chevron { transform: rotate(180deg); opacity: 1; }

/* Sliding pill indicator (JS-driven) */
.nav__pill {
	position: absolute; z-index: 0; top: 0; left: 0; height: 100%;
	background: linear-gradient(135deg, rgba(255, 90, 60, .12), rgba(255, 177, 60, .14));
	border: 1px solid rgba(255, 90, 60, .18);
	border-radius: 14px; opacity: 0;
	transition: transform .32s cubic-bezier(.3, .9, .3, 1), width .32s cubic-bezier(.3, .9, .3, 1), opacity .2s;
	pointer-events: none;
}
.nav__list { position: relative; }
/* NOTE: .nav__item must stay non-positioned — the mega panel centers on the header, not the item.
   Links get z-index so they paint above the sliding pill. */
.nav__item > a, .nav__link { z-index: 1; }

/* Shared floating panel look — fully opaque so page content never bleeds through */
.drop, .mega {
	background: #ffffff;
	border: 1px solid rgba(221, 229, 239, .9);
	border-radius: 20px;
	box-shadow: 0 30px 70px rgba(11, 27, 52, .18), 0 4px 18px rgba(11, 27, 52, .08);
	opacity: 0; visibility: hidden;
	transform: translateY(14px) scale(.985); transform-origin: top center;
	transition: opacity .22s cubic-bezier(.3, .9, .4, 1), transform .22s cubic-bezier(.3, .9, .4, 1), visibility .22s;
}
/* invisible hover bridge across the gap between island and panel */
.drop::before, .mega::before { content: ""; position: absolute; left: 0; right: 0; top: -18px; height: 18px; }

/* Dropdown */
.nav__item--drop { position: relative; }
.drop {
	position: absolute; top: calc(100% + 14px); left: 50%; min-width: 264px;
	translate: -50% 0;
	list-style: none; margin: 0; padding: 10px;
}
.nav__item--drop.is-open .drop, .nav__item--drop:hover .drop { opacity: 1; visibility: visible; transform: translateY(0) scale(1); }
.drop a { display: flex; align-items: center; gap: 12px; padding: 13px 16px; border-radius: 13px; color: var(--ink); font-weight: 600; font-family: var(--font-head); font-size: .95rem; transition: background .15s, color .15s, padding-left .2s; }
.drop a .icon { color: var(--flame); }
.drop a:hover { background: var(--mist); color: var(--flame); padding-left: 20px; }

/* Mega menu — floating panel */
.mega {
	position: absolute; top: calc(100% + 14px); left: 50%;
	width: min(1216px, calc(100vw - 56px));
	translate: -50% 0;
	max-height: calc(100vh - var(--header-h) - 70px); overflow-y: auto;
}
.nav__item--mega.is-open .mega, .nav__item--mega:hover .mega { opacity: 1; visibility: visible; transform: translateY(0) scale(1); }
.mega__grid { display: grid; gap: 34px; padding: 34px 38px; grid-template-columns: repeat(4, 1fr); }
.mega__grid--products { grid-template-columns: minmax(200px, .8fr) 2fr 1.05fr; }
.mega__grid--products .mega__col:nth-child(2) .mega__sublist { grid-template-columns: 1fr 1fr; column-gap: 26px; }
.mega__grid--apps { grid-template-columns: 1fr 300px; }
.mega__col--span2 { grid-column: span 1; }
.mega__heading {
	display: flex; align-items: center; gap: 9px;
	font-family: var(--font-head); font-weight: 700; font-size: 1.04rem; color: var(--navy-900);
	margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid var(--line);
}
.mega__heading::before { content: ""; width: 8px; height: 8px; border-radius: 3px; background: var(--grad-heat); flex: none; }
.mega__heading .icon { margin-left: auto; opacity: 0; transform: translateX(-6px); transition: .2s; color: var(--flame); }
.mega__heading:hover { color: var(--flame); }
.mega__heading:hover .icon { opacity: 1; transform: none; }
.mega__sublist { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.mega__sublist--cols { grid-template-columns: 1fr 1fr; column-gap: 22px; }
.mega__sublist a {
	position: relative; display: block; padding: 8px 12px 8px 16px; margin-left: -12px; border-radius: 9px;
	color: var(--ink-soft); font-size: .9rem; font-weight: 500; white-space: nowrap;
	overflow: hidden; text-overflow: ellipsis;
	transition: background .15s, color .15s, padding-left .2s;
}
.mega__sublist a::before {
	content: ""; position: absolute; left: 4px; top: 50%; translate: 0 -50%;
	width: 4px; height: 4px; border-radius: 50%; background: var(--flame);
	opacity: 0; transition: opacity .18s;
}
.mega__sublist a:hover { background: var(--mist); color: var(--flame); padding-left: 20px; }
.mega__sublist a:hover::before { opacity: 1; }
.mega__col--cta {
	position: relative; overflow: hidden;
	background: linear-gradient(150deg, var(--navy-900), var(--navy-950)); color: #c6d2e2;
	border-radius: 16px; padding: 26px; align-self: stretch;
	display: flex; flex-direction: column; justify-content: center;
}
.mega__col--cta::before {
	content: ""; position: absolute; inset: 0;
	background: radial-gradient(120% 100% at 100% 0%, rgba(255, 90, 60, .28), transparent 55%);
}
.mega__col--cta > * { position: relative; }
.mega__cta-title { font-family: var(--font-head); font-weight: 700; color: #fff; margin-bottom: 6px; font-size: 1.05rem; }
.mega__cta-text { font-size: .87rem; color: #a9b9cd; margin-bottom: 18px; }

/* Mobile toggle */
.nav-toggle { display: none; width: 44px; height: 44px; border: 1px solid var(--line); background: #fff; border-radius: 12px; cursor: pointer; padding: 10px; flex-direction: column; justify-content: center; gap: 5px; }
.nav-toggle span { display: block; height: 2px; border-radius: 2px; background: var(--navy-900); transition: transform .25s, opacity .2s; }
.nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ---------- Hero ---------- */
.hero {
	position: relative; overflow: hidden; color: #fff;
	background: linear-gradient(160deg, var(--navy-950), var(--navy-900) 55%, var(--navy-800));
}
.hero::before {
	content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .5; z-index: 1;
	background-image: radial-gradient(rgba(255,255,255,.13) 1px, transparent 1.4px);
	background-size: 34px 34px;
	mask-image: radial-gradient(800px 500px at 70% 40%, #000, transparent 75%);
	-webkit-mask-image: radial-gradient(800px 500px at 70% 40%, #000, transparent 75%);
}

/* Animated gradient mesh — slowly drifting heat blobs */
.hero__mesh { position: absolute; inset: -20%; pointer-events: none; filter: blur(70px); }
.hero__mesh i { position: absolute; border-radius: 50%; opacity: .5; will-change: transform; }
.hero__mesh i:nth-child(1) { width: 46vw; height: 46vw; left: 60%; top: -18%; background: radial-gradient(circle, rgba(0,180,216,.5), transparent 65%); animation: mesh-a 16s ease-in-out infinite alternate; }
.hero__mesh i:nth-child(2) { width: 40vw; height: 40vw; left: -12%; top: 48%; background: radial-gradient(circle, rgba(255,90,60,.55), transparent 65%); animation: mesh-b 19s ease-in-out infinite alternate; }
.hero__mesh i:nth-child(3) { width: 30vw; height: 30vw; left: 38%; top: 62%; background: radial-gradient(circle, rgba(255,177,60,.35), transparent 65%); animation: mesh-c 22s ease-in-out infinite alternate; }
@keyframes mesh-a { to { transform: translate(-10%, 14%) scale(1.15); } }
@keyframes mesh-b { to { transform: translate(12%, -10%) scale(1.1); } }
@keyframes mesh-c { to { transform: translate(-14%, -12%) scale(1.25); } }

/* Rising heat particles */
.hero__particles { position: absolute; inset: 0; pointer-events: none; z-index: 1; }
.hero__particles span {
	--i: 0;
	position: absolute; bottom: -12px;
	left: calc((var(--i) * 6.15%) + 2%);
	width: calc(3px + (var(--i) - 9) * (var(--i) - 9) * .06px);
	height: calc(3px + (var(--i) - 9) * (var(--i) - 9) * .06px);
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255,177,60,.9), rgba(255,90,60,.35) 70%, transparent);
	opacity: 0;
	animation: rise calc(9s + var(--i) * 1.3s) linear infinite;
	animation-delay: calc(var(--i) * -1.7s);
}
@keyframes rise {
	0% { transform: translateY(0) translateX(0) scale(.6); opacity: 0; }
	12% { opacity: .8; }
	55% { transform: translateY(-46vh) translateX(14px) scale(1); opacity: .5; }
	100% { transform: translateY(-92vh) translateX(-10px) scale(.5); opacity: 0; }
}

/* Cursor-following spotlight */
.hero__spot {
	position: absolute; inset: 0; pointer-events: none; z-index: 1; opacity: 0; transition: opacity .5s;
	background: radial-gradient(420px 420px at var(--mx, 50%) var(--my, 40%), rgba(255,140,80,.14), transparent 70%);
}
.hero:hover .hero__spot { opacity: 1; }

.hero__inner { position: relative; z-index: 2; display: grid; grid-template-columns: 1.05fr .95fr; gap: 48px; align-items: center; padding-block: calc(clamp(60px, 8vw, 108px) + var(--hero-extra-top, 0px)) clamp(96px, 12vw, 168px); }

/* Entry animation for hero elements */
.js .hero-in { opacity: 0; transform: translateY(28px); animation: hero-in .8s cubic-bezier(.22,.8,.3,1) forwards; animation-delay: calc(var(--d, 0) * .12s); }
@keyframes hero-in { to { opacity: 1; transform: none; } }
.hero__badge {
	display: inline-flex; align-items: center; gap: 9px;
	background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .16);
	padding: 8px 16px; border-radius: 999px; font-size: .82rem; color: #dbe4f0;
	backdrop-filter: blur(6px); margin-bottom: 22px;
}
.hero__badge .icon { color: var(--amber); }
.hero__title { color: #fff; margin-bottom: 18px; font-size: clamp(2.3rem, 4.8vw, 4rem); letter-spacing: -.03em; line-height: 1.06; }
.hero__title em {
	font-style: normal;
	background: linear-gradient(100deg, #ff5a3c, #ffb13c 40%, #fff2, #ff5a3c 60%, #ffb13c);
	background-size: 250% 100%;
	-webkit-background-clip: text; background-clip: text; color: transparent;
	animation: shine 5s linear infinite;
}
@keyframes shine { to { background-position: -250% 0; } }
.hero__sub { font-size: 1.13rem; color: #c6d2e2; max-width: 56ch; margin-bottom: 30px; }
.hero__actions { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 42px; }
.hero__brands { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; color: #94a6bd; font-size: .84rem; }
.hero__brands strong { font-family: var(--font-head); color: #e6edf6; font-size: 1rem; letter-spacing: .02em; }
.hero__brands span.sep { width: 1px; height: 26px; background: rgba(255,255,255,.18); }

.hero__visual { position: relative; }
.hero__ring {
	position: absolute; inset: -7%; border-radius: 32px; pointer-events: none;
	background: conic-gradient(from var(--ang, 0deg), transparent 0 70%, rgba(255,120,70,.55) 82%, rgba(255,177,60,.9) 88%, transparent 98%);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor; mask-composite: exclude;
	padding: 2px; opacity: .8;
	animation: ring-spin 7s linear infinite;
}
@property --ang { syntax: '<angle>'; initial-value: 0deg; inherits: false; }
@keyframes ring-spin { to { --ang: 360deg; } }
.hero__card {
	position: relative; border-radius: var(--radius-lg); overflow: hidden;
	background: linear-gradient(160deg, #ffffff, #eef3fa 70%, #e4ecf7);
	border: 1px solid rgba(255,255,255,.35);
	padding: 30px; box-shadow: var(--shadow-lg), 0 0 80px rgba(255, 110, 60, .12);
}
.hero__card::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: radial-gradient(70% 60% at 50% 100%, rgba(255,120,60,.14), transparent 70%);
}
.hero__card img { width: 100%; max-height: 420px; object-fit: contain; }
.hero__chip {
	position: absolute; display: flex; align-items: center; gap: 10px;
	background: rgba(10, 22, 40, .82); border: 1px solid rgba(255,255,255,.14); color: #e8eef7;
	border-radius: 14px; padding: 10px 16px; font-size: .82rem; backdrop-filter: blur(8px);
	box-shadow: var(--shadow-md); animation: float 5.5s ease-in-out infinite;
}
.hero__chip strong { font-family: var(--font-head); display: block; font-size: .95rem; }
.hero__chip .icon { color: var(--amber); }
.hero__chip--a { top: 8%; left: -26px; animation-delay: .4s; }
.hero__chip--b { bottom: 10%; right: -18px; }
@keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

/* ---------- Kinetic word rotator ---------- */
.rotator { display: inline-flex; flex-direction: column; height: 1.12em; overflow: hidden; vertical-align: bottom; }
.rotator__list { display: flex; flex-direction: column; animation: rot-words 12s cubic-bezier(.8, 0, .2, 1) infinite; }
.rotator__list span {
	height: 1.12em; line-height: 1.12;
	background: var(--grad-cool); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.rotator__list span:nth-child(odd) { background: var(--grad-heat); -webkit-background-clip: text; background-clip: text; }
@keyframes rot-words {
	0%, 16% { transform: translateY(0); }
	20%, 36% { transform: translateY(-1.12em); }
	40%, 56% { transform: translateY(-2.24em); }
	60%, 76% { transform: translateY(-3.36em); }
	80%, 96% { transform: translateY(-4.48em); }
	100% { transform: translateY(-5.6em); }
}

/* ---------- Animated heat-flow curve (hero bottom) ---------- */
.hero__curve-wrap { position: absolute; left: 0; right: 0; bottom: 0; height: clamp(90px, 11vw, 150px); z-index: 1; pointer-events: none; }
.hero__curve { width: 100%; height: 100%; display: block; }
.hero__curve-line {
	stroke: url(#curveGrad); stroke-width: 2.5; stroke-linecap: round;
	stroke-dasharray: 3200; stroke-dashoffset: 3200;
	animation: draw-curve 4.5s cubic-bezier(.5,0,.2,1) .4s forwards;
	filter: drop-shadow(0 0 8px rgba(255,120,60,.55));
}
.hero__curve-line--ghost { stroke: rgba(255,255,255,.08); stroke-dasharray: none; stroke-dashoffset: 0; animation: none; filter: none; stroke-width: 2.5; }
@keyframes draw-curve { to { stroke-dashoffset: 0; } }
.hero__curve-dot {
	position: absolute; width: 11px; height: 11px; border-radius: 50%;
	background: #ffb13c; box-shadow: 0 0 0 5px rgba(255,177,60,.22), 0 0 18px 4px rgba(255,140,60,.8);
	offset-path: path('M0,92 C120,92 190,90 250,84 C310,78 340,26 392,26 C444,26 462,88 530,91 C630,95 700,58 785,56 C870,54 905,112 1005,114 C1105,116 1150,72 1245,70 C1340,68 1390,90 1440,90');
	offset-distance: 0%;
	animation: dot-travel 9s linear 1.2s infinite;
	opacity: 0;
	left: 0; top: 0;
	transform: scale(calc(100vw / 1440));
	transform-origin: left top;
}
@supports not (offset-path: path('M0,0 L1,1')) { .hero__curve-dot { display: none; } }
@keyframes dot-travel { 0% { offset-distance: 0%; opacity: 0; } 4% { opacity: 1; } 96% { opacity: 1; } 100% { offset-distance: 100%; opacity: 0; } }
.hero__curve-labels { position: absolute; inset-inline: 0; bottom: 8px; display: flex; justify-content: space-between; font-family: var(--font-head); font-size: .68rem; letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.35); }

/* ---------- Marquee strip ---------- */
.marquee { overflow: hidden; background: var(--paper); border-bottom: 1px solid var(--line); padding-block: 18px; }
.marquee__track { display: flex; width: max-content; animation: marquee 36s linear infinite; }
.marquee:hover .marquee__track { animation-play-state: paused; }
.marquee__group { display: flex; align-items: center; gap: 34px; padding-right: 34px; }
.marquee__group span {
	font-family: var(--font-head); font-weight: 700; font-size: clamp(1.1rem, 2vw, 1.5rem); letter-spacing: .06em; white-space: nowrap;
	color: transparent; -webkit-text-stroke: 1.2px rgba(11, 27, 52, .30);
	transition: color .25s, -webkit-text-stroke-color .25s;
}
.marquee__group span:hover { color: var(--flame); -webkit-text-stroke-color: transparent; }
.marquee__group i { color: var(--amber); font-style: normal; font-size: .8rem; }
@keyframes marquee { to { transform: translateX(-50%); } }

/* Stats */
.stats { position: relative; margin-top: -1px; background: var(--navy-950); color: #fff; border-top: 1px solid rgba(255,255,255,.06); }
.stats__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; padding-block: 30px; }
.stat { text-align: center; }
.stat__num { font-family: var(--font-head); font-weight: 700; font-size: clamp(1.7rem, 3vw, 2.5rem); background: var(--grad-heat); -webkit-background-clip: text; background-clip: text; color: transparent; }
.stat__label { color: #9fb0c6; font-size: .88rem; }

/* ---------- Sections ---------- */
.section { padding-block: clamp(64px, 8vw, 104px); }
.section--mist { background: var(--mist); }
.section--dark { background: linear-gradient(160deg, var(--navy-950), var(--navy-900)); color: #c6d2e2; }
.section--dark h2, .section--dark h3 { color: #fff; }
.section__head { max-width: 720px; margin-bottom: clamp(32px, 4vw, 52px); }
.section__head--center { margin-inline: auto; text-align: center; }
.section__head--center .kicker { justify-content: center; }
.section__head--split { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; max-width: none; flex-wrap: wrap; }
.section__lede { font-size: 1.06rem; color: var(--ink-soft); }
.section--dark .section__lede { color: #a9b9cd; }

/* ---------- Cards ---------- */
.grid { display: grid; gap: 26px; }
.grid--2 { grid-template-columns: repeat(2, 1fr); }
.grid--3 { grid-template-columns: repeat(3, 1fr); }
.grid--4 { grid-template-columns: repeat(4, 1fr); }

.card {
	background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg);
	overflow: hidden; display: flex; flex-direction: column;
	transition: transform .22s ease, box-shadow .22s ease, border-color .22s;
}
.card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); border-color: transparent; }
.card__media { aspect-ratio: 4 / 3; background: var(--mist); display: grid; place-items: center; overflow: hidden; position: relative; }
.card__media img { width: 100%; height: 100%; object-fit: contain; padding: 18px; transition: transform .35s ease; }
.card__media--cover img { object-fit: cover; padding: 0; }
.card:hover .card__media img { transform: scale(1.045); }
.card__body { padding: 22px 24px 24px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.card__tag { font-size: .72rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--teal); }
.card__title { margin: 0; font-size: 1.14rem; }
.card__title a { color: inherit; }
.card__title a:hover { color: var(--flame); }
.card__text { color: var(--ink-soft); font-size: .93rem; margin: 0; }
.card__foot { margin-top: auto; padding-top: 12px; }
.card__link { display: inline-flex; align-items: center; gap: 7px; font-family: var(--font-head); font-weight: 600; font-size: .93rem; }
.card__link .icon { transition: transform .2s; }
.card:hover .card__link .icon { transform: translateX(4px); }

/* Category duo cards (homepage) */
.duo { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.duo__card {
	position: relative; border-radius: var(--radius-lg); overflow: hidden; color: #fff;
	min-height: 430px; display: flex; align-items: flex-end; padding: 34px;
	background:
		radial-gradient(120% 90% at 100% 0%, rgba(0, 180, 216, .16), transparent 55%),
		linear-gradient(160deg, var(--navy-800), var(--navy-950));
	transition: transform .22s ease, box-shadow .22s ease;
}
.duo__card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.duo__img {
	position: absolute; top: 26px; right: 26px; width: min(46%, 260px); aspect-ratio: 1;
	object-fit: contain; background: #fff; border-radius: 18px; padding: 16px;
	box-shadow: 0 18px 44px rgba(0, 0, 0, .45);
	transition: transform .3s ease;
}
.duo__card:hover .duo__img { transform: translateY(-6px) rotate(1.2deg); }
.duo__body { padding-right: 0; max-width: 100%; }
@media (min-width: 621px) { .duo__body { max-width: calc(100% - min(46%, 260px) - 24px); } }
.duo__body { position: relative; z-index: 2; }
.duo__title { color: #fff; font-size: 1.55rem; margin-bottom: 6px; }
.duo__text { color: #c0cddd; font-size: .95rem; max-width: 46ch; margin-bottom: 14px; }
.duo__brand { display: inline-block; font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; color: var(--amber); font-weight: 600; margin-bottom: 10px; }

/* Feature tiles */
.feature { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 28px; transition: transform .2s, box-shadow .2s; }
.feature:hover { transform: translateY(-5px); box-shadow: var(--shadow-md); }
.feature__icon {
	width: 54px; height: 54px; border-radius: 16px; display: grid; place-items: center;
	background: linear-gradient(135deg, rgba(255, 90, 60, .12), rgba(255, 177, 60, .16)); color: var(--flame); margin-bottom: 18px;
}
.feature__title { font-size: 1.08rem; margin-bottom: 6px; }
.feature__text { color: var(--ink-soft); font-size: .92rem; margin: 0; }
.section--dark .feature { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.1); }
.section--dark .feature__text { color: #a9b9cd; }
/* cards keep readable colors inside dark sections — in BOTH themes */
.section--dark .card { color: var(--ink); }
.section--dark .card .card__title, .section--dark .card .card__title a { color: var(--navy-900); }
.section--dark .card .card__title a:hover { color: var(--flame); }
.section--dark .card .card__text { color: var(--ink-soft); }
.section--dark .card .card__link { color: var(--flame); }
[data-theme="dark"] .section--dark .card .card__title,
[data-theme="dark"] .section--dark .card .card__title a { color: #eef3fa; }
[data-theme="dark"] .section--dark .card .card__title a:hover { color: var(--amber); }
[data-theme="dark"] .section--dark .card .card__text { color: var(--ink-soft); }

/* Event details panel */
.event-panel { background: var(--mist); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 24px; margin-bottom: 20px; }
.event-panel h3 { font-size: 1rem; margin-bottom: 14px; }
.event-panel ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.event-panel li { display: flex; gap: 11px; align-items: flex-start; font-size: .93rem; color: var(--ink-soft); }
.event-panel li .icon { color: var(--flame); margin-top: 2px; flex: none; }
.event-panel li strong { color: var(--navy-900); display: block; font-family: var(--font-head); font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; }
[data-theme="dark"] .event-panel { background: var(--mist); }
[data-theme="dark"] .event-panel li strong { color: #eef3fa; }

/* Gradient-border glow on hover (dark technique tiles) */
.feature--glow { position: relative; background-clip: padding-box; }
.feature--glow::before {
	content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1.5px;
	background: linear-gradient(140deg, rgba(255,90,60,.9), rgba(255,177,60,.5) 40%, rgba(0,180,216,.6));
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor; mask-composite: exclude;
	opacity: 0; transition: opacity .3s;
	pointer-events: none;
}
.feature--glow:hover::before { opacity: 1; }
.feature--glow:hover { box-shadow: 0 14px 40px rgba(255, 90, 60, .12); }

/* 3D tilt (JS sets --rx/--ry) */
.tilt { transform-style: preserve-3d; transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translateY(var(--ty, 0)); will-change: transform; }
.card.tilt:hover, .duo__card.tilt:hover { transition: box-shadow .22s ease, border-color .22s; }

/* Back to top */
.to-top {
	position: fixed; right: 22px; bottom: 22px; z-index: 80;
	width: 48px; height: 48px; border-radius: 50%; border: 0; cursor: pointer;
	background: var(--grad-heat); color: #fff; box-shadow: 0 10px 26px rgba(255,90,60,.4);
	display: grid; place-items: center;
	opacity: 0; visibility: hidden; transform: translateY(14px);
	transition: opacity .25s, transform .25s, visibility .25s;
}
.to-top.is-show { opacity: 1; visibility: visible; transform: none; }
.to-top:hover { transform: translateY(-3px); }

/* Embedded PDF viewer (application notes) */
.pdf-viewer { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-sm); }
.pdf-viewer__head { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 16px 22px; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.pdf-viewer__title { display: flex; align-items: center; gap: 10px; font-family: var(--font-head); font-weight: 700; color: var(--navy-900); }
.pdf-viewer__title .icon { color: var(--flame); }
.pdf-viewer object { display: block; width: 100%; height: min(78vh, 900px); }
@media (max-width: 820px) { .pdf-viewer object { display: none; } .pdf-viewer__head { border-bottom: 0; } }

/* Technique chips */
.tech-strip { display: flex; flex-wrap: wrap; gap: 12px; }
.tech-chip {
	display: inline-flex; align-items: center; gap: 9px;
	background: #fff; border: 1px solid var(--line); border-radius: 999px;
	padding: 11px 20px; font-family: var(--font-head); font-weight: 600; font-size: .92rem; color: var(--navy-900);
	transition: border-color .18s, transform .18s, box-shadow .18s;
}
.tech-chip:hover { border-color: var(--flame); color: var(--flame); transform: translateY(-2px); box-shadow: var(--shadow-sm); }
.tech-chip .icon { color: var(--flame); }

/* ---------- Carousel (scroll-snap) ---------- */
.carousel { position: relative; }
.carousel__track {
	display: grid; grid-auto-flow: column; grid-auto-columns: clamp(260px, 23vw, 320px);
	gap: 26px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 6px 6px 22px;
	scrollbar-width: none; -ms-overflow-style: none;
	mask-image: linear-gradient(90deg, transparent, #000 2%, #000 98%, transparent);
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 2%, #000 98%, transparent);
}
.carousel__track::-webkit-scrollbar { display: none; }
.carousel__item { scroll-snap-align: start; }
.carousel__nav { display: flex; gap: 10px; justify-content: flex-end; margin-top: 4px; }
.carousel__btn {
	width: 48px; height: 48px; border-radius: 50%; border: 1.5px solid var(--line);
	background: #fff; color: var(--navy-900); font-size: 22px; cursor: pointer;
	display: grid; place-items: center; transition: all .2s;
}
.carousel__btn:hover:not(:disabled) { background: var(--navy-900); color: #fff; border-color: var(--navy-900); transform: translateY(-2px); }
.carousel__btn:disabled { opacity: .35; cursor: default; }

/* ---------- Bento grid ---------- */
.bento { display: grid; gap: 22px; grid-template-columns: repeat(4, 1fr); grid-auto-rows: minmax(190px, auto); }
.bento__tile {
	position: relative; overflow: hidden;
	background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg);
	padding: 28px; display: flex; flex-direction: column; gap: 8px; justify-content: flex-start;
	transition: transform .22s ease, box-shadow .22s ease;
}
.bento__tile:hover { transform: translateY(-5px); box-shadow: var(--shadow-md); }
.bento__tile h3 { font-size: 1.12rem; margin: 8px 0 2px; }
.bento__tile p { color: var(--ink-soft); font-size: .93rem; margin: 0; }
.bento__tile--hero {
	grid-column: span 2; grid-row: span 2;
	background:
		radial-gradient(120% 100% at 100% 0%, rgba(0, 180, 216, .18), transparent 55%),
		linear-gradient(155deg, var(--navy-900), var(--navy-950));
	border-color: transparent; color: #c6d2e2; justify-content: center; gap: 12px; padding: 40px;
}
.bento__tile--hero h3 { color: #fff; font-size: 1.5rem; }
.bento__tile--hero p { color: #a9b9cd; font-size: 1rem; max-width: 46ch; }
.bento__brands { display: flex; gap: 12px; align-items: center; margin-top: 14px; font-family: var(--font-head); letter-spacing: .12em; color: var(--amber); }
.bento__tile--stat { grid-row: span 2; background: var(--grad-heat); border-color: transparent; color: #fff; justify-content: center; }
.bento__tile--stat p { color: rgba(255,255,255,.92); font-size: .98rem; }
.bento__big { font-family: var(--font-head); font-weight: 700; font-size: clamp(3rem, 5vw, 4.6rem); line-height: 1; }
.bento__tile--cta { background: var(--navy-900); border-color: transparent; justify-content: center; align-items: flex-start; gap: 16px; }
.bento__tile--cta h3 { color: #fff; }
@media (max-width: 960px) { .bento { grid-template-columns: 1fr 1fr; } .bento__tile--hero { grid-column: span 2; } }
@media (max-width: 620px) { .bento { grid-template-columns: 1fr; } .bento__tile--hero, .bento__tile--stat { grid-column: span 1; grid-row: span 1; } }

/* ---------- Page hero (inner pages) ---------- */
.page-hero { position: relative; overflow: hidden; color: #fff; background: linear-gradient(160deg, var(--navy-950), var(--navy-900) 60%, var(--navy-800)); }
.page-hero__bg { position: absolute; inset: 0; background: radial-gradient(700px 340px at 85% 0%, rgba(0, 180, 216, .22), transparent 60%), radial-gradient(600px 320px at 0% 100%, rgba(255, 90, 60, .22), transparent 55%); }
.page-hero .container { position: relative; padding-block: clamp(52px, 7vw, 88px); }
.page-hero__title { color: #fff; margin: 0; }
.page-hero__sub { color: #c6d2e2; max-width: 68ch; margin: 14px 0 0; font-size: 1.05rem; }

/* ---------- Application single ---------- */
.app-hero { position: relative; overflow: hidden; color: #fff; background: linear-gradient(160deg, var(--navy-950), var(--navy-900) 60%, var(--navy-800)); }
.app-hero__bg { position: absolute; inset: 0; background: radial-gradient(760px 380px at 88% 10%, rgba(0, 180, 216, .2), transparent 60%), radial-gradient(620px 340px at 0% 100%, rgba(255, 90, 60, .24), transparent 55%); }
.app-hero__inner { position: relative; display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(30px, 5vw, 64px); align-items: center; padding-block: calc(clamp(56px, 7vw, 92px) + 86px) clamp(56px, 7vw, 92px); }
.app-hero__title { color: #fff; font-size: clamp(2rem, 3.8vw, 3.2rem); letter-spacing: -.025em; margin-bottom: 14px; }
.app-hero__sub { color: #c6d2e2; font-size: 1.08rem; max-width: 56ch; margin-bottom: 28px; }
.app-hero__actions { display: flex; gap: 14px; flex-wrap: wrap; }
.app-hero__frame {
	position: relative; border-radius: var(--radius-lg); overflow: hidden;
	box-shadow: var(--shadow-lg), 0 0 70px rgba(255, 110, 60, .14);
	border: 1px solid rgba(255,255,255,.18);
	transform: rotate(1.4deg);
	transition: transform .4s ease;
}
.app-hero__frame:hover { transform: rotate(0); }
.app-hero__frame img { width: 100%; height: clamp(280px, 30vw, 420px); object-fit: cover; display: block; }

.app-body__container { max-width: 1020px; }
.app-lead {
	font-family: var(--font-head); font-size: clamp(1.2rem, 2vw, 1.5rem); font-weight: 500;
	line-height: 1.5; color: var(--navy-900); letter-spacing: -.01em;
	padding-left: 22px; border-left: 4px solid; border-image: linear-gradient(180deg, #ff5a3c, #ffb13c) 1;
	margin-bottom: 1.4em;
}
.app-prose p { color: var(--ink-soft); font-size: 1.03rem; }
.app-h2 { margin-top: 1.8em; display: flex; align-items: center; gap: 12px; }
.app-h2::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.app-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 22px; }
.app-card {
	position: relative; background: var(--mist); border: 1px solid var(--line); border-radius: var(--radius);
	padding: 22px; transition: transform .2s, box-shadow .2s, background .2s;
}
.app-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); background: #fff; }
.app-card__num {
	font-family: var(--font-head); font-weight: 700; font-size: .82rem;
	display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 10px;
	background: var(--grad-heat); color: #fff; margin-bottom: 12px;
}
.app-card p { margin: 0; font-size: .94rem; color: var(--ink-soft); }
/* Consecutive figures render as a grid: 2 side-by-side, 4 as 2×2, odd last spans full width.
   Images share a uniform height (object-fit: contain — technical figures must never crop),
   so mixed portrait/landscape figures stay perfectly aligned. */
.app-fig-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; margin: 30px 0; align-items: start; }
.app-fig-grid .app-fig { margin: 0; max-width: none; display: flex; flex-direction: column; }
.app-fig-grid .app-fig img { width: 100%; height: clamp(240px, 24vw, 340px); object-fit: contain; }
.app-fig-grid > .app-fig:last-child:nth-child(odd) { grid-column: span 2; max-width: 660px; width: 100%; justify-self: center; }
.app-fig-grid .app-fig figcaption { margin-top: 10px; }
@media (max-width: 560px) {
	.app-fig-grid { grid-template-columns: 1fr; }
	.app-fig-grid > .app-fig:last-child:nth-child(odd) { grid-column: auto; }
	.app-fig-grid .app-fig img { height: auto; }
}

.app-fig { margin: 30px auto; text-align: center; max-width: 660px; }
.app-fig img { display: inline-block; max-width: 100%; height: auto; border-radius: var(--radius); box-shadow: var(--shadow-md); background: #fff; padding: 8px; }
[data-theme="dark"] .app-fig img { background: #16283f; }
.app-fig figcaption { margin-top: 10px; font-size: .85rem; color: var(--ink-mute); font-style: italic; }
.app-note { font-size: .88rem; color: var(--ink-mute); font-style: italic; text-align: center; }
.app-list { margin: 14px 0; padding-left: 4px; list-style: none; display: grid; gap: 8px; }
.app-list li { position: relative; padding-left: 26px; color: var(--ink-soft); }
.app-list li::before { content: ""; position: absolute; left: 4px; top: .5em; width: 9px; height: 9px; border-radius: 3px; background: var(--grad-heat); }
@media (max-width: 960px) { .app-hero__inner { grid-template-columns: 1fr; } .app-cards { grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px) { .app-cards { grid-template-columns: 1fr; } .app-hero__actions .btn { width: 100%; justify-content: center; } }

/* Breadcrumbs */
.crumbs { background: var(--mist); border-bottom: 1px solid var(--line); font-size: .84rem; }
/* Pages that start with breadcrumbs (no dark hero) need clearance for the floating island */
.site-main > .crumbs:first-child { padding-top: 78px; }
.crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 10px 0; }
.crumbs li { display: flex; align-items: center; gap: 6px; color: var(--ink-mute); }
.crumbs li + li::before { content: "/"; color: var(--line); }
.crumbs a { color: var(--ink-soft); }
.crumbs a:hover { color: var(--flame); }

/* ---------- Product single ---------- */
.product-hero { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 5vw, 64px); align-items: start; }
.product-hero__media {
	position: sticky; top: calc(var(--header-h) + 20px);
	background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg);
	padding: 30px; display: grid; place-items: center; min-height: 380px;
}
.product-hero__media img { max-height: 460px; object-fit: contain; }
.product-hero__brand { display: inline-block; font-size: .76rem; letter-spacing: .13em; text-transform: uppercase; color: var(--teal); font-weight: 700; margin-bottom: 8px; }
.product-hero__part { display: inline-block; background: var(--mist); border: 1px solid var(--line); border-radius: 8px; padding: 4px 12px; font-size: .82rem; font-family: var(--font-head); font-weight: 600; color: var(--ink-soft); margin-bottom: 18px; }
.product-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 26px 0; }
.product-content { max-width: 76ch; }
.product-content ul li { margin-bottom: .4em; }
.prose h2, .prose h3 { margin-top: 1.6em; }

.video-embed { position: relative; aspect-ratio: 16 / 9; border-radius: var(--radius-lg); overflow: hidden; background: var(--navy-950); box-shadow: var(--shadow-md); }
.video-embed iframe, .video-embed img { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; object-fit: cover; }
.video-embed__play {
	position: absolute; inset: 0; display: grid; place-items: center; cursor: pointer;
	background: linear-gradient(180deg, rgba(6,15,32,.1), rgba(6,15,32,.55)); border: 0; color: #fff;
}
.video-embed__play .icon { width: 72px; height: 72px; filter: drop-shadow(0 8px 18px rgba(0,0,0,.5)); transition: transform .2s; }
.video-embed__play:hover .icon { transform: scale(1.1); }

/* Spec/quick-facts panel */
.spec-panel { background: var(--mist); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 26px; }
.spec-panel h3 { font-size: 1rem; }
.spec-panel ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.spec-panel li { display: flex; gap: 10px; font-size: .92rem; color: var(--ink-soft); }
.spec-panel li .icon { color: var(--flame); margin-top: 3px; }

/* ---------- Forms ---------- */
.lcgc-form { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: clamp(24px, 4vw, 40px); box-shadow: var(--shadow-sm); }
.lcgc-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 22px; }
.lcgc-field--wide { grid-column: 1 / -1; }
.lcgc-field__label { display: block; font-family: var(--font-head); font-weight: 600; font-size: .9rem; color: var(--navy-900); margin-bottom: 7px; }
.lcgc-req { color: var(--flame); margin-left: 3px; }
.lcgc-field__input {
	width: 100%; padding: 13px 16px; font: inherit; font-size: .96rem; color: var(--ink);
	background: var(--mist); border: 1.5px solid var(--line); border-radius: 12px;
	transition: border-color .15s, background .15s, box-shadow .15s;
}
.lcgc-field__input:focus { outline: none; border-color: var(--flame); background: #fff; box-shadow: 0 0 0 4px rgba(255, 90, 60, .12); }
textarea.lcgc-field__input { resize: vertical; min-height: 90px; }
.lcgc-choices { display: flex; flex-wrap: wrap; gap: 10px; }
.lcgc-chip { position: relative; }
.lcgc-chip input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.lcgc-chip span {
	display: inline-block; padding: 9px 18px; border-radius: 999px; font-size: .9rem; font-weight: 500;
	background: var(--mist); border: 1.5px solid var(--line); color: var(--ink-soft);
	transition: all .15s; cursor: pointer;
}
.lcgc-chip input:checked + span { background: var(--navy-900); border-color: var(--navy-900); color: #fff; }
.lcgc-chip input:focus-visible + span { box-shadow: 0 0 0 4px rgba(255, 90, 60, .2); }
.lcgc-form__footer { margin-top: 26px; display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.lcgc-form__status { margin: 0; font-size: .95rem; font-weight: 500; }
.lcgc-form__status.is-success { color: #0a7d33; }
.lcgc-form__status.is-error { color: #c02b1a; }
.lcgc-form.is-sending .lcgc-form__submit { opacity: .6; pointer-events: none; }

/* Support layout */
.support-layout { display: grid; grid-template-columns: 1.5fr 1fr; gap: clamp(28px, 4vw, 52px); align-items: start; }
.support-aside { position: sticky; top: calc(var(--header-h) + 20px); display: grid; gap: 20px; }
.info-card { background: var(--navy-900); color: #c6d2e2; border-radius: var(--radius-lg); padding: 28px; }
.info-card h3 { color: #fff; }
.info-card ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 14px; }
.info-card li { display: flex; gap: 12px; align-items: flex-start; font-size: .93rem; }
.info-card li .icon { color: var(--amber); margin-top: 3px; }
.info-card a { color: #fff; }
.info-card a:hover { color: var(--amber); }
.info-card a.btn--light { color: var(--navy-900); }
.info-card a.btn--light:hover { color: var(--flame); }
.info-card a.btn--primary { color: #fff; }

/* ---------- News & events ---------- */
.event-meta { display: flex; flex-wrap: wrap; gap: 16px; font-size: .9rem; color: var(--ink-soft); margin-bottom: 8px; }
.event-meta span { display: inline-flex; align-items: center; gap: 7px; }
.event-meta .icon { color: var(--flame); }
.event-date-badge {
	position: absolute; top: 14px; left: 14px; z-index: 2;
	background: #fff; border-radius: 12px; padding: 8px 12px; text-align: center; box-shadow: var(--shadow-md);
	font-family: var(--font-head); line-height: 1.1;
}
.event-date-badge strong { display: block; font-size: 1.3rem; color: var(--flame); }
.event-date-badge small { font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); }

/* ---------- Gallery ---------- */
.album-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; }
.album-grid a { position: relative; border-radius: var(--radius); overflow: hidden; aspect-ratio: 4/3; display: block; background: var(--mist); }
.album-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.album-grid a:hover img { transform: scale(1.05); }

.lightbox {
	position: fixed; inset: 0; z-index: 200; display: none; place-items: center;
	background: rgba(4, 10, 22, .93); padding: 4vmin;
}
.lightbox.is-open { display: grid; }
.lightbox img { max-width: 92vw; max-height: 86vh; width: auto; height: auto; border-radius: 10px; box-shadow: var(--shadow-lg); }
.lightbox__btn {
	position: absolute; display: grid; place-items: center; width: 48px; height: 48px;
	border-radius: 50%; border: 1px solid rgba(255,255,255,.25); background: rgba(255,255,255,.08); color: #fff; cursor: pointer; font-size: 22px;
	transition: background .15s;
}
.lightbox__btn:hover { background: rgba(255,255,255,.2); }
.lightbox__close { top: 20px; right: 20px; }
.lightbox__prev { left: 20px; top: 50%; transform: translateY(-50%); }
.lightbox__next { right: 20px; top: 50%; transform: translateY(-50%); }
.lightbox__count { position: absolute; bottom: 18px; left: 50%; transform: translateX(-50%); color: #c6d2e2; font-size: .85rem; }

/* ---------- CTA band + footer ---------- */
.cta-band { background: linear-gradient(110deg, #e8432b, var(--flame) 40%, var(--amber)); color: #fff; }
.cta-band__inner { display: flex; align-items: center; justify-content: space-between; gap: 26px; padding-block: clamp(40px, 5vw, 60px); flex-wrap: wrap; }
.cta-band__title { color: #fff; margin-bottom: 6px; font-size: clamp(1.4rem, 2.6vw, 2rem); }
.cta-band__text { margin: 0; color: rgba(255,255,255,.9); }
.cta-band__actions { display: flex; gap: 14px; flex-wrap: wrap; }

.site-footer { position: relative; background: var(--navy-950); color: #94a6bd; font-size: .93rem; }
.site-footer::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--grad-heat); opacity: .8; }
.site-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 38px; padding-block: clamp(48px, 6vw, 72px); }
.site-footer h3 { color: #fff; font-size: .95rem; letter-spacing: .06em; text-transform: uppercase; margin-bottom: 18px; }
.site-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.site-footer a { color: #aebdd1; }
.site-footer a:hover { color: var(--amber); }
.site-footer__contact li { display: flex; gap: 10px; align-items: flex-start; }
.site-footer__contact .icon { color: var(--flame); margin-top: 4px; }
.brand--footer .brand__name { color: #fff; }
.site-footer__col--brand p { margin-top: 16px; max-width: 40ch; }
.site-footer__bottom { border-top: 1px solid rgba(255,255,255,.08); }
.site-footer__bottom-inner { display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; padding-block: 20px; font-size: .82rem; }
.site-footer__bottom p { margin: 0; }

/* ---------- Reveal animations (JS-gated: content stays visible without JS) ---------- */
.js .reveal { opacity: 0; transform: translateY(26px); filter: blur(7px); transition: opacity .8s ease, transform .8s ease, filter .8s ease; }
.js .reveal.is-visible { opacity: 1; transform: none; filter: blur(0); }
.js .reveal-stagger > * { opacity: 0; transform: translateY(26px); transition: opacity .6s ease, transform .6s ease; }
.js .reveal-stagger.is-visible > * { opacity: 1; transform: none; }
.js .reveal-stagger.is-visible > *:nth-child(2) { transition-delay: .08s; }
.js .reveal-stagger.is-visible > *:nth-child(3) { transition-delay: .16s; }
.js .reveal-stagger.is-visible > *:nth-child(4) { transition-delay: .24s; }
.js .reveal-stagger.is-visible > *:nth-child(5) { transition-delay: .32s; }
.js .reveal-stagger.is-visible > *:nth-child(6) { transition-delay: .4s; }
.js .reveal-stagger.is-visible > *:nth-child(7) { transition-delay: .48s; }
.js .reveal-stagger.is-visible > *:nth-child(8) { transition-delay: .56s; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.js .reveal, .js .reveal-stagger > *, .js .hero-in { opacity: 1; transform: none; transition: none; animation: none; }
	.hero__chip, .hero__mesh i, .hero__particles span, .hero__curve-dot, .hero__ring, .marquee__track, .hero__title em { animation: none; }
	.hero__particles, .hero__curve-dot { display: none; }
	.hero__curve-line { stroke-dashoffset: 0; animation: none; }
	.tilt { transform: none !important; }
}

/* ---------- Pagination, misc ---------- */
.pagination { display: flex; justify-content: center; gap: 8px; margin-top: 48px; }
.pagination .page-numbers {
	display: grid; place-items: center; min-width: 44px; height: 44px; padding: 0 10px;
	border: 1px solid var(--line); border-radius: 12px; color: var(--navy-900); font-weight: 600; font-family: var(--font-head);
}
.pagination .page-numbers.current { background: var(--navy-900); color: #fff; border-color: var(--navy-900); }
.pagination .page-numbers:hover:not(.current) { border-color: var(--flame); color: var(--flame); }

.notice-empty { background: var(--mist); border: 1px dashed var(--line); border-radius: var(--radius-lg); padding: 44px; text-align: center; color: var(--ink-soft); }

/* About page graphics */
.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 5vw, 60px); align-items: center; }
.about-visual { position: relative; display: grid; gap: 16px; grid-template-columns: 1fr 1fr; }
.about-visual .tile { border-radius: var(--radius-lg); padding: 26px; color: #fff; min-height: 170px; display: flex; flex-direction: column; justify-content: flex-end; }
.about-visual .tile strong { font-family: var(--font-head); font-size: 1.9rem; }
.about-visual .tile span { font-size: .85rem; opacity: .9; }
.tile--a { background: var(--grad-heat); }
.tile--b { background: var(--navy-900); }
.tile--c { background: var(--grad-cool); }
.tile--d { background: var(--navy-800); }
.timeline { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.timeline li { position: relative; padding: 0 0 26px 34px; }
.timeline li::before { content: ""; position: absolute; left: 8px; top: 8px; bottom: -2px; width: 2px; background: var(--line); }
.timeline li:last-child::before { display: none; }
.timeline li::after { content: ""; position: absolute; left: 2px; top: 6px; width: 14px; height: 14px; border-radius: 50%; background: var(--grad-heat); box-shadow: 0 0 0 4px rgba(255, 90, 60, .15); }
.timeline strong { font-family: var(--font-head); color: var(--navy-900); display: block; }

/* ---------- Responsive ---------- */
@media (max-width: 1200px) {
	.grid--4 { grid-template-columns: repeat(2, 1fr); }
}

/* Below 1600px the full nav has little slack — tighten spacing so the last
   menu item (Contact) never collides with the search/theme buttons */
@media (max-width: 1600px) {
	.site-header__inner.island { gap: 10px; }
	.nav__item > a, .nav__link { padding: 11px 9px; font-size: .9rem; }
	.nav__item > a::after, .nav__link::after { left: 9px; right: 9px; }
	.site-header__actions { gap: 8px; }
}

/* Nav collapses to drawer early so it never squeezes */
@media (max-width: 1360px) {
	/* backdrop-filter would trap the fixed drawer inside the island — use a solid bar instead */
	.site-header { top: 8px; padding-inline: 10px; }
	.site-header__inner.island { backdrop-filter: none; -webkit-backdrop-filter: none; background: rgba(255,255,255,.97); }
	.site-header__actions { margin-left: auto; }
	.site-header__cta { display: none; }
	.nav-toggle { display: flex; border-radius: 14px; }
	.nav__pill { display: none; }

	.nav {
		position: fixed; inset: 0 0 0 auto; width: min(420px, 94vw); z-index: 120;
		background: linear-gradient(170deg, var(--navy-900), var(--navy-950) 70%);
		box-shadow: -30px 0 80px rgba(4, 10, 22, .5);
		transform: translateX(105%); transition: transform .38s cubic-bezier(.3, .9, .3, 1);
		overflow-y: auto; padding: 0 26px 34px;
		visibility: hidden;
		display: flex; flex-direction: column;
	}
	.nav.is-open { transform: none; visibility: visible; }

	.nav__head {
		display: flex; align-items: center; justify-content: space-between;
		padding: 22px 2px 18px; margin-bottom: 10px;
		border-bottom: 1px solid rgba(255, 255, 255, .09);
	}
	.nav__head-title { font-family: var(--font-head); font-weight: 700; font-size: .8rem; letter-spacing: .22em; text-transform: uppercase; color: rgba(255,255,255,.45); }
	.nav__close {
		width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(255,255,255,.18);
		background: rgba(255,255,255,.06); color: #fff; font-size: 15px; cursor: pointer;
		display: grid; place-items: center; transition: background .2s, transform .2s;
	}
	.nav__close:hover { background: rgba(255,255,255,.14); transform: rotate(90deg); }

	.nav__list { flex-direction: column; align-items: stretch; gap: 0; }
	.nav__item { border-bottom: 1px solid rgba(255, 255, 255, .06); }
	.nav__item > a, .nav__link {
		width: 100%; justify-content: space-between; padding: 17px 6px;
		font-size: 1.22rem; font-weight: 600; color: #eef3fa; border-radius: 0;
	}
	.nav__item > a::after, .nav__link::after { display: none; }
	.nav__item > a:hover, .nav__link:hover, .nav__item.is-open .nav__link { color: var(--amber); }
	.nav__link .icon--chevron { opacity: .8; }

	/* Staggered entrance */
	.nav__item, .nav__foot { opacity: 0; transform: translateX(34px); transition: opacity .4s ease, transform .4s cubic-bezier(.25,.9,.3,1); }
	.nav.is-open .nav__item, .nav.is-open .nav__foot { opacity: 1; transform: none; }
	.nav.is-open .nav__item:nth-child(1) { transition-delay: .06s; }
	.nav.is-open .nav__item:nth-child(2) { transition-delay: .1s; }
	.nav.is-open .nav__item:nth-child(3) { transition-delay: .14s; }
	.nav.is-open .nav__item:nth-child(4) { transition-delay: .18s; }
	.nav.is-open .nav__item:nth-child(5) { transition-delay: .22s; }
	.nav.is-open .nav__item:nth-child(6) { transition-delay: .26s; }
	.nav.is-open .nav__item:nth-child(7) { transition-delay: .3s; }
	.nav.is-open .nav__foot { transition-delay: .36s; }

	.nav__item--mega, .nav__item--drop { position: static; }
	.mega, .drop {
		position: static; opacity: 1; visibility: visible; transform: none;
		box-shadow: none; border: 0; border-radius: 0; background: transparent;
		backdrop-filter: none; -webkit-backdrop-filter: none;
		display: none; padding: 0 0 14px; min-width: 0; width: auto; max-height: none; translate: none;
	}
	.nav__item.is-open .mega, .nav__item.is-open .drop { display: block; }
	.nav__item--mega:hover .mega, .nav__item--drop:hover .drop { display: none; }
	.nav__item--mega.is-open:hover .mega, .nav__item--drop.is-open:hover .drop { display: block; }

	.mega__grid { grid-template-columns: 1fr; gap: 20px; padding: 4px 6px 8px; }
	.mega__col--cta { display: none; }
	.mega__heading { color: #fff; border-bottom-color: rgba(255,255,255,.1); }
	.mega__heading:hover { color: var(--amber); }
	.mega__sublist a { color: #aebdd1; }
	.mega__sublist a:hover { background: rgba(255,255,255,.06); color: var(--amber); }
	.mega__sublist--cols { grid-template-columns: 1fr 1fr; }
	.drop { list-style: none; margin: 0; }
	.drop a { color: #eef3fa; padding: 12px 6px; }
	.drop a:hover { background: rgba(255,255,255,.06); color: var(--amber); }

	.nav__foot { display: grid; gap: 12px; margin-top: auto; padding-top: 26px; }
	.nav__foot .btn { justify-content: center; }
	.nav__foot-link { display: inline-flex; align-items: center; gap: 9px; color: #aebdd1; font-size: .94rem; }
	.nav__foot-link:hover { color: var(--amber); }
	.nav__foot-link .icon { color: var(--flame); }

	.nav-backdrop { position: fixed; inset: 0; z-index: 110; background: rgba(4, 10, 22, .62); backdrop-filter: blur(4px); opacity: 0; visibility: hidden; transition: .3s; }
	.nav-backdrop.is-open { opacity: 1; visibility: visible; }
}

@media (max-width: 960px) {
	.hero__inner { grid-template-columns: 1fr; padding-bottom: clamp(120px, 18vw, 170px); }
	.hero__visual { max-width: 520px; margin-inline: auto; width: 100%; }
	.hero__chip--a { left: 0; }
	.hero__chip--b { right: 0; }
	.hero__curve-labels { display: none; }
	.product-hero, .support-layout, .about-grid, .duo { grid-template-columns: 1fr; }
	.product-hero__media, .support-aside { position: static; }
	.grid--3 { grid-template-columns: repeat(2, 1fr); }
	.stats__grid { grid-template-columns: repeat(2, 1fr); }
	.site-footer__grid { grid-template-columns: 1fr 1fr; }
	.section__head--split { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 620px) {
	body { font-size: 15.5px; }
	.grid--2, .grid--3, .grid--4 { grid-template-columns: 1fr; }
	.lcgc-form__grid { grid-template-columns: 1fr; }
	.topbar__note { display: none; }
	.topbar__inner { justify-content: center; }
	.brand__tag { display: none; }
	.stats__grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
	.stat__label { font-size: .78rem; }
	.site-footer__grid { grid-template-columns: 1fr; gap: 30px; }
	.cta-band__inner { flex-direction: column; align-items: flex-start; }
	.hero__actions .btn { width: 100%; justify-content: center; }
	.hero__chip { position: static; margin-top: 12px; display: inline-flex; animation: none; }
	.hero__visual { display: flex; flex-direction: column; align-items: stretch; }
	.hero__ring { display: none; }
	.hero__brands { gap: 12px; }
	.hero__brands span.sep { display: none; }
	.mega__sublist--cols { grid-template-columns: 1fr; }
	.product-hero__actions .btn { width: 100%; justify-content: center; }
	.page-hero__title { font-size: 1.9rem; }
	.to-top { right: 14px; bottom: 14px; width: 42px; height: 42px; }
	.event-date-badge strong { font-size: 1.05rem; }
	.card__body { padding: 18px; }
	.container { padding-inline: 16px; }
}

/* ---------- WP alignment/content compat ---------- */
.prose img { border-radius: var(--radius); }
.alignwide { margin-inline: calc(50% - 50vw + 20px); }
.wp-block-image img { height: auto; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* =====================================================================
   v1.5 — dark mode, command palette, wizard, story, tables, FAQ, extras
   ===================================================================== */

/* ---------- View Transitions (progressive enhancement) ---------- */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation-duration: .18s; }
::view-transition-new(root) { animation-duration: .26s; }

/* ---------- Icon buttons in island ---------- */
.icon-btn {
	width: 42px; height: 42px; border-radius: 13px; border: 1px solid var(--line);
	background: transparent; color: var(--navy-800); cursor: pointer;
	display: grid; place-items: center; transition: all .18s;
}
.icon-btn:hover { border-color: var(--flame); color: var(--flame); transform: translateY(-1px); }
.icon-btn .icon-moon { display: none; }
[data-theme="dark"] .icon-btn .icon-moon { display: block; }
[data-theme="dark"] .icon-btn .icon-sun { display: none; }

/* ---------- Dark theme ---------- */
[data-theme="dark"] {
	--paper: #0a1626;
	--mist: #0e1e33;
	--mist-2: #12253e;
	--line: rgba(148, 166, 189, .16);
	--ink: #e6edf7;
	--ink-soft: #a9b9cd;
	--ink-mute: #8093a9;
	--shadow-sm: 0 1px 2px rgba(0,0,0,.4), 0 4px 12px rgba(0,0,0,.35);
	--shadow-md: 0 6px 24px rgba(0,0,0,.45);
	--shadow-lg: 0 20px 50px rgba(0,0,0,.55);
}
[data-theme="dark"] body { background: var(--paper); }
[data-theme="dark"] h1, [data-theme="dark"] h2, [data-theme="dark"] h3,
[data-theme="dark"] h4, [data-theme="dark"] h5 { color: #f0f5fb; }
[data-theme="dark"] .card, [data-theme="dark"] .feature, [data-theme="dark"] .bento__tile,
[data-theme="dark"] .lcgc-form, [data-theme="dark"] .product-hero__media,
[data-theme="dark"] .carousel__btn, [data-theme="dark"] .event-date-badge,
[data-theme="dark"] .tech-chip { background: var(--mist); border-color: var(--line); color: var(--ink); }
[data-theme="dark"] .card__title a, [data-theme="dark"] .feature__title, [data-theme="dark"] .bento__tile h3,
[data-theme="dark"] .tech-chip, [data-theme="dark"] .carousel__btn { color: #eef3fa; }
[data-theme="dark"] .bento__tile--hero h3, [data-theme="dark"] .bento__tile--cta h3, [data-theme="dark"] .bento__tile--stat { color: #fff; }
[data-theme="dark"] .app-card { background: var(--mist-2); border-color: var(--line); }
[data-theme="dark"] .app-card:hover { background: var(--mist); }
[data-theme="dark"] .spec-panel { background: var(--mist-2); border-color: var(--line); }
[data-theme="dark"] .spec-panel h3, [data-theme="dark"] .app-lead { color: #eef3fa; }
[data-theme="dark"] .btn--ghost { background: transparent; color: #eef3fa; border-color: var(--line); }
[data-theme="dark"] .site-header__inner.island {
	background: rgba(13, 26, 44, .82); border-color: rgba(148, 166, 189, .18);
	box-shadow: 0 8px 32px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.06);
}
[data-theme="dark"] .site-header.is-stuck .island { background: rgba(13, 26, 44, .94); }
[data-theme="dark"] .brand__name, [data-theme="dark"] .nav__item > a, [data-theme="dark"] .nav__link,
[data-theme="dark"] .icon-btn { color: #e6edf7; }
[data-theme="dark"] .nav__item > a:hover, [data-theme="dark"] .nav__link:hover,
[data-theme="dark"] .nav__item.is-open .nav__link { color: var(--amber); }
[data-theme="dark"] .drop, [data-theme="dark"] .mega {
	background: #0e1d31; border-color: rgba(148, 166, 189, .2);
}
[data-theme="dark"] .mega__heading, [data-theme="dark"] .drop a { color: #eef3fa; }
[data-theme="dark"] .mega__sublist a { color: var(--ink-soft); }
[data-theme="dark"] .mega__sublist a:hover, [data-theme="dark"] .drop a:hover { background: rgba(255,255,255,.06); color: var(--amber); }
[data-theme="dark"] .mega__heading { border-bottom-color: var(--line); }
[data-theme="dark"] .marquee { background: var(--paper); border-color: var(--line); }
[data-theme="dark"] .marquee__group span { -webkit-text-stroke-color: rgba(230, 237, 247, .28); }
[data-theme="dark"] .crumbs { background: var(--mist); border-color: var(--line); }
[data-theme="dark"] .lcgc-field__input { background: var(--mist-2); border-color: var(--line); color: var(--ink); }
[data-theme="dark"] .lcgc-field__input:focus { background: var(--mist); }
[data-theme="dark"] .lcgc-chip span { background: var(--mist-2); border-color: var(--line); color: var(--ink-soft); }
[data-theme="dark"] .lcgc-chip input:checked + span { background: var(--grad-heat); border-color: transparent; color: #fff; }
[data-theme="dark"] .lcgc-field__label { color: #eef3fa; }
[data-theme="dark"] .notice-empty { background: var(--mist); border-color: var(--line); }
[data-theme="dark"] .pagination .page-numbers { border-color: var(--line); color: #eef3fa; }
[data-theme="dark"] .hero__card { background: linear-gradient(160deg, #16283f, #0f2036); border-color: rgba(255,255,255,.12); }
[data-theme="dark"] .duo__img, [data-theme="dark"] .card__media { background: #16283f; }
[data-theme="dark"] .nav-toggle { background: var(--mist); border-color: var(--line); }
[data-theme="dark"] .nav-toggle span { background: #e6edf7; }
[data-theme="dark"] ::-webkit-scrollbar-track { background: #0e1e33; }
[data-theme="dark"] ::-webkit-scrollbar-thumb { border-color: #0e1e33; }
[data-theme="dark"] .cmdk__panel { background: #0f2036; border-color: var(--line); }
[data-theme="dark"] .cmdk__input { color: #eef3fa; }
[data-theme="dark"] .cmdk__item:hover, [data-theme="dark"] .cmdk__item.is-active { background: rgba(255,255,255,.07); }
[data-theme="dark"] .comparison table { background: var(--mist); }
[data-theme="dark"] .comparison thead th, [data-theme="dark"] .comparison tbody th { background: var(--mist-2); color: #eef3fa; }
[data-theme="dark"] .faq details { background: var(--mist); border-color: var(--line); }
[data-theme="dark"] .faq summary { color: #eef3fa; }
[data-theme="dark"] .wizard__opt { background: var(--mist); border-color: var(--line); }
[data-theme="dark"] .wizard__opt strong { color: #eef3fa; }
[data-theme="dark"] .wizard__result-note { background: var(--mist); border-color: var(--line); }
[data-theme="dark"] ::selection { background: rgba(255, 140, 60, .4); color: #fff; }
@media (max-width: 1360px) {
	[data-theme="dark"] .site-header__inner.island { background: #0d1a2c; }
}

/* ---------- Command palette (Ctrl+K) ---------- */
.cmdk {
	position: fixed; inset: 0; z-index: 400; display: none;
	background: rgba(4, 10, 22, .6); backdrop-filter: blur(6px);
	padding: min(14vh, 140px) 18px 18px;
}
.cmdk.is-open { display: block; }
.cmdk__panel {
	max-width: 620px; margin-inline: auto; background: #fff; border: 1px solid var(--line);
	border-radius: 18px; box-shadow: var(--shadow-lg); overflow: hidden;
	animation: cmdk-in .18s cubic-bezier(.3,.9,.4,1);
}
@keyframes cmdk-in { from { opacity: 0; transform: translateY(10px) scale(.98); } }
.cmdk__head { display: flex; align-items: center; gap: 12px; padding: 6px 18px; border-bottom: 1px solid var(--line); }
.cmdk__head svg { color: var(--ink-mute); flex: none; }
.cmdk__input { flex: 1; border: 0; outline: 0; font: inherit; font-size: 1.05rem; padding: 14px 0; background: transparent; color: var(--ink); }
.cmdk__hint { font-size: .72rem; color: var(--ink-mute); border: 1px solid var(--line); border-radius: 6px; padding: 3px 7px; font-family: var(--font-head); }
.cmdk__list { max-height: 46vh; overflow-y: auto; padding: 8px; }
.cmdk__item {
	display: flex; align-items: center; gap: 12px; padding: 11px 12px; border-radius: 10px;
	color: var(--ink); cursor: pointer; font-size: .96rem;
}
.cmdk__item:hover, .cmdk__item.is-active { background: var(--mist); color: var(--flame); }
.cmdk__kind { margin-left: auto; font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-mute); font-family: var(--font-head); flex: none; }
.cmdk__empty { padding: 26px; text-align: center; color: var(--ink-mute); font-size: .95rem; }

/* ---------- Instrument finder wizard ---------- */
.wizard { max-width: 860px; margin-inline: auto; }
.wizard__progress { display: flex; gap: 8px; margin-bottom: 30px; }
.wizard__progress span { flex: 1; height: 5px; border-radius: 4px; background: var(--line); transition: background .3s; }
.wizard__progress span.is-done { background: var(--grad-heat); }
.wizard__step { display: none; }
.wizard__step.is-active { display: block; animation: cmdk-in .25s cubic-bezier(.3,.9,.4,1); }
.wizard__question { font-size: clamp(1.4rem, 2.4vw, 1.9rem); margin-bottom: 22px; }
.wizard__options { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.wizard__opt {
	display: flex; align-items: flex-start; gap: 13px; text-align: left;
	background: var(--paper); border: 1.5px solid var(--line); border-radius: 16px;
	padding: 18px 20px; cursor: pointer; font: inherit; transition: all .18s; color: var(--ink);
}
.wizard__opt:hover { border-color: var(--flame); transform: translateY(-2px); box-shadow: var(--shadow-sm); }
.wizard__opt .icon { color: var(--flame); flex: none; margin-top: 2px; }
.wizard__opt strong { display: block; font-family: var(--font-head); font-size: 1.02rem; }
.wizard__opt small { color: var(--ink-soft); font-size: .85rem; }
.wizard__back { background: none; border: 0; color: var(--ink-mute); font: inherit; cursor: pointer; margin-top: 20px; display: none; }
.wizard__back:hover { color: var(--flame); }
.wizard.has-history .wizard__back { display: inline-block; }
.wizard__result { display: none; }
.wizard__result.is-active { display: block; }
.wizard__result-note { background: var(--mist); border: 1px solid var(--line); border-radius: 14px; padding: 16px 20px; margin-bottom: 26px; color: var(--ink-soft); }
.wizard__pool { display: none; }
@media (max-width: 620px) { .wizard__options { grid-template-columns: 1fr; } }

/* ---------- Comparison table ---------- */
.comparison { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.comparison table { width: 100%; min-width: 760px; border-collapse: collapse; background: #fff; font-size: .93rem; }
.comparison th, .comparison td { padding: 15px 18px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.comparison thead th { background: var(--mist); font-family: var(--font-head); font-size: .95rem; }
.comparison thead th a { color: inherit; }
.comparison thead th a:hover { color: var(--flame); }
.comparison tbody th { background: var(--mist); font-family: var(--font-head); font-weight: 600; white-space: nowrap; width: 170px; }
.comparison tbody tr:last-child th, .comparison tbody tr:last-child td { border-bottom: 0; }
.comparison td { color: var(--ink-soft); }

/* ---------- FAQ accordions ---------- */
.faq { display: grid; gap: 12px; }
.faq details { background: #fff; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.faq summary {
	list-style: none; cursor: pointer; padding: 18px 22px;
	font-family: var(--font-head); font-weight: 600; color: var(--navy-900);
	display: flex; align-items: center; justify-content: space-between; gap: 14px;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font-size: 1.4rem; color: var(--flame); transition: transform .25s; line-height: 1; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { margin: 0; padding: 0 22px 20px; color: var(--ink-soft); font-size: .95rem; }
.faq details[open] { border-color: rgba(255, 90, 60, .35); }

/* ---------- Scroll-driven DSC story ---------- */
.story__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 5vw, 70px); align-items: start; }
.story__sticky { position: sticky; top: 120px; }
.story__svg-wrap { background: linear-gradient(160deg, var(--navy-900), var(--navy-950)); border-radius: var(--radius-lg); padding: 30px; box-shadow: var(--shadow-md); }
.story__svg { width: 100%; height: auto; display: block; }
.story__curve-path { stroke: url(#storyGrad); stroke-width: 3; fill: none; stroke-linecap: round; filter: drop-shadow(0 0 6px rgba(255,120,60,.6)); }
.story__axis { stroke: rgba(255,255,255,.15); stroke-width: 1; }
.story__axis-label { font-family: var(--font-head); font-size: 11px; fill: rgba(255,255,255,.4); letter-spacing: .1em; }
.story__marker { opacity: 0; transition: opacity .4s; }
.story__marker.is-on { opacity: 1; }
.story__marker circle { fill: #ffb13c; }
.story__marker text { font-family: var(--font-head); font-size: 12.5px; fill: #fff; font-weight: 600; }
.story__steps { display: grid; gap: 9vh; padding-block: 4vh 16vh; }
.story__step { opacity: .25; transform: translateY(8px); transition: opacity .4s, transform .4s; }
.story__step.is-on { opacity: 1; transform: none; }
.story__step h3 { display: flex; gap: 12px; align-items: baseline; }
.story__step h3 span { font-family: var(--font-head); color: var(--flame); font-size: .9em; }
.story__step p { color: var(--ink-soft); max-width: 46ch; }
@media (max-width: 960px) {
	.story__grid { grid-template-columns: 1fr; }
	.story__sticky { position: static; }
	.story__steps { gap: 26px; padding-block: 10px; }
	.story__step { opacity: 1; transform: none; }
}

/* ---------- WhatsApp float ---------- */
.wa-float {
	position: fixed; left: 22px; bottom: 22px; z-index: 80;
	width: 54px; height: 54px; border-radius: 50%;
	background: #25d366; color: #fff; display: grid; place-items: center;
	box-shadow: 0 10px 26px rgba(37, 211, 102, .45);
	transition: transform .2s ease, box-shadow .2s;
	animation: wa-pulse 2.6s ease-out infinite;
}
.wa-float:hover { transform: translateY(-4px) scale(1.05); color: #fff; }
@keyframes wa-pulse {
	0% { box-shadow: 0 10px 26px rgba(37,211,102,.45), 0 0 0 0 rgba(37,211,102,.5); }
	70% { box-shadow: 0 10px 26px rgba(37,211,102,.45), 0 0 0 16px rgba(37,211,102,0); }
	100% { box-shadow: 0 10px 26px rgba(37,211,102,.45), 0 0 0 0 rgba(37,211,102,0); }
}
@media (max-width: 620px) { .wa-float { left: 14px; bottom: 14px; width: 48px; height: 48px; } }

/* ---------- Noise texture on dark surfaces ---------- */
.section--dark::after, .app-hero::after, .page-hero::after {
	content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .05; z-index: 1;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E");
}
.section--dark { position: relative; }
.section--dark > .container, .app-hero > .container, .page-hero > .container { position: relative; z-index: 2; }

/* ---------- Magnetic primary buttons (JS sets --mgx/--mgy) ---------- */
.btn--primary { translate: var(--mgx, 0) var(--mgy, 0); }

@media (prefers-reduced-motion: reduce) {
	.wa-float { animation: none; }
	.cmdk__panel, .wizard__step.is-active { animation: none; }
	::view-transition-old(root), ::view-transition-new(root) { animation: none; }
}

/* =====================================================================
   v1.6 — enquiry basket, tabs, gallery, recent, newsletter, checkmark
   ===================================================================== */

/* ---------- Product tabs ---------- */
.tabs { margin-top: 20px; }
.tabs__bar { display: flex; gap: 6px; border-bottom: 1.5px solid var(--line); margin-bottom: 20px; flex-wrap: wrap; }
.tabs__btn {
	position: relative; background: none; border: 0; cursor: pointer; font: inherit;
	font-family: var(--font-head); font-weight: 600; font-size: .95rem; color: var(--ink-mute);
	padding: 11px 16px; transition: color .18s;
}
.tabs__btn::after {
	content: ""; position: absolute; left: 10px; right: 10px; bottom: -1.5px; height: 3px;
	border-radius: 3px; background: var(--grad-heat); transform: scaleX(0); transition: transform .25s;
}
.tabs__btn:hover { color: var(--flame); }
.tabs__btn.is-active { color: var(--navy-900); }
[data-theme="dark"] .tabs__btn.is-active { color: #eef3fa; }
.tabs__btn.is-active::after { transform: scaleX(1); }
.tabs__panel { display: none; }
.tabs__panel.is-active { display: block; animation: cmdk-in .22s ease; }

/* ---------- Product gallery thumbs ---------- */
.product-hero__media-col { position: sticky; top: calc(var(--header-h) + 20px); }
@media (max-width: 960px) { .product-hero__media-col { position: static; } }
.product-thumbs { display: flex; gap: 10px; margin-top: 12px; flex-wrap: wrap; }
.product-thumbs__item {
	width: 68px; height: 68px; border-radius: 12px; overflow: hidden; cursor: pointer;
	border: 2px solid var(--line); background: #fff; padding: 4px; transition: border-color .18s, transform .18s;
}
.product-thumbs__item img { width: 100%; height: 100%; object-fit: contain; }
.product-thumbs__item:hover { transform: translateY(-2px); }
.product-thumbs__item.is-active { border-color: var(--flame); }
[data-theme="dark"] .product-thumbs__item { background: var(--mist); }

/* ---------- Add to Enquiry buttons ---------- */
.add-enquiry .add-enquiry__done { display: none; }
.add-enquiry.is-added .add-enquiry__label { display: none; }
.add-enquiry.is-added .add-enquiry__done { display: inline-flex; }
.add-enquiry.is-added { background: #0a9d4e !important; color: #fff !important; }
.add-enquiry--mini {
	width: 34px; height: 34px; border-radius: 10px; border: 1.5px solid var(--line);
	background: transparent; color: var(--ink-soft); font-size: 1.1rem; font-weight: 600;
	cursor: pointer; display: grid; place-items: center; transition: all .18s; line-height: 1;
}
.add-enquiry--mini:hover { border-color: var(--flame); color: var(--flame); }
.card__foot--split { display: flex; align-items: center; justify-content: space-between; gap: 10px; }

/* ---------- Enquiry basket ---------- */
.basket__fab {
	position: fixed; right: 22px; bottom: 84px; z-index: 90;
	width: 54px; height: 54px; border-radius: 50%; border: 0; cursor: pointer;
	background: var(--navy-900); color: #fff; display: grid; place-items: center;
	box-shadow: var(--shadow-lg); transition: transform .2s;
	opacity: 0; visibility: hidden; transform: translateY(10px);
}
.basket.has-items .basket__fab { opacity: 1; visibility: visible; transform: none; }
.basket__fab:hover { transform: translateY(-3px); }
.basket__count {
	position: absolute; top: -4px; right: -4px; min-width: 22px; height: 22px; padding: 0 6px;
	border-radius: 99px; background: var(--grad-heat); color: #fff;
	font-family: var(--font-head); font-weight: 700; font-size: .75rem;
	display: grid; place-items: center;
}
.basket__panel {
	position: fixed; right: 22px; bottom: 150px; z-index: 95; width: min(360px, calc(100vw - 44px));
	background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow-lg);
	opacity: 0; visibility: hidden; transform: translateY(12px) scale(.98);
	transition: opacity .2s, transform .2s, visibility .2s;
}
.basket__panel.is-open { opacity: 1; visibility: visible; transform: none; }
.basket__head { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1px solid var(--line); font-family: var(--font-head); }
.basket__close { background: none; border: 0; cursor: pointer; color: var(--ink-mute); font-size: 1rem; }
.basket__close:hover { color: var(--flame); }
.basket__list { max-height: 260px; overflow-y: auto; padding: 10px 12px; }
.basket__item { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 8px; border-radius: 10px; font-size: .93rem; }
.basket__item:hover { background: var(--mist); }
.basket__item a { color: var(--ink); font-weight: 500; }
.basket__item a:hover { color: var(--flame); }
.basket__remove { background: none; border: 0; cursor: pointer; color: var(--ink-mute); font-size: .85rem; flex: none; }
.basket__remove:hover { color: #c02b1a; }
.basket__empty { padding: 14px; margin: 0; color: var(--ink-mute); font-size: .9rem; text-align: center; }
.basket__foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 16px; border-top: 1px solid var(--line); }
.basket__clear { background: none; border: 0; cursor: pointer; color: var(--ink-mute); font: inherit; font-size: .85rem; }
.basket__clear:hover { color: #c02b1a; }
[data-theme="dark"] .basket__panel { background: #0f2036; border-color: var(--line); }
[data-theme="dark"] .basket__item a { color: #e6edf7; }
[data-theme="dark"] .basket__fab { background: var(--grad-heat); }
@media (max-width: 620px) { .basket__fab { right: 14px; bottom: 74px; width: 48px; height: 48px; } .basket__panel { right: 14px; bottom: 132px; } }

/* ---------- Recently viewed strip ---------- */
.recent-strip { padding: 6px 0 30px; }
.recent-strip__title { font-family: var(--font-head); font-weight: 700; font-size: .82rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-mute); margin-bottom: 12px; }
.recent-strip__row { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 6px; scrollbar-width: none; }
.recent-strip__row::-webkit-scrollbar { display: none; }
.recent-strip__item {
	display: flex; align-items: center; gap: 10px; flex: none;
	background: var(--mist); border: 1px solid var(--line); border-radius: 12px;
	padding: 8px 14px 8px 8px; color: var(--ink); font-size: .88rem; font-weight: 500;
	transition: border-color .18s, transform .18s;
}
.recent-strip__item:hover { border-color: var(--flame); color: var(--flame); transform: translateY(-2px); }
.recent-strip__item img { width: 40px; height: 40px; object-fit: contain; border-radius: 8px; background: #fff; }
[data-theme="dark"] .recent-strip__item img { background: #16283f; }

/* ---------- Inline newsletter form (footer) ---------- */
.lcgc-form--inline { background: none; border: 0; padding: 0; box-shadow: none; margin-top: 22px; }
.lcgc-form--inline__label { font-family: var(--font-head); font-weight: 600; color: #fff; font-size: .92rem; margin-bottom: 10px; }
.lcgc-form--inline__row { display: flex; gap: 10px; }
.lcgc-form--inline .lcgc-field__input {
	background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.16); color: #e6edf7;
	padding: 11px 14px; border-radius: 11px; min-width: 0;
}
.lcgc-form--inline .lcgc-field__input::placeholder { color: #7f92aa; }
.lcgc-form--inline .lcgc-field__input:focus { background: rgba(255,255,255,.12); border-color: var(--amber); box-shadow: none; }
.lcgc-form--inline .lcgc-form__status { margin-top: 8px; font-size: .85rem; }
.lcgc-form--inline .lcgc-form__status.is-success { color: #4cd97b; }

/* ---------- Animated success checkmark ---------- */
.lcgc-form__status.is-success { display: inline-flex; align-items: center; gap: 9px; }
.lcgc-check { flex: none; }
.lcgc-check__circle { stroke: #0a9d4e; stroke-width: 3; stroke-dasharray: 151; stroke-dashoffset: 151; animation: check-c .5s ease forwards; }
.lcgc-check__mark { stroke: #0a9d4e; stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 36; stroke-dashoffset: 36; animation: check-m .35s ease .4s forwards; }
@keyframes check-c { to { stroke-dashoffset: 0; } }
@keyframes check-m { to { stroke-dashoffset: 0; } }

/* ---------- ?noanim=1 testing switch: render everything instantly ---------- */
[data-noanim] .reveal, [data-noanim] .reveal-stagger > *, [data-noanim] .hero-in,
[data-noanim] .story__step, [data-noanim] .story__marker {
	opacity: 1 !important; transform: none !important; filter: none !important;
	animation: none !important; transition: none !important;
}
[data-noanim] .story__curve-path, [data-noanim] .hero__curve-line { stroke-dashoffset: 0 !important; animation: none !important; }

/* ---------- Fully clickable cards: the footer link stretches over the whole card ---------- */
.card { position: relative; }
.card__link--stretch::before { content: ""; position: absolute; inset: 0; z-index: 1; }
.card .card__title a, .card .card__media, .card .add-enquiry { position: relative; z-index: 2; }

/* ---------- Branch offices grid (contact page) ---------- */
.branches { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 18px; margin-top: 26px; }
.branch {
	background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius);
	padding: 22px; transition: transform .2s, box-shadow .2s, border-color .2s;
}
.branch:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: rgba(255,90,60,.35); }
.branch h4 { display: flex; align-items: center; gap: 9px; font-family: var(--font-head); color: var(--navy-900); margin: 0; font-size: 1.02rem; }
.branch h4 .icon { color: var(--flame); }
.branch p { margin: 0 0 8px; font-size: .92rem; color: var(--ink-soft); white-space: pre-line; }
.branch a { font-size: .92rem; }
.branch { display: flex; flex-direction: column; }
.branch__head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.branch__icon {
	flex: 0 0 auto; width: 46px; height: 46px; display: grid; place-items: center;
	border-radius: 13px; color: var(--flame);
	background: linear-gradient(135deg, rgba(255,90,60,.14), rgba(255,150,60,.07));
	border: 1px solid rgba(255,90,60,.25);
}
.branch__addr { flex: 1 1 auto; }
.branch__meta { margin-top: auto; padding-top: 12px; border-top: 1px dashed var(--line); display: flex; flex-direction: column; gap: 6px; }
.branch__meta p { margin: 0; display: flex; align-items: flex-start; gap: 8px; }
.branch__meta .icon { color: var(--flame); flex: 0 0 auto; margin-top: 3px; }
.branch__val { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.branch__phones .branch__val span { color: var(--ink-soft); padding: 0 2px; }
.branch__fax .branch__val { padding-left: 22px; }
[data-theme="dark"] .branch { background: var(--mist); }
[data-theme="dark"] .branch h4 { color: #eef3fa; }

/* Contact-page "Your Point of Contact" card */
.contact-person__name { margin: 0; font-family: var(--font-head); font-weight: 600; font-size: 1.05rem; color: var(--navy-900); }
[data-theme="dark"] .contact-person__name { color: #eef3fa; }
.contact-person__role { margin: 0 0 12px; font-size: .88rem; color: var(--ink-soft); }
.contact-person__line { margin: 5px 0 0; font-size: .92rem; display: flex; align-items: center; gap: 8px; }
.contact-person__line .icon { color: var(--flame); flex: 0 0 auto; }
[data-theme="dark"] .branch__icon { background: linear-gradient(135deg, rgba(255,90,60,.18), rgba(255,150,60,.06)); }
