/* Nevermore Crisis & Security Advisors — theme v2 (Neudesic-inspired)
   Colors: background #0d1a28, CTA #a3320b
   Includes a reusable blurred-gradient section background: .section.gradient
----------------------------------------------------------------------- */

/* NMS — remove Squarespace's empty content band (works in editor + live) */

/* 1) If the Squarespace content area contains NO real blocks, hide it */
.sections:has(> .page-section):not(:has(.sqs-block)) {
    display: none !important;
}

/* 2) Also hide the solitary empty page-section (belt & suspenders) */
.page-section:not(:has(.sqs-block)) {
    display: none !important;
}

/* 3) Strip any template min-heights/gutters so nothing reserves space */
#siteWrapper,
.site-wrapper,
.Main,
.Main-content,
.content,
.content-inner,
.sections,
.page-section,
.Index-page,
.Index-page-content,
.Collection-content,
[data-animation-role="content"],
[data-animation-role="main"],
[data-section-id],
[data-section-type] {
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

/* 4) Filler blocks should never create height */
.sqs-block-spacer,
.sqs-block-horizontalrule {
    display: none !important;
}

/* === Asset Map (Squarespace file URLs) === */
:root {
    --asset-icon-shield: url('https://images.squarespace-cdn.com/content/6896a3259395402fa643fa4c/ed6cf8bd-1859-46df-a227-f576315dad53/verified_user_256dp_2854C5_FILL1_wght400_GRAD0_opsz48.png?content-type=image%2Fpng');
    --asset-logo: url('https://images.squarespace-cdn.com/content/6896a3259395402fa643fa4c/bc1def60-d7b9-4587-9459-b32f83cb92cd/blob-dcc7dbd.png+copy.png?content-type=image%2Fpng');
    --asset-sdv: url('https://images.squarespace-cdn.com/content/6896a3259395402fa643fa4c/14fcd7f2-5554-4880-aa63-db573a058704/Service-Disabled+Veteran-Owned-Certified.jpg?content-type=image%2Fjpeg');
    --asset-vosb: url('https://images.squarespace-cdn.com/content/6896a3259395402fa643fa4c/d5ffd5e8-e714-407d-8829-0a889478212d/Veteran-Owned+Certified.jpg?content-type=image%2Fjpeg');

    /* Default hero (can be overridden per page via .hero { --hero: url(...) }) */
    --asset-hero: url('https://images.squarespace-cdn.com/content/6896a3259395402fa643fa4c/2b5f925c-a8ab-4aec-9877-9bd8f1deacc5/Futuristic+Globe+In+Digital+Network.png?content-type=image%2Fpng');

    --asset-icon-medal: url('https://images.squarespace-cdn.com/content/6896a3259395402fa643fa4c/d861bedc-b447-49ea-8484-404125feea36/military_tech_256dp_2854C5_FILL1_wght400_GRAD0_opsz48.png?content-type=image%2Fpng');
    --asset-icon-globe: url('https://images.squarespace-cdn.com/content/6896a3259395402fa643fa4c/ed269f1d-4be8-49df-b619-89fa62311407/public_256dp_2854C5_FILL1_wght400_GRAD0_opsz48.png?content-type=image%2Fpng');
    --asset-icon-target: url('https://images.squarespace-cdn.com/content/6896a3259395402fa643fa4c/b1a367c2-b8b5-44e8-a760-8c769ba93d5b/motion_sensor_active_256dp_2854C5_FILL1_wght400_GRAD0_opsz48.png?content-type=image%2Fpng');
    --asset-icon-security: url('https://images.squarespace-cdn.com/content/6896a3259395402fa643fa4c/a3a0373c-00c6-4672-b040-1ce34f42e0e9/security_256dp_2854C5_FILL0_wght400_GRAD0_opsz48.png?content-type=image%2Fpng');
    --asset-icon-track: url('https://images.squarespace-cdn.com/content/6896a3259395402fa643fa4c/c957f98d-bdd3-4492-a602-6c09b28780f4/track_changes_256dp_2854C5_FILL0_wght400_GRAD0_opsz48.png?content-type=image%2Fpng');

    --asset-img-srm: url('https://images.squarespace-cdn.com/content/6896a3259395402fa643fa4c/52fcb01f-058f-483f-be9a-91f54113554c/ChatGPT+Image+Aug+11%2C+2025+at+04_03_14+PM.png?content-type=image%2Fpng');
    --asset-img-res: url('https://images.squarespace-cdn.com/content/6896a3259395402fa643fa4c/0f0a6872-2045-49ed-81ec-e5a57b70119a/1911745019.webp?content-type=image%2Fwebp');
    --asset-img-tm: url('https://images.squarespace-cdn.com/content/6896a3259395402fa643fa4c/6a37e4f2-5fc0-47f1-9e1e-cce609582667/20250811_1612_Protective+Measures_simple_compose_01k2dc2zjgfysthq23fftm5cgf.png?content-type=image%2Fpng');
    --asset-img-gr: url('https://images.squarespace-cdn.com/content/6896a3259395402fa643fa4c/c9d4fde3-65b3-4d06-a072-d7cdab2fc588/ChatGPT+Image+Sep+9%2C+2025+at+01_03_23+PM.png?content-type=image%2Fpng');
    --asset-img-grc: url('https://images.squarespace-cdn.com/content/6896a3259395402fa643fa4c/08e91fac-3953-4504-a0ce-bbd25570bf53/xxk54z8.webp?content-type=image%2Fwebp');

    /* === Industry card images (replace as needed) === */
    --asset-img-health: url('https://images.squarespace-cdn.com/content/6896a3259395402fa643fa4c/2e16f62e-e9dd-4acb-bad1-b85414a2617b/ChatGPT+Image+Sep+9%2C+2025+at+11_39_07+PM.png?content-type=image%2Fpng');
    --asset-img-edu: url('https://images.squarespace-cdn.com/content/6896a3259395402fa643fa4c/8d87c2a3-4aad-4fa4-9e0b-99bcd8ef6e9d/ChatGPT+Image+Sep+9%2C+2025+at+11_41_49+PM.png?content-type=image%2Fpng');
    --asset-img-energy: url('https://images.squarespace-cdn.com/content/6896a3259395402fa643fa4c/59ba08e4-049f-41e4-938c-791c9b4acc91/ChatGPT+Image+Sep+9%2C+2025+at+11_46_23+PM.png?content-type=image%2Fpng');
    --asset-img-gov: url('https://images.squarespace-cdn.com/content/6896a3259395402fa643fa4c/3a7eca07-7df6-43dc-adf7-3c1d6bfbdfe0/ChatGPT+Image+Sep+9%2C+2025+at+11_50_26+PM.png?content-type=image%2Fpng');
    --asset-img-finance: url('https://images.squarespace-cdn.com/content/6896a3259395402fa643fa4c/3b790536-34ea-4baf-85c1-3ed266b56c71/ChatGPT+Image+Sep+9%2C+2025+at+11_59_04+PM.png?content-type=image%2Fpng');
    --asset-img-cre: url('https://images.squarespace-cdn.com/content/6896a3259395402fa643fa4c/3b6d02cf-e7c2-4eb6-9e3f-9cd4e598fff5/ChatGPT+Image+Sep+10%2C+2025+at+12_06_49+AM.png?content-type=image%2Fpng');

    --asset-dan: url('https://images.squarespace-cdn.com/content/6896a3259395402fa643fa4c/fd822785-56f2-43ef-bdd3-71e1c32548b7/Image+5.jpg?content-type=image%2Fjpeg');
    --asset-carl: url('https://images.squarespace-cdn.com/content/6896a3259395402fa643fa4c/13704e25-23fc-47ad-94f4-085a727f406d/Image+1.jpg?content-type=image%2Fjpeg');
    --asset-ron: url('https://images.squarespace-cdn.com/content/6896a3259395402fa643fa4c/529fcbba-34ba-488d-96a3-1e5699708835/Image+4.jpg?content-type=image%2Fjpeg');
    --asset-lisa: url('https://images.squarespace-cdn.com/content/6896a3259395402fa643fa4c/74fbbd14-d225-41a4-80b1-2a3ec0a5db7d/Image+2.jpg?content-type=image%2Fjpeg');
    --asset-pat: url('https://images.squarespace-cdn.com/content/6896a3259395402fa643fa4c/f486db51-181c-48f9-8f1a-4ff1ff18358a/Image.jpg?content-type=image%2Fjpeg');
    --asset-teale: url('https://images.squarespace-cdn.com/content/6896a3259395402fa643fa4c/5fbc8810-e08c-414d-b635-37ba0b1b4b23/Image+3.jpg?content-type=image%2Fjpeg');
    --asset-capabilities-pdf: url('PDF_URL');
}

/* === Palette (accessibility-friendly around #0d1a28 and #a3320b) === */
:root {
    --bg: #0d1a28;
    /* page background (kept dark) */

    /* Panels (nudged toward deep teal to echo Neudesic) */
    --surface: #0f2f3d;
    /* primary cards / panels */
    --surface-2: #0c2633;
    /* alt panels */
    --utility: #103848;
    /* deep teal section background */

    --line: rgba(255, 255, 255, .10);
    --line-strong: rgba(255, 255, 255, .16);
    --line-ink: rgba(9, 18, 30, .12);

    --text-hi: #e9f1fa;
    /* primary text on dark */
    --text: #c8d5e5;
    /* body text on dark */
    --muted: #96a6b9;
    /* subtle on dark */

    --cta: #a3320b;
    /* primary CTA */
    --cta-600: #8e2b0a;
    /* hover/active */
    --cta-200: #f0c3b4;
    /* soft tint for outlines/focus */

    /* Complementary cool accents to echo Neudesic look */
    --accent: #2aa0ff;
    /* links, small accents */
    --accent-600: #1984d6;
    --cyan: #40d6ff;
    --teal: #1fb3a0;

    /* Light “peach” card tone + ink for contrast (for utility-style sections) */
    --card-cream: #f6e6d8;
    /* light peach/cream card */
    --card-cream-text: #102230;
    /* dark ink for cream cards */
    --card-cream-muted: #33495a;

    --radius: 18px;
}

/* ——— Header tweaks ——— */
.nav .menu .btn {
    padding: .7rem 1rem;
    border-radius: 24px;
}

/* ===================== */
/* Card variables system */
/* ===================== */
.card,
.sol-card {
    /* allow per-context overrides (e.g., utility sections) */
    background: var(--card-bg, var(--surface));
    color: var(--card-fg, var(--text));
}

/* ——— Neudesic-style “Our Solutions” cards ——— */
.sol-card {
    position: relative;
    border: 1px solid color-mix(in srgb, #ffffff 6%, transparent);
    border-radius: 22px;
    padding: 22px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .25);

    display: flex;
    flex-direction: column;
}

.sol-card .p {
    flex-grow: 1;
}

.sol-card p:last-of-type {
    margin-top: auto;
    text-align: center;
}

.sol-card::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .05);
}

