/**
 * Softlance design system (Oct 2026 redesign).
 *
 * Light-only. Palette: navy #0A1628, blue #2563EB, white and their tints.
 * Type: Inter. Loads after every legacy stylesheet; new markup uses the
 * ds-* classes so legacy selectors never match it.
 *
 * Contents: tokens · layout · type · buttons/links · surfaces · lists ·
 * forms · header (site-wide) · utilities
 */

/* ─── Tokens ──────────────────────────────────────────────────────────── */
:root {
	--ds-navy: #0a1628;
	--ds-navy-2: #122d62;
	--ds-blue: #2563eb;
	--ds-blue-hover: #1e50ba;
	--ds-blue-50: #f6f9fe;
	--ds-blue-100: #eef3fd;
	--ds-blue-200: #dce6fb;
	--ds-blue-300: #9db9f6;

	--ds-ink: #0a1628;
	--ds-text: #3b4553;
	--ds-muted: #5b6472;
	--ds-line: #e3e8f2;
	--ds-line-strong: #cdd5e4;
	--ds-on-dark: #ffffff;
	--ds-on-dark-muted: #b9c6df;

	--ds-r-sm: 8px;
	--ds-r: 12px;
	--ds-r-lg: 16px;
	--ds-r-xl: 24px;

	--ds-shadow-sm: 0 1px 2px rgba(10, 22, 40, 0.06);
	--ds-shadow: 0 1px 2px rgba(10, 22, 40, 0.04), 0 12px 32px -12px rgba(10, 22, 40, 0.14);
	--ds-shadow-lg: 0 2px 4px rgba(10, 22, 40, 0.04), 0 32px 64px -24px rgba(10, 22, 40, 0.28);
	--ds-ring: 0 0 0 4px rgba(37, 99, 235, 0.16);

	--ds-container: 1280px;  /* matches .softlance-container (header/footer) */
	--ds-gutter: 1.5rem;
	--ds-section-y: clamp(4rem, 8vw, 6.5rem);
	--ds-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

@media (max-width: 640px) {
	:root { --ds-gutter: 1rem; }
}

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

.ds-section {
	padding-block: var(--ds-section-y);
	background: #fff;
	color: var(--ds-text);
}

.ds-section--soft {
	background: var(--ds-blue-50);
	border-block: 1px solid var(--ds-line);
}

.ds-grid {
	display: grid;
	gap: 1.5rem;
}

.ds-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ds-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

@media (max-width: 960px) {
	.ds-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
	.ds-grid--3,
	.ds-grid--2 { grid-template-columns: minmax(0, 1fr); }
}

/* ─── Type ────────────────────────────────────────────────────────────── */
.ds-display,
.ds-h2,
.ds-h4,
.ds-h5 {
	font-family: var(--sl-font);
	color: var(--ds-ink);
	margin: 0;
	text-wrap: balance;
}

.ds-display {
	font-size: clamp(2.375rem, 5vw, 3.875rem);
	font-weight: 700;
	line-height: 1.06;
	letter-spacing: -0.032em;
}

.ds-h2 {
	font-size: clamp(1.875rem, 3.2vw, 2.625rem);
	font-weight: 700;
	line-height: 1.12;
	letter-spacing: -0.026em;
}

.ds-h4 {
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: -0.012em;
}

.ds-h5 {
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: -0.006em;
}

.ds-accent { color: var(--ds-blue); }

.ds-lead {
	margin: 1rem 0 0;
	max-width: 40rem;
	font-size: 1.125rem;
	line-height: 1.65;
	color: var(--ds-muted);
}

.ds-muted { color: var(--ds-muted); }

.ds-eyebrow {
	margin: 0 0 0.875rem;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ds-blue);
}

.ds-eyebrow--on-dark { color: var(--ds-blue-300); }

.ds-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem 0.75rem;
	margin: 0;
	font-size: 0.8125rem;
	color: var(--ds-muted);
}

.ds-meta > span { font-weight: 600; color: var(--ds-blue); }

/* Section header */
.ds-head { margin-bottom: clamp(2rem, 4vw, 3rem); }
.ds-head__main { max-width: 44rem; }

.ds-head--split {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem 2rem;
	flex-wrap: wrap;
}

.ds-head--center { text-align: center; }
.ds-head--center .ds-head__main { margin-inline: auto; }
.ds-head--center .ds-lead { margin-inline: auto; }