.sol-card h3 {
    text-align: center;
    font-weight: 800;
    margin: 0 0 14px;
    color: var(--card-title, var(--text-hi));
}

.sol-card .media {
    min-height: 260px;
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, #ffffff 6%, transparent);
    box-shadow: 0 10px 24px rgba(0, 0, 0, .28);
}

.sol-card .p {
    margin: 16px 0 10px;
    font-size: 1rem;
}

.sol-card .btn.alt {
    border-color: var(--cta);
    color: #fff;
    padding: .85rem 1.1rem;
    border-radius: 24px;
}

.sol-card:hover {
    transform: translateY(-2px);
    transition: .18s transform ease, .18s box-shadow ease;
    box-shadow: 0 14px 38px rgba(0, 0, 0, .35);
}

/* optional: small logo used inside the hero stat card */
.stat-logo {
    width: 48px;
    height: 48px;
    border-radius: 10px;
}

/* Base */
* {
    box-sizing: border-box
}

html,
body {
    margin: 0;
    padding: 0
}

body {
    font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
    color: var(--text);
    background: var(--bg);
}

img {
    max-width: 100%;
    display: block
}

a {
    color: var(--accent);
    text-decoration: none
}

a:hover {
    color: var(--accent-600)
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: clamp(16px, 2.6vw, 32px)
}

.grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 24px
}

/* Type */
h1,
h2,
h3,
.h1,
.h2,
.h3 {
    color: var(--text-hi);
    letter-spacing: .01em
}

.h1 {
    font-weight: 800;
    line-height: 1.05;
    font-size: clamp(34px, 6vw, 64px);
    margin: .1em 0 .35em
}

.h2 {
    font-weight: 700;
    line-height: 1.12;
    font-size: clamp(26px, 3.6vw, 38px);
    margin: 0 0 .6em
}

.h3 {
    font-weight: 700;
    font-size: 1.25rem;
    margin: .2em 0
}

.lead {
    font-size: clamp(16px, 2.1vw, 20px);
    color: #d8e6f6
}

.p {
    color: var(--card-fg, var(--text));
    line-height: 1.65
}

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

.center {
    text-align: center
}

/* Buttons & Pills */
.tag {
    display: inline-flex;
    gap: .5rem;
    align-items: center;
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: .35rem .6rem;
    font-size: .82rem;
    color: #deebff;
}

.btn {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    padding: .9rem 1.1rem;
    border-radius: 24px;
    font-weight: 700;
    color: #fff;
    background: var(--cta);
    border: 1px solid transparent;
    transition: .18s background-color ease;
}

.btn:hover {
    background: var(--cta-600)
}

.btn.alt {
    background: transparent;
    border-color: var(--cta);
    color: #fff;
}