/* ─── Icons ───────────────────────────────────────────────────────────── */
.ds-icon {
	flex: none;
	width: 1.125em;
	height: 1.125em;
}

.ds-iconbox {
	display: inline-grid;
	place-items: center;
	flex: none;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: var(--ds-r);
	background: var(--ds-blue-100);
	color: var(--ds-blue);
}

.ds-iconbox svg { width: 1.375rem; height: 1.375rem; }
.ds-iconbox--sm { width: 2.5rem; height: 2.5rem; border-radius: 10px; }
.ds-iconbox--sm svg { width: 1.25rem; height: 1.25rem; }

/* ─── Buttons & links ─────────────────────────────────────────────────── */
.ds-btn,
body.sl-shadcn-ui .ds-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 2.75rem;
	padding: 0 1.125rem;
	border: 1px solid transparent;
	border-radius: 10px;
	font-family: var(--sl-font);
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1;
	letter-spacing: -0.005em;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color 0.2s var(--ds-ease), border-color 0.2s var(--ds-ease), color 0.2s var(--ds-ease), box-shadow 0.2s var(--ds-ease), transform 0.2s var(--ds-ease);
}

.ds-btn .ds-icon { transition: transform 0.2s var(--ds-ease); }
.ds-btn:hover .ds-icon { transform: translateX(3px); }
.ds-btn:active { transform: translateY(1px); }

.ds-btn--primary,
body.sl-shadcn-ui .ds-btn--primary {
	background: var(--ds-blue);
	color: #fff;
	box-shadow: 0 1px 2px rgba(10, 22, 40, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.ds-btn--primary:hover,
.ds-btn--primary:focus-visible,
body.sl-shadcn-ui .ds-btn--primary:hover {
	background: var(--ds-blue-hover);
	color: #fff;
}

.ds-btn--outline,
body.sl-shadcn-ui .ds-btn--outline {
	background: #fff;
	border-color: var(--ds-line-strong);
	color: var(--ds-ink);
}

.ds-btn--outline:hover,
body.sl-shadcn-ui .ds-btn--outline:hover {
	border-color: var(--ds-blue);
	color: var(--ds-blue);
}

.ds-btn--white,
body.sl-shadcn-ui .ds-btn--white {
	background: #fff;
	color: var(--ds-ink);
}

.ds-btn--white:hover { background: var(--ds-blue-100); color: var(--ds-ink); }

.ds-btn--lg,
body.sl-shadcn-ui .ds-btn--lg {
	min-height: 3.25rem;
	padding: 0 1.5rem;
	font-size: 1rem;
	border-radius: var(--ds-r);
}

.ds-btn--block { width: 100%; }

.ds-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 2rem;
}

.ds-actions--sm { margin-top: 1.25rem; }

.ds-link,
body.sl-shadcn-ui .ds-link {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--ds-blue);
	text-decoration: none;
	white-space: nowrap;
}

.ds-link .ds-icon { transition: transform 0.2s var(--ds-ease); }
.ds-link:hover,
a:hover .ds-link { color: var(--ds-blue-hover); }
.ds-link:hover .ds-icon,
a:hover > .ds-link .ds-icon,
a:hover .ds-link .ds-icon { transform: translateX(3px); }

/* ─── Surfaces ────────────────────────────────────────────────────────── */
.ds-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	padding: 1.5rem;
	border: 1px solid var(--ds-line);
	border-radius: var(--ds-r-lg);
	background: #fff;
	color: var(--ds-text);
	text-decoration: none;
	transition: border-color 0.25s var(--ds-ease), box-shadow 0.25s var(--ds-ease), transform 0.25s var(--ds-ease);
}

.ds-card p { margin: 0; line-height: 1.6; }

a.ds-card:hover {
	border-color: var(--ds-blue-200);
	box-shadow: var(--ds-shadow);
	transform: translateY(-2px);
	color: var(--ds-text);
}

a.ds-card:focus-visible {
	outline: 2px solid var(--ds-blue);
	outline-offset: 3px;
}

.ds-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 1.5rem;
	padding: 0.375rem 0.875rem 0.375rem 0.75rem;
	border: 1px solid var(--ds-line);
	border-radius: 999px;
	background: #fff;
	box-shadow: var(--ds-shadow-sm);
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--ds-ink);
}