.btn.alt:hover {
    background: rgba(163, 50, 11, .10)
}

.btn.light {
    background: #fff;
    color: #09121e
}

.btn.light:hover {
    background: #f2f6ff
}

.btn:focus-visible {
    outline: 0;
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--cta) 30%, white)
}

/* Nav */
.nav {
    position: sticky;
    top: 0;
    z-index: 30;
    background: rgba(9, 18, 30, .62);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--line)
}

.nav .row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px
}

.logo {
    display: flex;
    align-items: center;
    gap: .6rem;
    font-weight: 800;
    letter-spacing: .02em;
    color: var(--text-hi)
}

.logo img {
    width: 36px;
    height: 36px;
    border-radius: 8px
}

.nav a {
    color: var(--text-hi)
}

.menu {
    display: flex;
    flex-wrap: wrap;
    gap: 14px
}

.burger {
    display: none
}

@media(max-width:880px) {
    .menu {
        display: none
    }

    .burger {
        display: inline-flex
    }
}

/* Hero (uses --hero if set, else --asset-hero) */
.hero {
    position: relative;
    isolation: isolate;
    color: #fff;
    min-height: 64vh;
    background: linear-gradient(0deg, rgba(8, 16, 26, .72), rgba(8, 16, 26, .72)), var(--hero, var(--asset-hero));
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
}

.hero .h1 {
    color: #fff
}

.hero .lead {
    color: #d9e7ff
}

.hero .container {
    padding-top: 56px;
    padding-bottom: 48px
}

.hero small {
    opacity: .9
}

/* KPI / Stat card (right side of hero) */
.stat-card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px 18px 14px;
    max-width: 520px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .25);
}

.stat-card .row {
    display: flex;
    gap: 18px;
    align-items: center;
    flex-wrap: wrap
}

.kpi {
    display: flex;
    gap: 12px;
    flex-wrap: wrap
}

.kpi .tag {
    border-color: #214b86;
    color: #c9e0ff
}

/* Sections */
.section {
    padding: clamp(28px, 6vw, 72px) 0;
    border-top: 0;
}

.section.alt {
    background: var(--surface-2)
}

/* >>> Reusable blurred gradient background */
.section.gradient {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: var(--surface-2);
}

.section.gradient::before {
    content: "";
    position: absolute;
    inset: -20%;
    background:
        radial-gradient(700px 700px at 10% 15%, color-mix(in srgb, var(--cta) 60%, transparent) 0%, transparent 60%),
        radial-gradient(700px 700px at 85% 35%, color-mix(in srgb, var(--accent) 38%, transparent) 0%, transparent 60%),
        radial-gradient(600px 600px at 50% 105%, color-mix(in srgb, var(--teal) 30%, transparent) 0%, transparent 60%);
    filter: blur(30px) contrast(1.08) brightness(1.06);
    z-index: 0;
    pointer-events: none;
    transform: translateZ(0);
}

.section.gradient>* {
    position: relative;
    z-index: 1
}

/* ===== Utility (Neudesic-inspired) section ===== */
.section.utility {
    background: var(--utility);
}

/* Inside utility sections, flip cards to a light peach tone with dark ink text */
.section.utility .card,
.section.utility .sol-card {
    --card-bg: var(--card-cream);
    --card-fg: var(--card-cream-text);
    --card-title: var(--card-cream-text);
    border-color: var(--line-ink);
    box-shadow: 0 8px 22px rgba(0, 0, 0, .18);
}

.section.utility .card .p,
.section.utility .sol-card .p {
    color: var(--card-cream-muted);
}

.section.utility .sol-card .btn.alt,
.card.light .btn.alt {
    color: var(--cta);
    border-color: var(--cta);
    background: transparent;
}

.section.utility .tag,
.card.light .tag {
    border-color: #ead6c8;
    color: var(--card-cream-text);
}

/* Logo under "Why Clients Choose Nevermore" */
#who-why .who-logo {
    width: 100px;
    height: 100px;
    margin: 12px auto 28px;
    border-radius: 90px;
    background-color: #fff;
    background-image: var(--asset-logo);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    box-shadow: 0 6px 24px rgba(0, 0, 0, .28);
}

/* Cards */
.card {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 20px;
}

.card .media {
    border-radius: 14px;
    overflow: hidden;
    margin: 8px 0 12px
}

/* Light/peach card helper (can be used anywhere) */
.card.light {
    --card-bg: var(--card-cream);
    --card-fg: var(--card-cream-text);
    --card-title: var(--card-cream-text);
    border-color: var(--line-ink);
}

/* Leadership cards — tappable full-card links */
#leadership .grid {
    align-items: stretch;
}

#leadership .card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    cursor: pointer;
    transition: .18s transform ease, .18s box-shadow ease, .18s border-color ease;
}

#leadership .card .stretched-link {
    position: absolute;
    inset: 0;
    border-radius: inherit;
    z-index: 1;
}

#leadership .card:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 38px rgba(0, 0, 0, .35);
    border-color: var(--cta);
}

#leadership .card:focus-within {
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--cta) 30%, white);
    outline: none;
}

/* Icon & image helpers */
.icon64 {
    width: 84px;
    height: 84px;
    margin: 0 auto 8px
}

.icon64.icon-medal,
.icon64.icon-globe,
.icon64.icon-shield,
.icon64.icon-target,
.icon64.icon-security,
.icon64.icon-track {
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain
}

.icon64.icon-medal {
    background-image: var(--asset-icon-medal)
}

.icon64.icon-globe {
    background-image: var(--asset-icon-globe)
}

.icon64.icon-shield {
    background-image: var(--asset-icon-shield)
}

.icon64.icon-target {
    background-image: var(--asset-icon-target)
}

.icon64.icon-security {
    background-image: var(--asset-icon-security)
}

.icon64.icon-track {
    background-image: var(--asset-icon-track)
}

/* Background media utilities */
.media.bg-srm,
.media.bg-res,
.media.bg-tm,
.media.bg-gr,
.media.bg-grc,
.media.bg-leader1,
.media.bg-leader2,
.media.bg-health,
.media.bg-edu,
.media.bg-energy,
.media.bg-gov,
.media.bg-finance,
.media.bg-cre {
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    min-height: 220px
}

@media(min-width:980px) {

    .media.bg-srm,
    .media.bg-res,
    .media.bg-tm,
    .media.bg-gr,
    .media.bg-grc,
    .media.bg-leader1,
    .media.bg-leader2,
    .media.bg-health,
    .media.bg-edu,
    .media.bg-energy,
    .media.bg-gov,
    .media.bg-finance,
    .media.bg-cre {
        min-height: 260px
    }
}

.media.bg-srm {
    background-image: var(--asset-img-srm)
}

.media.bg-res {
    background-image: var(--asset-img-res)
}

.media.bg-tm {
    background-image: var(--asset-img-tm)
}

.media.bg-gr {
    background-image: var(--asset-img-gr)
}

.media.bg-grc {
    background-image: var(--asset-img-grc)
}

.media.bg-health {
    background-image: var(--asset-img-health)
}

.media.bg-edu {
    background-image: var(--asset-img-edu)
}

.media.bg-energy {
    background-image: var(--asset-img-energy)
}

.media.bg-gov {
    background-image: var(--asset-img-gov)
}

.media.bg-finance {
    background-image: var(--asset-img-finance)
}

.media.bg-cre {
    background-image: var(--asset-img-cre)
}

.media.bg-leader1 {
    background-image: var(--asset-leader1)
}

.media.bg-leader2 {
    background-image: var(--asset-leader2)
}

/* “Get details »” link style */
.link-cta {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    color: var(--cta);
    font-weight: 700;
}

.link-cta:hover {
    color: var(--cta-600)
}

.link-cta::after {
    content: "»";
    transition: .15s transform
}

.link-cta:hover::after {
    transform: translateX(2px)
}

/* Tables */
.table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden
}

.table th,
.table td {
    padding: 12px 14px;
    border-bottom: 1px solid var(--line);
    text-align: left
}

.table thead {
    background: #0f2032
}

.table tbody tr:nth-child(odd) {
    background: #0e1e2e
}

/* Footer */
.footer {
    background: var(--surface);
    border-top: 1px solid var(--line);
    margin-top: 56px
}

.footer .row {
    display: flex;
    gap: 18px;
    justify-content: space-between;
    flex-wrap: wrap;
    align-items: center
}

.badges {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap
}

.badges img {
    height: 36px;
    background: #fff;
    border-radius: 6px;
    padding: 4px
}

/* Grid utilities */
.col-12 {
    grid-column: span 12
}

@media(min-width:760px) {
    .col-6 {
        grid-column: span 6
    }
}

@media(min-width:980px) {
    .col-4 {
        grid-column: span 4
    }
}

/* Reveal (no-JS fallback) */
.reveal {
    opacity: 1;
    transform: none;
    transition: .6s opacity, .6s transform
}

.has-js .reveal {
    opacity: .01;
    transform: translateY(12px)
}

.has-js .reveal.in {
    opacity: 1;
    transform: none
}

.footer .footer-links a.tag {
    border-color: var(--cta);
    color: var(--cta);
}

.footer .footer-links a.tag:hover {
    background: rgba(163, 50, 11, .10);
}

.footer .social-btn {
    color: var(--text-hi)
}

.footer .social-btn:hover {
    color: var(--cta)
}

/* ===== Reusable Site Header (use on all pages) ===== */
.site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(9, 18, 30, .62);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--line);
}

/* 3-column grid: brand | centered nav | CTA */
.site-header .bar {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 16px;
}

/* Brand (logo + name) */
.site-header .brand {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    font-weight: 800;
    letter-spacing: .02em;
    color: var(--text-hi);
}

.site-header .brand img {
    width: 36px;
    height: 36px;
    border-radius: 8px;
}

/* Centered primary nav */
.site-header .site-nav {
    justify-self: center;
}

.site-header .nav-links {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 28px;
    align-items: center;
    justify-content: center;
}

.site-header .nav-links a {
    color: var(--text-hi);
    font-weight: 600;
}

/* Contact CTA pill (accent color) */
.header-cta {
    justify-self: end;
    padding: .7rem 1rem;
    border-radius: 24px;
    background: var(--cta);
    color: #fff;
    border: 1px solid transparent;
}

.header-cta:hover {
    background: var(--cta-600);
}

/* Mobile: hide link row, keep burger + CTA */
.site-header .burger {
    display: none;
}

@media (max-width: 880px) {
    .site-header .nav-links {
        display: none;
    }

    .site-header .burger {
        display: inline-flex;
        justify-self: end;
    }
}

/* ===== Reusable Site Footer ===== */
.site-footer {
    background: var(--surface);
    border-top: 1px solid var(--line);
    margin-top: 56px;
    padding: 24px 0;
    font-size: 0.95rem;
}

.site-footer .bar {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    align-items: center;
    justify-content: space-between;
}

.site-footer .copyright {
    color: var(--muted);
}

/* Footer links (Capabilities + socials) */
.site-footer .footer-links {
    display: flex;
    gap: 14px;
    align-items: center;
    flex-wrap: wrap;
}

.site-footer .footer-links a.tag {
    border-color: var(--cta);
    color: var(--cta);
    font-weight: 600;
}

.site-footer .footer-links a.tag:hover {
    background: rgba(163, 50, 11, .10);
}

/* Footer badge (SDVOSB) next to Capabilities link */
.site-footer .footer-badge {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: #fff;
    padding: 3px 4px;
    line-height: 0;
}

.site-footer .footer-badge img {
    height: 26px;
    display: block;
}

/* Social buttons */
.site-footer .social-btn {
    display: inline-flex;
    width: 36px;
    height: 36px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--text-hi);
    transition: background .2s ease, color .2s ease;
}

.site-footer .social-btn:hover {
    color: var(--cta);
    background: rgba(163, 50, 11, .08);
}

/* Slim CTA strip */
.section.cta {
    padding: 28px 0;
}

.section.cta .h3 {
    margin-bottom: 8px;
}

/* Tri-color blur variant tuned for tight CTA strips */
.section.cta.gradient {
    background: var(--surface-2);
}

.section.cta.gradient::before {
    background:
        radial-gradient(520px 520px at 12% 25%, color-mix(in srgb, var(--cta) 60%, transparent) 0%, transparent 60%),
        radial-gradient(520px 520px at 88% 35%, color-mix(in srgb, var(--accent) 38%, transparent) 0%, transparent 60%),
        radial-gradient(420px 420px at 50% 115%, color-mix(in srgb, var(--teal) 30%, transparent) 0%, transparent 60%);
    filter: blur(22px) contrast(1.05) brightness(1.05);
}

/* Remove gap between CTA strip and footer */
.section.cta {
    padding-bottom: 22px;
    margin-bottom: 0;
}

.section.cta.gradient {
    margin-bottom: 0;
}

.section+.site-footer {
    margin-top: 0;
}

/* Who & Why list layout — no bullets, centered lines */
#who-why .who-bullets {
    list-style: none;
    margin: 12px auto 18px;
    padding: 0;
    text-align: center;
}

#who-why .who-bullets li {
    display: block;
    margin: 6px 0;
}

/* ===== Alternating service rows — minimal + clickable cards ===== */
.svc-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: clamp(22px, 4.2vw, 38px);
    margin-top: clamp(40px, 7vw, 120px);
}

/* Two-column card with larger image + interactivity */
.svc {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    align-items: center;
    gap: clamp(16px, 2.6vw, 28px);
    position: relative;
    cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background-color .18s ease;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 16px;
}