.ds-pill__dot {
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	background: var(--ds-blue);
	box-shadow: 0 0 0 3px var(--ds-blue-200);
}

.ds-badge {
	display: inline-flex;
	align-self: flex-start;
	padding: 0.25rem 0.625rem;
	border-radius: 999px;
	background: var(--ds-blue-100);
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--ds-blue);
}

.ds-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.5rem 0.875rem;
	border: 1px solid var(--ds-line);
	border-radius: 999px;
	background: #fff;
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1.2;
	color: var(--ds-ink);
	text-decoration: none;
	transition: border-color 0.2s var(--ds-ease), color 0.2s var(--ds-ease);
}

a.ds-chip:hover { border-color: var(--ds-blue); color: var(--ds-blue); }

.ds-chip--strong,
a.ds-chip--strong {
	border-color: var(--ds-blue-200);
	background: var(--ds-blue-100);
	color: var(--ds-blue);
	font-weight: 600;
}

.ds-chip__icon { width: 1.125rem; height: 1.125rem; }

.ds-avatar {
	display: inline-grid;
	place-items: center;
	flex: none;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	background: var(--ds-blue-100);
	font-weight: 700;
	color: var(--ds-blue);
}

/* ─── Lists ───────────────────────────────────────────────────────────── */
.ds-tags,
.ds-checks {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ds-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem;
}

.ds-tags li {
	padding: 0.25rem 0.5rem;
	border: 1px solid var(--ds-line);
	border-radius: 6px;
	background: var(--ds-blue-50);
	font-size: 0.75rem;
	font-weight: 500;
	color: var(--ds-text);
}

.ds-checks {
	display: grid;
	gap: 0.625rem;
}

.ds-checks li {
	display: flex;
	align-items: flex-start;
	gap: 0.625rem;
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--ds-text);
}

.ds-checks .ds-icon {
	margin-top: 0.125rem;
	padding: 0.1875rem;
	width: 1.25rem;
	height: 1.25rem;
	border-radius: 50%;
	background: var(--ds-blue-100);
	color: var(--ds-blue);
	stroke-width: 3;
}

.ds-checks--on-dark li { color: var(--ds-on-dark); }
.ds-checks--on-dark .ds-icon { background: rgba(157, 185, 246, 0.16); color: var(--ds-blue-300); }

/* ─── Forms ───────────────────────────────────────────────────────────── */
.ds-form { display: grid; gap: 1rem; }

.ds-field { display: grid; gap: 0.375rem; }

.ds-field label {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--ds-ink);
}

.ds-field input,
.ds-field select,
.ds-field textarea,
body.sl-shadcn-ui .ds-field input {
	width: 100%;
	min-height: 3rem;
	padding: 0 0.875rem;
	border: 1px solid var(--ds-line-strong);
	border-radius: 10px;
	background: #fff;
	font-family: var(--sl-font);
	font-size: 1rem;
	color: var(--ds-ink);
	transition: border-color 0.2s var(--ds-ease), box-shadow 0.2s var(--ds-ease);
}

.ds-field textarea { min-height: 7rem; padding-block: 0.75rem; }

.ds-field input:focus,
.ds-field select:focus,
.ds-field textarea:focus {
	outline: none;
	border-color: var(--ds-blue);
	box-shadow: var(--ds-ring);
}

.ds-form__note {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.375rem;
	margin: 0;
	font-size: 0.8125rem;
	color: var(--ds-muted);
}

.ds-form__message:empty { display: none; }

.ds-form__message {
	padding: 0.75rem 1rem;
	border-radius: 10px;
	background: var(--ds-blue-100);
	font-size: 0.875rem;
	color: var(--ds-ink);
}

/* ─── Header (site-wide, light) ───────────────────────────────────────── */
body.sl-shadcn-ui {
	--sl-header-bg: rgba(255, 255, 255, 0.92);
	--sl-header-border: var(--ds-line);
	--sl-header-text: var(--ds-ink);
	--sl-header-muted: var(--ds-muted);
	--sl-nav-hover: var(--ds-blue);
	--sl-topbar-height: 0px;
}

body.sl-shadcn-ui .softlance-header,
body.sl-shadcn-ui .wp-block-template-part:has(.softlance-site-header) .softlance-header {
	background: var(--sl-header-bg);
	border-bottom: 1px solid var(--ds-line);
	color: var(--ds-ink);
}