.svc.reverse {
    grid-template-columns: 1.4fr 1fr;
}

.svc .h3 {
    font-size: clamp(28px, 3.4vw, 40px);
    line-height: 1.12;
    margin: 0 0 12px;
}

.svc .svc-text .p {
    font-size: clamp(17px, 1.8vw, 20px);
    line-height: 1.7;
    margin: 0;
}

.svc .svc-media .media {
    aspect-ratio: 16/10;
    width: 100%;
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, #ffffff 6%, transparent);
    box-shadow: 0 14px 38px rgba(0, 0, 0, .35);
}

/* Mobile stacking */
@media (max-width:880px) {

    .svc,
    .svc.reverse {
        grid-template-columns: 1fr;
    }

    .svc.reverse .svc-media {
        order: -1;
    }
}

/* Full-card link target */
.svc .stretched-link {
    position: absolute;
    inset: 0;
    z-index: 3;
    border-radius: inherit;
}

/* Hover/focus feedback */
.svc:hover {
    transform: translateY(-4px);
    border-color: var(--cta);
    background: color-mix(in srgb, var(--cta) 8%, var(--surface));
    box-shadow: 0 16px 40px rgba(0, 0, 0, .36);
}

.svc:focus-within {
    border-color: var(--cta);
    background: color-mix(in srgb, var(--cta) 8%, var(--surface));
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--cta) 30%, white), 0 16px 40px rgba(0, 0, 0, .36);
}

.svc:hover .svc-media .media {
    box-shadow: 0 18px 44px rgba(0, 0, 0, .45);
}

.svc .svc-cta {
    display: none !important;
}

/* ===== Clickable “lift + orange border + tint” for linked cards ===== */
.card.linked,
.sol-card {
    position: relative;
    cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background-color .18s ease;
}

.card.linked .stretched-link,
.sol-card .stretched-link {
    position: absolute;
    inset: 0;
    z-index: 3;
    border-radius: inherit;
}

.card.linked:hover,
.sol-card:hover {
    transform: translateY(-4px);
    border-color: var(--cta);
    background: color-mix(in srgb, var(--cta) 8%, var(--surface));
    box-shadow: 0 16px 40px rgba(0, 0, 0, .36);
}

.card.linked:focus-within,
.sol-card:focus-within {
    border-color: var(--cta);
    background: color-mix(in srgb, var(--cta) 8%, var(--surface));
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--cta) 30%, white), 0 16px 40px rgba(0, 0, 0, .36);
}

.card.linked:hover .media,
.sol-card:hover .media {
    box-shadow: 0 18px 44px rgba(0, 0, 0, .45);
}

/* Remove legacy button/cta spacing (no buttons now) */
.sol-card .p {
    flex-grow: 0;
}

.sol-card p:last-of-type {
    margin-top: 10px;
    text-align: left;
}

/* Extra separation between WHY list and "Our Solutions" header */
#solutions-band #who-why .who-bullets {
    margin: 12px auto clamp(72px, 12vw, 180px);
}

.section.center>.container>.h2 {
    margin-bottom: clamp(28px, 5vw, 72px);
}

/* Professional 2-column key/value table */
.table.kv {
    font-size: clamp(18px, 2.1vw, 22px);
    line-height: 1.7;
}

.table.kv th[scope="row"] {
    text-align: left;
    width: 260px;
    white-space: nowrap;
    color: var(--text-hi);
    font-weight: 700;
}

.table.kv a {
    font-weight: 600;
}

.table.kv tr.section th {
    font-size: clamp(16px, 1.8vw, 20px);
    text-align: left;
    background: #0f2032;
    color: var(--text-hi);
}

.table.kv tbody tr:nth-child(odd) {
    background: transparent;
}

.table.kv tr.note td {
    font-weight: 800;
    color: var(--text-hi);
    text-align: center;
}

.table.kv+.table.kv {
    margin-top: clamp(16px, 3vw, 28px);
}

.note-wide {
    margin-top: clamp(14px, 2.4vw, 22px);
    font-weight: 800;
    text-align: center;
    color: var(--text-hi);
    font-size: clamp(18px, 2.1vw, 22px);
}

/* Masonry layout for uneven card heights on the Compliance page */
.masonry-grid {
    column-gap: 24px;
}

.masonry-grid>* {
    break-inside: avoid;
    display: block;
    margin-bottom: 24px;
}

/* Desktop: two columns */
@media (min-width:760px) {
    .masonry-grid {
        column-count: 2;
    }
}

/* Mobile: single column */
@media (max-width:759px) {
    .masonry-grid {
        column-count: 1;
    }
}

/* --- Fix: prevent hover flicker/disappear in multicol masonry --- */
.masonry-grid>[class*="col-"] {
    break-inside: avoid;
    -webkit-column-break-inside: avoid;
    page-break-inside: avoid;
}

.masonry-grid .card.linked,
.masonry-grid .card.linked:hover {
    transform: none !important;
    backface-visibility: visible !important;
    will-change: auto !important;
}

.masonry-grid .card.linked:hover {
    border-color: var(--cta);
    background: color-mix(in srgb, var(--cta) 8%, var(--surface));
    box-shadow: 0 16px 40px rgba(0, 0, 0, .36);
}

.masonry-grid .card.linked:hover .media {
    box-shadow: 0 10px 24px rgba(0, 0, 0, .28);
}

/* Leader photos: direct <img>, no overlays/cropping */
.media.photo {
    background: none !important;
    min-height: 0 !important;
    padding: 0;
}

.media.photo img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 14px;
}

/* Footer: use the site’s dark blue background */
.site-footer,
.footer {
    background: var(--bg);
}

/* Top Risks: cards match dark page background */
#top-risks .card.dark {
    background: var(--bg) !important;
    /* same as page background */
    border: 1px solid var(--line) !important;
    box-shadow: none !important;
}

#top-risks .card.dark .h3 {
    color: var(--text-hi);
}

#top-risks .card.dark .p {
    color: var(--text);
}

/* How Nevermore Helps: no cards, clean list */
#how-we-help .simple-list>div {
    padding: 10px 0 18px;
    border-bottom: 1px solid var(--line);
}

#how-we-help .simple-list>div:nth-last-child(-n+2) {
    border-bottom: 0;
}

/* remove last row border */
@media (min-width: 900px) {
    #how-we-help .simple-list>div:nth-child(odd) {
        padding-right: 24px;
    }

    #how-we-help .simple-list>div:nth-child(even) {
        padding-left: 24px;
    }
}

/* More breathing room under H2 section titles on this page */
#top-risks .h2,
#how-we-help .h2,
#key-regs .h2 {
    margin-bottom: clamp(32px, 6.5vw, 72px) !important;
}

/* Title spacing for the combined section */
#risks-and-help .h2 {
    margin-bottom: clamp(32px, 6.5vw, 72px) !important;
}