body.sl-shadcn-ui .softlance-site-header.is-scrolled .softlance-header,
body.sl-shadcn-ui .softlance-header.is-scrolled {
	box-shadow: 0 8px 24px -16px rgba(10, 22, 40, 0.25);
}

body.sl-shadcn-ui .softlance-header__brand .softlance-logo--dark { display: block !important; }
body.sl-shadcn-ui .softlance-header__brand .softlance-logo--light { display: none !important; }

body.sl-shadcn-ui .softlance-site-header .softlance-menu > .menu-item > a,
body.sl-shadcn-ui .softlance-site-header .softlance-menu > .menu-item > .softlance-menu__link {
	color: var(--ds-ink);
	font-weight: 500;
}

body.sl-shadcn-ui .softlance-site-header .softlance-menu > .menu-item > a:hover,
body.sl-shadcn-ui .softlance-site-header .softlance-menu > .menu-item > .softlance-menu__link:hover,
body.sl-shadcn-ui .softlance-site-header .softlance-menu > .current-menu-item > a {
	background: var(--ds-blue-50);
	color: var(--ds-blue);
}

body.sl-shadcn-ui .softlance-header__toggle {
	border-color: var(--ds-line-strong);
	background: #fff;
}

body.sl-shadcn-ui .softlance-header__toggle-bar { background: var(--ds-ink); }

.softlance-header__actions {
	display: flex;
	align-items: center;
	gap: 1rem;
}

.ds-header__phone,
body.sl-shadcn-ui .ds-header__phone {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--ds-ink);
	text-decoration: none;
	white-space: nowrap;
}

.ds-header__phone:hover { color: var(--ds-blue); }

body.sl-shadcn-ui .ds-header__cta { min-height: 2.5rem; font-size: 0.875rem; }

/* The live menu has 10 items; with the phone link the header overflowed its
   1280px container. The number stays in the mobile menu, footer and CTAs. */
body.sl-shadcn-ui .ds-header__phone { display: none !important; }

/* Header logo: explicit height. With only max-height/max-width:100% the
   image sat in a shrink-to-fit flex item and collapsed to 0x0. */
body.sl-shadcn-ui .softlance-header__brand { flex: none; }

body.sl-shadcn-ui .softlance-header__brand .softlance-logo {
	height: 40px !important;
	width: auto !important;
	max-width: none !important;
	max-height: none !important;
}

@media (max-width: 900px) {
	body.sl-shadcn-ui .softlance-header__brand .softlance-logo { height: 34px !important; }
}

/* Menu link spacing by width band (measured with the live 10-item menu). */
@media (min-width: 1300px) {
	body.sl-shadcn-ui .softlance-site-header .softlance-menu > .menu-item > .softlance-menu__link { padding-inline: 0.5rem; }
}

@media (min-width: 1200px) and (max-width: 1299px) {
	body.sl-shadcn-ui .softlance-site-header .softlance-menu > .menu-item > .softlance-menu__link { padding-inline: 0.4375rem; }
}

@media (min-width: 901px) and (max-width: 1199px) {
	body.sl-shadcn-ui .softlance-site-header .softlance-menu > .menu-item > .softlance-menu__link { padding-inline: 0.375rem; font-size: 0.8125rem; }
}

@media (min-width: 901px) and (max-width: 1199px) {
	body.sl-shadcn-ui .ds-header__cta { display: none !important; }
}

/* ─── Footer (site-wide) ──────────────────────────────────────────────── */
body.sl-shadcn-ui .softlance-footer {
	background: var(--ds-navy);
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	color: var(--ds-on-dark-muted);
}

body.sl-shadcn-ui .softlance-footer__col-title {
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	color: #fff;
}

body.sl-shadcn-ui .softlance-footer__link,
body.sl-shadcn-ui .softlance-footer__contact-item,
body.sl-shadcn-ui .softlance-footer__legal a {
	font-size: 0.9375rem;
	color: var(--ds-on-dark-muted);
	text-decoration: none;
	transition: color 0.15s;
}