/* Table styling to match theme */
.table-wrap {
    overflow-x: auto;
}

.nms-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
}

.nms-table thead th {
    text-align: left;
    font-weight: 700;
    padding: 16px 18px;
    color: var(--text-hi);
    background: color-mix(in srgb, var(--surface) 85%, black 15%);
}

.nms-table tbody td {
    padding: 16px 18px;
    border-top: 1px solid var(--line);
    vertical-align: top;
}

.nms-table tbody tr:nth-child(odd) td {
    background: color-mix(in srgb, var(--surface) 96%, black 4%);
}

.nms-table td strong {
    display: block;
    margin-bottom: 6px;
    color: var(--text-hi);
}

.p-small {
    margin: 0;
    color: var(--text);
}

/* Responsive "cards" table on mobile */
@media (max-width: 760px) {
    .nms-table thead {
        display: none;
    }

    .nms-table,
    .nms-table tbody,
    .nms-table tr,
    .nms-table td {
        display: block;
        width: 100%;
    }

    .nms-table tr {
        border-top: 1px solid var(--line);
    }

    .nms-table td {
        border-top: 0;
        padding: 14px 16px;
    }

    .nms-table td::before {
        content: attr(data-label);
        display: block;
        font-weight: 700;
        color: var(--text-hi);
        text-transform: uppercase;
        letter-spacing: .03em;
        margin-bottom: 6px;
        opacity: .85;
        font-size: .85rem;
    }
}

/* ===== Hero: right-half background image for industry pages ===== */
.hero.split {
    position: relative;
}

/* Right-half image with a soft fade toward the text */
.hero.split::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(52%, 860px);
    /* right half on desktop */
    background-image: var(--hero-media, var(--asset-hero));
    background-size: cover;
    background-position: center;
    opacity: .95;
    pointer-events: none;

    /* fade into the left side (Safari + others) */
    -webkit-mask-image: linear-gradient(to left, rgba(0, 0, 0, 1) 72%, rgba(0, 0, 0, 0) 100%);
    mask-image: linear-gradient(to left, rgba(0, 0, 0, 1) 72%, rgba(0, 0, 0, 0) 100%);

    /* subtle rim glow so the image feels integrated */
    box-shadow: inset 0 0 160px rgba(64, 214, 255, .12);
}

/* Mobile: let the image sit behind the whole hero but stay subtle */
@media (max-width: 900px) {
    .hero.split::after {
        width: 100%;
        opacity: .28;
        -webkit-mask-image: none;
        mask-image: none;
    }
}

/* Service pages: spacing under H2s */
#svc-overview .h2,
#svc-regs .h2 {
    margin-bottom: clamp(28px, 5vw, 56px) !important;
}

/* Two-column bullets for sectors on wide screens */
#svc-regs .two-col {
    columns: 2;
    column-gap: 28px;
}

@media (max-width: 900px) {
    #svc-regs .two-col {
        columns: 1;
    }
}

#svc-overview .p {
    text-align: center;
}

/* Global: make cards inside ANY .section.alt use the dark scheme */
.section.alt .card,
.section.alt .sol-card,
.card.dark {
    /* keeps existing .dark class working too */
    --card-bg: var(--bg);
    --card-fg: var(--text);
    --card-title: var(--text-hi);
    background: var(--bg) !important;
    border: 1px solid var(--line) !important;
    box-shadow: none !important;
}

/* If any alt section had 'light' cards, force them dark there too */
.section.alt .card.light {
    --card-bg: var(--bg);
    --card-fg: var(--text);
    --card-title: var(--text-hi);
    border-color: var(--line) !important;
}

/* Cleaner bullets */
.checks {
    list-style: none;
    margin: 0;
    padding: 0;
}

.checks li {
    position: relative;
    padding-left: 28px;
    margin: 10px 0;
}

.checks li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .55em;
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: var(--teal);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--teal) 20%, transparent);
}

/* Linked industry “chips” */
.industry-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 12px;
    margin-top: 6px;
}

.tag.chip {
    padding: .55rem .9rem;
    font-weight: 700;
    border-color: var(--line);
    background: rgba(255, 255, 255, .02);
}

.tag.chip:hover {
    border-color: var(--cta);
    background: color-mix(in srgb, var(--cta) 8%, transparent);
}

/* --- Sectors We Support: improved card + chip layout --- */
#svc-regs .card {
    padding: 24px 24px 26px;
}

/* Make chips lay out in a tidy grid with consistent gaps */
#svc-regs .industry-links {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 14px;
    /* even row/column spacing */
    margin-top: 12px;
}

/* Chip styling: slightly bolder, uniform height/width, subtle fill */
#svc-regs .tag.chip {
    width: 100%;
    /* each chip fills its grid cell */
    justify-content: center;
    padding: .7rem 1rem;
    border-radius: 999px;
    border-color: var(--line-strong);
    background: rgba(255, 255, 255, .04);
    line-height: 1;
    font-weight: 700;
    transition: transform .12s ease, background-color .15s ease, border-color .15s ease;
}

#svc-regs .tag.chip:hover {
    transform: translateY(-1px);
    background: color-mix(in srgb, var(--cta) 8%, transparent);
    border-color: var(--cta);
}

/* Tighten header-to-content spacing in these two cards */
#svc-regs .card .h3 {
    margin-bottom: 10px;
}

/* Mobile: single column chips with a bit more breathing room */
@media (max-width: 720px) {
    #svc-regs .industry-links {
        grid-template-columns: 1fr;
        gap: 12px;
    }
}

/* ===== FAQs: card-less accordion ===== */
#svc-faq .faq-wrap {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 26px 40px;
}

#svc-faq .faq {
    border-top: 1px solid var(--line);
    padding-top: 14px;
}

#svc-faq .faq summary {
    list-style: none;
    /* hide default triangle */
    cursor: pointer;
    position: relative;
    padding-right: 28px;
    font-size: clamp(18px, 2.2vw, 24px);
    font-weight: 800;
    color: var(--text-hi);
}

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

#svc-faq .faq summary::after {
    content: "+";
    position: absolute;
    right: 0;
    top: 0;
    font-weight: 800;
    color: var(--muted);
    transition: transform .2s ease, color .2s ease;
}

#svc-faq .faq[open] summary::after {
    content: "–";
    color: var(--cta);
}

#svc-faq .faq .p {
    margin-top: 10px;
}

@media (max-width: 900px) {
    #svc-faq .faq-wrap {
        grid-template-columns: 1fr;
        gap: 22px;
    }
}

/* SDVOSB badge: larger on all screens, even larger on desktop */
.site-footer .footer-badge {
    padding: 4px 6px;
    /* a bit more breathing room */
    border-radius: 8px;
}

.site-footer .footer-badge img {
    height: 40px;
    /* was 26px */
    display: block;
}

@media (min-width: 880px) {
    .site-footer .footer-badge img {
        height: 48px;
        /* larger on desktop */
    }
}

/* Connect section: fixed social buttons (proper sizing + link colors) */
#connect .social-btn {
    display: inline-flex;
    /* make width/height take effect */
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    line-height: 0;
    border-radius: 999px;
    border: 1px solid var(--line);
    background: transparent;
    color: var(--accent);
    /* same color as links */
    transition: background .2s ease, color .2s ease, border-color .2s ease;
}

#connect .social-btn svg {
    display: block;
    width: 22px;
    /* icon size inside the circle */
    height: 22px;
}

#connect .social-btn:hover {
    color: var(--accent-600);
    /* link hover color */
    border-color: var(--accent);
    background: color-mix(in srgb, var(--accent) 10%, transparent);
}

/* Replace the old page-scoped .input:focus block with this */
.input:focus,
.input:focus-visible {
    outline: 0;
    border-color: var(--teal) !important;
    /* inner ring color */
    box-shadow:
        0 0 0 2px color-mix(in srgb, var(--cyan) 38%, transparent),
        0 0 0 6px color-mix(in srgb, var(--teal) 30%, white);
    caret-color: var(--teal);
    transition: box-shadow .18s ease, border-color .18s ease;
}

/* Keep the error pulse exactly as-is */
.input.invalid {
    border-color: #ff5b5b !important;
    box-shadow: 0 0 0 4px color-mix(in srgb, #ff5b5b 28%, white) !important;
    animation: nmsPulseRed .65s ease-out 0s 2;
}

/* Teal/Cyan focus ring — overrides old peach one */
.form-card .input:focus,
.form-card .input:focus-visible {
    outline: 0;
    border-color: var(--teal) !important;
    /* inner stroke */
    box-shadow:
        0 0 0 2px color-mix(in srgb, var(--cyan) 38%, transparent),
        0 0 0 6px color-mix(in srgb, var(--teal) 30%, white) !important;
    /* outer glow */
    caret-color: var(--teal);
    transition: box-shadow .18s ease, border-color .18s ease;
}

/* Keep error pulse red when invalid */
.input.invalid {
    border-color: #ff5b5b !important;
    box-shadow: 0 0 0 4px color-mix(in srgb, #ff5b5b 28%, white) !important;
    animation: nmsPulseRed .65s ease-out 0s 2;
}

/* ===== 2-bar menu button + morph to X (header stays put) ===== */
:root {
    --header-h: 64px;
}

/* JS updates this to exact height */
.site-header {
    position: sticky;
    top: 0;
    z-index: 2001;
}

.site-header .nav-icon {
    position: relative;
    display: inline-flex;
    justify-self: end;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, .02);
    color: var(--text-hi);
    transition: background .18s ease, color .18s ease, border-color .18s ease;
}

.site-header .nav-icon:hover {
    background: rgba(163, 50, 11, .10);
    border-color: var(--cta);
    color: #fff;
}

/* two lines (no SVG) – matches your existing HTML */
.nav-icon .nav-icon-box {
    width: 22px;
    height: 16px;
    position: relative;
}

.nav-icon .line {
    position: absolute;
    left: 0;
    right: 0;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    transform-origin: 50% 50%;
    transition: transform .22s ease, top .22s ease, opacity .18s ease;
}

.nav-icon .line1 {
    top: 4px;
}

.nav-icon .line2 {
    top: 10px;
}

/* morph into an X when open (class toggled by JS) */
.nav-icon.is-open .line1 {
    top: 7px;
    transform: rotate(45deg);
}

.nav-icon.is-open .line2 {
    top: 7px;
    transform: rotate(-45deg);
}

/* Show on mobile, hide on desktop */
@media (max-width:880px) {

    .site-header .header-cta,
    .site-header .burger {
        display: none !important;
    }

    .site-header .nav-icon {
        display: inline-flex !important;
    }
}

@media (min-width:881px) {
    .site-header .nav-icon {
        display: none !important;
    }
}

/* ===== Fullscreen overlay (sits UNDER header; links centered) ===== */
.mobile-nav {
    position: fixed;
    inset: 0;
    z-index: 1800;
    /* header z-index is higher */
    background: linear-gradient(0deg, rgba(8, 16, 26, .85), rgba(8, 16, 26, .85)), var(--surface-2);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px) scale(.985);
    transition: opacity .22s ease, transform .22s ease, visibility .22s;
}

.mobile-nav.open {
    opacity: 1;
    visibility: visible;
    transform: none;
}

/* Center the menu stack perfectly (both axes) */
.mobile-nav .sheet {
    max-width: min(720px, 92vw);
    margin: 0 auto;
    padding: 0 18px 48px;

    /* fill the viewport BELOW the sticky header */
    min-height: calc(100dvh - var(--header-h));
    margin-top: var(--header-h);

    /* center the nav + button */
    display: flex;
    flex-direction: column;
    justify-content: center;
    /* vertical center */
    align-items: center;
    /* horizontal center */
    text-align: center;
    gap: 22px;
}

/* keep duplicates hidden so header (logo/name/X) stays put */
.mobile-nav .brand-large,
.mobile-nav .nav-close {
    display: none !important;
}