body.sl-shadcn-ui .softlance-footer__link:hover,
body.sl-shadcn-ui .softlance-footer__contact-item:hover,
body.sl-shadcn-ui .softlance-footer__legal a:hover { color: #fff; }

body.sl-shadcn-ui .softlance-footer__link--cta { color: var(--ds-blue-300); font-weight: 600; }

body.sl-shadcn-ui .softlance-footer__contact-icon {
	display: inline-flex;
	color: var(--ds-blue-300);
	filter: none;
}

body.sl-shadcn-ui .softlance-footer__contact-icon .ds-icon { width: 1rem; height: 1rem; }

body.sl-shadcn-ui .softlance-footer__about,
body.sl-shadcn-ui .softlance-footer__tagline { color: var(--ds-on-dark-muted); }

body.sl-shadcn-ui .softlance-footer__social-link {
	border-color: rgba(255, 255, 255, 0.14);
	background: rgba(255, 255, 255, 0.04);
	color: #fff;
}

body.sl-shadcn-ui .softlance-footer__social-link:hover { border-color: var(--ds-blue-300); }

body.sl-shadcn-ui .softlance-footer__bottom {
	border-top-color: rgba(255, 255, 255, 0.08);
	font-size: 0.875rem;
	color: var(--ds-on-dark-muted);
}

/* ─── Mobile navigation (≤900px) ──────────────────────────────────────
   Drawer mechanics (slide-in, backdrop, scroll lock, focus trap) stay in
   mobile-nav.css + navigation.js; this section owns the look. Contract:
   nav.is-open, li.is-submenu-open, button.softlance-submenu-toggle. */
@media (max-width: 900px) {
	/* Header bar: logo · quote button · menu button */
	body.sl-shadcn-ui .softlance-header__inner { min-height: 64px; gap: 0.75rem; }
	body.sl-shadcn-ui .softlance-header .softlance-logo { max-height: 34px; width: auto; }

	body.sl-shadcn-ui .softlance-header__actions {
		display: flex;
		margin-left: auto;
		gap: 0.5rem;
	}

	body.sl-shadcn-ui .softlance-header__actions .ds-header__phone { display: none; }

	body.sl-shadcn-ui .softlance-header__actions .ds-header__cta {
		display: inline-flex;
		min-height: 2.5rem;
		padding: 0 0.875rem;
		font-size: 0.8125rem;
		border-radius: 10px;
	}

	body.sl-shadcn-ui .softlance-header__toggle {
		width: 2.75rem;
		height: 2.75rem;
		border: 1px solid var(--ds-line-strong);
		border-radius: 10px;
		background: #fff;
		box-shadow: none;
	}

	body.sl-shadcn-ui .softlance-header__toggle-bar {
		width: 18px;
		background: var(--ds-ink);
	}

	/* Drawer */
	body.sl-shadcn-ui .softlance-header__nav {
		width: min(100vw, 400px);
		background: #fff;
		border-left: 0;
		box-shadow: -24px 0 48px -16px rgba(10, 22, 40, 0.28);
	}

	body.sl-shadcn-ui .softlance-mobile-nav__backdrop {
		background: rgba(10, 22, 40, 0.45);
		backdrop-filter: blur(2px);
		-webkit-backdrop-filter: blur(2px);
	}

	body.sl-shadcn-ui .softlance-mobile-nav__head {
		min-height: 64px;
		padding: 0.625rem 1rem 0.625rem 1.25rem;
		border-bottom: 1px solid var(--ds-line);
		background: #fff;
	}

	body.sl-shadcn-ui .softlance-mobile-nav__logo .softlance-logo { max-height: 32px; }

	body.sl-shadcn-ui .softlance-mobile-nav__close {
		width: 2.75rem;
		height: 2.75rem;
		border: 0;
		border-radius: 50%;
		background: var(--ds-blue-50);
		color: var(--ds-ink);
	}

	body.sl-shadcn-ui .softlance-mobile-nav__menu { padding: 0.5rem 0 1rem; }

	/* Rows */
	body.sl-shadcn-ui .softlance-header__nav .softlance-menu > .menu-item {
		margin: 0;
		border: 0;
		border-bottom: 1px solid var(--ds-line);
		background: transparent;
	}

	body.sl-shadcn-ui .softlance-header__nav .softlance-menu > .menu-item:last-child { border-bottom: 0; }

	body.sl-shadcn-ui .softlance-header__nav .softlance-menu > .menu-item > .softlance-menu__link,
	body.sl-shadcn-ui .softlance-header__nav .softlance-menu > .menu-item > a {
		position: relative;
		display: flex;
		align-items: center;
		justify-content: flex-start;
		min-height: 3.5rem;
		padding: 0.75rem 1.25rem;
		border-radius: 0;
		background: transparent;
		font-size: 1.0625rem;
		font-weight: 600;
		letter-spacing: -0.01em;
		color: var(--ds-ink);
	}

	body.sl-shadcn-ui .softlance-header__nav .softlance-menu > .menu-item > .softlance-menu__link::after,
	body.sl-shadcn-ui .softlance-header__nav .softlance-menu > .menu-item > .softlance-menu__link::before { display: none !important; }

	body.sl-shadcn-ui .softlance-header__nav .softlance-menu > .menu-item > .softlance-menu__link:hover,
	body.sl-shadcn-ui .softlance-header__nav .softlance-menu > .menu-item > .softlance-menu__link:active { background: var(--ds-blue-50); color: var(--ds-ink); }

	/* Current page: blue text + bar */
	body.sl-shadcn-ui .softlance-header__nav .softlance-menu > .current-menu-item > .softlance-menu__link,
	body.sl-shadcn-ui .softlance-header__nav .softlance-menu > .current-menu-ancestor > .softlance-menu__link,
	body.sl-shadcn-ui .softlance-header__nav .softlance-menu > .current-menu-parent > .softlance-menu__link { color: var(--ds-blue); }

	body.sl-shadcn-ui .softlance-header__nav .softlance-menu > .current-menu-item > .softlance-menu__link::before,
	body.sl-shadcn-ui .softlance-header__nav .softlance-menu > .current-menu-ancestor > .softlance-menu__link::before {
		content: "";
		display: block !important;
		position: absolute;
		left: 0;
		top: 0.875rem;
		bottom: 0.875rem;
		width: 3px;
		border-radius: 0 3px 3px 0;
		background: var(--ds-blue);
	}

	/* Parent rows: label + chevron button */
	body.sl-shadcn-ui .softlance-header__nav .softlance-menu .menu-item-has-children {
		display: flex !important;
		flex-wrap: wrap;
		align-items: center;
		background: transparent;
	}

	body.sl-shadcn-ui .softlance-header__nav .softlance-menu .menu-item-has-children.is-submenu-open { background: transparent; }

	body.sl-shadcn-ui .softlance-header__nav .softlance-menu > .menu-item-has-children > .softlance-menu__link { flex: 1 1 auto; width: auto; }
	body.sl-shadcn-ui .softlance-header__nav .softlance-menu > .menu-item-has-children.is-submenu-open > .softlance-menu__link { color: var(--ds-blue); }

	body.sl-shadcn-ui .softlance-header__nav .softlance-menu .menu-item-has-children > .softlance-submenu-toggle {
		flex: 0 0 2.75rem;
		width: 2.75rem;
		height: 2.75rem;
		margin: 0 0.625rem 0 0;
		border: 0;
		border-radius: 50%;
		background: transparent;
		color: var(--ds-muted);
	}

	body.sl-shadcn-ui .softlance-header__nav .softlance-menu .menu-item-has-children.is-submenu-open > .softlance-submenu-toggle {
		background: var(--ds-blue-100);
		color: var(--ds-blue);
	}

	/* One chevron, drawn by an SVG mask (the old border-drawn chevron and
	   theme.css's rotated icon stacked into an "L" when open). */
	body.sl-shadcn-ui .softlance-header__nav .softlance-submenu-toggle__icon {
		width: 1.125rem;
		height: 1.125rem;
		margin: 0;
		border: 0 !important;
		background: currentColor;
		transform: none;
		-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
		mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
		transition: transform 0.25s var(--ds-ease);
	}

	body.sl-shadcn-ui .softlance-header__nav .softlance-submenu-toggle__icon::before,
	body.sl-shadcn-ui .softlance-header__nav .softlance-submenu-toggle__icon::after { display: none !important; }

	body.sl-shadcn-ui .softlance-header__nav .menu-item-has-children.is-submenu-open > .softlance-submenu-toggle .softlance-submenu-toggle__icon { transform: rotate(180deg); }

	/* Submenus: flat tinted list, full width — no floating card */
	body.sl-shadcn-ui .softlance-header__nav .softlance-menu .sub-menu {
		flex: 0 0 100%;
		width: 100%;
		margin: 0 !important;
		padding: 0.25rem 0 0.75rem !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		background: var(--ds-blue-50) !important;
		transform: none !important;
	}

	body.sl-shadcn-ui .softlance-header__nav .softlance-menu .sub-menu .menu-item { border: 0; background: transparent; }

	body.sl-shadcn-ui .softlance-header__nav .softlance-menu .sub-menu .softlance-menu__link,
	body.sl-shadcn-ui .softlance-header__nav .softlance-menu .sub-menu a {
		position: relative;
		display: flex;
		align-items: center;
		min-height: 2.75rem;
		padding: 0.5rem 1.25rem 0.5rem 2rem;
		border-radius: 0;
		background: transparent;
		font-size: 0.9375rem;
		font-weight: 500;
		color: var(--ds-text);
		white-space: normal;
	}

	body.sl-shadcn-ui .softlance-header__nav .softlance-menu .sub-menu .softlance-menu__link:hover,
	body.sl-shadcn-ui .softlance-header__nav .softlance-menu .sub-menu .softlance-menu__link:active { background: var(--ds-blue-100); color: var(--ds-ink); }

	body.sl-shadcn-ui .softlance-header__nav .softlance-menu .sub-menu .current-menu-item > .softlance-menu__link { color: var(--ds-blue); font-weight: 600; }

	/* AI Automation (mega menu): groups become labelled sections, not a
	   second level of accordions */
	body.sl-shadcn-ui .softlance-header__nav .sl-mega__panel > .menu-item-has-children > .softlance-submenu-toggle { display: none !important; }

	body.sl-shadcn-ui .softlance-header__nav .sl-mega__panel > .menu-item-has-children > .softlance-menu__link {
		min-height: 0;
		padding: 1rem 1.25rem 0.375rem 2rem !important;
		font-size: 0.75rem !important;
		font-weight: 600 !important;
		letter-spacing: 0.08em;
		text-transform: uppercase;
		color: var(--ds-blue) !important;
	}

	body.sl-shadcn-ui .softlance-header__nav .sl-mega__panel > .menu-item-has-children > .sub-menu {
		display: block !important;
		opacity: 1 !important;
		visibility: inherit !important;
		pointer-events: inherit !important;
		padding: 0 !important;
		animation: none;
	}

	body.sl-shadcn-ui .softlance-header__nav .sl-mega__panel > .menu-item-has-children > .softlance-menu__link::before,
	body.sl-shadcn-ui .softlance-header__nav .sl-mega__panel > .menu-item-has-children > .softlance-menu__link::after { display: none !important; }

	/* Footer: contact + quote, pinned */
	body.sl-shadcn-ui .softlance-mobile-nav__foot {
		padding: 1rem 1.25rem calc(1rem + env(safe-area-inset-bottom));
		border-top: 1px solid var(--ds-line);
		background: #fff;
		box-shadow: 0 -12px 24px -20px rgba(10, 22, 40, 0.35);
	}

	body.sl-shadcn-ui .softlance-mobile-nav__contacts { gap: 0.625rem; margin-bottom: 0.625rem; }

	body.sl-shadcn-ui .softlance-mobile-nav__contact,
	body.sl-shadcn-ui .softlance-mobile-nav__contact--wa {
		min-height: 2.75rem;
		border: 1px solid var(--ds-line-strong);
		border-radius: 10px;
		background: #fff;
		font-size: 0.9375rem;
		font-weight: 600;
		color: var(--ds-ink);
	}

	body.sl-shadcn-ui .softlance-mobile-nav__contact svg { color: var(--ds-blue); }

	body.sl-shadcn-ui .softlance-mobile-nav__cta {
		min-height: 3rem;
		border-radius: var(--ds-r);
		background: var(--ds-blue);
		font-size: 1rem;
		font-weight: 600;
		color: #fff;
		box-shadow: none;
	}

	body.sl-shadcn-ui .softlance-mobile-nav__cta:hover { background: var(--ds-blue-hover); color: #fff; }
}

@media (max-width: 359px) {
	body.sl-shadcn-ui .softlance-header__actions .ds-header__cta { display: none; }
}

/* ─── Utilities ───────────────────────────────────────────────────────── */
.ds-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
	.ds-btn,
	.ds-card,
	.ds-link .ds-icon,
	.ds-btn .ds-icon { transition: none; }
	a.ds-card:hover { transform: none; }
}