/* the column of links stays centered */
.mobile-nav nav {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

.mobile-nav nav a {
    color: var(--text-hi);
    font-weight: 800;
    text-decoration: none;
    font-size: clamp(22px, 5vw, 32px);
    opacity: 0;
    transform: translateY(8px);
    transition: opacity .22s ease, transform .22s ease;
}

.mobile-nav.open nav a {
    opacity: 1;
    transform: none;
}

.mobile-nav.open nav a:nth-child(1) {
    transition-delay: .04s;
}

.mobile-nav.open nav a:nth-child(2) {
    transition-delay: .08s;
}

.mobile-nav.open nav a:nth-child(3) {
    transition-delay: .12s;
}

.mobile-nav.open nav a:nth-child(4) {
    transition-delay: .16s;
}

.mobile-nav.open nav a:nth-child(5) {
    transition-delay: .20s;
}

.mobile-nav nav a.contact {
    margin-top: 8px;
    display: inline-block;
    font-weight: 700;
    font-size: clamp(18px, 4.2vw, 22px);
    border: 1px solid var(--cta);
    border-radius: 24px;
    padding: .7rem 1rem;
    width: fit-content;
    color: #fff;
    background: var(--cta);
}

/* Prevent background scroll when open */
html.noscroll,
body.noscroll {
    overflow: hidden;
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {

    .mobile-nav,
    .nav-icon .line,
    .mobile-nav nav a {
        transition: none !important;
    }
}

/* === Mobile nav: perfectly center the column below the sticky header === */

/* Put the overlay *below* the header and give it an exact viewport height */
.mobile-nav {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    top: var(--header-h);
    /* keep header visible */
    z-index: 1800;
    height: calc(100vh - var(--header-h));
    /* fallback */
}

@supports (height: 100svh) {
    .mobile-nav {
        height: calc(100svh - var(--header-h));
    }
}

@supports (height: 100dvh) {
    .mobile-nav {
        height: calc(100dvh - var(--header-h));
    }
}

/* Center the links exactly in that box */
.mobile-nav .sheet {
    margin: 0;
    /* remove the previous margin-top */
    padding: 0 18px;
    /* keep only horizontal padding */
    min-height: 100%;
    /* fill the overlay area */
    display: grid;
    place-content: center;
    /* vertical + horizontal centering */
    place-items: center;
    /* align the nav itself */
    gap: 22px;
}

/* Perfect horizontal centering + safe-area balance */
.mobile-nav .sheet {
    /* keep your vertical centering from before */
    padding-left: max(18px, env(safe-area-inset-left));
    padding-right: max(18px, env(safe-area-inset-right));
}

/* Make the nav column shrink to its content and center exactly */
.mobile-nav nav {
    width: fit-content;
    /* shrink-wrap the links */
    margin-inline: auto;
    /* center the block */
    text-align: center;
}

/* Ensure the Contact pill centers the same way */
.mobile-nav nav .contact {
    display: inline-flex;
    margin-inline: auto;
}

/* — Fix tiny right drift: make the sheet full-width and center its contents — */
.mobile-nav .sheet {
    max-width: none !important;
    /* override earlier max-width */
    width: 100% !important;
    /* span the overlay */
    margin: 0 !important;
    box-sizing: border-box;
    padding-left: max(18px, env(safe-area-inset-left));
    padding-right: max(18px, env(safe-area-inset-right));

    display: grid;
    /* keep grid centering */
    place-content: center;
    /* vertical + horizontal */
    place-items: center;
    gap: 22px;
}

/* Shrink-wrap the nav and center it precisely */
.mobile-nav nav {
    width: max-content;
    /* better x-browser than fit-content */
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

/* Contact pill centers like the links */
.mobile-nav nav .contact {
    display: inline-flex;
    margin-left: auto;
    margin-right: auto;
}

/* Hide native SS header (7.1 variants) */
.Header,
.SiteHeader,
.header {
    display: none !important;
}

/* ── Hotfix: keep sticky header above mobile sheet (iOS Safari too) ── */
.site-header {
    z-index: 2000;
}

/* ── Hotfix: mobile menu + scrolled page -- keep header visible ── */
html.menu-open .site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 9999;
}

/* Ensure menu panel starts below header (works if #mobileNav is fixed/absolute) */
#mobileNav {
    top: var(--header-h, 64px) !important;
}


/* ── Mobile overlay close button (in-overlay) ── */
#mobileNav .nav-close {
    position: absolute;
    top: 10px;
    right: 12px;
    width: 40px;
    height: 40px;
    border-radius: 999px;
    border: none;
    background: rgba(0, 0, 0, 0.35);
    color: #fff;
    font-size: 28px;
    line-height: 40px;
    text-align: center;
    cursor: pointer;
    z-index: 10000;
    /* above overlay content */
}

#mobileNav .nav-close:focus {
    outline: 2px solid rgba(255, 255, 255, 0.6);
    outline-offset: 2px;
}

/* ── Keep sticky header above overlay at all times ── */
.site-header {
    z-index: 2000;
}

.mobile-nav {
    z-index: 1800;
}

/* ── Mobile fallback: disable reveal fade on small screens ── */
@media (max-width: 768px),
(hover: none) and (pointer: coarse) {
    .reveal {
        opacity: 1 !important;
        transform: none !important;
    }
}

/* ── Ensure overlay content starts under header height ── */
#mobileNav {
    top: var(--header-h, 64px);
}

#mobileNav .sheet {
    min-height: calc(100dvh - var(--header-h));
    margin-top: var(--header-h);
}

/* ── Sticky header + stacking ── */
.site-header {
    position: sticky;
    top: 0;
    z-index: 3000;
}

/* ── Overlay should sit beneath header bar ── */
#mobileNav {
    position: fixed;
    inset: 0;
    top: var(--header-h, 64px);
    z-index: 2500;
}

#mobileNav.open {
    opacity: 1;
    pointer-events: auto;
}

#mobileNav:not(.open) {
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease;
}

/* ── Safety close button inside overlay ── */
#mobileNav .nav-close {
    position: sticky;
    top: 0;
    margin: 0 0 1rem auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 999px;
    font-size: 28px;
    line-height: 1;
    border: none;
    background: rgba(0, 0, 0, .35);
    color: rgba(255, 255, 255, .9);
}

#mobileNav .nav-close:focus {
    outline: 2px solid #fff;
    outline-offset: 2px;
}

/* ── Mobile: disable reveal animations hard ── */
@media (max-width: 768px),
(hover: none) and (pointer: coarse) {
    .reveal {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

/* ── Force reveal content visible (no fade) ── */
.reveal,
.reveal.in {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
}

/* ── Strong stacking order ── */
.site-header {
    position: sticky;
    top: 0;
    z-index: 3000;
}

.mobile-nav,
#mobileNav {
    z-index: 2500;
    top: var(--header-h, 64px);
}

/* === Hard overrides (placed last) =============================== */

/* Ensure header is always on top, and fixed when menu is open */
.site-header {
    position: sticky;
    top: 0;
    z-index: 4000;
}

html.nav-open .site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
}

/* Overlay lives under header; starts below header height */
#mobileNav {
    position: fixed;
    inset: 0;
    top: var(--header-h, 64px);
    z-index: 3500;
}

#mobileNav.open {
    opacity: 1;
    pointer-events: auto;
}

#mobileNav:not(.open) {
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease;
}

/* Disable reveal fade globally */
.reveal,
.reveal.in {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
}

/* === Final overrides for mobile nav/header ===================== */
.site-header {
    z-index: 5000;
}

#mobileNav,
.mobile-nav {
    position: fixed;
    inset: 0;
    top: var(--header-h, 64px) !important;
    z-index: 4000;
}

#mobileNav.open,
.mobile-nav.open {
    opacity: 1;
    pointer-events: auto;
}

#mobileNav:not(.open),
.mobile-nav:not(.open) {
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease;
}

/* Kill any remaining reveal fades */
.reveal,
.reveal.in {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
}

/* === Hard overrides (final) ===================================== */
.site-header {
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    z-index: 6000;
}

body {
    padding-top: var(--header-h, 64px);
}

#mobileNav,
.mobile-nav {
    position: fixed !important;
    inset: 0;
    top: var(--header-h, 64px) !important;
    z-index: 5000;
}

#mobileNav.open,
.mobile-nav.open {
    opacity: 1;
    pointer-events: auto;
}

#mobileNav:not(.open),
.mobile-nav:not(.open) {
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease;
}

/* Kill any card dimming anywhere */
.reveal,
.reveal.in,
.sol-card {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    transition: none !important;
}