/* ???????????????????????????????????????????????????????????????
   Opportunity4u ? Main Stylesheet
   Modern CSS3: cascade layers, container queries, clamp(), :has(),
   view transitions, glassmorphism, dark mode, animations
   ??????????????????????????????????????????????????????????????? */

/* ?? Self-hosted Fonts (legacy Inter kept as fallback asset; primary via Google Fonts) ?? */
@font-face {
    font-family: 'Inter';
    src: url('../fonts/inter-variable.woff2') format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

/* ?? Cascade Layers ??????????????????????????????????????????? */
@layer reset, tokens, base, layout, components, utilities, animations;

/* ?? View Transitions API ????????????????????????????????????? */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: fade-out 200ms ease; }
::view-transition-new(root) { animation: fade-in 200ms ease; }
@keyframes fade-out { from { opacity:1; } to { opacity:0; } }
@keyframes fade-in  { from { opacity:0; } to { opacity:1; } }

/* ?? Reset Layer ??????????????????????????????????????????????? */
@layer reset {
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; tab-size: 4; }
    body { min-height: 100vh; line-height: 1.6; }
    img, picture, video, canvas, svg { display: block; max-width: 100%; }
    input, button, textarea, select { font: inherit; }
    p, h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; }
    a { color: inherit; }
    ul, ol { list-style: none; }
    table { border-collapse: collapse; }
}

/* ?? Token Layer ??????????????????????????????????????????????? */
@layer tokens {
    :root {
        /* Colors */
        --color-primary:       #1668B2;
        --color-primary-light: #2179CC;
        --color-primary-dark:  #0F5291;
        --color-accent:        #37B54A;
        --color-accent-dark:   #2A9A3C;
        --color-danger:        #EF4444;
        --color-warning:       #F59E0B;
        --color-success:       #10B981;
        --color-info:          #3B82F6;

        /* Neutral scale */
        --color-bg:        #ffffff;
        --color-bg-alt:    #F8FAFC;
        --color-bg-card:   #ffffff;
        --color-surface:   #F1F5F9;
        --color-text:      #0F172A;
        --color-text-sec:  #334155;
        --color-muted:     #64748B;
        --color-border:    #E2E8F0;

        /* Gradients */
        --gradient-hero:   linear-gradient(135deg, var(--color-primary) 0%, #0D47A1 50%, #1A237E 100%);
        --gradient-card:   linear-gradient(135deg, rgba(22,104,178,.06) 0%, rgba(55,181,74,.06) 100%);
        --gradient-glow:   radial-gradient(ellipse at center, rgba(22,104,178,.15) 0%, transparent 70%);

        /* Shadows */
        --shadow-xs:  0 1px 2px rgba(0,0,0,.06);
        --shadow-sm:  0 1px 3px rgba(0,0,0,.1),  0 1px 2px rgba(0,0,0,.06);
        --shadow:     0 4px 6px rgba(0,0,0,.07),  0 2px 4px rgba(0,0,0,.06);
        --shadow-md:  0 10px 15px rgba(0,0,0,.1), 0 4px 6px rgba(0,0,0,.05);
        --shadow-lg:  0 20px 25px rgba(0,0,0,.1), 0 10px 10px rgba(0,0,0,.04);
        --shadow-xl:  0 25px 50px rgba(0,0,0,.25);
        --shadow-glow:0 0 30px rgba(22,104,178,.3);

        /* Typography */
        --font-sans:    'DM Sans', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
        --font-display: 'Sora', 'DM Sans', system-ui, sans-serif;
        --font-mono:    ui-monospace, 'Cascadia Code', Consolas, monospace;

        /* Fluid type scale */
        --text-xs:   clamp(.7rem, .15vw + .68rem, .8rem);
        --text-sm:   clamp(.8rem, .2vw + .75rem, .9rem);
        --text-base: clamp(.9rem, .2vw + .85rem, 1rem);
        --text-lg:   clamp(1rem, .3vw + .9rem, 1.125rem);
        --text-xl:   clamp(1.125rem, .5vw + .95rem, 1.375rem);
        --text-2xl:  clamp(1.375rem, 1vw + 1.1rem, 1.875rem);
        --text-3xl:  clamp(1.875rem, 2vw + 1.25rem, 2.75rem);
        --text-4xl:  clamp(2.5rem, 3.5vw + 1.5rem, 4rem);
        --text-5xl:  clamp(3rem, 5vw + 1.5rem, 5.5rem);

        /* Spacing */
        --space-1:   4px;  --space-2: 8px;   --space-3: 12px;
        --space-4:  16px;  --space-5: 20px;  --space-6: 24px;
        --space-8:  32px;  --space-10: 40px; --space-12: 48px;
        --space-16: 64px;  --space-20: 80px; --space-24: 96px;
        --space-32: 128px;

        /* Border radius */
        --radius-xs:  4px;  --radius-sm: 8px;  --radius: 12px;
        --radius-lg: 16px;  --radius-xl: 24px; --radius-2xl: 32px;
        --radius-full: 9999px;

        /* Layout */
        --container-max:  1280px;
        --container-wide: 1440px;
        --container-pad:  clamp(16px, 4vw, 48px);
        --header-h:       72px;

        /* Transitions */
        --transition-fast:   150ms ease;
        --transition:        200ms ease;
        --transition-slow:   400ms ease;
        --transition-spring: 300ms cubic-bezier(.34, 1.56, .64, 1);

        /* Z-index scale */
        --z-header: 1000;
        --z-modal:  2000;
        --z-toast:  3000;
    }

    /* Dark mode */
    [data-theme="dark"] {
        --color-bg:       #0F172A;
        --color-bg-alt:   #1E293B;
        --color-bg-card:  #1E293B;
        --color-surface:  #334155;
        --color-text:     #F1F5F9;
        --color-text-sec: #CBD5E1;
        --color-muted:    #94A3B8;
        --color-border:   #334155;
        --shadow-glow:    0 0 30px rgba(22,104,178,.5);
    }
}

/* ?? Base Layer ???????????????????????????????????????????????? */
@layer base {
    body {
        font-family: var(--font-sans);
        font-size: var(--text-base);
        color: var(--color-text);
        background: var(--color-bg);
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        overflow-x: hidden;
    }

    h1, h2, h3, h4, h5, h6 {
        font-family: var(--font-display);
        font-weight: 700;
        line-height: 1.2;
        letter-spacing: -.02em;
        color: var(--color-text);
    }

    h1 { font-size: var(--text-5xl); }
    h2 { font-size: var(--text-4xl); }
    h3 { font-size: var(--text-2xl); }
    h4 { font-size: var(--text-xl); }
    h5 { font-size: var(--text-lg); }
    h6 { font-size: var(--text-base); }

    p { color: var(--color-text-sec); line-height: 1.7; }

    a { text-decoration: none; transition: color var(--transition); }
    a:hover { color: var(--color-primary); }

    img { max-width: 100%; height: auto; }

    button { cursor: pointer; border: none; background: none; font: inherit; }

    code, pre { font-family: var(--font-mono); font-size: .9em; }
    code { background: var(--color-surface); padding: 2px 6px; border-radius: var(--radius-xs); }

    :focus-visible {
        outline: 2px solid var(--color-primary);
        outline-offset: 2px;
    }
}

/* ?? Layout Layer ?????????????????????????????????????????????? */
@layer layout {
    .container {
        width: 100%;
        max-width: var(--container-max);
        margin-inline: auto;
        padding-inline: var(--container-pad);
    }

    .container--wide { max-width: var(--container-wide); }
    .container--narrow { max-width: 760px; }

    .section {
        padding-block: clamp(var(--space-10), 6vw, var(--space-20));
    }

    .section--sm { padding-block: clamp(var(--space-8), 5vw, var(--space-16)); }
    .section--lg { padding-block: clamp(var(--space-16), 12vw, var(--space-32)); }
    .section--tight { padding-block: clamp(1.5rem, 4vw, 3rem); }
    .section--alt { background: var(--color-bg-alt); }
    .section--dark {
        background: linear-gradient(135deg, #0D47A1 0%, #1565C0 45%, #0A3880 100%);
        color: #fff;
    }
    .section--dark .stat-item__value,
    .section--dark .stat-item__label,
    .section--dark .section-title { color: #fff; }
    .section--dark .stat-item__desc,
    .section--dark .section-desc { color: rgba(255,255,255,.7); }

    /* Grid utilities */
    .grid { display: grid; }
    .grid--2 { grid-template-columns: repeat(2, 1fr); gap: var(--space-6); }
    .grid--3 { grid-template-columns: repeat(3, 1fr); gap: var(--space-6); }
    .grid--4 { grid-template-columns: repeat(4, 1fr); gap: var(--space-6); }
    .grid--auto { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: var(--space-6); }

    @media (max-width: 1024px) {
        .grid--3 { grid-template-columns: repeat(2, 1fr); }
        .grid--4 { grid-template-columns: repeat(2, 1fr); }
    }
    @media (max-width: 700px) {
        .grid--2, .grid--3, .grid--4 { grid-template-columns: 1fr; gap: var(--space-4); }
    }
}

/* ?? Component Layer ??????????????????????????????????????????? */
@layer components {

    /* ?? BUTTONS ????????????????????????????????????????????? */
    .btn {
        display: inline-flex;
        align-items: center;
        gap: var(--space-2);
        padding: 12px 28px;
        border-radius: var(--radius-full);
        font-size: var(--text-sm);
        font-weight: 700;
        letter-spacing: .01em;
        text-decoration: none;
        border: 2px solid transparent;
        cursor: pointer;
        transition: all var(--transition);
        white-space: nowrap;
        position: relative;
        overflow: hidden;
    }

    .btn::before {
        content: '';
        position: absolute;
        inset: 0;
        background: white;
        opacity: 0;
        transition: opacity var(--transition-fast);
    }
    .btn:hover::before { opacity: .1; }
    .btn:active { transform: scale(.98); }

    .btn--primary   { background: var(--color-primary);  color: #fff; border-color: var(--color-primary); }
    .btn--primary:hover { background: var(--color-primary-dark); border-color: var(--color-primary-dark); box-shadow: var(--shadow-glow); }
    .btn--accent    { background: var(--color-accent);   color: #fff; border-color: var(--color-accent); }
    .btn--accent:hover  { background: var(--color-accent-dark); border-color: var(--color-accent-dark); }
    .btn--outline   { background: transparent; border-color: currentColor; color: var(--color-primary); }
    .btn--outline:hover { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }
    .btn--ghost     { background: transparent; color: var(--color-primary); border-color: transparent; }
    .btn--ghost:hover { background: rgba(22,104,178,.08); color: var(--color-primary-dark); }
    .btn--white     { background: #fff; color: var(--color-primary); }
    .btn--white:hover { background: var(--color-bg-alt); }

    .btn--sm  { padding: 8px 18px; font-size: var(--text-xs); }
    .btn--lg  { padding: 16px 36px; font-size: var(--text-lg); }
    .btn--full { width: 100%; justify-content: center; }

    .btn svg { flex-shrink: 0; transition: transform var(--transition); }
    .btn:hover svg { transform: translateX(2px); }

    /* ?? HEADER / NAV ??????????????????????????????????????????? */
    .site-header {
        position: fixed;
        top: 0; left: 0; right: 0;
        z-index: var(--z-header);
        height: var(--header-h);
        background: rgba(255,255,255,.92);
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
        border-bottom: 1px solid transparent;
        transition: background var(--transition), border-color var(--transition), box-shadow var(--transition);
    }
    [data-theme="dark"] .site-header {
        background: rgba(15,23,42,.88);
        border-bottom-color: transparent;
    }
    .site-header--scrolled {
        border-bottom-color: var(--color-border);
        box-shadow: 0 8px 30px rgba(15, 23, 42, .06);
    }
    [data-theme="dark"] .site-header--scrolled {
        box-shadow: 0 8px 30px rgba(0,0,0,.35);
    }

    .site-header__inner {
        height: var(--header-h);
        display: flex;
        align-items: center;
        gap: 1.5rem;
    }

    .site-header__logo {
        flex-shrink: 0;
        display: flex;
        align-items: center;
        line-height: 0;
    }
    .logo { height: 52px; width: auto; display: block; max-width: 240px; object-fit: contain; }
    .logo--dark { display: none; }
    [data-theme="dark"] .logo--light { display: none; }
    [data-theme="dark"] .logo--dark  { display: block; }

    /* Desktop Nav ? underline active, no cheap pill hover */
    .site-nav {
        flex: 1;
        display: flex;
        justify-content: center;
        min-width: 0;
    }
    .site-nav__list {
        display: flex;
        align-items: center;
        gap: .15rem;
        flex-wrap: nowrap;
    }
    .site-nav__item { position: relative; }

    .site-nav__link {
        position: relative;
        display: inline-flex;
        align-items: center;
        gap: 4px;
        padding: .55rem .7rem;
        border-radius: 0;
        font-family: var(--font-sans);
        font-size: .875rem;
        font-weight: 500;
        letter-spacing: -.01em;
        color: var(--color-text-sec);
        background: transparent;
        transition: color var(--transition);
        white-space: nowrap;
    }
    .site-nav__link::after {
        content: '';
        position: absolute;
        left: .7rem; right: .7rem; bottom: .2rem;
        height: 2px;
        border-radius: 2px;
        background: var(--color-primary);
        transform: scaleX(0);
        transform-origin: center;
        transition: transform .2s ease;
    }
    .site-nav__link:hover {
        color: var(--color-text);
        background: transparent;
    }
    .site-nav__link:hover::after,
    .site-nav__link--active::after { transform: scaleX(1); }
    .site-nav__link--active { color: var(--color-primary); font-weight: 600; }

    .site-nav__chevron {
        opacity: .55;
        transition: transform var(--transition), opacity var(--transition);
    }
    .site-nav__item:hover .site-nav__chevron,
    .site-nav__item:focus-within .site-nav__chevron {
        transform: rotate(180deg);
        opacity: 1;
    }

    /* Dropdown panel */
    .site-nav__dropdown {
        position: absolute;
        top: calc(100% + 10px);
        left: 50%;
        transform: translateX(-50%) translateY(6px);
        min-width: 260px;
        background: var(--color-bg);
        border: 1px solid var(--color-border);
        border-radius: 14px;
        box-shadow: 0 18px 50px rgba(15, 23, 42, .12);
        padding: .45rem;
        opacity: 0;
        visibility: hidden;
        transition: opacity .18s ease, transform .18s ease, visibility .18s;
        pointer-events: none;
        z-index: 120;
    }
    .site-nav__item:hover .site-nav__dropdown,
    .site-nav__item:focus-within .site-nav__dropdown,
    .site-nav__dropdown.is-open {
        opacity: 1;
        visibility: visible;
        transform: translateX(-50%) translateY(0);
        pointer-events: auto;
    }
    .site-nav__dropdown-head { border-bottom: 1px solid var(--color-border); margin-bottom: .2rem; padding-bottom: .2rem; }
    .site-nav__dropdown-link {
        display: block;
        padding: .7rem .85rem;
        font-size: .875rem;
        font-weight: 500;
        color: var(--color-text-sec);
        border-radius: 10px;
        transition: background .15s ease, color .15s ease;
    }
    .site-nav__dropdown-link:hover {
        background: rgba(22,104,178,.08);
        color: var(--color-primary);
    }
    .site-nav__dropdown-link--all {
        font-weight: 650;
        color: var(--color-primary);
    }

    .site-header__actions {
        display: flex;
        align-items: center;
        gap: .65rem;
        margin-left: auto;
        flex-shrink: 0;
    }

    .site-header__cta {
        padding: .55rem 1.15rem !important;
        font-size: .8125rem !important;
        font-weight: 650 !important;
        border-radius: 999px !important;
        box-shadow: 0 6px 18px rgba(22,104,178,.22);
    }
    .site-header__cta:hover { box-shadow: 0 8px 22px rgba(22,104,178,.3); }

    .theme-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 40px; height: 40px;
        border-radius: 999px;
        color: var(--color-muted);
        border: 1px solid transparent;
        transition: color var(--transition), background var(--transition), border-color var(--transition);
    }
    .theme-toggle:hover {
        color: var(--color-primary);
        background: rgba(22,104,178,.06);
        border-color: rgba(22,104,178,.12);
    }
    [data-theme="light"] .theme-toggle__moon,
    [data-theme="dark"]  .theme-toggle__sun { display: none; }

    .mobile-menu-toggle {
        display: none;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 5px;
        width: 44px; height: 44px;
        padding: 0;
        border-radius: 12px;
        color: var(--color-text);
        transition: background var(--transition);
    }
    .mobile-menu-toggle:hover { background: var(--color-bg-alt); }
    .mobile-menu-toggle__bar {
        display: block;
        width: 20px; height: 2px;
        background: currentColor;
        border-radius: 2px;
        transition: transform .22s ease, opacity .22s ease;
        transform-origin: center;
    }
    .mobile-menu-toggle.is-open .mobile-menu-toggle__bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .mobile-menu-toggle.is-open .mobile-menu-toggle__bar:nth-child(2) { opacity: 0; }
    .mobile-menu-toggle.is-open .mobile-menu-toggle__bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

    .mobile-nav-backdrop {
        display: none;
        position: fixed;
        inset: var(--header-h) 0 0 0;
        background: rgba(15, 23, 42, .45);
        z-index: calc(var(--z-header) - 2);
    }

    .mobile-nav {
        display: none;
        position: fixed;
        top: var(--header-h);
        left: 0; right: 0;
        max-height: calc(100dvh - var(--header-h));
        overflow-y: auto;
        background: var(--color-bg);
        border-top: 1px solid var(--color-border);
        box-shadow: 0 24px 60px rgba(15, 23, 42, .16);
        z-index: calc(var(--z-header) - 1);
        padding: .5rem 0 1.25rem;
    }

    /* Open state ? class only (works even if Alpine late/fail on desktop hide) */
    @media (max-width: 1024px) {
        body.is-nav-open .mobile-nav-backdrop {
            display: block;
        }
        body.is-nav-open .mobile-nav,
        .mobile-nav.mobile-nav--open {
            display: block;
        }
    }

    /* Desktop: never paint mobile chrome ? Alpine cannot override this */
    @media (min-width: 1025px) {
        .mobile-nav,
        .mobile-nav-backdrop,
        #mobile-nav {
            display: none !important;
            visibility: hidden !important;
            pointer-events: none !important;
            height: 0 !important;
            overflow: hidden !important;
            position: fixed !important;
        }
    }

    .mobile-nav-anim { transition: opacity .2s ease, transform .2s ease; }
    .mobile-nav-anim--start { opacity: 0; transform: translateY(-8px); }
    .mobile-nav-anim--end { opacity: 1; transform: translateY(0); }

    .mobile-nav__list {
        padding: .5rem 1rem 0;
        max-width: var(--container-max);
        margin: 0 auto;
    }
    .mobile-nav__item { border-bottom: 1px solid var(--color-border); }
    .mobile-nav__item:last-child { border-bottom: none; }
    .mobile-nav__row {
        display: flex;
        align-items: center;
        gap: .25rem;
    }
    .mobile-nav__link {
        display: block;
        flex: 1;
        padding: 1rem .25rem;
        font-family: var(--font-display);
        font-size: 1.05rem;
        font-weight: 600;
        letter-spacing: -.02em;
        color: var(--color-text);
        transition: color var(--transition);
    }
    .mobile-nav__link:hover,
    .mobile-nav__link--active { color: var(--color-primary); }
    .mobile-nav__expand {
        width: 44px; height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 10px;
        color: var(--color-muted);
    }
    .mobile-nav__expand.is-open { color: var(--color-primary); }
    .mobile-nav__expand.is-open svg { transform: rotate(180deg); }
    .mobile-nav__expand svg { transition: transform .2s ease; }
    .mobile-nav__sub {
        list-style: none;
        padding: 0 0 .85rem .75rem;
        margin: 0;
    }
    .mobile-nav__sublink {
        display: block;
        padding: .65rem .85rem;
        font-size: .925rem;
        font-weight: 500;
        color: var(--color-muted);
        border-radius: 10px;
    }
    .mobile-nav__sublink:hover {
        color: var(--color-primary);
        background: rgba(22,104,178,.06);
    }
    .mobile-nav__item--cta {
        border-bottom: none;
        padding: 1.1rem .25rem .35rem;
    }

    /* Laptop tightness: slightly denser nav before hamburger */
    @media (max-width: 1180px) and (min-width: 1025px) {
        .site-nav__link { padding: .5rem .55rem; font-size: .8125rem; }
        .site-nav__link::after { left: .55rem; right: .55rem; }
        .site-header__cta { padding: .5rem 1rem !important; }
    }

    /* ?? HERO ???????????????????????????????????????????????? */
    .hero {
        position: relative;
        min-height: min(100vh, 820px);
        display: flex; align-items: center;
        overflow: hidden;
        background: linear-gradient(135deg, #0D47A1 0%, #1668B2 40%, #1565C0 70%, #0A3880 100%);
    }

    .hero__bg {
        position: absolute; inset: 0;
        background: linear-gradient(135deg, #0D47A1 0%, #1668B2 40%, #1565C0 70%, #0A3880 100%);
        z-index: 0;
    }
    .hero__bg-mesh {
        position: absolute; inset: 0;
        background-image: radial-gradient(ellipse at 20% 60%, rgba(55,181,74,.18) 0%, transparent 55%),
                         radial-gradient(ellipse at 80% 10%, rgba(100,180,255,.15) 0%, transparent 45%),
                         radial-gradient(ellipse at 60% 90%, rgba(10,50,130,.5) 0%, transparent 50%);
    }
    .hero__grid-pattern {
        position: absolute; inset: 0; opacity: .04;
        background-image: linear-gradient(rgba(255,255,255,.8) 1px, transparent 1px),
                         linear-gradient(90deg, rgba(255,255,255,.8) 1px, transparent 1px);
        background-size: 50px 50px;
    }
    .hero__bg-glow {
        position: absolute; border-radius: 50%;
        filter: blur(80px); pointer-events: none;
    }
    .hero__bg-glow--1 {
        width: 600px; height: 600px;
        top: -200px; right: -100px;
        background: rgba(55,181,74,.12);
    }
    .hero__bg-glow--2 {
        width: 400px; height: 400px;
        bottom: -100px; left: 10%;
        background: rgba(100,160,255,.1);
    }

    .hero__container {
        position: relative;
        z-index: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        padding-top: 3.5rem;
        padding-bottom: 3.5rem;
    }

    .hero__content {
        position: relative; z-index: 1;
        max-width: 860px;
        width: 100%;
    }

    .hero__visual,
    .hero__particles { display: none !important; }

    .hero__title {
        font-family: var(--font-display);
        font-size: clamp(2.25rem, 5.5vw + .5rem, 4.25rem);
        font-weight: 800;
        line-height: 1.08;
        letter-spacing: -.03em;
        color: #fff;
        margin-bottom: 1.1rem;
    }
    .hero__title .highlight {
        background: linear-gradient(135deg, #7FFFD4, var(--color-accent));
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        background-clip: text;
    }
    .hero__description {
        font-size: clamp(1rem, 1.5vw, 1.15rem);
        color: rgba(255,255,255,.72);
        max-width: 58ch;
        margin: 1rem auto 0;
        line-height: 1.65;
    }
    .hero__actions {
        display: flex;
        flex-wrap: wrap;
        gap: 1rem;
        margin-top: 2rem;
        justify-content: center;
    }
    .hero__stats {
        display: flex;
        flex-wrap: wrap;
        gap: 0;
        margin-top: 2.5rem;
        padding-top: 2rem;
        border-top: 1px solid rgba(255,255,255,.15);
        justify-content: center;
    }
    .hero__stat {
        display: flex;
        flex-direction: column;
        gap: .25rem;
        padding: 0 1.75rem;
    }
    .hero__stat + .hero__stat { border-left: 1px solid rgba(255,255,255,.15); }
    .hero__stat-value {
        font-family: var(--font-display);
        font-size: 1.85rem;
        font-weight: 800;
        color: #fff;
        line-height: 1;
    }
    .hero__stat-label {
        font-size: .72rem;
        color: rgba(255,255,255,.55);
        text-transform: uppercase;
        letter-spacing: .08em;
    }

    /* ?? SECTION HEADERS ??????????????????????????????????? */
    .section-header { text-align: center; margin-bottom: var(--space-12); }
    .section-label {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-size: 0.72rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.1em;
        line-height: 1.2;
        color: var(--color-primary);
        background: rgba(22,104,178,.1);
        padding: 0.45rem 0.95rem;
        border-radius: var(--radius-full);
        margin-bottom: var(--space-4);
    }
    .section-title {
        font-size: var(--text-4xl);
        font-weight: 900;
        color: var(--color-text);
        margin-bottom: var(--space-4);
        max-width: 640px;
        margin-inline: auto;
    }
    .section-desc {
        font-size: var(--text-lg);
        color: var(--color-muted);
        max-width: 560px;
        margin-inline: auto;
        line-height: 1.75;
    }

    /* ?? CARDS ???????????????????????????????????????????? */
    .card {
        background: var(--color-bg-card);
        border: 1px solid var(--color-border);
        border-radius: var(--radius-lg);
        overflow: hidden;
        transition: all var(--transition-slow);
    }
    .card:hover {
        box-shadow: var(--shadow-lg);
        transform: translateY(-4px);
        border-color: rgba(22,104,178,.2);
    }

    .card--glass {
        background: rgba(255,255,255,.08);
        backdrop-filter: blur(16px);
        border-color: rgba(255,255,255,.15);
    }
    [data-theme="dark"] .card--glass {
        background: rgba(15,23,42,.6);
    }

    /* Service cards ? dense, production layout */
    .service-card {
        padding: 1.5rem;
        display: flex;
        flex-direction: column;
        gap: 0.85rem;
        background: var(--color-bg-card);
        border: 1px solid var(--color-border);
        border-radius: 1rem;
        transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
        text-decoration: none;
        color: inherit;
        position: relative;
        overflow: hidden;
        height: 100%;
        min-height: 0;
    }
    .service-card::before { display: none; }
    .service-card:hover {
        box-shadow: 0 12px 32px rgba(15, 23, 42, 0.08);
        transform: translateY(-3px);
        border-color: rgba(22, 104, 178, 0.28);
    }

    .service-card__icon {
        width: 2.75rem;
        height: 2.75rem;
        background: rgba(22, 104, 178, 0.1);
        color: var(--color-primary);
        border-radius: 0.75rem;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
    }
    .service-card__icon svg { width: 1.35rem; height: 1.35rem; }

    .service-card__title {
        font-size: 1.05rem;
        font-weight: 800;
        color: var(--color-text);
        line-height: 1.3;
        letter-spacing: -0.02em;
        margin: 0;
    }
    .service-card__desc {
        color: var(--color-text-sec);
        font-size: 0.9rem;
        line-height: 1.6;
        margin: 0;
        flex: 1;
    }
    .service-card__link {
        display: inline-flex;
        align-items: center;
        gap: 0.35rem;
        margin-top: auto;
        padding-top: 0.35rem;
        font-size: 0.875rem;
        font-weight: 700;
        color: var(--color-primary);
        transition: gap var(--transition);
    }
    .service-card:hover .service-card__link { gap: 0.6rem; }

    /* Mobile: compact horizontal cards ? no sparse empty right side */
    @media (max-width: 640px) {
        .service-card {
            display: grid;
            grid-template-columns: 2.75rem 1fr;
            grid-template-areas:
                "icon title"
                "icon desc"
                "link link";
            column-gap: 0.9rem;
            row-gap: 0.35rem;
            padding: 1.1rem 1.15rem;
            align-items: start;
        }
        .service-card__icon { grid-area: icon; }
        .service-card__title { grid-area: title; font-size: 1rem; align-self: center; }
        .service-card__desc { grid-area: desc; font-size: 0.85rem; }
        .service-card__link {
            grid-area: link;
            margin-top: 0.4rem;
            padding-top: 0.65rem;
            border-top: 1px solid var(--color-border);
        }
    }

    /* Blog / Post cards */
    .post-card {
        background: var(--color-bg-card);
        border: 1px solid var(--color-border);
        border-radius: var(--radius-lg);
        overflow: hidden;
        transition: all var(--transition-slow);
        text-decoration: none;
        display: block;
    }
    .post-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-3px); }
    .post-card__img { aspect-ratio: 16/9; object-fit: cover; width: 100%; }
    .post-card__body { padding: var(--space-5); }
    .post-card__cats { display: flex; gap: var(--space-2); flex-wrap: wrap; margin-bottom: var(--space-3); }
    .post-card__cat { font-size: var(--text-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--color-primary); background: rgba(22,104,178,.1); padding: 3px 10px; border-radius: var(--radius-full); }
    .post-card__title { font-size: var(--text-xl); font-weight: 800; color: var(--color-text); margin-bottom: var(--space-2); line-height: 1.3; }
    .post-card__excerpt { font-size: var(--text-sm); color: var(--color-muted); line-height: 1.6; margin-bottom: var(--space-4); }
    .post-card__meta { display: flex; align-items: center; gap: var(--space-3); font-size: var(--text-xs); color: var(--color-muted); }
    .post-card__meta-avatar { width: 24px; height: 24px; border-radius: 50%; object-fit: cover; }

    /* Case study cards ? image + body layout */
    .cs-card {
        display: flex;
        flex-direction: column;
        background: var(--color-bg-card);
        border: 1px solid var(--color-border);
        border-radius: var(--radius-lg);
        overflow: hidden;
        text-decoration: none;
        color: inherit;
        height: 100%;
    }
    .cs-card__image {
        aspect-ratio: 16 / 10;
        overflow: hidden;
        background: var(--color-bg-alt);
    }
    .cs-card__image img,
    .cs-card__img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform var(--transition-slow);
    }
    .cs-card:hover .cs-card__image img,
    .cs-card:hover .cs-card__img { transform: scale(1.04); }
    .cs-card__body {
        padding: var(--space-6);
        display: flex;
        flex-direction: column;
        gap: var(--space-3);
        flex: 1;
    }
    .cs-card__title {
        font-size: var(--text-xl);
        font-weight: 800;
        color: var(--color-text);
        line-height: 1.3;
    }
    .cs-card__desc {
        font-size: var(--text-sm);
        color: var(--color-muted);
        line-height: 1.65;
        flex: 1;
    }
    .cs-card__metrics {
        display: flex;
        gap: var(--space-4);
        flex-wrap: wrap;
        padding-top: var(--space-3);
        border-top: 1px solid var(--color-border);
    }
    .cs-metric {
        display: flex;
        flex-direction: column;
        gap: 2px;
    }
    .cs-metric strong {
        font-size: var(--text-lg);
        font-weight: 800;
        color: var(--color-primary);
        line-height: 1.1;
    }
    .cs-metric span {
        font-size: var(--text-xs);
        color: var(--color-muted);
        text-transform: uppercase;
        letter-spacing: .04em;
    }

    /* Testimonial card */
    .testimonial-card {
        background: var(--color-bg-card);
        border: 1px solid var(--color-border);
        border-radius: var(--radius-lg);
        padding: var(--space-8);
        position: relative;
        max-width: 720px;
        margin-inline: auto;
    }
    .testimonial-card__quote {
        position: relative;
        margin: 0 0 var(--space-6);
        font-size: var(--text-lg);
        line-height: 1.75;
        color: var(--color-text-sec);
        font-style: italic;
    }
    .testimonial-card__quote p { margin: 0; }
    .testimonial-card__stars {
        display: flex;
        gap: 2px;
        margin-bottom: var(--space-4);
        color: #F59E0B;
        font-size: 1rem;
        letter-spacing: 2px;
    }
    .testimonial-card__author {
        display: flex;
        align-items: center;
        gap: var(--space-3);
    }
    .testimonial-card__author strong {
        display: block;
        font-size: var(--text-sm);
        font-weight: 700;
        color: var(--color-text);
    }
    .testimonial-card__author span {
        display: block;
        font-size: var(--text-xs);
        color: var(--color-muted);
    }
    .testimonial-card__avatar {
        width: 48px;
        height: 48px;
        border-radius: 50%;
        object-fit: cover;
        flex-shrink: 0;
        background: var(--color-bg-alt);
    }

    /* Stat counter (legacy alias) */
    .stat-counter { text-align: center; }
    .stat-counter__value { font-size: var(--text-4xl); font-weight: 900; color: var(--color-primary); line-height: 1; }
    .stat-counter__label { font-size: var(--text-sm); color: var(--color-muted); margin-top: var(--space-2); }

    /* Team card */
    .team-card {
        background: var(--color-bg-card);
        border: 1px solid var(--color-border);
        border-radius: var(--radius-lg);
        overflow: hidden;
        text-align: center;
        transition: all var(--transition-slow);
    }
    .team-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-4px); }
    .team-card__photo { width: 100%; aspect-ratio: 1; object-fit: cover; }
    .team-card__body { padding: var(--space-5); }
    .team-card__name { font-size: var(--text-lg); font-weight: 800; color: var(--color-text); margin-bottom: 4px; }
    .team-card__role { font-size: var(--text-sm); color: var(--color-primary); font-weight: 600; }
    .team-card__socials { display: flex; justify-content: center; gap: var(--space-3); margin-top: var(--space-4); }
    .team-card__social { color: var(--color-muted); transition: color var(--transition); }
    .team-card__social:hover { color: var(--color-primary); }

    /* Job listing card */
    .job-card {
        background: var(--color-bg-card);
        border: 1px solid var(--color-border);
        border-radius: var(--radius);
        padding: var(--space-6);
        display: flex; align-items: center; gap: var(--space-5);
        transition: all var(--transition);
        text-decoration: none; color: inherit;
    }
    .job-card:hover { border-color: var(--color-primary); box-shadow: var(--shadow-md); }
    .job-card__info { flex: 1; }
    .job-card__title { font-size: var(--text-lg); font-weight: 800; color: var(--color-text); margin-bottom: var(--space-2); }
    .job-card__meta { display: flex; flex-wrap: wrap; gap: var(--space-3); font-size: var(--text-sm); color: var(--color-muted); }
    .job-card__meta-item { display: flex; align-items: center; gap: 5px; }
    .job-badge {
        display: inline-flex; padding: 4px 12px;
        border-radius: var(--radius-full);
        font-size: var(--text-xs); font-weight: 700;
        background: rgba(22,104,178,.1); color: var(--color-primary);
    }
    .job-badge--remote { background: rgba(55,181,74,.1); color: var(--color-accent); }
    .job-badge--type   { background: rgba(245,158,11,.1); color: #D97706; }

    /* ?? FORMS ???????????????????????????????????????????? */
    .form-field { margin-bottom: var(--space-5); }
    .form-label {
        display: block;
        font-size: var(--text-sm); font-weight: 700;
        color: var(--color-text);
        margin-bottom: var(--space-2);
    }
    .form-input, .form-textarea, .form-select {
        width: 100%;
        padding: 13px 16px;
        background: var(--color-bg);
        border: 1.5px solid var(--color-border);
        border-radius: var(--radius-sm);
        font-size: var(--text-sm);
        color: var(--color-text);
        transition: border-color var(--transition), box-shadow var(--transition);
        font-family: inherit;
    }
    .form-input:focus, .form-textarea:focus, .form-select:focus {
        outline: none;
        border-color: var(--color-primary);
        box-shadow: 0 0 0 3px rgba(22,104,178,.12);
    }
    .form-textarea { resize: vertical; min-height: 120px; line-height: 1.7; }
    .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-5); }
    .form-error { color: var(--color-danger); font-size: var(--text-xs); margin-top: 4px; }

    /* ?? FAQ ACCORDION ???????????????????????????????????? */
    .faq-item {
        border: 1px solid var(--color-border);
        border-radius: var(--radius);
        margin-bottom: var(--space-3);
        overflow: hidden;
        transition: box-shadow var(--transition);
    }
    .faq-item.is-open { box-shadow: var(--shadow-md); }
    .faq-question {
        width: 100%; display: flex; align-items: center; justify-content: space-between;
        padding: var(--space-5) var(--space-6);
        text-align: left;
        font-size: var(--text-base); font-weight: 700;
        color: var(--color-text);
        background: var(--color-bg-card);
        transition: background var(--transition);
    }
    .faq-question:hover { background: var(--color-bg-alt); }
    .faq-icon,
    .faq-chevron {
        width: 20px; height: 20px; flex-shrink: 0;
        transition: transform var(--transition);
        color: var(--color-primary);
    }
    .faq-item.is-open .faq-icon,
    .faq-item.is-open .faq-chevron { transform: rotate(180deg); }
    .faq-answer {
        max-height: 0; overflow: hidden;
        transition: max-height var(--transition-slow) ease;
    }
    .faq-answer__inner {
        padding: var(--space-3) var(--space-6) var(--space-6);
        color: var(--color-text-sec);
        line-height: 1.8;
        font-size: var(--text-base);
        border-top: 1px solid var(--color-border);
    }
    .faq-item.is-open .faq-answer { max-height: none; }

    /* ?? BREADCRUMBS ?????????????????????????????????????? */
    .breadcrumbs { padding: var(--space-3) 0; }
    .breadcrumbs__list { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; list-style: none; }
    .breadcrumbs__item { display: flex; align-items: center; gap: 6px; font-size: var(--text-sm); color: var(--color-muted); }
    .breadcrumbs__item a { color: var(--color-muted); }
    .breadcrumbs__item a:hover { color: var(--color-primary); }
    .breadcrumbs__item + .breadcrumbs__item::before { content: '/'; opacity: .5; }
    .breadcrumbs__item [aria-current] { color: var(--color-text); font-weight: 600; }

    /* ?? PAGINATION ??????????????????????????????????????? */
    .pagination { margin-top: var(--space-10); }
    .pagination__list { display: flex; align-items: center; justify-content: center; gap: var(--space-2); flex-wrap: wrap; list-style: none; }
    .pagination__btn {
        display: flex; align-items: center; justify-content: center;
        min-width: 40px; height: 40px; padding: 0 12px;
        border-radius: var(--radius-sm);
        font-size: var(--text-sm); font-weight: 600;
        color: var(--color-text-sec);
        border: 1px solid var(--color-border);
        transition: all var(--transition);
        text-decoration: none;
    }
    .pagination__btn:hover { border-color: var(--color-primary); color: var(--color-primary); }
    .pagination__btn--active { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }

    /* ?? TABLE OF CONTENTS ???????????????????????????????? */
    .toc {
        background: var(--color-bg-alt);
        border: 1px solid var(--color-border);
        border-radius: var(--radius);
        padding: var(--space-5) var(--space-6);
        margin-bottom: var(--space-8);
    }
    .toc__title { font-size: var(--text-base); font-weight: 800; color: var(--color-text); margin-bottom: var(--space-4); }
    .toc__list { list-style: none; }
    .toc__item { margin-bottom: var(--space-2); }
    .toc__item a { font-size: var(--text-sm); color: var(--color-muted); }
    .toc__item a:hover { color: var(--color-primary); }
    .toc__item--indent { padding-left: var(--space-5); }

    /* ?? COOKIE BANNER ???????????????????????????????????? */
    #cookie-banner {
        position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%);
        width: calc(100% - 40px); max-width: 700px;
        background: var(--color-text);
        color: #fff;
        border-radius: var(--radius);
        box-shadow: var(--shadow-xl);
        z-index: var(--z-toast);
        opacity: 0; transition: opacity var(--transition-slow);
    }
    .cookie-banner--visible { opacity: 1 !important; }
    .cookie-banner__inner { display: flex; align-items: center; gap: var(--space-5); padding: 16px 20px; flex-wrap: wrap; }
    .cookie-banner__text { flex: 1; font-size: var(--text-sm); color: rgba(255,255,255,.85); }
    .cookie-banner__link { color: var(--color-accent); }
    .cookie-banner__actions { display: flex; gap: var(--space-3); }
    .cookie-banner__btn { padding: 8px 18px; border-radius: var(--radius-full); font-size: var(--text-sm); font-weight: 700; cursor: pointer; border: none; transition: all var(--transition); }
    .cookie-banner__btn--accept { background: var(--color-accent); color: #fff; }
    .cookie-banner__btn--decline { background: rgba(255,255,255,.15); color: #fff; }

    /* ?? FLOATING CTA ? icon-only, never covers content ?? */
    .floating-cta {
        position: fixed;
        bottom: 1.25rem;
        right: 1.25rem;
        z-index: 90;
        display: none;
    }
    @media (max-width: 768px) {
        .floating-cta { display: block; }
        .site-main { padding-bottom: 5rem; }
    }
    .floating-cta__btn {
        width: 3.25rem;
        height: 3.25rem;
        padding: 0 !important;
        border-radius: 50% !important;
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        box-shadow: 0 10px 28px rgba(22, 104, 178, 0.4);
    }
    .floating-cta__btn span { display: none; }

    /* ?? FOOTER ??????????????????????????????????????????? */
    .site-footer { background: var(--color-text); color: rgba(255,255,255,.7); }

    .footer-newsletter {
        background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
        padding: clamp(2.5rem, 5vw, 3.5rem) 0;
    }
    .footer-newsletter__inner {
        display: grid;
        grid-template-columns: 1.1fr 0.9fr;
        gap: clamp(1.5rem, 4vw, 3rem);
        align-items: start;
    }
    .footer-newsletter__title {
        font-size: clamp(1.35rem, 2.5vw, 1.75rem);
        font-weight: 800;
        color: #fff;
        margin: 0 0 0.5rem;
        line-height: 1.25;
    }
    .footer-newsletter__subtitle {
        color: rgba(255,255,255,.8);
        font-size: 0.95rem;
        line-height: 1.6;
        margin: 0;
    }
    .footer-newsletter__form {
        display: flex;
        flex-direction: column;
        gap: 0.75rem;
        width: 100%;
        max-width: 28rem;
    }
    .footer-newsletter__fields {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        gap: 0.6rem;
        width: 100%;
    }
    .footer-newsletter__input {
        flex: 1 1 auto;
        width: auto;
        min-width: 0;
        height: 2.85rem;
        max-height: 2.85rem;
        padding: 0 1.1rem;
        background: rgba(255,255,255,.14);
        border: 1.5px solid rgba(255,255,255,.28);
        border-radius: 999px;
        font-size: 0.9rem;
        color: #fff;
        line-height: 1;
        box-sizing: border-box;
    }
    .footer-newsletter__input::placeholder { color: rgba(255,255,255,.55); }
    .footer-newsletter__input:focus { outline: none; border-color: rgba(255,255,255,.7); background: rgba(255,255,255,.18); }
    .footer-newsletter__btn {
        flex: 0 0 auto;
        height: 2.85rem;
        padding: 0 1.25rem !important;
        white-space: nowrap;
    }
    .footer-newsletter__success {
        margin: 0;
        color: #fff;
        font-weight: 600;
        font-size: 0.95rem;
    }
    .footer-newsletter__legal {
        font-size: 0.75rem;
        color: rgba(255,255,255,.7);
        margin: 0;
        line-height: 1.5;
    }
    .footer-newsletter__legal a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }

    .footer-main { padding: clamp(2.5rem, 5vw, 4rem) 0; }
    .footer-main__grid {
        display: grid;
        grid-template-columns: 1.4fr 1fr 1fr 1fr;
        gap: clamp(1.5rem, 3vw, 2.5rem);
    }

    .footer-logo { display: inline-block; margin-bottom: 1rem; }
    .footer-logo__img {
        height: 3rem;
        width: auto;
        max-width: 9rem;
        filter: brightness(0) invert(1);
        opacity: .95;
        display: block;
    }
    .footer-tagline {
        font-size: 0.7rem;
        color: rgba(255,255,255,.55);
        text-transform: uppercase;
        letter-spacing: .08em;
        font-weight: 700;
        margin: 0 0 0.75rem;
    }
    .footer-description {
        font-size: 0.875rem;
        color: rgba(255,255,255,.55);
        line-height: 1.65;
        margin: 0 0 1.25rem;
        max-width: 32ch;
    }

    .footer-social { display: flex; gap: 0.65rem; flex-wrap: wrap; }
    .footer-social__link {
        width: 2.25rem;
        height: 2.25rem;
        border-radius: 50%;
        border: 1px solid rgba(255,255,255,.15);
        color: rgba(255,255,255,.7);
        display: inline-flex;
        align-items: center;
        justify-content: center;
        transition: color .2s ease, border-color .2s ease, background .2s ease;
    }
    .footer-social__link svg { width: 1rem; height: 1rem; }
    .footer-social__link:hover {
        color: #fff;
        border-color: rgba(255,255,255,.4);
        background: rgba(255,255,255,.08);
    }

    .footer-col__title {
        font-size: 0.75rem;
        font-weight: 800;
        color: #fff;
        text-transform: uppercase;
        letter-spacing: .08em;
        margin: 0 0 1rem;
    }
    .footer-col__list { display: flex; flex-direction: column; gap: 0.55rem; margin: 0; padding: 0; list-style: none; }
    .footer-col__link { font-size: 0.875rem; color: rgba(255,255,255,.55); transition: color .2s ease; }
    .footer-col__link:hover { color: #fff; }
    .footer-col__cta { margin-top: 1rem; }

    .footer-contact__link {
        display: flex; align-items: center; gap: 0.6rem;
        font-size: 0.875rem; color: rgba(255,255,255,.6);
        margin-bottom: 0.75rem;
        transition: color .2s ease;
    }
    .footer-contact__link:hover { color: #fff; }

    .footer-bottom { border-top: 1px solid rgba(255,255,255,.08); padding: 1.25rem 0; }
    .footer-bottom__inner { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; }
    .footer-bottom__copy { font-size: 0.75rem; color: rgba(255,255,255,.4); margin: 0; }

    .footer-legal-nav__list { display: flex; gap: 1rem; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; }
    .footer-legal-nav__link { font-size: 0.75rem; color: rgba(255,255,255,.4); transition: color .2s ease; }
    .footer-legal-nav__link:hover { color: rgba(255,255,255,.8); }

    /* ?? PROCESS STEPS ????????????????????????????????????? */
    .process { counter-reset: step; }
    .process-step {
        display: flex; gap: var(--space-6); align-items: flex-start;
        padding-bottom: var(--space-8);
        position: relative;
    }
    .process-step:not(:last-child)::after {
        content: '';
        position: absolute; left: 22px; top: 56px; bottom: 0;
        width: 2px;
        background: linear-gradient(to bottom, var(--color-primary), transparent);
    }
    .process-step__num {
        flex-shrink: 0;
        width: 48px; height: 48px;
        border-radius: 50%;
        background: var(--color-primary);
        color: #fff;
        display: flex; align-items: center; justify-content: center;
        font-size: var(--text-base); font-weight: 900;
        position: relative; z-index: 1;
    }
    .process-step__content { flex: 1; padding-top: 10px; }
    .process-step__title { font-size: var(--text-xl); font-weight: 800; color: var(--color-text); margin-bottom: var(--space-2); }
    .process-step__desc { color: var(--color-text-sec); line-height: 1.7; }

    /* ?? TECH LOGOS ??????????????????????????????????????? */
    .tech-grid { display: flex; flex-wrap: wrap; gap: var(--space-4); }
    .tech-logo {
        display: flex; flex-direction: column; align-items: center; gap: var(--space-2);
        padding: var(--space-4);
        background: var(--color-bg-card);
        border: 1px solid var(--color-border);
        border-radius: var(--radius);
        min-width: 100px; text-align: center;
        transition: all var(--transition);
    }
    .tech-logo:hover { box-shadow: var(--shadow-md); border-color: rgba(22,104,178,.3); transform: translateY(-2px); }
    .tech-logo img { width: 48px; height: 48px; object-fit: contain; }
    .tech-logo__name { font-size: var(--text-xs); font-weight: 600; color: var(--color-muted); }

    /* ?? CLIENT LOGO WALL / MARQUEE ???????????????????????? */
    .clients__label {
        font-size: var(--text-sm);
        font-weight: 600;
        letter-spacing: .04em;
        margin-bottom: var(--space-6);
    }
    .clients__marquee,
    .client-logos {
        overflow: hidden;
        width: 100%;
        mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
        -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
    }
    .clients__track,
    .client-logos__track {
        display: flex;
        align-items: center;
        gap: clamp(2.5rem, 6vw, 4.5rem);
        width: max-content;
        animation: marquee 35s linear infinite;
    }
    .clients__marquee:hover .clients__track,
    .client-logos:hover .client-logos__track { animation-play-state: paused; }
    @keyframes marquee {
        from { transform: translateX(0); }
        to   { transform: translateX(-50%); }
    }
    .clients__item,
    .client-logo {
        flex-shrink: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        min-width: 8rem;
        opacity: .55;
        filter: grayscale(1);
        transition: opacity .25s ease, filter .25s ease;
    }
    .clients__item:hover,
    .client-logo:hover { opacity: 1; filter: grayscale(0); }
    .clients__item img,
    .client-logo img {
        height: 2rem;
        width: auto;
        max-width: 9rem;
        object-fit: contain;
    }
    .clients__name {
        font-size: .95rem;
        font-weight: 700;
        letter-spacing: -.01em;
        color: var(--color-text);
        white-space: nowrap;
    }
    .client-logo img { height: 40px; width: auto; }

    /* ?? SPEAKABLE SECTION ????????????????????????????????? */
    .speakable { /* AEO signal ? no visual style needed */ }

    /* ?? RESOURCE CARDS ???????????????????????????????????? */
    .resource-card {
        background: var(--color-bg-card);
        border: 1px solid var(--color-border);
        border-radius: var(--radius-lg);
        overflow: hidden;
        display: flex; flex-direction: column;
        transition: all var(--transition-slow);
    }
    .resource-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-3px); }
    .resource-card__img { aspect-ratio: 16/9; object-fit: cover; width: 100%; }
    .resource-card__body { padding: var(--space-5); flex: 1; display: flex; flex-direction: column; }
    .resource-card__type { font-size: var(--text-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--color-accent); margin-bottom: var(--space-3); }
    .resource-card__title { font-size: var(--text-xl); font-weight: 800; color: var(--color-text); margin-bottom: var(--space-2); flex: 1; }
    .resource-card__desc { color: var(--color-muted); font-size: var(--text-sm); margin-bottom: var(--space-5); }
}

/* ?? Utility Layer ????????????????????????????????????????????? */
@layer utilities {
    .text-center { text-align: center; }
    .text-primary { color: var(--color-primary); }
    .text-accent  { color: var(--color-accent); }
    .text-muted   { color: var(--color-muted); }
    .font-bold    { font-weight: 700; }
    .font-black   { font-weight: 900; }
    .mt-auto { margin-top: auto; }
    .flex { display: flex; }
    .flex-col { flex-direction: column; }
    .items-center { align-items: center; }
    .justify-center { justify-content: center; }
    .justify-between { justify-content: space-between; }
    .gap-4 { gap: var(--space-4); }
    .gap-6 { gap: var(--space-6); }
    .hidden { display: none; }
    .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
    .reveal,
    .reveal.js-animate,
    .reveal.js-animate.is-visible,
    .reveal.is-visible {
        opacity: 1;
        transform: none;
    }
    .reveal-delay-1,
    .reveal-delay-2,
    .reveal-delay-3,
    .reveal-delay-4 { transition-delay: 0s; }
}

/* ?? Animation Layer ??????????????????????????????????????????? */
@layer animations {
    @media (prefers-reduced-motion: no-preference) {
        .magnetic { transition: transform .3s cubic-bezier(.34,1.56,.64,1); }
    }

    @media (prefers-reduced-motion: reduce) {
        *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
    }
}

/* ?? Responsive ???????????????????????????????????????????????? */
@media (max-width: 1024px) {
    .footer-main__grid { grid-template-columns: 1fr 1fr; }
    .footer-newsletter__inner { grid-template-columns: 1fr; }
    .site-nav { display: none; }
    .mobile-menu-toggle { display: flex; }
    .site-header__cta { display: none; }
}

@media (max-width: 768px) {
    .footer-main__grid { grid-template-columns: 1fr; }
    .hero__visual { display: none; }
    .hero__actions { flex-direction: column; align-items: center; }
    .hero__stats { flex-direction: row; flex-wrap: wrap; justify-content: center; }
    .hero__stat { padding: 0 1rem; }
    .hero__stat:first-child { border-left: none; }
    .form-grid { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
    .footer-newsletter__fields { flex-direction: column; }
    .footer-bottom__inner { flex-direction: column; text-align: center; }
}

/* ???????????????????????????????????????????????????????????????
   ADDITIONAL COMPONENT STYLES
   ??????????????????????????????????????????????????????????????? */

/* ?? Contact page ??????????????????????????????????????????? */
.contact-layout {
    display: grid;
    grid-template-columns: 1fr .7fr;
    gap: var(--space-2xl);
    align-items: start;
}
@media (max-width: 60rem) { .contact-layout { grid-template-columns: 1fr; } }

.contact-card { padding: var(--space-xl); }
.contact-info__details { padding: var(--space-xl); margin-bottom: var(--space-lg); }
.contact-detail {
    display: flex;
    gap: var(--space-md);
    align-items: flex-start;
    padding: var(--space-md) 0;
    border-bottom: 1px solid var(--color-border);
}
.contact-detail:last-child { border-bottom: none; }
.contact-detail__icon {
    width: 40px; height: 40px;
    background: var(--color-primary-light);
    color: var(--color-primary);
    border-radius: var(--radius-md);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.contact-detail > div { display: flex; flex-direction: column; gap: .2rem; }
.contact-detail strong { font-weight: 600; color: var(--color-text); }
.contact-detail a, .contact-detail span { color: var(--color-text-muted); font-size: .9rem; }

/* Multi-step form progress — legacy bar (unused on contact; keep safe) */
.form-progress {
    display: flex;
    gap: var(--space-sm);
    margin-bottom: var(--space-xl);
}
.form-progress__step {
    flex: 1;
    height: 4px;
    background: var(--color-border);
    border-radius: var(--radius-full);
    transition: background .3s;
}
.form-progress__step.is-active { background: var(--color-primary); }

.form-step__title { font-size: 1.4rem; font-weight: 700; margin-bottom: var(--space-lg); }
.form-actions { display: flex; gap: var(--space-md); margin-top: var(--space-xl); }

/* ?? Job pages ??????????????????????????????????????????????? */
.job-list { display: flex; flex-direction: column; gap: var(--space-lg); }
.job-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-lg);
    padding: var(--space-xl);
}
@media (max-width: 48rem) { .job-card { flex-direction: column; align-items: flex-start; } }
.job-card__tags { display: flex; flex-wrap: wrap; gap: var(--space-xs); margin-bottom: var(--space-sm); }
.job-card__title { font-size: 1.2rem; font-weight: 700; margin-bottom: var(--space-xs); }
.job-card__title a { color: var(--color-text); }
.job-card__title a:hover { color: var(--color-primary); }
.job-card__meta { display: flex; flex-wrap: wrap; gap: var(--space-md); font-size: .85rem; color: var(--color-text-muted); margin-top: .5rem; }
.job-card__meta span { display: flex; align-items: center; gap: .3rem; }
.job-card__desc { font-size: .9rem; color: var(--color-text-muted); margin-top: .75rem; max-width: 60ch; }
.job-card__cta { flex-shrink: 0; }

/* Job detail layout */
.job-layout, .case-study-layout, .post-layout {
    display: grid;
    grid-template-columns: 1fr 18rem;
    gap: var(--space-2xl);
    align-items: start;
}
@media (max-width: 60rem) {
    .job-layout, .case-study-layout, .post-layout {
        grid-template-columns: 1fr;
    }
    .job-sidebar, .case-study-sidebar, .post-sidebar { order: -1; }
}
.job-section, .cs-section { margin-bottom: var(--space-2xl); }
.job-section h2, .cs-section h2 { font-size: 1.5rem; margin-bottom: var(--space-md); }
.job-apply { padding: var(--space-xl); margin-top: var(--space-2xl); }

.job-hero__badges { display: flex; gap: var(--space-xs); margin-bottom: var(--space-md); }
.job-hero__meta { display: flex; flex-wrap: wrap; gap: var(--space-md); font-size: .95rem; color: var(--color-text-muted); margin-top: var(--space-md); }

/* ?? Blog listing layout ????????????????????????????????????? */
.blog-layout {
    display: grid;
    grid-template-columns: 1fr 18rem;
    gap: var(--space-2xl);
    align-items: start;
}
@media (max-width: 60rem) { .blog-layout { grid-template-columns: 1fr; } }

.blog-sidebar { display: flex; flex-direction: column; gap: var(--space-lg); }
.sidebar-widget { padding: var(--space-xl); }
.sidebar-widget__title { font-size: 1rem; font-weight: 700; margin-bottom: var(--space-md); color: var(--color-text); }
.sidebar-list { list-style: none; display: flex; flex-direction: column; gap: .5rem; }
.sidebar-list a { color: var(--color-text-muted); font-size: .9rem; display: flex; justify-content: space-between; transition: color var(--transition); }
.sidebar-list a:hover, .sidebar-list a.is-active { color: var(--color-primary); }
.sidebar-list span { opacity: .6; font-size: .8rem; }
.sidebar-form { display: flex; flex-direction: column; gap: var(--space-sm); }
.sidebar-card { padding: var(--space-lg); }

/* ?? Search bar ?????????????????????????????????????????????? */
.search-bar {
    display: flex;
    gap: var(--space-sm);
    margin-bottom: var(--space-xl);
}
.search-bar .form-input { flex: 1; }
.search-bar--sm { margin-top: var(--space-md); }

/* ?? Pagination ?????????????????????????????????????????????? */
.pagination {
    display: flex;
    justify-content: center;
    gap: var(--space-xs);
    margin-top: var(--space-2xl);
    flex-wrap: wrap;
}
.pagination__link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--radius-md);
    font-weight: 600;
    color: var(--color-text-muted);
    border: 1px solid var(--color-border);
    transition: all var(--transition);
}
.pagination__link:hover { background: var(--color-primary-light); color: var(--color-primary); }
.pagination__link.is-active { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }

/* ?? Filter bar ?????????????????????????????????????????????? */
.filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm);
    margin-bottom: var(--space-xl);
}
.filter-btn, .filter-bar a {
    padding: .45rem 1.1rem;
    border-radius: var(--radius-full);
    font-size: .875rem;
    font-weight: 500;
    cursor: pointer;
    border: 1.5px solid var(--color-border);
    background: var(--color-bg);
    color: var(--color-text-muted);
    transition: all var(--transition);
    text-decoration: none;
}
.filter-btn:hover, .filter-bar a:hover,
.filter-btn.is-active, .filter-bar a.is-active {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
}

/* ?? Case Study pages ???????????????????????????????????????? */
.case-study-hero {
    min-height: 60vh;
    display: flex;
    align-items: flex-end;
    background: linear-gradient(to bottom, rgba(0,0,0,.3), rgba(0,0,0,.7)), var(--hero-bg, #0d1117) center/cover no-repeat;
    color: #fff;
    padding: 4rem 0;
}
.case-study-hero__content { color: #fff; }
.case-study-hero__tags { display: flex; gap: var(--space-xs); margin-bottom: var(--space-md); }
.case-study-hero h1 { font-size: clamp(2rem, 4vw, 3rem); font-weight: 800; color: #fff; }

.metrics-bar {
    background: var(--color-primary);
    color: #fff;
    padding: var(--space-xl) 0;
}
.metrics-bar__grid {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2xl);
    justify-content: center;
}
.metrics-bar__item { text-align: center; }
.metrics-bar__item strong { display: block; font-size: 2rem; font-weight: 800; line-height: 1; }
.metrics-bar__item span { font-size: .85rem; opacity: .85; margin-top: .3rem; }

.pullquote {
    background: var(--color-primary-light);
    border-left: 4px solid var(--color-primary);
    border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
    padding: var(--space-xl) var(--space-2xl);
    margin: var(--space-2xl) 0;
}
.pullquote p { font-size: 1.2rem; font-style: italic; color: var(--color-text); line-height: 1.7; }
.pullquote footer { margin-top: var(--space-md); font-size: .9rem; color: var(--color-text-muted); font-style: normal; }

.info-list { display: flex; flex-direction: column; gap: 0; }
.info-list dt { font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--color-text-muted); font-weight: 600; margin-top: var(--space-md); }
.info-list dd { color: var(--color-text); font-weight: 500; display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .25rem; }

/* ?? Blog post page ?????????????????????????????????????????? */
.post-hero { padding: var(--space-3xl) 0 var(--space-2xl); }
.post-hero__title { font-size: clamp(1.75rem, 4vw, 3rem); font-weight: 800; line-height: 1.15; margin: var(--space-md) 0; }
.post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-md); font-size: .875rem; color: var(--color-text-muted); margin-bottom: var(--space-xl); }
.post-meta__author { display: flex; align-items: center; gap: var(--space-sm); }
.post-featured-image { margin-top: var(--space-xl); border-radius: var(--radius-xl); overflow: hidden; max-height: 520px; }
.post-featured-image img { width: 100%; height: 100%; object-fit: cover; }
.post-content-area { min-width: 0; }
.toc { padding: var(--space-lg); margin-bottom: var(--space-xl); }
.toc__title { font-size: 1rem; font-weight: 700; margin-bottom: var(--space-md); }
.toc ol, .toc ul { padding-left: 1.25rem; }
.toc a { color: var(--color-text-muted); font-size: .9rem; }
.toc a:hover { color: var(--color-primary); }
.post-tags { display: flex; flex-wrap: wrap; gap: var(--space-xs); margin-top: var(--space-xl); }
.social-share { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-sm); margin-top: var(--space-xl); padding-top: var(--space-xl); border-top: 1px solid var(--color-border); }
.social-share__label { font-size: .9rem; font-weight: 600; color: var(--color-text-muted); }
.social-share__btn { display: inline-flex; align-items: center; gap: .4rem; padding: .45rem 1rem; border-radius: var(--radius-full); background: var(--color-bg-alt); color: var(--color-text); font-size: .85rem; font-weight: 500; transition: all var(--transition); }
.social-share__btn:hover { background: var(--color-primary); color: #fff; }
.social-share__btn--block { width: 100%; justify-content: center; margin-bottom: var(--space-xs); }
.social-share--vertical { flex-direction: column; align-items: stretch; }
.author-box { display: flex; gap: var(--space-lg); align-items: flex-start; padding: var(--space-xl); margin-top: var(--space-2xl); }
@media (max-width: 36rem) { .author-box { flex-direction: column; } }
.author-box__avatar { flex-shrink: 0; }
.author-box__info h3 { font-size: 1rem; font-weight: 700; margin-bottom: .5rem; }
.author-box__info p { font-size: .9rem; color: var(--color-text-muted); }

/* ?? Prose / rich content ???????????????????????????????????? */
.prose { max-width: 70ch; }
.prose h2 { font-size: 1.5rem; font-weight: 700; margin: 2rem 0 .75rem; color: var(--color-text); }
.prose h3 { font-size: 1.25rem; font-weight: 600; margin: 1.75rem 0 .6rem; }
.prose p { margin-bottom: 1.25rem; line-height: 1.8; }
.prose ul, .prose ol { padding-left: 1.5rem; margin-bottom: 1.25rem; }
.prose li { margin-bottom: .5rem; line-height: 1.7; }
.prose a { color: var(--color-primary); text-decoration: underline; }
.prose blockquote { border-left: 3px solid var(--color-primary); padding-left: 1.25rem; color: var(--color-text-muted); font-style: italic; margin: 1.5rem 0; }
.prose code { background: var(--color-bg-alt); padding: .15rem .4rem; border-radius: var(--radius-sm); font-family: var(--font-mono); font-size: .875em; }
.prose pre { background: #1e2432; color: #e6edf3; padding: 1.25rem 1.5rem; border-radius: var(--radius-lg); overflow-x: auto; margin: 1.5rem 0; }
.prose pre code { background: none; padding: 0; color: inherit; }
.prose img { border-radius: var(--radius-lg); margin: 1.5rem 0; max-width: 100%; }
.prose table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; }
.prose th, .prose td { padding: .75rem 1rem; border: 1px solid var(--color-border); text-align: left; }
.prose th { background: var(--color-bg-alt); font-weight: 600; }

/* ?? Legal page ?????????????????????????????????????????????? */
.legal-content { max-width: 70ch; margin-inline: auto; }
.legal-nav { display: flex; flex-wrap: wrap; gap: var(--space-md); justify-content: center; padding-top: var(--space-xl); border-top: 1px solid var(--color-border); }
.legal-nav a { color: var(--color-text-muted); font-size: .9rem; padding: .3rem .75rem; border-radius: var(--radius-full); transition: all var(--transition); }
.legal-nav a:hover, .legal-nav a.is-active { background: var(--color-primary-light); color: var(--color-primary); }

/* ?? Resource cards ?????????????????????????????????????????? */
.resource-card { padding: var(--space-xl); }
.resource-card__header { display: flex; gap: var(--space-xs); flex-wrap: wrap; margin-bottom: var(--space-md); }
.resource-card__thumbnail { border-radius: var(--radius-lg); overflow: hidden; margin-bottom: var(--space-md); max-height: 160px; }
.resource-card__body h2 { font-size: 1.05rem; font-weight: 700; margin-bottom: var(--space-sm); line-height: 1.3; }
.resource-card__desc { font-size: .875rem; color: var(--color-text-muted); margin-bottom: var(--space-md); }
.resource-card__meta { font-size: .8rem; margin-bottom: var(--space-md); }
.resource-form { padding: var(--space-md); background: var(--color-bg-alt); border-radius: var(--radius-md); }
.form-success--sm { padding: var(--space-md); background: #e8f8ea; border-radius: var(--radius-md); color: var(--color-accent-dark); font-size: .9rem; text-align: center; }

/* ?? Technologies ???????????????????????????????????????????? */
.tech-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
    gap: var(--space-md);
    margin-bottom: var(--space-2xl);
}
.tech-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .5rem;
    padding: var(--space-md);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface);
    text-align: center;
    font-size: .8rem;
    font-weight: 500;
    color: var(--color-text-muted);
    transition: all var(--transition);
}
.tech-item:hover { border-color: var(--color-primary); box-shadow: var(--shadow-sm); transform: translateY(-2px); }
.tech-item img { width: 40px; height: 40px; object-fit: contain; }
.tech-category { margin-bottom: var(--space-2xl); }
.tech-category__title { font-size: 1.1rem; font-weight: 700; color: var(--color-text-muted); text-transform: uppercase; letter-spacing: .06em; margin-bottom: var(--space-lg); }
.tech-proficiency { width: 100%; height: 3px; background: var(--color-border); border-radius: var(--radius-full); overflow: hidden; }
.tech-proficiency__bar { height: 100%; background: var(--color-accent); border-radius: var(--radius-full); }

/* ?? Feature list ???????????????????????????????????????????? */
.feature-list { list-style: none; display: flex; flex-direction: column; gap: var(--space-md); }
.feature-list__item { display: flex; gap: var(--space-md); align-items: flex-start; }
.feature-list__icon { color: var(--color-accent); flex-shrink: 0; margin-top: .15rem; }
.feature-list__item strong { display: block; font-weight: 600; margin-bottom: .2rem; }
.feature-list__item p { font-size: .9rem; color: var(--color-text-muted); margin: 0; }

/* ?? Process steps ??????????????????????????????????????????? */
.process-steps { display: flex; flex-direction: column; gap: 0; position: relative; }
.process-steps::before { content: ''; position: absolute; left: 2.5rem; top: 0; bottom: 0; width: 2px; background: var(--color-border); }
@media (max-width: 48rem) { .process-steps::before { display: none; } }
.process-step {
    display: flex;
    gap: var(--space-xl);
    align-items: flex-start;
    padding: var(--space-xl) 0;
}
.process-step__num {
    width: 5rem;
    height: 5rem;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-primary);
    color: #fff;
    font-size: 1.5rem;
    font-weight: 800;
    border-radius: 50%;
    position: relative;
    z-index: 1;
}
.process-step__content h3 { font-size: 1.2rem; font-weight: 700; margin-bottom: .5rem; }
.process-step__content p { color: var(--color-text-muted); line-height: 1.7; }

/* ?? Value cards ????????????????????????????????????????????? */
.value-card { padding: var(--space-xl); }
.value-card__icon {
    width: 3rem; height: 3rem; margin-bottom: var(--space-4);
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: var(--radius); background: var(--color-primary-light, #e8f1fb);
    color: var(--color-primary); font-family: var(--font-display); font-weight: 700; font-size: 1.15rem;
}
.value-card h3 { font-size: 1.1rem; font-weight: 700; margin-bottom: .5rem; }
.value-card p { font-size: .9rem; color: var(--color-muted); }

/* ?? Team cards ?????????????????????????????????????????????? */
.team-card { padding: var(--space-xl); text-align: center; }
.team-card__avatar { display: flex; justify-content: center; margin-bottom: var(--space-lg); }
.team-card__initials {
    width: 80px; height: 80px;
    border-radius: 50%;
    background: var(--color-primary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    font-weight: 800;
}
.team-card__name { font-size: 1.05rem; font-weight: 700; }
.team-card__role { font-size: .875rem; color: var(--color-primary); font-weight: 500; margin-top: .25rem; }
.team-card__bio { font-size: .85rem; color: var(--color-text-muted); margin-top: var(--space-sm); }
.team-card__socials { display: flex; justify-content: center; gap: var(--space-sm); margin-top: var(--space-md); }
.team-card__socials a { color: var(--color-text-muted); transition: color var(--transition); }
.team-card__socials a:hover { color: var(--color-primary); }

/* ?? Error page ?????????????????????????????????????????????? */
.error-page {
    display: flex;
    align-items: center;
    min-height: 80vh;
    padding: var(--space-3xl) 0;
}
.error-page .container { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-2xl); align-items: center; }
@media (max-width: 48rem) { .error-page .container { grid-template-columns: 1fr; } }
.error-page__code { font-size: clamp(6rem, 15vw, 10rem); font-weight: 900; color: var(--color-primary); opacity: .15; line-height: 1; }
.error-page__title { font-size: 2rem; font-weight: 800; margin-bottom: var(--space-md); }
.error-page__desc { color: var(--color-text-muted); line-height: 1.7; margin-bottom: var(--space-xl); }
.error-page__actions { display: flex; flex-wrap: wrap; gap: var(--space-md); }
.error-svg { max-width: 100%; }

/* ?? Inline form (newsletter in CTA) ???????????????????????? */
.inline-form { display: flex; flex-wrap: wrap; gap: var(--space-sm); }
.inline-form .form-input { flex: 1; min-width: 200px; }

/* ?? Form elements ??????????????????????????????????????????? */
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-lg); }
@media (max-width: 36rem) { .form-grid { grid-template-columns: 1fr; } }
.form-group { display: flex; flex-direction: column; gap: .4rem; }
.form-label { font-size: .875rem; font-weight: 600; color: var(--color-text); }
.form-input, .form-textarea, .form-select {
    width: 100%;
    padding: .7rem 1rem;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-bg);
    color: var(--color-text);
    font-size: .95rem;
    font-family: inherit;
    transition: border-color var(--transition), box-shadow var(--transition);
}
.form-input:focus, .form-textarea:focus, .form-select:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(22,104,178,.12);
}
.form-input--error { border-color: #ef4444; }
.form-textarea { resize: vertical; min-height: 140px; }
.form-hint { font-size: .8rem; color: var(--color-text-muted); }
.form-error { padding: .75rem 1rem; background: #fef2f2; border: 1px solid #fca5a5; border-radius: var(--radius-md); color: #b91c1c; font-size: .875rem; margin-bottom: var(--space-md); }
.form-success { padding: var(--space-2xl); text-align: center; }
.form-success__icon { font-size: 3rem; margin-bottom: var(--space-md); }
.form-success h2 { font-size: 1.5rem; font-weight: 700; margin-bottom: var(--space-sm); color: var(--color-accent); }
.form-success p { color: var(--color-text-muted); }
.checkbox-label { display: flex; align-items: flex-start; gap: .5rem; cursor: pointer; font-size: .875rem; line-height: 1.5; }
.form-checkbox { margin-top: .15rem; flex-shrink: 0; width: 1rem; height: 1rem; }

/* ?? General page hero ??????????????????????????????????????? */
.page-hero {
    background: linear-gradient(135deg, var(--color-primary-light) 0%, var(--color-bg) 100%);
    padding: calc(var(--header-h) + 3rem) 0 3rem;
    border-bottom: 1px solid var(--color-border);
}
.page-hero__content { max-width: 56rem; }
.page-hero__title { font-size: clamp(2rem, 4vw, 3.25rem); font-weight: 800; line-height: 1.1; margin: var(--space-md) 0; }
.page-hero__desc { font-size: 1.1rem; color: var(--color-text-muted); max-width: 56ch; margin-top: var(--space-md); }
.page-hero__actions { display: flex; flex-wrap: wrap; gap: var(--space-md); margin-top: var(--space-xl); }
.page-hero__image img { border-radius: var(--radius-xl); max-height: 400px; object-fit: cover; }

/* ?? Breadcrumbs ????????????????????????????????????????????? */
.breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; font-size: .8rem; color: var(--color-text-muted); margin-bottom: var(--space-md); }
.breadcrumbs a { color: var(--color-text-muted); transition: color var(--transition); }
.breadcrumbs a:hover { color: var(--color-primary); }
.breadcrumbs__sep { opacity: .4; }
.breadcrumbs__current { color: var(--color-text); font-weight: 500; }

/* ?? Empty state ????????????????????????????????????????????? */
.empty-state { text-align: center; padding: var(--space-3xl); color: var(--color-text-muted); }
.empty-state p { font-size: 1.05rem; }

/* ?? Misc helpers ???????????????????????????????????????????? */
.gap-xl { gap: var(--space-xl); }
.align-center { align-items: center; }
.lead { font-size: 1.1rem; line-height: 1.8; color: var(--color-text-muted); }
.img-circle { border-radius: 50%; object-fit: cover; }
.img-cover { width: 100%; height: 100%; object-fit: cover; }
.img-cover.rounded-xl { border-radius: var(--radius-xl); }
.rounded-xl { border-radius: var(--radius-xl); }
.mt-6 { margin-top: 1.5rem; }

/* ???????????????????????????????????????????????????????????????
   PRODUCTION FIXES ? match live HTML class names (unlayered)
   ??????????????????????????????????????????????????????????????? */

/* Section variants */
.section--tight { padding-block: clamp(1.75rem, 4vw, 3rem); }
.section--alt { background: var(--color-bg-alt, #f4f7fc); }
.section--dark {
    background: linear-gradient(135deg, #0D47A1 0%, #1565C0 50%, #0A3880 100%);
    color: #fff;
}

/* Clients marquee ? horizontal ticker (clipped, never leaks under header) */
.clients {
    position: relative;
    z-index: 1;
    overflow: hidden;
    background: var(--color-bg, #fff);
}
.clients__label {
    font-size: .875rem;
    font-weight: 600;
    color: var(--color-text-muted, #64748b);
    margin-bottom: 1.75rem;
}
.clients__marquee {
    overflow: hidden;
    width: 100%;
    max-width: 100%;
    padding-block: .5rem;
    position: relative;
    isolation: isolate;
    mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.clients__track {
    display: flex;
    align-items: center;
    gap: clamp(2.75rem, 7vw, 5rem);
    width: max-content;
    will-change: transform;
    animation: clients-marquee 38s linear infinite;
}
.clients__marquee:hover .clients__track { animation-play-state: paused; }
@keyframes clients-marquee {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}
.clients__item {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.5rem;
    opacity: .55;
    filter: grayscale(1);
    transition: opacity .2s ease, filter .2s ease;
}
.clients__item:hover { opacity: 1; filter: none; }
.clients__item img {
    height: 2rem;
    width: auto;
    max-width: 8.5rem;
    object-fit: contain;
    display: block;
}
.clients__name {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: -.01em;
    color: var(--color-text, #1a2332);
    white-space: nowrap;
}
@media (prefers-reduced-motion: reduce) {
    .clients__track {
        animation: none;
        flex-wrap: wrap;
        width: 100%;
        max-width: 100%;
        justify-content: center;
        gap: 1.25rem 2rem;
    }
    .clients__marquee {
        mask-image: none;
        -webkit-mask-image: none;
    }
}

/* Stats grid */
.stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: clamp(1.5rem, 4vw, 2.5rem);
    text-align: center;
}
.stat-item { display: flex; flex-direction: column; gap: .35rem; }
.stat-item__value {
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 900;
    line-height: 1;
    color: #fff;
    letter-spacing: -.03em;
}
.stat-item__label {
    font-size: .8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: rgba(255,255,255,.75);
}
.stat-item__desc {
    font-size: .85rem;
    color: rgba(255,255,255,.55);
}
@media (max-width: 900px) {
    .stats-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
    .stats-grid { grid-template-columns: 1fr 1fr; gap: 1.5rem; }
}

/* CTA banner ? tight, no dead vertical gap */
.cta-banner.section,
.cta-banner {
    background: linear-gradient(135deg, #0D47A1 0%, #1668B2 40%, #0A3880 100%);
    color: #fff;
    padding-block: clamp(2.25rem, 5vw, 3.5rem) !important;
}
.cta-banner__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem 2rem;
    flex-wrap: wrap;
}
.cta-banner__content { flex: 1 1 16rem; max-width: 36rem; }
.cta-banner__content h2 {
    font-size: clamp(1.35rem, 3vw, 2rem) !important;
    font-weight: 800;
    line-height: 1.2;
    color: #fff;
    margin: 0 0 0.5rem !important;
}
.cta-banner__content p {
    margin: 0 !important;
    font-size: 0.98rem;
    color: rgba(255,255,255,.8);
    line-height: 1.55;
}
.cta-banner__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
    margin-top: 0 !important;
}
.cta-banner .btn--primary {
    background: #fff;
    color: #0D47A1;
    border-color: #fff;
}
.cta-banner .btn--primary:hover {
    background: #f0f7ff;
    border-color: #f0f7ff;
}
@media (max-width: 700px) {
    .cta-banner__inner {
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
        gap: 1.15rem;
    }
}

/* FAQ ? no huge empty tail */
.faq-section.section,
.faq-section {
    padding-block: clamp(2.25rem, 5vw, 3.5rem) !important;
}
.faq-section .section-header { margin-bottom: 1.5rem !important; }
.faq-section .section-title {
    max-width: 18ch;
    margin-inline: auto;
    font-size: clamp(1.5rem, 3.5vw, 2.1rem) !important;
}
.faq-list { margin-top: 0; }
.faq-item { margin-bottom: 0.55rem !important; }

/* Newsletter + footer mobile overrides (kill giant input) */
.footer-newsletter__inner {
    grid-template-columns: 1.1fr 0.9fr !important;
    align-items: start !important;
}
.footer-newsletter__fields {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 0.6rem !important;
    width: 100%;
}
.footer-newsletter__input {
    flex: 1 1 auto !important;
    width: auto !important;
    height: 2.85rem !important;
    max-height: 2.85rem !important;
    min-height: 2.85rem !important;
    padding: 0 1.1rem !important;
    align-self: center !important;
    box-sizing: border-box !important;
}
.footer-newsletter__btn,
.footer-newsletter__fields .btn {
    flex: 0 0 auto !important;
    width: auto !important;
    height: 2.85rem !important;
    padding-inline: 1.2rem !important;
}
.footer-newsletter__form { max-width: 28rem; }
.footer-logo__img {
    height: 3rem !important;
    width: auto !important;
    max-width: 9rem !important;
}
.footer-social__link {
    width: 2.25rem !important;
    height: 2.25rem !important;
}
.footer-social__link svg { width: 1rem !important; height: 1rem !important; }
@media (max-width: 900px) {
    .footer-newsletter__inner { grid-template-columns: 1fr !important; }
    .footer-newsletter__form { max-width: 100%; }
}
@media (max-width: 640px) {
    .footer-newsletter__fields {
        flex-direction: column !important;
        align-items: stretch !important;
    }
    .footer-newsletter__input,
    .footer-newsletter__btn,
    .footer-newsletter__fields .btn {
        width: 100% !important;
    }
    .footer-main__grid {
        grid-template-columns: 1fr !important;
        gap: 1.75rem !important;
    }
    .footer-description { max-width: none; }
}

/* Remove old conflicting newsletter stretch rules */
.footer-newsletter__legal,
.footer-newsletter__legal a {
    color: rgba(255,255,255,.75) !important;
}
.footer-newsletter__legal a {
    color: #fff !important;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Testimonials carousel */
.testimonials-carousel { max-width: 48rem; margin-inline: auto; }
.testimonials-track { min-height: 12rem; }
.carousel-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin-top: 1.75rem;
}
.carousel-btn {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    border: 1px solid var(--color-border, #e5eaf3);
    background: var(--color-bg, #fff);
    color: var(--color-text, #1a2332);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.carousel-btn:hover {
    border-color: var(--color-primary, #1668B2);
    color: var(--color-primary, #1668B2);
    background: rgba(22,104,178,.06);
}
.carousel-dots { display: flex; gap: .5rem; align-items: center; }
.carousel-dot {
    width: .55rem;
    height: .55rem;
    border-radius: 50%;
    border: 0;
    padding: 0;
    background: var(--color-border, #cbd5e1);
    cursor: pointer;
    transition: background .2s ease, transform .2s ease;
}
.carousel-dot.is-active {
    background: var(--color-primary, #1668B2);
    transform: scale(1.25);
}

/* Post card image wrapper */
.post-card__image {
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--color-bg-alt, #f4f7fc);
}
.post-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.post-card__title a {
    color: inherit;
    text-decoration: none;
}
.post-card__title a:hover { color: var(--color-primary, #1668B2); }

/* Case study card light-surface ghost button */
.cs-card .btn--ghost,
.cs-card__body .btn--ghost {
    align-self: flex-start;
    margin-top: auto;
    padding-left: 0;
    color: var(--color-primary, #1668B2);
    border: 0;
    background: transparent;
}
.cs-card .btn--ghost:hover {
    background: transparent;
    gap: .75rem;
}
.cs-card__tags {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-bottom: .25rem;
}

/* Hero scroll hint */
.hero__scroll-hint {
    position: absolute;
    bottom: 1.5rem;
    left: 50%;
    transform: translateX(-50%);
    width: 1.5rem;
    height: 2.4rem;
    border: 2px solid rgba(255,255,255,.35);
    border-radius: 999px;
    display: flex;
    justify-content: center;
    padding-top: .4rem;
    z-index: 2;
}
.hero__scroll-dot {
    width: .35rem;
    height: .35rem;
    border-radius: 50%;
    background: #fff;
    animation: scroll-dot 1.6s ease-in-out infinite;
}
@keyframes scroll-dot {
    0%   { opacity: 1; transform: translateY(0); }
    70%  { opacity: 0; transform: translateY(12px); }
    100% { opacity: 0; transform: translateY(0); }
}

/* Header chrome owned by @layer components ? do not flatten glass here */

/* Footer logo sizing */
.footer-logo__img,
.footer-logo img {
    height: 2.5rem;
    width: auto;
    max-width: 10rem;
    display: block;
}

/* Filter buttons (services / case studies / tech pages) */
.filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    justify-content: center;
    margin-bottom: 2rem;
}
.filter-btn {
    padding: .45rem 1rem;
    border-radius: 999px;
    border: 1px solid var(--color-border, #e5eaf3);
    background: var(--color-bg, #fff);
    color: var(--color-text-muted, #64748b);
    font-size: .8rem;
    font-weight: 600;
    cursor: pointer;
    transition: all .2s ease;
}
.filter-btn:hover,
.filter-btn.is-active {
    background: var(--color-primary, #1668B2);
    border-color: var(--color-primary, #1668B2);
    color: #fff;
}

/* Inline newsletter in CTA */
.inline-form {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    align-items: center;
}
.inline-form .form-input {
    min-width: 14rem;
    background: #fff;
}

/* Badge spacing inside cards */
.post-card__body .badge,
.cs-card__body .badge { margin-bottom: .35rem; align-self: flex-start; }

/* ?? Cross-page production fixes ??????????????????????????? */
.job-card__body { flex: 1; min-width: 0; }
.job-card__info { flex: 1; min-width: 0; }

.badge--light {
  display: inline-flex;
  align-items: center;
  padding: 0.4rem 0.85rem;
  line-height: 1.25;
  background: rgba(255,255,255,.12);
  color: #fff;
  border: 1px solid rgba(255,255,255,.3);
}

.mt-2 { margin-top: .5rem; }
.mt-3 { margin-top: .75rem; }
.h3 { font-size: clamp(1.15rem, 2vw, 1.4rem); font-weight: 800; line-height: 1.25; }
.h4 { font-size: 1.05rem; font-weight: 700; line-height: 1.3; }

.page-hero .container {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 2.5rem;
    align-items: center;
}
.page-hero__content { grid-column: 1; }
.page-hero__image { grid-column: 2; }
.page-hero:not(:has(.page-hero__image)) .container {
    display: block;
}
@media (max-width: 768px) {
    .page-hero .container { grid-template-columns: 1fr; }
    .page-hero__image { grid-column: 1; order: -1; }
}

/* Case study cards without image still look solid */
.cs-card__image:empty,
.cs-card:not(:has(.cs-card__image)) .cs-card__body {
    border-top: 3px solid var(--color-primary, #1668B2);
}
.cs-card:not(:has(.cs-card__image)) {
    min-height: 14rem;
}

/* Ensure grids never collapse to zero-height blank voids */
.grid--3 > *,
.grid--2 > *,
.grid--4 > * {
    min-width: 0;
}
.service-card,
.cs-card,
.post-card {
    opacity: 1 !important;
    visibility: visible !important;
}

/* Section rhythm ? tighter, intentional spacing */
.section-header {
    margin-bottom: clamp(1.5rem, 3vw, 2.25rem) !important;
}
.section {
    padding-block: clamp(2.75rem, 6vw, 5rem);
}
.section--tight {
    padding-block: clamp(1.25rem, 3vw, 2rem) !important;
}
.section-title {
    font-size: clamp(1.6rem, 3.5vw, 2.35rem) !important;
    max-width: 28ch;
    margin-inline: auto !important;
    text-align: center !important;
}
.section-desc {
    font-size: 0.98rem !important;
    max-width: 46ch;
    margin-inline: auto !important;
    text-align: center !important;
}

/* Case study / post cards denser */
.cs-card__body {
    padding: 1.15rem 1.25rem !important;
    gap: 0.55rem !important;
}
.cs-card__title { font-size: 1.05rem !important; }
.cs-card__desc { font-size: 0.875rem !important; }
.post-card__body { padding: 1.15rem 1.25rem !important; }
.post-card__title { font-size: 1.05rem !important; }

.section-header + .grid,
.section-header + .stats-grid,
.section-header + .tech-grid,
.section-header + .testimonials-carousel,
.section-header + .faq-list {
    margin-top: 0;
}

/* Contact map */
.contact-map {
    border-radius: var(--radius-lg, 1rem);
    overflow: hidden;
    border: 1px solid var(--color-border, #e5eaf3);
}
.contact-map iframe {
    display: block;
    width: 100%;
    border: 0;
}

/* Floating CTA ? mobile icon-only; hidden on desktop */
.floating-cta {
    position: fixed;
    right: 1rem;
    bottom: 1rem;
    z-index: 90;
    display: none;
}
@media (max-width: 768px) {
    .floating-cta[style*="display: none"] { display: none !important; }
    .floating-cta:not([style*="display: none"]) { display: block; }
    .site-main { padding-bottom: 5.5rem; }
}
.floating-cta .floating-cta__btn,
.floating-cta a.btn {
    width: 3.25rem;
    height: 3.25rem;
    padding: 0 !important;
    border-radius: 50% !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 0;
    box-shadow: 0 10px 28px rgba(22,104,178,.4);
    background: var(--color-primary, #1668B2);
    color: #fff !important;
    border: none;
}
.floating-cta .floating-cta__btn span,
.floating-cta a.btn span { display: none !important; }
.floating-cta:hover .floating-cta__btn,
.floating-cta:hover a.btn { background: var(--color-primary-dark, #0F5291); color: #fff; }

/* Service cards ? unlayered override for density + mobile layout */
.service-card {
    padding: 1.5rem !important;
    gap: 0.85rem !important;
    min-height: 0 !important;
    height: 100%;
}
.service-card::before { display: none !important; }
.service-card__title { font-size: 1.05rem !important; line-height: 1.3; }
.service-card__desc { font-size: 0.9rem !important; line-height: 1.6; }
@media (max-width: 700px) {
    .grid.grid--3,
    .grid--3 {
        grid-template-columns: 1fr !important;
        gap: 0.85rem !important;
    }
    .service-card {
        display: grid !important;
        grid-template-columns: 2.75rem 1fr;
        grid-template-areas:
            "icon title"
            "icon desc"
            "link link";
        column-gap: 0.9rem;
        row-gap: 0.3rem;
        padding: 1.05rem 1.1rem !important;
        align-items: start;
    }
    .service-card__icon { grid-area: icon; width: 2.75rem; height: 2.75rem; }
    .service-card__title { grid-area: title; font-size: 0.98rem !important; align-self: center; }
    .service-card__desc { grid-area: desc; font-size: 0.84rem !important; flex: none !important; }
    .service-card__link {
        grid-area: link;
        margin-top: 0.35rem;
        padding-top: 0.65rem;
        border-top: 1px solid var(--color-border, #e5eaf3);
    }
}
@media (min-width: 701px) and (max-width: 1024px) {
    .grid.grid--3,
    .grid--3 { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (min-width: 1025px) {
    .grid.grid--3,
    .grid--3 { grid-template-columns: repeat(3, 1fr) !important; }
}

/* Overlay removed ? never show page-wide blur/dim layer */
.site-overlay { display: none !important; }

/* Branded placeholders when media is missing */
.card-media-placeholder {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: linear-gradient(145deg, #0B3D91 0%, #1668B2 55%, #1B8F5A 130%);
    aspect-ratio: 16 / 10;
}
.post-card__image.card-media-placeholder { aspect-ratio: 16 / 9; }
.card-media-placeholder__glow {
    position: absolute;
    inset: -20%;
    background:
        radial-gradient(circle at 20% 30%, rgba(255,255,255,.18), transparent 45%),
        radial-gradient(circle at 80% 70%, rgba(55,181,74,.25), transparent 40%);
    pointer-events: none;
}
.card-media-placeholder__icon {
    position: relative;
    z-index: 1;
    color: rgba(255,255,255,.85);
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 1rem;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.2);
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Testimonials ? always visible PHP cards */
.testimonials-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
}
.testimonial-card {
    background: var(--color-bg-card, #fff);
    border: 1px solid var(--color-border, #e5eaf3);
    border-radius: 1rem;
    padding: 1.35rem 1.4rem;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    height: 100%;
}
.testimonial-card__stars {
    color: #F59E0B;
    letter-spacing: 0.12em;
    font-size: 0.95rem;
    line-height: 1;
}
.testimonial-card__stars .is-empty { color: #cbd5e1; }
.testimonial-card__quote {
    margin: 0;
    flex: 1;
}
.testimonial-card__quote p {
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.65;
    color: var(--color-text, #1a2332);
    font-style: normal;
}
.testimonial-card__author {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--color-border, #e5eaf3);
}
.testimonial-card__author strong {
    display: block;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--color-text, #1a2332);
}
.testimonial-card__author span {
    display: block;
    font-size: 0.78rem;
    color: var(--color-text-muted, #64748b);
}
.testimonial-card__avatar {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    background: #e8f1fb;
}
.testimonial-card__avatar--initials {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #1668B2;
    color: #fff;
    font-weight: 800;
    font-size: 1rem;
}
@media (max-width: 900px) {
    .testimonials-grid { grid-template-columns: 1fr; gap: 0.9rem; }
}

/* Kill floating CTA completely */
.floating-cta { display: none !important; }

/* Tech grid denser */
.tech-grid {
    justify-items: stretch;
}
.tech-item {
    min-height: 5.5rem;
}

/* Stats section breathing room */
.stats-section {
    padding-block: clamp(2.5rem, 5vw, 4rem) !important;
}
.stats-section + .section {
    padding-top: clamp(2.5rem, 5vw, 4rem);
}



/* ---------------------------------------------------------------
   Redesign layer ? production UI/UX (2026)
   --------------------------------------------------------------- */

.card--hover:hover,
.card.card--hover:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
}
.card--link { position: relative; }
.card-link-overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    border-radius: inherit;
}
.card--link .service-card__link,
.card--link .btn,
.card--link .post-card__title { position: relative; z-index: 1; pointer-events: none; }
.badge--placeholder { visibility: hidden; min-height: 1.4em; }

/* Mobile menu extras ? NEVER force display:block (that leaked menu on desktop) */
@media (min-width: 1025px) {
  .mobile-nav,
  .mobile-nav-backdrop,
  #mobile-nav {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}
@media (max-width: 1024px) {
  .mobile-nav {
    position: fixed !important;
    top: var(--header-h);
    left: 0; right: 0;
    max-height: calc(100dvh - var(--header-h));
    overflow-y: auto;
    z-index: 999;
  }
  .mobile-nav:not(.mobile-nav--open) {
    display: none !important;
  }
  .mobile-nav.mobile-nav--open {
    display: block !important;
  }
  .mobile-nav-backdrop {
    display: none !important;
  }
  body.is-nav-open .mobile-nav-backdrop {
    display: block !important;
  }
}

/* Page heroes */
.page-hero {
    background: linear-gradient(135deg, #0D47A1 0%, #1668B2 45%, #0A3880 100%);
    color: #fff; padding: clamp(3rem, 8vw, 5rem) 0 clamp(2.5rem, 6vw, 4rem);
}
.page-hero__title { font-family: var(--font-display); color: #fff; }
.page-hero__desc { color: rgba(255,255,255,.75); max-width: 52ch; }
.page-hero--about { background: linear-gradient(135deg, #0A3880 0%, #1668B2 50%, #1565C0 100%); }
.page-hero--careers { background: linear-gradient(145deg, #0F5291 0%, #1668B2 40%, #1B5E20 120%); }
.page-hero--contact { background: linear-gradient(135deg, #0D47A1 0%, #1565C0 60%, #0A3880 100%); }
.page-hero--legal { background: linear-gradient(135deg, #1E293B 0%, #0F172A 100%); }
.page-hero--job { background: linear-gradient(135deg, #0D47A1 0%, #1668B2 100%); }
.page-hero--service .page-hero__content { max-width: 640px; }

.post-hero {
    background: linear-gradient(180deg, var(--color-bg-alt) 0%, var(--color-bg) 100%);
    padding: clamp(2.5rem, 6vw, 4rem) 0 2rem; border-bottom: 1px solid var(--color-border);
}
.post-hero .post-hero__title,
.post-page .post-hero h1 { font-family: var(--font-display); }

/* Filters */
.filter-bar { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.75rem; align-items: center; }
.filter-btn {
    appearance: none; border: 1px solid var(--color-border); background: var(--color-bg);
    color: var(--color-text-sec); padding: 0.5rem 1rem; border-radius: var(--radius-full);
    font-size: var(--text-sm); font-weight: 600; cursor: pointer; min-height: 40px;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.filter-btn:hover, .filter-btn.is-active, .filter-btn[aria-pressed="true"] {
    background: var(--color-primary); border-color: var(--color-primary); color: #fff;
}
.filter-empty { text-align: center; padding: 2.5rem 1rem; color: var(--color-muted); }

/* Forms */
.form-progress {
    display: flex; gap: 0.5rem; margin-bottom: 1.5rem; align-items: center;
}
.form-progress__step {
    flex: 1; min-height: 4px; height: 4px; display: block;
    border-radius: var(--radius-full); background: var(--color-border);
    border: 0; font-size: 0; color: transparent;
}
.form-progress__step.is-active,
.form-progress__step.is-complete {
    background: var(--color-primary);
}
.form-input[type="file"],
.form-input--file {
    padding: 0.65rem 0.85rem; border: 1px dashed var(--color-border);
    background: var(--color-bg-alt); cursor: pointer;
}
.form-input--error { border-color: var(--color-danger) !important; box-shadow: 0 0 0 3px rgba(239,68,68,.15); }
.footer-newsletter__error { color: #fecaca; font-size: var(--text-sm); margin-top: 0.5rem; }

/* Tech */
.tech-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr));
    gap: 0.85rem;
    margin-bottom: 0 !important;
}
.tech-item {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 0.5rem; padding: 1rem 0.75rem; min-height: 5.5rem;
    background: var(--color-bg); border: 1px solid var(--color-border);
    border-radius: var(--radius); text-align: center;
}
.tech-item img { width: 40px; height: 40px; object-fit: contain; }
.tech-item__name { font-size: 0.72rem; color: var(--color-muted); line-height: 1.3; }

/* Testimonials */
.testimonials-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1.25rem;
}
@media (max-width: 900px) {
    .testimonials-grid { grid-template-columns: 1fr; }
}
.testimonial-card__quote { quotes: none; }
.testimonial-card__quote p { font-style: normal; }
.testimonial-card__stars .is-empty { color: #94a3b8; opacity: .85; }
.testimonial-card__author span { word-break: break-word; }

/* Sticky sidebars */
.case-study-sidebar .sidebar-card,
.job-sidebar .sidebar-card,
.post-sidebar .sidebar-card,
.contact-info { position: sticky; top: calc(var(--header-h) + 1rem); }

/* FAQ */
.faq-answer { max-height: 0; overflow: hidden; transition: max-height .35s ease; }
.faq-item.is-open .faq-answer { max-height: 2000px; }
.faq-section .section-title { max-width: none; }

/* CTA */
.cta-banner__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }
.cta-banner .btn--outline,
.cta-banner__secondary {
    color: #fff; border-color: rgba(255,255,255,.5); background: rgba(255,255,255,.08);
}
.cta-banner .btn--outline:hover { background: rgba(255,255,255,.18); color: #fff; }
@media (max-width: 700px) {
    .cta-banner__inner { align-items: center !important; text-align: center; }
    .cta-banner__actions { justify-content: center; width: 100%; }
    .hero__actions .btn { max-width: 100%; white-space: normal; text-align: center; }
    .hero__stat + .hero__stat { border-left: none; }
}

/* Footer denser */
.footer-logo__img { height: 48px; width: auto; max-width: 10rem; object-fit: contain; }
.footer-social__link { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.footer-legal-nav__link { opacity: .7; }
.footer-legal-nav__link:hover { opacity: 1; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .hero__scroll-dot, .hero__badge-dot { animation: none !important; }
    .clients__track { animation: none !important; flex-wrap: wrap; justify-content: center; }
}

/* Empty / utility */
.empty-state { text-align: center; padding: 3rem 1.25rem; color: var(--color-muted); }
.error-page__links { display: flex; flex-wrap: wrap; gap: 0.75rem; justify-content: center; margin-top: 1.5rem; }
.resource-card__thumbnail { aspect-ratio: 16/10; object-fit: cover; width: 100%; border-radius: var(--radius) var(--radius) 0 0; }
.pagination__list { gap: 0.35rem; }
.pagination__ellipsis { padding: 0 0.35rem; color: var(--color-muted); }

/* Kill dead floating CTA */
.floating-cta, .site-main { /* keep padding normal */ }
.floating-cta { display: none !important; }

.error-page__suggestions {
    list-style: none; display: flex; flex-wrap: wrap; gap: 0.75rem 1.25rem;
    justify-content: center; margin-top: 0.75rem; padding: 0;
}
.error-page__suggestions a { font-weight: 600; color: var(--color-primary); }
.hidden[hidden] { display: none !important; }
.job-hero__meta { display: flex; flex-wrap: wrap; gap: 0.75rem 1.25rem; color: rgba(255,255,255,.8); font-size: var(--text-sm); margin-top: 0.75rem; }
.section-header { margin-bottom: clamp(1.5rem, 4vw, 2.75rem); }
.section-title { font-family: var(--font-display); }
.section-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-primary);
    background: rgba(22, 104, 178, 0.1);
    padding: 0.45rem 0.95rem;
    line-height: 1.2;
    border-radius: var(--radius-full);
    margin-bottom: 0.85rem;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
}

/* Body lock when mobile nav open */
body.is-nav-open { overflow: hidden; }

/* Responsive craft pass */
@media (max-width: 1280px) {
  .site-header__inner { gap: 1rem; }
}
@media (max-width: 1024px) {
  .site-nav { display: none !important; }
  .site-header__cta { display: none !important; }
  .mobile-menu-toggle { display: inline-flex !important; }
  .hero { min-height: min(100svh, 760px); }
  .hero__title { font-size: clamp(2rem, 7vw, 3.25rem); }
  .section-header { margin-bottom: 1.75rem; }
}
@media (max-width: 768px) {
  .hero__container { padding-top: 3rem; padding-bottom: 3rem; }
  .hero__actions { width: 100%; }
  .hero__actions .btn { width: 100%; justify-content: center; }
  .hero__stats { gap: 1rem 0; }
  .hero__stat { flex: 1 1 40%; padding: 0 .75rem; border-left: none !important; }
  .grid--3, .grid--4 { grid-template-columns: 1fr !important; }
  .testimonials-grid { grid-template-columns: 1fr; }
  .page-hero { padding: 2.75rem 0 2.25rem; }
  .page-hero__title { font-size: clamp(1.75rem, 8vw, 2.4rem); }
}
@media (max-width: 480px) {
  .logo { height: 40px; max-width: 200px; }
  .hero__stat-value { font-size: 1.5rem; }
  .btn--lg { padding: .8rem 1.25rem; font-size: 1rem; }
}

/* --- CRITICAL FIX: hero must never collapse or go white-on-white --- */
.hero {
  display: flex !important;
  align-items: center !important;
  position: relative !important;
  min-height: min(100vh, 820px) !important;
  height: auto !important;
  overflow: hidden !important;
  background: linear-gradient(135deg, #0D47A1 0%, #1668B2 40%, #1565C0 70%, #0A3880 100%) !important;
  color: #fff !important;
}
.hero .hero__bg {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  display: block !important;
  background: linear-gradient(135deg, #0D47A1 0%, #1668B2 40%, #1565C0 70%, #0A3880 100%) !important;
}
.hero .hero__container,
.hero .hero__content {
  position: relative !important;
  z-index: 2 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
  width: 100% !important;
  max-width: 860px !important;
  margin-inline: auto !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
.hero .hero__container { max-width: var(--container-max, 1280px) !important; }
.hero .hero__title,
.hero h1 {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  opacity: 1 !important;
  visibility: visible !important;
  display: block !important;
  font-family: var(--font-display), "Sora", sans-serif !important;
  font-size: clamp(2.25rem, 5.5vw + .5rem, 4.25rem) !important;
  font-weight: 800 !important;
  line-height: 1.08 !important;
  margin: 0 0 1.1rem !important;
}
.hero .hero__description,
.hero .hero__badge,
.hero .hero__stat-value,
.hero .hero__stat-label {
  opacity: 1 !important;
  visibility: visible !important;
}
.hero .hero__description { color: rgba(255,255,255,.78) !important; }
.hero .hero__badge {
  color: rgba(255,255,255,.92) !important;
  background: rgba(255,255,255,.12) !important;
  border: 1px solid rgba(255,255,255,.22) !important;
}
.hero .hero__stat-value { color: #fff !important; }
.hero .hero__stat-label { color: rgba(255,255,255,.55) !important; }
.hero .btn--primary {
  background: #fff !important;
  color: #1668B2 !important;
  border-color: #fff !important;
}
.hero .btn--outline {
  color: #fff !important;
  border-color: rgba(255,255,255,.55) !important;
  background: rgba(255,255,255,.08) !important;
}

/* Dark stats band: title always white, grid centered */
.section--dark .section-title,
.stats-section .section-title {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
.section--dark .section-label,
.stats-section .section-label {
  color: rgba(255,255,255,.75) !important;
  background: transparent !important;
}
.stats-section .stats-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 1.75rem 1.5rem !important;
  justify-items: center !important;
  text-align: center !important;
  max-width: 960px !important;
  margin-inline: auto !important;
}
@media (max-width: 900px) {
  .stats-section .stats-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 520px) {
  .stats-section .stats-grid { grid-template-columns: 1fr !important; }
}
.stats-section .stat-item {
  width: 100%;
  text-align: center;
}

/* --- Tech stack  logos + hover polish --- */
.tech-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(7.75rem, 1fr)) !important;
  gap: 0.85rem !important;
  margin: 0 !important;
}
.tech-item {
  --tech-color: #1668B2;
  position: relative;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.55rem !important;
  min-height: 6.25rem !important;
  padding: 1.1rem 0.75rem 0.95rem !important;
  background: var(--color-bg) !important;
  border: 1px solid var(--color-border) !important;
  border-radius: 14px !important;
  text-align: center !important;
  cursor: default;
  overflow: hidden;
  transition:
    transform .22s cubic-bezier(.34,1.2,.64,1),
    border-color .2s ease,
    box-shadow .22s ease,
    background .2s ease !important;
}
.tech-item::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(160deg, color-mix(in srgb, var(--tech-color) 14%, transparent), transparent 70%);
  opacity: 0;
  transition: opacity .22s ease;
  pointer-events: none;
}
.tech-item__logo {
  position: relative;
  z-index: 1;
  width: 2.5rem;
  height: 2.5rem;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: color-mix(in srgb, var(--tech-color) 10%, #fff);
  transition: transform .22s ease, background .2s ease, box-shadow .22s ease;
}
.tech-item__logo img {
  width: 1.55rem !important;
  height: 1.55rem !important;
  object-fit: contain !important;
  transition: transform .22s ease, filter .22s ease;
}
/* Colorize monochrome Simple Icons via CSS */
.tech-item__logo img {
  filter: none;
}
.tech-item__name {
  position: relative;
  z-index: 1;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  letter-spacing: -.01em;
  color: var(--color-text-sec) !important;
  line-height: 1.25 !important;
  transition: color .2s ease;
}
.tech-item:hover,
.tech-item:focus-within {
  transform: translateY(-4px) !important;
  border-color: color-mix(in srgb, var(--tech-color) 55%, var(--color-border)) !important;
  box-shadow: 0 14px 28px color-mix(in srgb, var(--tech-color) 18%, transparent) !important;
  background: #fff !important;
}
.tech-item:hover::before,
.tech-item:focus-within::before { opacity: 1; }
.tech-item:hover .tech-item__logo,
.tech-item:focus-within .tech-item__logo {
  transform: scale(1.06);
  background: color-mix(in srgb, var(--tech-color) 18%, #fff);
  box-shadow: 0 8px 18px color-mix(in srgb, var(--tech-color) 22%, transparent);
}
.tech-item:hover .tech-item__logo img,
.tech-item:focus-within .tech-item__logo img {
  transform: scale(1.08);
}
.tech-item:hover .tech-item__name,
.tech-item:focus-within .tech-item__name {
  color: var(--tech-color) !important;
}
[data-theme="dark"] .tech-item {
  background: var(--color-bg-card, #1E293B) !important;
}
[data-theme="dark"] .tech-item:hover,
[data-theme="dark"] .tech-item:focus-within {
  background: #1E293B !important;
}
[data-theme="dark"] .tech-item__logo {
  background: color-mix(in srgb, var(--tech-color) 22%, #0F172A);
}
@media (max-width: 640px) {
  .tech-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 0.65rem !important; }
  .tech-item { min-height: 5.5rem !important; padding: 0.85rem 0.4rem !important; }
  .tech-item__name { font-size: 0.68rem !important; }
}

/* Brand-color Simple Icons via mask */
.tech-item__logo {
  background-color: color-mix(in srgb, var(--tech-color) 12%, #fff) !important;
}
.tech-item__logo::after {
  content: "";
  display: block;
  width: 1.55rem;
  height: 1.55rem;
  background-color: var(--tech-color);
  -webkit-mask: var(--tech-logo) center / contain no-repeat;
  mask: var(--tech-logo) center / contain no-repeat;
}
.tech-item:hover .tech-item__logo::after,
.tech-item:focus-within .tech-item__logo::after {
  transform: scale(1.08);
}
.tech-item__logo img { display: none !important; }
[data-theme="dark"] .tech-item__logo {
  background-color: color-mix(in srgb, var(--tech-color) 22%, #0F172A) !important;
}
/* Next.js black logo ? lighten on dark */
[data-theme="dark"] .tech-item[style*="#000000"] {
  --tech-color: #F8FAFC;
}

/* --- FAQ  expert accordion craft --- */
.faq-section {
  background:
    radial-gradient(ellipse 80% 50% at 50% 0%, rgba(22,104,178,.06), transparent 60%),
    var(--color-bg);
}
.faq-section .section-desc {
  max-width: 42ch;
}
.faq-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-top: 0.5rem;
}
.faq-item {
  margin: 0 !important;
  border: 1px solid var(--color-border) !important;
  border-radius: 16px !important;
  background: #fff !important;
  overflow: hidden !important;
  box-shadow: 0 1px 2px rgba(15,23,42,.03);
  transition:
    border-color .2s ease,
    box-shadow .25s ease,
    transform .2s ease !important;
}
.faq-item:hover {
  border-color: rgba(22,104,178,.28) !important;
  box-shadow: 0 10px 28px rgba(22,104,178,.08) !important;
  transform: translateY(-1px);
}
.faq-item.is-open {
  border-color: rgba(22,104,178,.45) !important;
  box-shadow: 0 16px 36px rgba(22,104,178,.12) !important;
  transform: none;
}
.faq-question {
  width: 100%;
  display: grid !important;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 0.85rem;
  padding: 1.15rem 1.2rem !important;
  text-align: left;
  background: transparent !important;
  border: 0;
  cursor: pointer;
  font-family: var(--font-display), inherit;
  font-size: 1rem !important;
  font-weight: 650 !important;
  letter-spacing: -.015em;
  color: var(--color-text) !important;
  transition: color .2s ease, background .2s ease !important;
}
.faq-question:hover {
  background: rgba(22,104,178,.035) !important;
  color: var(--color-primary) !important;
}
.faq-item.is-open .faq-question {
  color: var(--color-primary) !important;
  background: linear-gradient(180deg, rgba(22,104,178,.06), transparent) !important;
}
.faq-question__index {
  font-family: var(--font-display), sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--color-primary);
  background: rgba(22,104,178,.1);
  border-radius: 999px;
  min-width: 2.1rem;
  height: 2.1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}
.faq-item.is-open .faq-question__index,
.faq-question:hover .faq-question__index {
  background: var(--color-primary);
  color: #fff;
  transform: scale(1.04);
}
.faq-question__text {
  line-height: 1.35;
}
.faq-chevron-wrap {
  width: 2.15rem;
  height: 2.15rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-border);
  color: var(--color-primary);
  background: #fff;
  transition: background .2s ease, border-color .2s ease, transform .25s ease, color .2s ease;
}
.faq-item.is-open .faq-chevron-wrap {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
  transform: rotate(180deg);
}
.faq-item.is-open .faq-chevron {
  transform: none !important; /* rotation on wrap */
}
.faq-question:hover .faq-chevron-wrap {
  border-color: rgba(22,104,178,.4);
  background: rgba(22,104,178,.06);
}
.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height .4s cubic-bezier(.4,0,.2,1);
}
.faq-item.is-open .faq-answer {
  max-height: 48rem;
}
.faq-answer__inner {
  padding: 0 1.2rem 1.25rem 4.15rem !important;
  color: var(--color-text-sec) !important;
  font-size: 0.95rem !important;
  line-height: 1.75 !important;
  border-top: 0;
}
@media (max-width: 640px) {
  .faq-question {
    grid-template-columns: auto 1fr auto;
    gap: 0.65rem;
    padding: 1rem 0.9rem !important;
    font-size: 0.95rem !important;
  }
  .faq-answer__inner {
    padding: 0 0.9rem 1.1rem 0.9rem !important;
  }
  .faq-question__index { min-width: 1.85rem; height: 1.85rem; font-size: 0.7rem; }
}
[data-theme="dark"] .faq-item {
  background: var(--color-bg-card, #1E293B) !important;
}
[data-theme="dark"] .faq-chevron-wrap { background: transparent; }

/* --- CTA + Newsletter + Footer  expert polish --- */
.cta-banner {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(ellipse 70% 80% at 85% 50%, rgba(55,181,74,.18), transparent 55%),
    linear-gradient(120deg, #0A3880 0%, #1668B2 48%, #0D47A1 100%) !important;
  padding-block: clamp(2.75rem, 6vw, 4.25rem) !important;
}
.cta-banner::after {
  content: "";
  position: absolute;
  inset: auto -10% -40% auto;
  width: 28rem; height: 28rem;
  border-radius: 50%;
  background: rgba(255,255,255,.06);
  pointer-events: none;
}
.cta-banner__inner {
  position: relative;
  z-index: 1;
  gap: 1.5rem 2rem !important;
  align-items: center !important;
}
.cta-banner__content h2 {
  letter-spacing: -.03em;
  margin-bottom: 0.55rem !important;
}
.cta-banner__content p {
  opacity: .88;
  max-width: 38ch;
}
.cta-banner .btn {
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease !important;
}
.cta-banner .btn--primary {
  background: #fff !important;
  color: #0F5291 !important;
  border-color: #fff !important;
  box-shadow: 0 10px 28px rgba(0,0,0,.18);
}
.cta-banner .btn--primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 32px rgba(0,0,0,.24);
  background: #F8FAFC !important;
}
.cta-banner .btn--outline,
.cta-banner__secondary {
  color: #fff !important;
  border-color: rgba(255,255,255,.55) !important;
  background: rgba(255,255,255,.08) !important;
}
.cta-banner .btn--outline:hover,
.cta-banner__secondary:hover {
  background: rgba(255,255,255,.18) !important;
  border-color: #fff !important;
  transform: translateY(-2px);
}

/* Newsletter: distinct from CTA (darker inset strip, not twin blue) */
.footer-newsletter {
  background:
    linear-gradient(180deg, #0B1220 0%, #0F172A 100%) !important;
  border-top: 1px solid rgba(255,255,255,.06);
  padding-block: clamp(2.25rem, 5vw, 3.25rem) !important;
}
.footer-newsletter__inner {
  display: grid !important;
  grid-template-columns: 1.05fr 0.95fr !important;
  gap: 1.75rem 2.5rem !important;
  align-items: center !important;
  padding: 1.5rem 1.75rem !important;
  border: 1px solid rgba(255,255,255,.1) !important;
  border-radius: 20px !important;
  background:
    radial-gradient(ellipse 60% 80% at 100% 0%, rgba(22,104,178,.25), transparent 55%),
    rgba(255,255,255,.03) !important;
}
.footer-newsletter__eyebrow {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #37B54A;
  margin-bottom: 0.55rem;
}
.footer-newsletter__title {
  font-family: var(--font-display), sans-serif !important;
  font-size: clamp(1.35rem, 2.4vw, 1.85rem) !important;
  font-weight: 750 !important;
  letter-spacing: -.02em;
  color: #fff !important;
  margin: 0 0 0.45rem !important;
}
.footer-newsletter__subtitle {
  color: rgba(255,255,255,.68) !important;
  font-size: 0.95rem !important;
  line-height: 1.6 !important;
  margin: 0 !important;
  max-width: 40ch;
}
.footer-newsletter__input {
  border: 1px solid rgba(255,255,255,.18) !important;
  background: rgba(255,255,255,.07) !important;
  color: #fff !important;
  border-radius: 999px !important;
  transition: border-color .2s ease, background .2s ease, box-shadow .2s ease !important;
}
.footer-newsletter__input:hover {
  border-color: rgba(255,255,255,.32) !important;
}
.footer-newsletter__input:focus {
  border-color: #37B54A !important;
  background: rgba(255,255,255,.12) !important;
  box-shadow: 0 0 0 3px rgba(55,181,74,.25) !important;
}
.footer-newsletter__btn {
  border-radius: 999px !important;
  box-shadow: 0 8px 20px rgba(55,181,74,.35);
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease !important;
}
.footer-newsletter__btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 26px rgba(55,181,74,.45);
  filter: brightness(1.05);
}
.footer-newsletter__legal,
.footer-newsletter__legal a {
  color: rgba(255,255,255,.62) !important;
}
.footer-newsletter__legal a:hover {
  color: #fff !important;
}

/* Footer main */
.site-footer {
  background: #0B1220 !important;
  color: rgba(255,255,255,.72);
}
.footer-main {
  padding-block: clamp(2.75rem, 5.5vw, 4.25rem) !important;
}
.footer-main__grid {
  gap: 2rem 2.5rem !important;
}
.footer-logo__img {
  height: 44px !important;
  width: auto !important;
  max-width: 11rem !important;
  filter: brightness(0) invert(1);
  opacity: .95;
}
.footer-tagline {
  font-size: 0.72rem !important;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.55) !important;
  margin: 0.85rem 0 0.65rem !important;
}
.footer-description {
  color: rgba(255,255,255,.62) !important;
  font-size: 0.9rem !important;
  line-height: 1.65 !important;
  max-width: 28ch;
}
.footer-col__title {
  font-size: 0.75rem !important;
  letter-spacing: .1em !important;
  margin-bottom: 1rem !important;
  color: #fff !important;
}
.footer-col__link {
  color: rgba(255,255,255,.62) !important;
  position: relative;
  display: inline-block;
  transition: color .18s ease, transform .18s ease !important;
}
.footer-col__link:hover {
  color: #fff !important;
  transform: translateX(3px);
}
.footer-social__link {
  width: 42px !important;
  height: 42px !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  background: rgba(255,255,255,.04) !important;
  color: rgba(255,255,255,.8) !important;
  border-radius: 999px !important;
  transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease !important;
}
.footer-social__link:hover {
  background: #1668B2 !important;
  border-color: #1668B2 !important;
  color: #fff !important;
  transform: translateY(-2px);
}
.footer-contact__link,
.footer-contact__meta {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  color: rgba(255,255,255,.7);
  font-size: 0.875rem;
  line-height: 1.45;
  margin: 0 0 0.75rem;
  text-decoration: none;
  transition: color .18s ease;
}
.footer-contact__link svg,
.footer-contact__meta svg {
  flex-shrink: 0;
  margin-top: 0.15rem;
  color: #37B54A;
}
.footer-contact__link:hover { color: #fff; }
.footer-contact__meta--soft {
  color: rgba(255,255,255,.48);
  font-size: 0.8rem;
  margin-bottom: 1rem;
}
.footer-emails {
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.footer-emails li {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  min-width: 0;
}
.footer-emails__label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.45);
}
.footer-emails a {
  color: rgba(255,255,255,.82);
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
  word-break: break-all;
  transition: color .18s ease;
}
.footer-emails a:hover {
  color: #fff;
}
.footer-col__cta {
  box-shadow: 0 8px 20px rgba(22,104,178,.35);
  transition: transform .2s ease, box-shadow .2s ease !important;
}
.footer-col__cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 26px rgba(22,104,178,.45);
}
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,.08) !important;
  background: rgba(0,0,0,.2);
}
.footer-bottom__copy { color: rgba(255,255,255,.45) !important; }
.footer-legal-nav__link {
  color: rgba(255,255,255,.55) !important;
  opacity: 1 !important;
  transition: color .18s ease !important;
}
.footer-legal-nav__link:hover { color: #fff !important; }

@media (max-width: 900px) {
  .footer-newsletter__inner {
    grid-template-columns: 1fr !important;
    padding: 1.25rem !important;
  }
}

/* --- Section header centering  fix label/title/desc axis --- */
.section-header {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
  width: 100% !important;
}
.section-header .section-label {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-bottom: 0.85rem !important;
  /* keep sitewide pill padding  do not collapse */
  padding: 0.5rem 1rem !important;
}
.section-header .section-title {
  display: block !important;
  width: 100% !important;
  max-width: 22ch !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-bottom: 0.75rem !important;
  text-align: center !important;
  font-family: var(--font-display), sans-serif !important;
}
.section-header .section-desc {
  display: block !important;
  width: 100% !important;
  max-width: 46ch !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-bottom: 0 !important;
  text-align: center !important;
  font-size: 0.98rem !important;
  color: var(--color-muted) !important;
}

/* Stats: 6 items ? balanced 32 (not 4+2 left stub) */
.stats-section .stats-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 1.75rem 1.5rem !important;
  max-width: 960px !important;
}
@media (max-width: 900px) {
  .stats-section .stats-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 520px) {
  .stats-section .stats-grid { grid-template-columns: 1fr !important; }
}

/* Tech / blog / work headers inherit same center stack */
.tech-section .section-header,
.blog-section .section-header,
.case-studies-section .section-header,
.testimonials-section .section-header,
.services-section .section-header,
.faq-section .section-header {
  align-items: center !important;
}

/* --- Section labels (sitewide pill)  proper breathing room --- */
.section-label {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.35rem;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.11em !important;
  text-transform: uppercase !important;
  line-height: 1.25 !important;
  color: var(--color-primary) !important;
  background: rgba(22, 104, 178, 0.1) !important;
  border: 1px solid rgba(22, 104, 178, 0.12);
  padding: 0.5rem 1rem !important;
  border-radius: 999px !important;
  margin-bottom: 0.9rem !important;
  width: fit-content;
  max-width: 100%;
  box-sizing: border-box;
}
.section--dark .section-label,
.stats-section .section-label,
.cta-banner .section-label {
  color: rgba(255, 255, 255, 0.85) !important;
  background: rgba(255, 255, 255, 0.12) !important;
  border-color: rgba(255, 255, 255, 0.18) !important;
}
[data-theme="dark"] .section-label {
  background: rgba(96, 165, 250, 0.14) !important;
  border-color: rgba(96, 165, 250, 0.2);
  color: #93C5FD !important;
}

/* Page hero breadcrumbs  readable on blue */
.page-hero .breadcrumbs,
.page-hero .breadcrumbs a,
.page-hero .breadcrumbs__item,
.page-hero .breadcrumbs__item a {
  color: rgba(255, 255, 255, 0.78) !important;
}
.page-hero .breadcrumbs a:hover,
.page-hero .breadcrumbs__item a:hover {
  color: #fff !important;
}
.page-hero .breadcrumbs__current,
.page-hero .breadcrumbs__item [aria-current],
.page-hero .breadcrumbs__sep {
  color: rgba(255, 255, 255, 0.95) !important;
}
.page-hero .breadcrumbs__item + .breadcrumbs__item::before {
  color: rgba(255, 255, 255, 0.45);
}

/* --- About: mission / vision panels --- */
.mission-section {
  padding-block: clamp(3rem, 7vw, 5rem);
}
.mission-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.25rem, 3vw, 2rem);
  align-items: stretch;
}
.mission-panel {
  background: linear-gradient(165deg, #F8FBFF 0%, #FFFFFF 55%, #F1F7FC 100%);
  border: 1px solid rgba(22, 104, 178, 0.12);
  border-radius: var(--radius-xl);
  padding: clamp(1.5rem, 3.5vw, 2.35rem);
  display: flex;
  flex-direction: column;
  min-height: 100%;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.04);
}
.mission-panel__title {
  font-family: var(--font-display), sans-serif;
  font-size: clamp(1.35rem, 2.2vw, 1.85rem) !important;
  font-weight: 750;
  letter-spacing: -0.025em;
  line-height: 1.25;
  color: var(--color-text);
  margin: 0 0 0.85rem;
  max-width: 18ch;
}
.mission-panel__text {
  margin: 0;
  font-size: 1rem;
  line-height: 1.75;
  color: var(--color-text-muted);
  max-width: 42ch;
}
[data-theme="dark"] .mission-panel {
  background: linear-gradient(165deg, #1E293B 0%, #0F172A 100%);
  border-color: rgba(148, 163, 184, 0.18);
  box-shadow: none;
}

/* About: team / values craft */
.team-section .grid--4,
.values-section .grid--4 {
  gap: 1.25rem;
}
.team-card {
  padding: 1.75rem 1.35rem !important;
  border-radius: var(--radius-lg);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.team-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 36px rgba(15, 23, 42, 0.08);
  border-color: rgba(22, 104, 178, 0.22);
}
.team-card__initials,
.team-card__avatar img.img-circle {
  width: 88px !important;
  height: 88px !important;
  object-fit: cover;
}
.team-card__name {
  font-family: var(--font-display), sans-serif;
  margin-top: 0.25rem;
}
.value-card {
  padding: 1.6rem 1.35rem !important;
  height: 100%;
  border-radius: var(--radius-lg);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.value-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 36px rgba(15, 23, 42, 0.08);
  border-color: rgba(22, 104, 178, 0.22);
}
.value-card__icon {
  width: 2.75rem !important;
  height: 2.75rem !important;
  border-radius: 12px !important;
  margin-bottom: 1rem !important;
}
.testimonials-section .testimonial-card {
  height: 100%;
}
.about-page .cta-banner__actions,
.cta-banner .cta-banner__actions {
  flex-wrap: wrap;
  gap: 0.75rem;
}

@media (max-width: 900px) {
  .mission-grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .mission-panel__title {
    max-width: none;
    font-size: clamp(1.3rem, 5vw, 1.65rem) !important;
  }
}
@media (max-width: 768px) {
  .team-section .grid--4,
  .values-section .grid--4 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .mission-panel {
    padding: 1.35rem 1.2rem;
  }
  .section-label {
    padding: 0.45rem 0.9rem !important;
    font-size: 0.68rem !important;
  }
}
@media (max-width: 520px) {
  .team-section .grid--4,
  .values-section .grid--4 {
    grid-template-columns: 1fr !important;
  }
}

/* ============================================================
   HEADER / NAV — world-class pass (desktop + dropdown)
   ============================================================ */
.site-header {
  z-index: 1100 !important;
  background: rgba(255, 255, 255, 0.94) !important;
  backdrop-filter: blur(16px) saturate(1.2) !important;
  -webkit-backdrop-filter: blur(16px) saturate(1.2) !important;
}
.site-header--scrolled,
.site-header.is-scrolled {
  border-bottom-color: rgba(226, 232, 240, 0.95) !important;
  box-shadow: 0 10px 36px rgba(15, 23, 42, 0.07) !important;
}
[data-theme="dark"] .site-header {
  background: rgba(15, 23, 42, 0.92) !important;
}

/* True 3-zone balance: logo | centered nav | actions */
.site-header__inner.container,
.site-header__inner {
  display: grid !important;
  grid-template-columns: minmax(9rem, 1fr) auto minmax(9rem, 1fr) !important;
  align-items: center !important;
  gap: 1rem 1.25rem !important;
  width: 100% !important;
}
.site-header__logo {
  justify-self: start !important;
  grid-column: 1;
}
.site-nav {
  grid-column: 2;
  flex: unset !important;
  display: flex !important;
  justify-content: center !important;
  min-width: 0 !important;
  width: auto !important;
}
.site-header__actions {
  grid-column: 3;
  justify-self: end !important;
  margin-left: 0 !important;
  gap: 0.5rem !important;
}

.site-nav__list {
  gap: 0.1rem !important;
}
.site-nav__link {
  padding: 0.6rem 0.8rem !important;
  font-size: 0.875rem !important;
  font-weight: 550 !important;
  color: var(--color-text) !important;
  letter-spacing: -0.01em;
}
.site-nav__link::after {
  left: 0.8rem !important;
  right: 0.8rem !important;
  bottom: 0.15rem !important;
  height: 2px !important;
}
.site-nav__link--active,
.site-nav__link.is-active {
  color: var(--color-primary) !important;
  font-weight: 650 !important;
}
.site-nav__chevron {
  width: 11px;
  height: 11px;
  margin-left: 1px;
  opacity: 0.5 !important;
}

/* Services dropdown — elevated panel, not flat sticker */
.site-nav__item--dropdown {
  position: relative;
}
.site-nav__dropdown {
  position: absolute !important;
  top: calc(100% + 0.55rem) !important;
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) translateY(8px) !important;
  min-width: 17.5rem !important;
  max-width: min(20rem, calc(100vw - 2rem)) !important;
  padding: 0.5rem !important;
  background: #fff !important;
  border: 1px solid rgba(15, 23, 42, 0.08) !important;
  border-radius: 16px !important;
  box-shadow:
    0 4px 6px rgba(15, 23, 42, 0.04),
    0 22px 48px rgba(15, 23, 42, 0.14) !important;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  z-index: 1200 !important;
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s !important;
}
/* Invisible hover bridge — no flicker gap */
.site-nav__dropdown::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -0.7rem;
  height: 0.7rem;
}
.site-nav__item:hover .site-nav__dropdown,
.site-nav__item:focus-within .site-nav__dropdown,
.site-nav__dropdown.is-open {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translateX(-50%) translateY(0) !important;
}
.site-nav__dropdown-head {
  border-bottom: 1px solid rgba(226, 232, 240, 0.95) !important;
  margin: 0 0 0.3rem !important;
  padding: 0 0 0.3rem !important;
}
.site-nav__dropdown-link {
  display: flex !important;
  align-items: center !important;
  gap: 0.65rem;
  padding: 0.72rem 0.9rem !important;
  font-size: 0.875rem !important;
  font-weight: 520 !important;
  color: var(--color-text) !important;
  border-radius: 11px !important;
  line-height: 1.3 !important;
  transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease !important;
}
.site-nav__dropdown-link:hover,
.site-nav__dropdown-link:focus-visible {
  background: rgba(22, 104, 178, 0.08) !important;
  color: var(--color-primary) !important;
  outline: none;
}
.site-nav__dropdown-link--all {
  font-weight: 700 !important;
  color: var(--color-primary) !important;
}
.site-nav__dropdown-link--all::after {
  content: "\2192";
  margin-left: auto;
  opacity: 0.55;
  font-weight: 600;
}

.site-header__cta {
  padding: 0.62rem 1.35rem !important;
  font-size: 0.8125rem !important;
  font-weight: 650 !important;
  letter-spacing: 0.01em !important;
  text-transform: none !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg, var(--color-primary) 0%, #0f5291 100%) !important;
  box-shadow: 0 8px 22px rgba(22, 104, 178, 0.32) !important;
  transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease !important;
}
.site-header__cta:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 12px 28px rgba(22, 104, 178, 0.4) !important;
  filter: brightness(1.05);
}
.theme-toggle {
  width: 40px !important;
  height: 40px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(226, 232, 240, 0.95) !important;
  background: #fff !important;
}
.theme-toggle:hover {
  border-color: rgba(22, 104, 178, 0.25) !important;
  background: rgba(22, 104, 178, 0.05) !important;
  color: var(--color-primary) !important;
}
[data-theme="dark"] .theme-toggle {
  background: rgba(30, 41, 59, 0.9) !important;
  border-color: rgba(51, 65, 85, 0.9) !important;
}
[data-theme="dark"] .site-nav__dropdown {
  background: #1E293B !important;
  border-color: rgba(51, 65, 85, 0.95) !important;
  box-shadow: 0 22px 48px rgba(0, 0, 0, 0.45) !important;
}
[data-theme="dark"] .site-nav__dropdown-head {
  border-bottom-color: rgba(51, 65, 85, 0.95) !important;
}
[data-theme="dark"] .site-nav__dropdown-link {
  color: #E2E8F0 !important;
}
[data-theme="dark"] .site-nav__dropdown-link:hover {
  background: rgba(96, 165, 250, 0.12) !important;
  color: #93C5FD !important;
}

@media (max-width: 1180px) {
  .site-nav__link {
    padding: 0.55rem 0.58rem !important;
    font-size: 0.8125rem !important;
  }
  .site-nav__link::after {
    left: 0.58rem !important;
    right: 0.58rem !important;
  }
}
@media (max-width: 1024px) {
  .site-header__inner.container,
  .site-header__inner {
    display: flex !important;
    grid-template-columns: none !important;
    justify-content: space-between !important;
  }
  .site-nav { display: none !important; }
  .site-header__cta { display: none !important; }
  .site-header__actions {
    margin-left: auto !important;
  }
}

/* Labels — more air (screenshot still looked choked) */
.section-label {
  padding: 0.55rem 1.2rem !important;
  letter-spacing: 0.1em !important;
  line-height: 1.3 !important;
}

/* ============================================================
   SERVICE DETAIL PAGE â€” expertise layout
   ============================================================ */
.page-hero--service.svc-hero {
  background:
    radial-gradient(ellipse 70% 80% at 85% 20%, rgba(55, 181, 74, 0.18), transparent 55%),
    linear-gradient(135deg, #0A3880 0%, #1668B2 48%, #0D47A1 100%) !important;
  padding: clamp(3.25rem, 7vw, 5.25rem) 0 clamp(2.75rem, 6vw, 4.25rem) !important;
}
.svc-hero .container,
.svc-hero__grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1.35fr) minmax(16rem, 0.85fr) !important;
  gap: clamp(1.5rem, 4vw, 3rem) !important;
  align-items: center !important;
}
.svc-hero__content .section-label {
  color: #fff !important;
  background: rgba(255, 255, 255, 0.14) !important;
  border-color: rgba(255, 255, 255, 0.22) !important;
}
.svc-hero__content .page-hero__title { max-width: 14ch; margin-top: 0.35rem; }
.svc-hero__content .page-hero__desc {
  max-width: 42ch;
  color: rgba(255, 255, 255, 0.82) !important;
}
.svc-hero__content .btn--ghost {
  color: #fff !important;
  border-color: rgba(255, 255, 255, 0.45) !important;
}
.svc-hero__content .btn--ghost:hover { background: rgba(255, 255, 255, 0.1) !important; }
.svc-hero__trust {
  list-style: none; display: flex; flex-wrap: wrap; gap: 0.55rem 1.15rem;
  margin: 1.5rem 0 0; padding: 0; color: rgba(255, 255, 255, 0.78);
  font-size: 0.82rem; font-weight: 550;
}
.svc-hero__trust li { display: inline-flex; align-items: center; gap: 0.4rem; }
.svc-hero__trust li::before {
  content: ""; width: 6px; height: 6px; border-radius: 50%; background: #37B54A;
  box-shadow: 0 0 0 3px rgba(55, 181, 74, 0.25);
}
.svc-aside-card {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.22);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border-radius: 20px; padding: 1.35rem 1.35rem 1.25rem; color: #fff;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.18);
}
.svc-aside-card__eyebrow {
  margin: 0 0 1rem; font-size: 0.7rem; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255, 255, 255, 0.7);
}
.svc-aside-card__list {
  list-style: none; margin: 0 0 1.15rem; padding: 0;
  display: flex; flex-direction: column; gap: 0.75rem;
}
.svc-aside-card__list li {
  display: flex; flex-direction: column; gap: 0.15rem;
  padding-bottom: 0.75rem; border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}
.svc-aside-card__list li:last-child { border-bottom: 0; padding-bottom: 0; }
.svc-aside-card__list span {
  font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}
.svc-aside-card__list strong { font-size: 0.95rem; font-weight: 650; color: #fff; }
.svc-aside-card .btn--block { width: 100%; justify-content: center; }
.svc-section-title {
  font-family: var(--font-display), sans-serif;
  font-size: clamp(1.45rem, 2.4vw, 1.9rem); font-weight: 750;
  letter-spacing: -0.025em; line-height: 1.2; color: var(--color-text);
  margin: 0 0 1rem; max-width: 20ch;
}
.svc-overview__grid {
  display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: clamp(1.5rem, 4vw, 3rem); align-items: start;
}
.svc-overview__prose { max-width: 58ch; color: var(--color-text-muted); font-size: 1.02rem; }
.svc-overview__features {
  background: linear-gradient(165deg, #F8FBFF 0%, #fff 60%);
  border: 1px solid rgba(22, 104, 178, 0.12); border-radius: 20px;
  padding: clamp(1.25rem, 3vw, 1.75rem);
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.04);
}
.svc-aside-heading {
  font-family: var(--font-display), sans-serif; font-size: 1.1rem;
  font-weight: 700; margin: 0 0 1rem; color: var(--color-text);
}
.svc-overview .feature-list { gap: 0.95rem; }
.svc-overview .feature-list__item { gap: 0.75rem; }
.feature-list__check {
  flex-shrink: 0; width: 1.75rem; height: 1.75rem; border-radius: 999px;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(55, 181, 74, 0.12); color: var(--color-accent); margin-top: 0.1rem;
}
.svc-overview .feature-list__item strong { font-size: 0.95rem; color: var(--color-text); }
.svc-overview .feature-list__item p { font-size: 0.88rem; line-height: 1.55; }
.svc-outcomes__grid {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem;
}
.svc-outcome {
  background: #fff; border: 1px solid var(--color-border); border-radius: 18px;
  padding: 1.35rem 1.2rem; min-height: 100%;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.svc-outcome:hover {
  transform: translateY(-3px); box-shadow: 0 16px 36px rgba(15, 23, 42, 0.08);
  border-color: rgba(22, 104, 178, 0.22);
}
.svc-outcome__num {
  display: inline-block; font-family: var(--font-display), sans-serif;
  font-size: 0.8rem; font-weight: 700; color: var(--color-primary);
  margin-bottom: 0.65rem; letter-spacing: 0.04em;
}
.svc-outcome h3 {
  font-size: 1.05rem; font-weight: 700; margin: 0 0 0.45rem;
  letter-spacing: -0.02em; color: var(--color-text);
}
.svc-outcome p { margin: 0; font-size: 0.9rem; line-height: 1.6; color: var(--color-text-muted); }
.svc-fit__grid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.5rem, 4vw, 3rem); align-items: start;
}
.svc-fit__lede {
  margin: -0.25rem 0 1rem; color: var(--color-text-muted); max-width: 40ch; line-height: 1.65;
}
.svc-audience { display: flex; flex-direction: column; gap: 0; }
.svc-audience__item {
  padding: 1.15rem 0 !important;
  border: 0 !important;
  border-bottom: 1px solid var(--color-border) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  transition: none !important;
}
.svc-audience__item:hover {
  border-color: var(--color-border) !important;
  box-shadow: none !important;
}
.svc-audience__item:last-child { border-bottom: 0 !important; }
.svc-audience__item h3 { margin: 0 0 0.3rem; font-size: 1rem; font-weight: 700; }
.svc-audience__item p { margin: 0; font-size: 0.9rem; color: var(--color-text-muted); line-height: 1.55; }
.svc-tech {
  list-style: none; display: flex; flex-wrap: wrap; gap: 0.55rem; margin: 0; padding: 0;
}
.svc-tech__item {
  display: inline-flex; align-items: center; padding: 0.5rem 0.9rem; border-radius: 999px;
  background: rgba(22, 104, 178, 0.08); border: 1px solid rgba(22, 104, 178, 0.12);
  color: var(--color-primary-dark, #0F5291); font-size: 0.82rem; font-weight: 650; line-height: 1.2;
}
.svc-process__list {
  list-style: none; margin: 0 auto; padding: 0; max-width: 760px;
  display: flex; flex-direction: column; gap: 0;
}
.svc-process__item {
  display: grid !important;
  grid-template-columns: 3rem 1fr !important;
  gap: 1rem 1.15rem !important;
  align-items: start !important;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--color-border) !important;
  border-radius: 0 !important;
  padding: 1.35rem 0 !important;
  box-shadow: none !important;
}
.svc-process__item:last-child { border-bottom: 0 !important; }
.svc-process__num {
  width: auto !important;
  height: auto !important;
  border-radius: 0 !important;
  display: block !important;
  align-items: unset !important;
  justify-content: unset !important;
  font-family: var(--font-display), sans-serif;
  font-weight: 800 !important;
  font-size: 0.85rem !important;
  letter-spacing: 0.04em;
  color: var(--color-primary) !important;
  background: transparent !important;
  padding-top: 0.15rem;
}
.svc-process__body h3 { margin: 0.15rem 0 0.35rem; font-size: 1.05rem; font-weight: 700; }
.svc-process__body p { margin: 0; color: var(--color-text-muted); line-height: 1.65; font-size: 0.94rem; }
.svc-related__grid {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem;
}
.svc-related__card {
  display: flex; flex-direction: column; gap: 0.45rem; padding: 1.25rem 1.15rem;
  border-radius: 18px; border: 1px solid var(--color-border); background: #fff;
  color: inherit; text-decoration: none; min-height: 100%;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.svc-related__card:hover {
  transform: translateY(-3px); border-color: rgba(22, 104, 178, 0.28);
  box-shadow: 0 16px 36px rgba(15, 23, 42, 0.08); color: inherit;
}
.svc-related__cat {
  font-size: 0.7rem; font-weight: 700; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--color-primary);
}
.svc-related__card h3 { margin: 0; font-size: 1rem; font-weight: 700; letter-spacing: -0.02em; }
.svc-related__card p {
  margin: 0; flex: 1; font-size: 0.88rem; color: var(--color-text-muted); line-height: 1.55;
}
.svc-related__go { margin-top: 0.35rem; font-size: 0.85rem; font-weight: 650; color: var(--color-primary); }
[data-theme="dark"] .svc-overview__features,
[data-theme="dark"] .svc-outcome,
[data-theme="dark"] .svc-audience__item,
[data-theme="dark"] .svc-process__item,
[data-theme="dark"] .svc-related__card {
  background: var(--color-bg-card, #1E293B); border-color: rgba(148, 163, 184, 0.18);
}
[data-theme="dark"] .svc-tech__item {
  background: rgba(96, 165, 250, 0.12); border-color: rgba(96, 165, 250, 0.2); color: #93C5FD;
}
@media (max-width: 1024px) {
  .svc-outcomes__grid, .svc-related__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .svc-hero .container, .svc-hero__grid, .svc-overview__grid, .svc-fit__grid {
    grid-template-columns: 1fr !important;
  }
  .svc-hero__content .page-hero__title { max-width: none; }
  .svc-aside-card { max-width: 28rem; }
}
@media (max-width: 560px) {
  .svc-outcomes__grid, .svc-related__grid { grid-template-columns: 1fr; }
  .svc-hero__trust { gap: 0.45rem 0.85rem; font-size: 0.78rem; }
  .page-hero__actions { width: 100%; }
  .page-hero__actions .btn { width: 100%; justify-content: center; }
}

/* ============================================================
   CASE STUDY CARD â€” alignment / rhythm pass
   ============================================================ */
.cs-card {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  overflow: hidden !important;
  border-radius: 18px !important;
  background: #fff !important;
  border: 1px solid rgba(226, 232, 240, 0.95) !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.cs-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.1) !important;
  border-color: rgba(22, 104, 178, 0.22) !important;
}
.cs-card__image {
  aspect-ratio: 16 / 10 !important;
  overflow: hidden !important;
  background: var(--color-bg-alt) !important;
}
.cs-card__image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}
.cs-card__body {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  flex: 1 1 auto !important;
  padding: 1.25rem 1.35rem 1.3rem !important;
  gap: 0 !important;
  text-align: left !important;
}
.cs-card__tags,
.cs-card__badge,
.cs-card .badge--primary {
  margin: 0 0 0.7rem !important;
  align-self: flex-start !important;
}
.cs-card .badge,
.cs-card__badge.badge {
  display: inline-flex !important;
  align-items: center !important;
  padding: 0.4rem 0.85rem !important;
  line-height: 1.25 !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em;
}
.cs-card__title {
  margin: 0 0 0.45rem !important;
  padding: 0 !important;
  font-family: var(--font-display), sans-serif !important;
  font-size: 1.12rem !important;
  font-weight: 750 !important;
  line-height: 1.3 !important;
  letter-spacing: -0.02em !important;
  color: var(--color-text) !important;
  text-align: left !important;
  width: 100%;
}
.cs-card__desc {
  margin: 0 0 1rem !important;
  padding: 0 !important;
  flex: 1 1 auto !important;
  font-size: 0.9rem !important;
  line-height: 1.6 !important;
  color: var(--color-text-muted) !important;
  text-align: left !important;
  width: 100%;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.cs-card__metrics {
  display: grid !important;
  grid-template-columns: repeat(var(--cs-metric-cols, 3), minmax(0, 1fr)) !important;
  gap: 0.65rem 0.75rem !important;
  width: 100% !important;
  margin: 0 0 1rem !important;
  padding: 0.95rem 0 0 !important;
  border-top: 1px solid var(--color-border) !important;
  flex-wrap: nowrap !important;
}
.cs-metric {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: 0.2rem !important;
  min-width: 0 !important;
  text-align: left !important;
}
.cs-metric strong {
  font-family: var(--font-display), sans-serif !important;
  font-size: clamp(1.05rem, 1.6vw, 1.25rem) !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
  letter-spacing: -0.02em !important;
  color: var(--color-primary) !important;
  white-space: nowrap;
}
.cs-metric span {
  font-size: 0.65rem !important;
  font-weight: 650 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--color-muted) !important;
  line-height: 1.2 !important;
}
.cs-card__cta {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
  margin-top: auto !important;
  padding: 0 !important;
  font-size: 0.9rem !important;
  font-weight: 650 !important;
  color: var(--color-primary) !important;
  line-height: 1.2 !important;
  background: none !important;
  border: 0 !important;
}
.cs-card:hover .cs-card__cta { gap: 0.55rem; }
.cs-card .btn--ghost,
.cs-card__cta {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
  margin-top: auto !important;
  padding: 0 !important;
  font-size: 0.9rem !important;
  font-weight: 650 !important;
  color: var(--color-primary) !important;
  line-height: 1.2 !important;
  background: none !important;
  border: 0 !important;
}


[data-theme="dark"] .cs-card {
  background: var(--color-bg-card, #1E293B) !important;
  border-color: rgba(148, 163, 184, 0.18) !important;
}
@media (max-width: 640px) {
  .cs-card__body { padding: 1.1rem 1.15rem 1.2rem !important; }
  .cs-metric strong { font-size: 1.05rem !important; white-space: normal; }
}


/* ============================================================
   SERVICE HERO CTAs — high contrast (blue-on-blue was invisible)
   ============================================================ */
.svc-hero .page-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.5rem;
}
.svc-hero .btn,
.svc-aside-card .btn {
  min-height: 3rem;
  padding: 0.85rem 1.45rem !important;
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  border-width: 2px !important;
  box-shadow: none;
}
/* Primary = white pill on blue (same pattern as homepage hero) */
.svc-hero .btn--primary,
.svc-hero .svc-hero__btn-primary,
.svc-aside-card .btn--primary,
.svc-aside-card .svc-hero__btn-primary {
  background: #fff !important;
  color: #0F5291 !important;
  border-color: #fff !important;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22) !important;
}
.svc-hero .btn--primary:hover,
.svc-hero .svc-hero__btn-primary:hover,
.svc-aside-card .btn--primary:hover,
.svc-aside-card .svc-hero__btn-primary:hover {
  background: #F8FAFC !important;
  color: #0A3880 !important;
  border-color: #F8FAFC !important;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.28) !important;
  transform: translateY(-1px);
}
/* Secondary = clear white outline */
.svc-hero .btn--outline,
.svc-hero .svc-hero__btn-secondary,
.svc-hero .btn--ghost {
  background: rgba(255, 255, 255, 0.08) !important;
  color: #fff !important;
  border-color: rgba(255, 255, 255, 0.85) !important;
}
.svc-hero .btn--outline:hover,
.svc-hero .svc-hero__btn-secondary:hover,
.svc-hero .btn--ghost:hover {
  background: rgba(255, 255, 255, 0.18) !important;
  border-color: #fff !important;
  color: #fff !important;
}
/* Category pill — more air */
.svc-hero__content .section-label {
  padding: 0.5rem 1.05rem !important;
  font-size: 0.7rem !important;
  letter-spacing: 0.12em !important;
  line-height: 1.3 !important;
  background: rgba(255, 255, 255, 0.16) !important;
  border: 1px solid rgba(255, 255, 255, 0.35) !important;
  color: #fff !important;
}
/* Aside card breathing room for CTA */
.svc-aside-card {
  padding: 1.45rem 1.4rem 1.4rem !important;
}
.svc-aside-card .btn--block {
  width: 100% !important;
  justify-content: center !important;
  margin-top: 0.15rem;
}
/* Breadcrumbs clearer */
.svc-hero .breadcrumbs,
.svc-hero .breadcrumbs a,
.svc-hero .breadcrumbs__item,
.svc-hero .breadcrumbs__item a {
  color: rgba(255, 255, 255, 0.82) !important;
}
.svc-hero .breadcrumbs__current,
.svc-hero .breadcrumbs__item [aria-current] {
  color: #fff !important;
  font-weight: 600;
}
@media (max-width: 560px) {
  .svc-hero .page-hero__actions { width: 100%; }
  .svc-hero .page-hero__actions .btn {
    width: 100%;
    justify-content: center;
  }
}

/* ============================================================
   CONTACT — WhatsApp-only (no tel / voice)
   ============================================================ */
.contact-info__details h2 {
  font-family: var(--font-display), sans-serif;
  font-size: 1.35rem;
  font-weight: 750;
  margin: 0 0 0.5rem;
  letter-spacing: -0.02em;
}
.contact-info__lede {
  margin: 0 0 1.25rem;
  font-size: 0.92rem;
  line-height: 1.55;
  color: var(--color-text-muted);
}
.contact-whatsapp {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.85rem;
  align-items: center;
  padding: 1rem 1.1rem;
  margin-bottom: 1.15rem;
  border-radius: 16px;
  text-decoration: none;
  color: inherit;
  background: linear-gradient(135deg, #ECFDF5 0%, #D1FAE5 100%);
  border: 1px solid rgba(37, 211, 102, 0.35);
  box-shadow: 0 10px 28px rgba(37, 211, 102, 0.12);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.contact-whatsapp:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 32px rgba(37, 211, 102, 0.2);
  color: inherit;
}
.contact-whatsapp__icon {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #25D366;
  color: #fff;
  flex-shrink: 0;
}
.contact-whatsapp__text {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}
.contact-whatsapp__text strong {
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #128C7E;
}
.contact-whatsapp__number {
  font-family: var(--font-display), sans-serif;
  font-size: 1.15rem;
  font-weight: 750;
  color: #0F172A;
  letter-spacing: -0.02em;
}
.contact-whatsapp__hint {
  font-size: 0.78rem;
  color: #64748B;
}
.contact-whatsapp__go {
  font-size: 0.85rem;
  font-weight: 700;
  color: #128C7E;
  white-space: nowrap;
}
.contact-info__note {
  margin: 1rem 0 0;
  padding-top: 1rem;
  border-top: 1px solid var(--color-border);
  font-size: 0.82rem;
  color: var(--color-muted);
}
.footer-contact__link--whatsapp:hover { color: #25D366 !important; }

.whatsapp-fab {
  position: fixed;
  right: 1.15rem;
  bottom: 1.15rem;
  z-index: 95;
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.85rem 1.05rem 0.85rem 0.9rem;
  border-radius: 999px;
  background: #25D366;
  color: #fff !important;
  text-decoration: none !important;
  font-weight: 700;
  font-size: 0.9rem;
  box-shadow: 0 12px 32px rgba(37, 211, 102, 0.45);
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
.whatsapp-fab:hover {
  background: #1EBE57;
  transform: translateY(-2px);
  box-shadow: 0 16px 36px rgba(37, 211, 102, 0.55);
  color: #fff !important;
}
.whatsapp-fab__label { display: none; }
@media (min-width: 769px) {
  .whatsapp-fab__label { display: inline; }
}
@media (max-width: 560px) {
  .contact-whatsapp {
    grid-template-columns: auto 1fr;
  }
  .contact-whatsapp__go { display: none; }
  .whatsapp-fab {
    right: 1rem;
    bottom: 1rem;
    width: 3.4rem;
    height: 3.4rem;
    padding: 0;
    justify-content: center;
  }
}

[data-theme="dark"] .contact-whatsapp {
  background: linear-gradient(135deg, #064E3B 0%, #065F46 100%);
  border-color: rgba(52, 211, 153, 0.35);
}
[data-theme="dark"] .contact-whatsapp__number { color: #ECFDF5; }
[data-theme="dark"] .contact-whatsapp__text strong,
[data-theme="dark"] .contact-whatsapp__go { color: #6EE7B7; }
[data-theme="dark"] .contact-whatsapp__hint { color: #A7F3D0; }

/* ============================================================
   NEWSLETTER WIDGET — hide empty error / success until real
   ============================================================ */
[data-nl-error][hidden],
[data-nl-success][hidden],
.form-error[hidden],
.footer-newsletter__error[hidden],
.footer-newsletter__success[hidden],
.sidebar-newsletter__error[hidden],
.sidebar-newsletter__success[hidden] {
  display: none !important;
}
.form-error:empty,
.footer-newsletter__error:empty,
.sidebar-newsletter__error:empty {
  display: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  min-height: 0 !important;
}

.sidebar-newsletter {
  padding: 1.35rem 1.25rem !important;
}
.sidebar-newsletter__desc {
  margin: 0 0 1rem;
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--color-text-muted);
}
.sidebar-newsletter .sidebar-form {
  gap: 0.75rem;
}
.sidebar-newsletter__fields {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.sidebar-newsletter .form-input {
  width: 100%;
  min-height: 2.75rem;
}
.sidebar-newsletter__btn {
  width: 100%;
  justify-content: center;
  min-height: 2.75rem;
  border-radius: 999px !important;
}
.sidebar-newsletter__error {
  margin: 0 !important;
  padding: 0.65rem 0.85rem !important;
  border-radius: 12px !important;
  font-size: 0.82rem !important;
}
.sidebar-newsletter__success {
  margin: 0;
  padding: 0.9rem 1rem;
  border-radius: 12px;
  background: #ECFDF5;
  border: 1px solid #A7F3D0;
  color: #065F46;
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.45;
}
.footer-newsletter__success {
  margin-top: 0.75rem;
  padding: 0.85rem 1rem;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.22);
  color: #fff;
  font-weight: 600;
}
[data-theme="dark"] .sidebar-newsletter__success {
  background: rgba(16, 185, 129, 0.15);
  border-color: rgba(52, 211, 153, 0.35);
  color: #A7F3D0;
}

/* ============================================================
   BLOG / INSIGHTS — cards + article body
   ============================================================ */
.post-card {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  overflow: hidden !important;
  border-radius: 18px !important;
}
.post-card__body {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  flex: 1 1 auto !important;
  padding: 1.25rem 1.3rem 1.3rem !important;
  gap: 0 !important;
  text-align: left !important;
}
.post-card__body .badge {
  margin: 0 0 0.7rem !important;
  padding: 0.4rem 0.85rem !important;
  line-height: 1.25 !important;
}
.post-card__title {
  margin: 0 0 0.45rem !important;
  font-family: var(--font-display), sans-serif !important;
  font-size: 1.12rem !important;
  font-weight: 750 !important;
  line-height: 1.3 !important;
  letter-spacing: -0.02em !important;
  width: 100%;
}
.post-card__excerpt {
  margin: 0 0 0.85rem !important;
  flex: 1 1 auto !important;
  font-size: 0.9rem !important;
  line-height: 1.6 !important;
  color: var(--color-text-muted) !important;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  width: 100%;
}
.post-card__meta {
  margin: 0 0 0.85rem !important;
  font-size: 0.78rem !important;
  color: var(--color-muted) !important;
  width: 100%;
}
.post-card__cta {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
  margin-top: auto !important;
  font-size: 0.9rem !important;
  font-weight: 650 !important;
  color: var(--color-primary) !important;
  text-decoration: none !important;
}
.post-card:hover .post-card__cta { gap: 0.55rem; }

.post-content.prose {
  font-size: 1.05rem;
  line-height: 1.8;
  color: var(--color-text);
}
.post-content.prose h2 {
  font-family: var(--font-display), sans-serif;
  font-size: clamp(1.25rem, 2vw, 1.55rem);
  margin: 2rem 0 0.75rem;
  letter-spacing: -0.02em;
}
.post-content.prose p { margin-bottom: 1.15rem; }
.post-content.prose ul { margin: 0 0 1.25rem; padding-left: 1.25rem; }
.post-content.prose li { margin-bottom: 0.45rem; }
.post-content.prose a { font-weight: 600; }
.post-cta {
  margin-top: 2.5rem;
  padding: 1.5rem 1.4rem !important;
  border-radius: 18px !important;
  background: linear-gradient(165deg, #F8FBFF 0%, #fff 60%);
  border: 1px solid rgba(22, 104, 178, 0.14) !important;
}
.post-cta__title {
  margin: 0 0 0.45rem;
  font-family: var(--font-display), sans-serif;
  font-size: 1.25rem;
  font-weight: 750;
}
.post-cta__text {
  margin: 0 0 1.1rem;
  color: var(--color-text-muted);
  line-height: 1.6;
  max-width: 48ch;
}
.post-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}
@media (max-width: 560px) {
  .post-cta__actions .btn { width: 100%; justify-content: center; }
}

/* Contact wizard + email directory */
.js-contact-wizard [data-cw-success][hidden],
.js-contact-wizard [data-cw-error][hidden],
.js-contact-wizard [data-cw-step][hidden],
.js-contact-wizard [data-cw-form][hidden] {
  display: none !important;
}
.js-contact-wizard .form-error:empty {
  display: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

.contact-card {
  padding: 1.75rem 1.75rem 1.85rem;
  border-radius: 20px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: 0 18px 40px -28px rgba(15, 23, 42, 0.35);
  background: #fff;
}
[data-theme="dark"] .contact-card {
  background: var(--color-surface);
  border-color: rgba(148, 163, 184, 0.16);
  box-shadow: none;
}

/* Labeled stepper */
.cw-steps {
  list-style: none;
  margin: 0 0 1.75rem;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
  position: relative;
}
.cw-steps__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.45rem;
  position: relative;
  text-align: center;
  min-width: 0;
}
.cw-steps__item:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 1rem;
  left: calc(50% + 1.15rem);
  width: calc(100% - 0.8rem);
  height: 2px;
  background: var(--color-border);
  z-index: 0;
}
.cw-steps__item.is-complete:not(:last-child)::after,
.cw-steps__item.is-active:not(:last-child)::after {
  background: var(--color-primary);
}
.cw-steps__num {
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--color-muted);
  background: var(--color-bg-alt, #F1F5F9);
  border: 1.5px solid var(--color-border);
  position: relative;
  z-index: 1;
  transition: background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.cw-steps__item.is-active .cw-steps__num,
.cw-steps__item.is-complete .cw-steps__num {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}
.cw-steps__item.is-current .cw-steps__num {
  box-shadow: 0 0 0 4px rgba(22, 104, 178, 0.16);
}
.cw-steps__label {
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-muted);
  line-height: 1.2;
}
.cw-steps__item.is-current .cw-steps__label,
.cw-steps__item.is-active .cw-steps__label {
  color: var(--color-text);
}

.js-contact-wizard .form-step__title {
  margin: 0 0 0.35rem;
  font-size: 1.45rem;
  font-weight: 750;
  letter-spacing: -0.02em;
  color: var(--color-text);
}
.js-contact-wizard .form-step__lede {
  margin: 0 0 1.35rem;
  font-size: 0.95rem;
  color: var(--color-muted);
  max-width: 42ch;
}
.js-contact-wizard .form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem 1.1rem;
}
.js-contact-wizard .form-group--full {
  grid-column: 1 / -1;
}
.js-contact-wizard .form-group {
  margin-bottom: 0;
}
.js-contact-wizard .form-step > .form-group {
  margin-bottom: 1rem;
}
.js-contact-wizard .form-label {
  display: block;
  margin-bottom: 0.4rem;
  font-size: 0.84rem;
  font-weight: 650;
  color: var(--color-text);
}
.js-contact-wizard .form-label .req {
  color: #DC2626;
  font-weight: 700;
}
.js-contact-wizard .form-label__optional {
  font-weight: 500;
  color: var(--color-muted);
  text-transform: none;
  letter-spacing: 0;
}
.js-contact-wizard .form-input,
.js-contact-wizard .form-select,
.js-contact-wizard .form-textarea {
  width: 100%;
  border-radius: 12px;
  border: 1.5px solid rgba(15, 23, 42, 0.12);
  background: #fff;
  padding: 0.78rem 0.95rem;
  font-size: 0.95rem;
  color: var(--color-text);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.js-contact-wizard .form-input:focus,
.js-contact-wizard .form-select:focus,
.js-contact-wizard .form-textarea:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 4px rgba(22, 104, 178, 0.14);
}
.js-contact-wizard .form-input.form-input--error,
.js-contact-wizard .form-select.form-input--error,
.js-contact-wizard .form-textarea.form-input--error {
  border-color: #DC2626 !important;
  box-shadow: 0 0 0 4px rgba(220, 38, 38, 0.12);
}
.form-field-error {
  margin: 0.4rem 0 0;
  font-size: 0.78rem;
  font-weight: 600;
  color: #DC2626;
  line-height: 1.35;
}
.form-field-error[hidden] {
  display: none !important;
}
.js-contact-wizard .form-hint {
  margin: 0.4rem 0 0;
  font-size: 0.78rem;
  color: var(--color-muted);
}
.js-contact-wizard .form-actions {
  margin-top: 1.5rem;
  padding-top: 0.25rem;
}
.js-contact-wizard .form-actions--end {
  justify-content: flex-end;
}
.js-contact-wizard .form-actions--split {
  justify-content: space-between;
  align-items: center;
}
.js-contact-wizard .checkbox-label {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--color-text-sec, var(--color-text));
  cursor: pointer;
}
.js-contact-wizard .checkbox-label a {
  color: var(--color-primary);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.js-contact-wizard .form-checkbox {
  margin-top: 0.2rem;
  width: 1.05rem;
  height: 1.05rem;
  flex-shrink: 0;
  accent-color: var(--color-primary);
}
.js-contact-wizard .form-error:not([hidden]) {
  margin: 0 0 1rem;
  padding: 0.75rem 0.9rem;
  border-radius: 12px;
  background: #FEF2F2;
  border: 1px solid #FECACA;
  color: #991B1B;
  font-size: 0.88rem;
  font-weight: 600;
}
.js-contact-wizard .form-success {
  text-align: center;
  padding: 2rem 1rem;
}
.js-contact-wizard .form-success__icon {
  color: var(--color-primary);
  margin-bottom: 0.75rem;
}

/* Intent picker */
.cw-intent {
  margin: 0 0 1.35rem;
  padding: 0;
  border: 0;
  min-width: 0;
}
.cw-intent legend.form-label {
  margin-bottom: 0.65rem;
  padding: 0;
}
.cw-intent__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}
.cw-intent__card {
  display: block;
  cursor: pointer;
  margin: 0;
  position: relative;
}
.cw-intent__card input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.cw-intent__body {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.85rem 0.95rem;
  border-radius: 14px;
  border: 1.5px solid rgba(15, 23, 42, 0.12);
  background: #fff;
  min-height: 100%;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.cw-intent__body strong {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--color-text);
}
.cw-intent__body span {
  font-size: 0.75rem;
  line-height: 1.35;
  color: var(--color-muted);
}
.cw-intent__card:hover .cw-intent__body {
  border-color: rgba(22, 104, 178, 0.45);
}
.cw-intent__card input:focus-visible + .cw-intent__body {
  box-shadow: 0 0 0 4px rgba(22, 104, 178, 0.14);
  border-color: var(--color-primary);
}
.cw-intent__card input:checked + .cw-intent__body {
  border-color: var(--color-primary);
  background: rgba(22, 104, 178, 0.06);
  box-shadow: 0 0 0 1px var(--color-primary);
}
.cw-intent.is-invalid .cw-intent__body {
  border-color: #FECACA;
}
.cw-intent.is-invalid .form-field-error {
  margin-top: 0.55rem;
}
.js-contact-wizard .mt-intent {
  margin-top: 0.25rem;
}

/* 2-step path: hide Project node in stepper */
.js-contact-wizard.cw--simple .cw-steps {
  grid-template-columns: repeat(2, 1fr);
}
.js-contact-wizard.cw--simple .cw-steps__item[data-cw-progress-step="2"],
.js-contact-wizard .cw-steps__item.is-skipped {
  display: none !important;
}

@media (max-width: 560px) {
  .js-contact-wizard .form-grid {
    grid-template-columns: 1fr;
  }
  .cw-intent__grid {
    grid-template-columns: 1fr;
  }
  .cw-steps__label {
    font-size: 0.65rem;
  }
  .contact-card {
    padding: 1.25rem 1.1rem 1.35rem;
  }
}

.contact-emails {
  margin: 0 0 1.25rem;
  padding: 1.1rem 1.15rem;
  border-radius: 16px;
  background: var(--color-bg-alt, #F8FAFC);
  border: 1px solid var(--color-border);
}
.contact-emails__title {
  margin: 0 0 0.85rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-primary);
}
.contact-emails__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.contact-emails__list li {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.contact-emails__label {
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-muted);
}
.contact-emails__list a {
  font-size: 0.95rem;
  font-weight: 650;
  color: var(--color-text);
  text-decoration: none;
  word-break: break-all;
}
.contact-emails__list a:hover {
  color: var(--color-primary);
}
[data-theme="dark"] .contact-emails {
  background: rgba(30, 41, 59, 0.8);
  border-color: rgba(148, 163, 184, 0.18);
}

/* ═══════════════════════════════════════════════════════════════
   World-class craft overrides (2026) — unlayered, wins over @layer
   ═══════════════════════════════════════════════════════════════ */
:root {
    --color-bg-alt: #F4F7FB;
    --color-surface: #EEF3F9;
    --color-border: #DCE5F0;
    --color-text: #0B1220;
    --color-muted: #5B6B7F;
    --ease-out-expo: cubic-bezier(.16, 1, .3, 1);
    --ease-motion: cubic-bezier(.22, 1, .36, 1);
    --duration-fast: 180ms;
    --duration-base: 320ms;
    --duration-slow: 700ms;
    --duration-hero: 28s;
    --container-max: 1200px;
    --radius-sm: 6px;
    --shadow-sm: 0 1px 2px rgba(11,18,32,.06);
    --shadow-md: 0 8px 24px rgba(11,18,32,.08);
    --shadow-lg: 0 18px 40px rgba(11,18,32,.1);
}
@media (prefers-reduced-motion: reduce) {
    :root {
        --duration-fast: 1ms;
        --duration-base: 1ms;
        --duration-slow: 1ms;
        --duration-hero: 1ms;
    }
}
body.is-home .site-main { padding-top: 0; }
.hero {
    position: relative;
    min-height: 100svh;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #0A2F5C;
    color: #fff;
}
.hero__media { position: absolute; inset: 0; z-index: 0; }
.hero__media img,
.hero__media picture { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.hero__scrim {
    position: absolute; inset: 0; z-index: 1; pointer-events: none;
    background:
        linear-gradient(180deg, rgba(6,22,44,.55) 0%, rgba(6,22,44,.4) 42%, rgba(6,22,44,.74) 100%),
        radial-gradient(ellipse at 72% 18%, rgba(55,181,74,.2) 0%, transparent 46%);
}
.hero__bg, .hero__bg-mesh, .hero__grid-pattern, .hero__bg-glow,
.hero__badge, .hero__stats, .hero__eyebrow, .hero__scroll-hint { display: none !important; }
.hero__container {
    position: relative; z-index: 2;
    display: flex; flex-direction: column; align-items: center; text-align: center;
    padding: calc(var(--header-h) + 2.75rem) 1.25rem 4.5rem;
    width: 100%;
}
.hero__content { max-width: 820px; width: 100%; }
.hero__brand {
    font-family: var(--font-display);
    font-size: clamp(2.75rem, 7vw + .4rem, 5.25rem);
    font-weight: 800;
    line-height: .98;
    letter-spacing: -.045em;
    color: #fff;
    margin: 0 0 .85rem;
}
.hero__title {
    font-family: var(--font-display);
    font-size: clamp(1.35rem, 2.4vw + .55rem, 2rem);
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: -.02em;
    color: rgba(255,255,255,.94);
    margin: 0 0 .85rem;
}
.hero__description {
    font-size: clamp(.98rem, 1.2vw, 1.1rem);
    color: rgba(255,255,255,.72);
    max-width: 46ch;
    margin: 0 auto;
    line-height: 1.65;
}
.hero__actions { display: flex; flex-wrap: wrap; gap: .85rem; margin-top: 2rem; justify-content: center; }
.hero .btn--primary { background: #fff; color: #1668B2; border-color: #fff; box-shadow: none; }
.hero .btn--primary:hover { background: rgba(255,255,255,.92); box-shadow: 0 10px 28px rgba(0,0,0,.22); }
.hero .btn--outline { color: #fff; border-color: rgba(255,255,255,.45); background: rgba(255,255,255,.08); }
.hero .btn--outline:hover { background: rgba(255,255,255,.16); border-color: #fff; }

.page-hero__title {
    font-family: var(--font-display);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 750;
    letter-spacing: -.03em;
    line-height: 1.1;
}
.page-hero__brand {
    font-family: var(--font-display);
    font-size: clamp(1.85rem, 3.2vw + .6rem, 2.75rem);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -.04em;
    color: #fff;
    margin: .35rem 0 0;
}
.page-hero__brand + .page-hero__title {
    margin-top: .45rem;
    font-size: clamp(1.35rem, 2.2vw + .4rem, 2rem);
    font-weight: 600;
    letter-spacing: -.02em;
    color: rgba(255,255,255,.92);
}
.page-hero__desc { font-size: 1.05rem; max-width: 52ch; line-height: 1.65; }

.service-card--lite {
    background: transparent;
    border: 0;
    border-top: 2px solid var(--color-border);
    border-radius: 0;
    box-shadow: none;
    padding: 1.35rem 0 1.1rem;
    min-height: 0;
}
.service-card--lite:hover {
    transform: none;
    box-shadow: none;
    border-top-color: var(--color-primary);
}
.services-strip { gap: 1.5rem 2rem; }

.tech-strip {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .65rem .75rem;
    list-style: none;
    margin: 0;
    padding: 0;
}
.tech-strip__item {
    padding: .55rem 1rem;
    border-bottom: 1px solid var(--color-border);
    color: var(--color-text);
    font-size: .92rem;
    font-weight: 600;
    letter-spacing: -.01em;
}
.tech-strip__name { white-space: nowrap; }

.tech-clusters { display: grid; gap: 2.5rem; }
.tech-cluster__title {
    font-family: var(--font-display);
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: -.02em;
    margin-bottom: 1rem;
    color: var(--color-text);
}
.tech-cluster__list {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem .65rem;
    list-style: none;
    margin: 0;
    padding: 0;
}
.tech-cluster__item {
    font-size: .9rem;
    font-weight: 550;
    color: var(--color-text-sec, var(--color-text));
    padding: .4rem 0;
    border-bottom: 1px solid var(--color-border);
    min-width: 7.5rem;
}

.prose-measure { max-width: 68ch; margin-inline: auto; }
.prose-measure :where(p, li) { line-height: 1.75; color: var(--color-text-sec, #334155); }

.btn:focus-visible,
.site-nav__link:focus-visible,
a:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 3px;
}

/* Signature motions live once near file end (hero-drift / hero-rise / reveal). */
@media (prefers-reduced-motion: reduce) {
    .hero__media img,
    .page-hero--media .page-hero__media img,
    .hero__content--rise { animation: none !important; transform: none !important; }
    .reveal { opacity: 1; transform: none; transition: none; }
}

body.is-home .site-header:not(.site-header--scrolled):not(.is-scrolled) {
    background: rgba(8, 28, 56, 0.28) !important;
    border-bottom-color: transparent !important;
    box-shadow: none !important;
    backdrop-filter: blur(14px) saturate(1.15) !important;
    -webkit-backdrop-filter: blur(14px) saturate(1.15) !important;
}
/* Must beat .site-nav__link { color: var(--color-text) !important } */
body.is-home .site-header:not(.site-header--scrolled):not(.is-scrolled) .site-nav__link {
    color: rgba(255, 255, 255, 0.9) !important;
}
body.is-home .site-header:not(.site-header--scrolled):not(.is-scrolled) .site-nav__link:hover,
body.is-home .site-header:not(.site-header--scrolled):not(.is-scrolled) .site-nav__link--active,
body.is-home .site-header:not(.site-header--scrolled):not(.is-scrolled) .site-nav__link.is-active {
    color: #fff !important;
}
body.is-home .site-header:not(.site-header--scrolled):not(.is-scrolled) .site-nav__link::after {
    background: #fff !important;
}
body.is-home .site-header:not(.site-header--scrolled):not(.is-scrolled) .site-nav__chevron {
    opacity: 0.75 !important;
    color: inherit !important;
}
body.is-home .site-header:not(.site-header--scrolled):not(.is-scrolled) .menu-toggle,
body.is-home .site-header:not(.site-header--scrolled):not(.is-scrolled) .mobile-menu-toggle {
    color: #fff !important;
}
body.is-home .site-header:not(.site-header--scrolled):not(.is-scrolled) .theme-toggle {
    background: rgba(255, 255, 255, 0.14) !important;
    border-color: rgba(255, 255, 255, 0.28) !important;
    color: #fff !important;
}
body.is-home .site-header:not(.site-header--scrolled):not(.is-scrolled) .theme-toggle:hover {
    background: rgba(255, 255, 255, 0.22) !important;
    border-color: rgba(255, 255, 255, 0.4) !important;
    color: #fff !important;
}
/* Over dark hero: keep COLOR brand mark — never bleach white */
body.is-home .site-header:not(.site-header--scrolled):not(.is-scrolled) .logo--light {
    display: block !important;
    filter: none !important;
}
body.is-home .site-header:not(.site-header--scrolled):not(.is-scrolled) .logo--dark {
    display: none !important;
    filter: none !important;
}

.section--alt {
    background:
        radial-gradient(ellipse at 80% 0%, rgba(22,104,178,.06) 0%, transparent 45%),
        var(--color-bg-alt);
}
.card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }

.page-hero--contact {
    background:
        radial-gradient(ellipse at 85% 10%, rgba(55,181,74,.18) 0%, transparent 42%),
        linear-gradient(145deg, #0D47A1 0%, #1565C0 55%, #0A3880 100%);
}
.contact-card {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    background:
        linear-gradient(180deg, rgba(255,255,255,.96), #fff),
        var(--color-bg);
}
.cw-steps {
    margin-bottom: 1.5rem;
}

.site-footer { background: #0B1220; }
.footer-newsletter {
    background:
        radial-gradient(ellipse at 20% 0%, rgba(22,104,178,.35) 0%, transparent 50%),
        radial-gradient(ellipse at 90% 100%, rgba(55,181,74,.18) 0%, transparent 45%),
        linear-gradient(135deg, #0F5291 0%, #0B1220 100%);
}
.footer-newsletter__eyebrow {
    display: inline-block;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255,255,255,.55);
    margin-bottom: .5rem;
}

body.is-home .site-header--scrolled .logo--light,
body.is-home .site-header.is-scrolled .logo--light {
    display: block !important;
    filter: none !important;
}
body.is-home .site-header--scrolled .logo--dark,
body.is-home .site-header.is-scrolled .logo--dark {
    display: none !important;
    filter: none !important;
}
body.is-home .site-header--scrolled,
body.is-home .site-header.is-scrolled {
    background: rgba(255, 255, 255, 0.94) !important;
    border-bottom-color: rgba(226, 232, 240, 0.95) !important;
}
body.is-home .site-header--scrolled .site-nav__link,
body.is-home .site-header.is-scrolled .site-nav__link {
    color: var(--color-text) !important;
}
body.is-home .site-header--scrolled .site-nav__link--active,
body.is-home .site-header.is-scrolled .site-nav__link--active,
body.is-home .site-header--scrolled .site-nav__link.is-active,
body.is-home .site-header.is-scrolled .site-nav__link.is-active {
    color: var(--color-primary) !important;
}
body.is-home .site-header--scrolled .menu-toggle,
body.is-home .site-header.is-scrolled .menu-toggle,
body.is-home .site-header--scrolled .mobile-menu-toggle,
body.is-home .site-header.is-scrolled .mobile-menu-toggle {
    color: var(--color-text) !important;
}
body.is-home .site-header--scrolled .theme-toggle,
body.is-home .site-header.is-scrolled .theme-toggle {
    background: #fff !important;
    border-color: rgba(226, 232, 240, 0.95) !important;
    color: var(--color-text) !important;
}

/* ── Glossary + resources listing polish ─────────────────────── */
.glossary-section,
.resources-section {
    background:
        radial-gradient(ellipse at 0% 0%, rgba(22,104,178,.06) 0%, transparent 55%),
        radial-gradient(ellipse at 100% 100%, rgba(55,181,74,.04) 0%, transparent 45%),
        var(--color-bg, #fff);
}
.resources-section .proof-list { max-width: 800px; margin-inline: auto; }
.resources-section .filter-bar {
    max-width: 800px;
    margin-inline: auto;
    margin-bottom: 1.5rem;
}

.glossary-layout {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: clamp(1.75rem, 3.5vw, 2.75rem);
    align-items: start;
}

.glossary-sidebar {
    position: sticky;
    top: calc(var(--header-h, 72px) + 1rem);
    display: flex;
    flex-direction: column;
    gap: 1.35rem;
    padding-bottom: .5rem;
}

.glossary-sidebar__label {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-muted);
    margin-bottom: .45rem;
}

.glossary-search__input { width: 100%; }

/* A–Z as vertical index rail — no pill farm / wrap clutter */
.glossary-az__letters {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md, 8px);
    overflow: hidden;
    background: var(--color-bg, #fff);
}

.glossary-az__letter {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 2rem;
    padding: .35rem 0;
    font-size: .7rem;
    font-weight: 650;
    letter-spacing: .04em;
    text-decoration: none;
    color: var(--color-text-sec, #475569);
    border-right: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    border-radius: 0;
    background: transparent;
    transition: color var(--duration-fast) var(--ease-motion), background var(--duration-fast) var(--ease-motion);
}

.glossary-az__letter:nth-child(7n) { border-right: none; }
.glossary-az__letter:nth-last-child(-n+6),
.glossary-az__letter:last-child { border-bottom: none; }

.glossary-az__letter:hover {
    color: var(--color-primary);
    background: rgba(22,104,178,.06);
}

.glossary-az__letter.is-active {
    color: #fff;
    background: var(--color-primary);
}

.glossary-az__letter.is-disabled {
    opacity: .28;
    pointer-events: none;
}

.glossary-cats__list { list-style: none; padding: 0; margin: 0; }
.glossary-cats__list li + li { margin-top: .15rem; }

.glossary-cats__link {
    display: block;
    font-size: .88rem;
    color: var(--color-text-sec, #334155);
    text-decoration: none;
    padding: .35rem 0;
    border-left: 2px solid transparent;
    padding-left: .65rem;
    margin-left: -.65rem;
    transition: color var(--duration-fast) var(--ease-motion), border-color var(--duration-fast) var(--ease-motion);
}

.glossary-cats__link:hover { color: var(--color-primary); }
.glossary-cats__link.is-active {
    color: var(--color-primary);
    font-weight: 700;
    border-left-color: var(--color-primary);
}

.glossary-results {
    margin: 0 0 1rem;
    font-size: .88rem;
    color: var(--color-muted);
}

.glossary-results__clear {
    color: var(--color-primary);
    font-weight: 600;
    text-decoration: none;
}
.glossary-results__clear:hover { text-decoration: underline; }

/* List rows — no card farm */
.glossary-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.glossary-term-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    padding: 1.2rem 0;
    border-top: 1px solid var(--color-border);
    text-decoration: none;
    color: inherit;
    transition: background var(--duration-fast) var(--ease-motion);
}
.glossary-term-row:last-child { border-bottom: 1px solid var(--color-border); }
.glossary-term-row:hover .glossary-term-row__title { color: var(--color-primary); }
.glossary-term-row:hover .glossary-term-row__cta { color: var(--color-primary); }

.glossary-term-row__body { min-width: 0; flex: 1; }
.glossary-term-row__meta {
    display: block;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-primary);
    margin-bottom: .3rem;
}
.glossary-term-row__title {
    font-family: var(--font-display);
    font-size: 1.08rem;
    font-weight: 700;
    letter-spacing: -.02em;
    margin: 0 0 .3rem;
    color: var(--color-text);
    line-height: 1.3;
    transition: color var(--duration-fast) var(--ease-motion);
}
.glossary-term-row__desc {
    margin: 0;
    color: var(--color-muted);
    font-size: .9rem;
    line-height: 1.55;
    max-width: 54ch;
}
.glossary-term-row__cta {
    flex-shrink: 0;
    font-size: .82rem;
    font-weight: 650;
    color: var(--color-muted);
    letter-spacing: .02em;
    transition: color var(--duration-fast) var(--ease-motion);
}

.glossary-empty { padding-block: 2.5rem; }

@media (max-width: 768px) {
    .glossary-layout { grid-template-columns: 1fr; gap: 1.5rem; }
    .glossary-sidebar { position: static; }
    .glossary-term-row { align-items: flex-start; }
    .glossary-term-row__cta { display: none; }
}

/* ── Light-premium home lists (keep Op4u brand) ── */
.hero__scrim {
    background:
        linear-gradient(180deg, rgba(8,28,56,.42) 0%, rgba(8,28,56,.28) 45%, rgba(8,28,56,.62) 100%),
        radial-gradient(ellipse at 75% 15%, rgba(55,181,74,.14) 0%, transparent 42%) !important;
}
.hero__brand {
    font-family: var(--font-display);
    font-size: clamp(2.85rem, 7.2vw + .4rem, 5.5rem);
    font-weight: 800;
    line-height: .96;
    letter-spacing: -.045em;
    color: #fff;
    margin: 0 0 .85rem;
}
.hero__title {
    font-family: var(--font-display);
    font-size: clamp(1.2rem, 2.2vw + .5rem, 1.85rem);
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: -.02em;
    color: rgba(255,255,255,.94);
    margin: 0 0 .85rem;
}
.services-list { display: flex; flex-direction: column; gap: 0; max-width: 720px; margin-inline: auto; }
.services-list__row {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    column-gap: 1rem;
    row-gap: .35rem;
    padding: 1.35rem 0;
    border-top: 1px solid var(--color-border);
    text-decoration: none;
    color: inherit;
    transition: border-color .2s ease;
}
.services-list__row:last-child { border-bottom: 1px solid var(--color-border); }
.services-list__row:hover { border-top-color: var(--color-primary); }
.services-list__title {
    grid-column: 1;
    font-family: var(--font-display);
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: -.02em;
    margin: 0;
    color: var(--color-text);
}
.services-list__desc {
    grid-column: 1;
    margin: 0;
    font-size: .95rem;
    color: var(--color-muted);
    line-height: 1.55;
}
.services-list__go {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
    color: var(--color-primary);
    font-size: 1.25rem;
}
.stats-band { background: var(--color-bg-alt); border-block: 1px solid var(--color-border); }
.stats-band__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.25rem;
    text-align: center;
}
.stats-band__value {
    font-family: var(--font-display);
    font-size: clamp(1.6rem, 2.5vw, 2.1rem);
    font-weight: 800;
    letter-spacing: -.03em;
    color: var(--color-primary);
}
.stats-band__label { font-size: .78rem; color: var(--color-muted); margin-top: .25rem; text-transform: uppercase; letter-spacing: .06em; }
@media (max-width: 720px) {
    .stats-band__grid { grid-template-columns: repeat(2, 1fr); }
}
.proof-list, .insight-list { display: flex; flex-direction: column; gap: 0; max-width: 800px; margin-inline: auto; }
.proof-row, .insight-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    padding: 1.35rem 0;
    border-top: 1px solid var(--color-border);
    text-decoration: none;
    color: inherit;
}
.proof-row:last-child, .insight-row:last-child { border-bottom: 1px solid var(--color-border); }
.proof-row__meta, .insight-row__meta {
    display: block;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-primary);
    margin-bottom: .35rem;
}
.proof-row__title, .insight-row__title {
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 700;
    letter-spacing: -.02em;
    margin: 0 0 .35rem;
}
.proof-row__title a { color: var(--color-text); text-decoration: none; }
.proof-row__title a:hover, .insight-row:hover .insight-row__title { color: var(--color-primary); }
.proof-row__desc { margin: 0; color: var(--color-muted); font-size: .92rem; line-height: 1.55; max-width: 52ch; }
.insight-row__date { font-size: .82rem; color: var(--color-muted); white-space: nowrap; }
.section-label { display: none !important; }
/* Listing heroes: light brand wash (no !important — modifiers can win) */
.page-hero:not(.page-hero--about):not(.page-hero--careers):not(.page-hero--contact):not(.page-hero--legal):not(.page-hero--job):not(.page-hero--media) {
    background:
        radial-gradient(ellipse at 12% 0%, rgba(22,104,178,.12) 0%, transparent 48%),
        linear-gradient(180deg, #eef4fb 0%, #ffffff 72%);
    color: var(--color-text);
    padding: calc(var(--header-h) + 2.25rem) 0 2.5rem;
    border-bottom: 1px solid var(--color-border);
}
.page-hero:not(.page-hero--about):not(.page-hero--careers):not(.page-hero--contact):not(.page-hero--legal):not(.page-hero--job):not(.page-hero--media) .page-hero__title {
    color: var(--color-text);
}
.page-hero:not(.page-hero--about):not(.page-hero--careers):not(.page-hero--contact):not(.page-hero--legal):not(.page-hero--job):not(.page-hero--media) .page-hero__desc {
    color: var(--color-muted);
}
/* Atmosphere heroes — keep brand blue system */
.page-hero--about,
.page-hero--careers,
.page-hero--contact,
.page-hero--job,
.page-hero--media {
    position: relative;
    overflow: hidden;
    color: #fff;
    border-bottom: 0;
    padding: calc(var(--header-h) + 2.5rem) 0 3rem;
}
.page-hero--about { background: linear-gradient(135deg, #0A3880 0%, #1668B2 50%, #1565C0 100%); }
.page-hero--careers { background: linear-gradient(145deg, #0F5291 0%, #1668B2 40%, #1B5E20 120%); }
.page-hero--contact { background: linear-gradient(135deg, #0D47A1 0%, #1565C0 55%, #0A3880 100%); }
.page-hero--job { background: linear-gradient(135deg, #0D47A1 0%, #1668B2 100%); }
.page-hero--media { background: #0A3880; }
.page-hero--about .page-hero__title,
.page-hero--careers .page-hero__title,
.page-hero--contact .page-hero__title,
.page-hero--job .page-hero__title,
.page-hero--media .page-hero__title,
.page-hero--media h1 { color: #fff; }
.page-hero--about .page-hero__desc,
.page-hero--careers .page-hero__desc,
.page-hero--contact .page-hero__desc,
.page-hero--job .page-hero__desc,
.page-hero--media .page-hero__desc { color: rgba(255,255,255,.78); }
.page-hero__media {
    position: absolute;
    inset: 0;
    z-index: 0;
}
.page-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.page-hero__scrim {
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, rgba(10,56,128,.88) 0%, rgba(22,104,178,.72) 55%, rgba(10,56,128,.55) 100%);
}
.page-hero__scrim--about {
    background: linear-gradient(120deg, rgba(10,56,128,.9) 0%, rgba(22,104,178,.74) 55%, rgba(21,101,192,.55) 100%);
}
.page-hero__scrim--services {
    background: linear-gradient(125deg, rgba(10,56,128,.9) 0%, rgba(22,104,178,.78) 50%, rgba(55,181,74,.28) 100%);
}
.page-hero__scrim--cases {
    background: linear-gradient(145deg, rgba(13,71,161,.92) 0%, rgba(22,104,178,.7) 55%, rgba(10,56,128,.6) 100%);
}
.page-hero__scrim--insights {
    background: linear-gradient(160deg, rgba(10,56,128,.9) 0%, rgba(22,104,178,.68) 60%, rgba(15,82,145,.55) 100%);
}
.page-hero__scrim--tech {
    background: linear-gradient(120deg, rgba(10,56,128,.88) 0%, rgba(22,104,178,.65) 45%, rgba(55,181,74,.35) 100%);
}
.page-hero__scrim--resources {
    background: linear-gradient(135deg, rgba(13,71,161,.9) 0%, rgba(22,104,178,.72) 100%);
}
.page-hero__scrim--glossary {
    background: linear-gradient(150deg, rgba(15,23,42,.88) 0%, rgba(22,104,178,.7) 70%);
}
.page-hero__scrim--careers {
    background: linear-gradient(145deg, rgba(15,82,145,.9) 0%, rgba(22,104,178,.7) 45%, rgba(27,94,32,.45) 100%);
}
.page-hero__scrim--contact {
    background: linear-gradient(130deg, rgba(13,71,161,.92) 0%, rgba(21,101,192,.7) 55%, rgba(10,56,128,.6) 100%);
}
.insight-row--media { align-items: center; gap: 1.15rem; }
.insight-row__thumb {
    flex: 0 0 140px;
    width: 140px;
    height: 88px;
    border-radius: 8px;
    overflow: hidden;
    background: var(--color-bg-alt);
}
.insight-row__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.insight-row__body { min-width: 0; flex: 1; }
.page-hero--media > .container { position: relative; z-index: 1; }
.cs-card, .post-card, .service-card:not(.service-card--lite) {
    box-shadow: none !important;
}
.cs-card:hover, .post-card:hover { transform: none !important; border-color: rgba(22,104,178,.28); }

.services-list__meta {
    display: block;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-primary);
    margin-bottom: .35rem;
}
.services-list__row > div { min-width: 0; }
.proof-row__metrics {
    margin: .5rem 0 0;
    font-size: .85rem;
    color: var(--color-text);
}
.people-list, .quote-list { display: flex; flex-direction: column; max-width: 800px; margin-inline: auto; }
.people-list__row, .quote-list__item {
    padding: 1.25rem 0;
    border-top: 1px solid var(--color-border);
}
.people-list__row:last-child, .quote-list__item:last-child { border-bottom: 1px solid var(--color-border); }
.people-list__name { font-family: var(--font-display); font-size: 1.05rem; font-weight: 700; margin: 0 0 .2rem; letter-spacing: -.02em; }
.people-list__role { margin: 0; font-size: .85rem; color: var(--color-primary); font-weight: 600; }
.people-list__bio { margin: .45rem 0 0; color: var(--color-muted); font-size: .92rem; line-height: 1.55; }
.quote-list__text { margin: 0 0 .75rem; font-size: 1.05rem; line-height: 1.65; color: var(--color-text); }
.quote-list__by { font-size: .85rem; color: var(--color-muted); }
.quote-list__by strong { color: var(--color-text); display: block; }
.insight-row__excerpt { margin: .35rem 0 0; font-size: .9rem; color: var(--color-muted); line-height: 1.55; max-width: 52ch; }
.insight-row__aside { display: flex; flex-direction: column; align-items: flex-end; gap: .25rem; font-size: .8rem; color: var(--color-muted); white-space: nowrap; }
.proof-row__actions { margin-top: .75rem; }
.sidebar-widget { border-top: 1px solid var(--color-border); padding-top: 1.25rem; margin-bottom: 1.5rem; }
.mission-panel { border: 0; background: transparent; padding: 0; }
.mission-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; }
.proof-row--media { align-items: center; gap: 1.25rem; }
.proof-row__thumb {
    flex: 0 0 140px;
    width: 140px;
    height: 88px;
    border-radius: 8px;
    overflow: hidden;
    background: var(--color-bg-alt);
}
.proof-row__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.footer-main__grid--slim {
    grid-template-columns: 1.4fr 1fr 1fr !important;
    gap: 2.5rem !important;
}
.footer-newsletter-inline { margin-top: 1.25rem; max-width: 22rem; }
.footer-newsletter-inline__label {
    display: block;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgba(255,255,255,.55);
    margin-bottom: .5rem;
}
.footer-newsletter-inline .footer-newsletter__fields { margin: 0; }
.footer-newsletter-inline .footer-newsletter__input {
    background: rgba(255,255,255,.1);
    border-color: rgba(255,255,255,.22);
}
.contact-info__details {
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 0;
}
.contact-map { margin-top: 1.5rem; border-radius: var(--radius-lg); overflow: hidden; }
.contact-map__frame { border: 0; display: block; width: 100%; border-radius: var(--radius-lg); }
.empty-state {
    text-align: center;
    padding: 3rem 1.5rem;
    max-width: 36rem;
    margin: 0 auto;
}
.empty-state--seed {
    padding: 3.25rem 1.5rem 3.5rem;
    border-top: 2px solid var(--color-primary);
    background:
        linear-gradient(180deg, rgba(22,104,178,.04) 0%, transparent 42%);
}
.empty-state__eyebrow {
    margin: 0 0 .65rem;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--color-primary);
}
.empty-state__title {
    font-family: var(--font-display);
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: -.02em;
    margin: 0 0 .5rem;
    color: var(--color-text);
}
.empty-state__text { margin: 0 0 1.35rem; color: var(--color-muted); line-height: 1.6; }
.empty-state__actions { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: center; }
.empty-state--seed .empty-state__actions .btn--primary { min-width: 11rem; }
@media (max-width: 720px) {
    .mission-grid { grid-template-columns: 1fr; }
    .insight-row { flex-direction: column; align-items: flex-start; }
    .insight-row__aside { align-items: flex-start; flex-direction: row; gap: .75rem; }
    .proof-row--media { flex-wrap: wrap; }
    .proof-row__thumb { flex-basis: 100%; width: 100%; height: 160px; }
    .insight-row--media { flex-wrap: wrap; }
    .insight-row__thumb { flex-basis: 100%; width: 100%; height: 160px; }
    .footer-main__grid--slim { grid-template-columns: 1fr !important; }
}

/* Glossary term — related service chips */
.glossary-related-services {
    margin-top: 32px;
    padding: 20px;
    background: #eff6ff;
    border-radius: 12px;
    border-left: 4px solid #1668B2;
}
.glossary-related-services__title {
    font-size: .9rem;
    font-weight: 700;
    color: #1668B2;
    margin: 0 0 10px;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.glossary-related-services__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.glossary-related-services__chip {
    font-size: .85rem;
    color: #1668B2;
    text-decoration: none;
    border: 1px solid #bfdbfe;
    padding: 4px 12px;
    border-radius: 20px;
    transition: background .15s, color .15s;
}
.glossary-related-services__chip:hover {
    background: #1668B2;
    color: #fff;
}

/* Home below-fold — subtle brand accents only (#1668B2 / #37B54A) */
.is-home .services-list__row:hover .services-list__title { color: var(--color-primary); }
.is-home .services-list__row:hover .services-list__go { color: var(--color-accent); }
.is-home .stats-band {
    background:
        linear-gradient(90deg, rgba(22,104,178,.055) 0%, rgba(55,181,74,.04) 100%),
        var(--color-bg-alt);
}
.is-home .tech-strip__item {
    border-bottom-color: rgba(22,104,178,.22);
    transition: border-color .2s ease, color .2s ease;
}
.is-home .tech-strip__item:hover {
    border-bottom-color: var(--color-accent);
    color: var(--color-primary);
}
.is-home .proof-row:hover .proof-row__title a,
.is-home .insight-row:hover .insight-row__title {
    color: var(--color-primary);
}
.is-home .cta-banner__inner {
    box-shadow: inset 3px 0 0 var(--color-accent);
}

/* ═══════════════════════════════════════════════════════════════
   Craft elevation — type / motion / listings / footer (brand-locked)
   ═══════════════════════════════════════════════════════════════ */
:root {
    --tracking-display: -.052em;
    --tracking-title: -.035em;
    --tracking-body: -.006em;
    --ease-signature: cubic-bezier(.16, 1, .3, 1);
    --duration-reveal: 780ms;
    --duration-row: 220ms;
    --duration-hero: 36s;
}

h1, h2, .section-title, .page-hero__title, .hero__brand {
    letter-spacing: var(--tracking-display);
    text-wrap: balance;
}
.section-title {
    font-size: clamp(1.7rem, 3.2vw, 2.45rem) !important;
    font-weight: 750;
    line-height: 1.08;
    letter-spacing: var(--tracking-title) !important;
}
.section-desc {
    font-size: .98rem !important;
    letter-spacing: var(--tracking-body);
    line-height: 1.55;
    max-width: 42ch !important;
}

.hero__scrim {
    background:
        linear-gradient(180deg, rgba(6,22,44,.6) 0%, rgba(6,22,44,.38) 38%, rgba(6,22,44,.8) 100%),
        radial-gradient(ellipse at 76% 14%, rgba(55,181,74,.24) 0%, transparent 46%),
        radial-gradient(ellipse at 12% 90%, rgba(22,104,178,.38) 0%, transparent 50%);
}
.hero__brand {
    font-size: clamp(2.9rem, 7.4vw + .35rem, 5.65rem);
    line-height: .94;
    letter-spacing: -.055em;
    margin: 0 0 .75rem;
}
.hero__title {
    font-size: clamp(1.15rem, 2vw + .45rem, 1.75rem) !important;
    font-weight: 550;
    line-height: 1.28;
    letter-spacing: -.028em;
    color: rgba(255,255,255,.92);
    margin: 0 0 .75rem;
}
.hero__description {
    max-width: 42ch;
    letter-spacing: var(--tracking-body);
    color: rgba(255,255,255,.7);
    line-height: 1.6;
}

.page-hero__title {
    letter-spacing: var(--tracking-title);
    line-height: 1.05;
}
.page-hero--media .page-hero__title,
.page-hero--media h1,
.page-hero--about .page-hero__title,
.page-hero--careers .page-hero__title,
.page-hero--contact .page-hero__title,
.page-hero--job .page-hero__title {
    color: #fff !important;
}
.page-hero__scrim {
    background:
        linear-gradient(115deg, rgba(6,22,44,.92) 0%, rgba(22,104,178,.78) 48%, rgba(10,56,128,.62) 100%),
        radial-gradient(ellipse at 88% 18%, rgba(55,181,74,.28) 0%, transparent 42%);
}
.page-hero__scrim--services {
    background:
        linear-gradient(125deg, rgba(6,22,44,.93) 0%, rgba(22,104,178,.8) 48%, rgba(10,56,128,.58) 100%),
        radial-gradient(ellipse at 92% 22%, rgba(55,181,74,.32) 0%, transparent 44%);
}
.page-hero__scrim--cases {
    background:
        linear-gradient(140deg, rgba(6,22,44,.94) 0%, rgba(15,82,145,.82) 50%, rgba(22,104,178,.62) 100%),
        radial-gradient(ellipse at 80% 0%, rgba(55,181,74,.18) 0%, transparent 40%);
}
.page-hero__scrim--insights {
    background:
        linear-gradient(155deg, rgba(6,22,44,.93) 0%, rgba(22,104,178,.74) 55%, rgba(15,82,145,.6) 100%),
        radial-gradient(ellipse at 70% 10%, rgba(55,181,74,.2) 0%, transparent 42%);
}
.page-hero__scrim--tech {
    background:
        linear-gradient(120deg, rgba(6,22,44,.9) 0%, rgba(22,104,178,.7) 42%, rgba(10,56,128,.55) 100%),
        radial-gradient(ellipse at 95% 30%, rgba(55,181,74,.38) 0%, transparent 46%);
}
.page-hero__scrim--resources {
    background:
        linear-gradient(135deg, rgba(6,22,44,.92) 0%, rgba(22,104,178,.76) 100%),
        radial-gradient(ellipse at 85% 15%, rgba(55,181,74,.22) 0%, transparent 40%);
}
.page-hero__scrim--glossary {
    background:
        linear-gradient(150deg, rgba(6,22,44,.94) 0%, rgba(22,104,178,.72) 65%, rgba(15,82,145,.58) 100%),
        radial-gradient(ellipse at 90% 20%, rgba(55,181,74,.16) 0%, transparent 38%);
}
.page-hero__scrim--about {
    background:
        linear-gradient(120deg, rgba(6,22,44,.93) 0%, rgba(22,104,178,.78) 52%, rgba(10,56,128,.58) 100%),
        radial-gradient(ellipse at 78% 8%, rgba(55,181,74,.22) 0%, transparent 42%);
}
.page-hero__scrim--careers {
    background:
        linear-gradient(145deg, rgba(6,22,44,.92) 0%, rgba(15,82,145,.78) 42%, rgba(22,104,178,.55) 100%),
        radial-gradient(ellipse at 88% 80%, rgba(55,181,74,.32) 0%, transparent 48%);
}
.page-hero__scrim--contact {
    background:
        linear-gradient(130deg, rgba(6,22,44,.94) 0%, rgba(22,104,178,.76) 50%, rgba(10,56,128,.6) 100%),
        radial-gradient(ellipse at 82% 12%, rgba(55,181,74,.2) 0%, transparent 40%);
}

/* Listing rows — editorial spacing + signature hover (no cards) */
.services-list__row,
.proof-row,
.insight-row,
.glossary-term-row {
    position: relative;
    padding: 1.55rem 0 1.55rem .15rem;
    transition:
        padding var(--duration-row) var(--ease-signature),
        background var(--duration-row) var(--ease-signature),
        border-color var(--duration-row) var(--ease-signature);
}
.services-list__row::before,
.proof-row::before,
.insight-row::before,
.glossary-term-row::before {
    content: "";
    position: absolute;
    left: 0;
    top: 18%;
    bottom: 18%;
    width: 2px;
    background: var(--color-primary);
    opacity: 0;
    transform: scaleY(.4);
    transition: opacity var(--duration-row) var(--ease-signature), transform var(--duration-row) var(--ease-signature);
}
.services-list__row:hover,
.services-list__row:focus-visible,
.proof-row:hover,
.insight-row:hover,
.insight-row:focus-visible,
.glossary-term-row:hover {
    padding-left: .85rem;
    background: linear-gradient(90deg, rgba(22,104,178,.045) 0%, transparent 55%);
    border-top-color: rgba(22,104,178,.35);
}
.services-list__row:hover::before,
.services-list__row:focus-visible::before,
.proof-row:hover::before,
.insight-row:hover::before,
.insight-row:focus-visible::before,
.glossary-term-row:hover::before {
    opacity: 1;
    transform: scaleY(1);
}
.services-list__title,
.proof-row__title,
.insight-row__title,
.glossary-term-row__title {
    letter-spacing: var(--tracking-title);
    transition: color var(--duration-row) var(--ease-signature), transform var(--duration-row) var(--ease-signature);
}
.services-list__go,
.glossary-term-row__cta {
    transition: color var(--duration-row) var(--ease-signature), transform var(--duration-row) var(--ease-signature);
}
.services-list__row:hover .services-list__go,
.services-list__row:focus-visible .services-list__go {
    color: var(--color-accent);
    transform: translateX(4px);
}
.glossary-term-row:hover .glossary-term-row__cta {
    transform: translateX(3px);
}
.services-list__row:focus-visible,
.insight-row:focus-visible,
.glossary-term-row:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 4px;
}

/* Signature motions — intentional, not generic */
@media (prefers-reduced-motion: no-preference) {
    .hero__media img,
    .page-hero--media .page-hero__media img {
        animation: hero-drift var(--duration-hero) linear infinite alternate;
        will-change: transform;
    }
    @keyframes hero-drift {
        from { transform: scale(1.035) translate3d(0, 0, 0); }
        to   { transform: scale(1.09) translate3d(-1.8%, -.9%, 0); }
    }
    .hero__content--rise {
        animation: hero-rise 1.05s var(--ease-signature) both;
    }
    @keyframes hero-rise {
        from { opacity: 0; transform: translate3d(0, 28px, 0); filter: blur(4px); }
        to   { opacity: 1; transform: translate3d(0, 0, 0); filter: blur(0); }
    }
    .reveal {
        opacity: 0;
        transform: translate3d(0, 22px, 0);
        transition:
            opacity var(--duration-reveal) var(--ease-signature),
            transform var(--duration-reveal) var(--ease-signature);
    }
    .reveal.is-visible,
    .reveal.js-animate.is-visible {
        opacity: 1;
        transform: none;
    }
    .services-list__row,
    .proof-row,
    .insight-row,
    .glossary-term-row {
        transition:
            padding var(--duration-row) var(--ease-signature),
            background var(--duration-row) var(--ease-signature),
            border-color var(--duration-row) var(--ease-signature),
            transform var(--duration-row) var(--ease-signature);
    }
}
@media (prefers-reduced-motion: reduce) {
    .hero__media img,
    .page-hero--media .page-hero__media img,
    .hero__content--rise { animation: none !important; filter: none !important; transform: none !important; }
    .reveal { opacity: 1; transform: none; transition: none; filter: none; }
    .services-list__row:hover,
    .proof-row:hover,
    .insight-row:hover,
    .glossary-term-row:hover { padding-left: .85rem; }
}

/* Footer — focus + hover polish */
.footer-col__link,
.footer-legal-nav__link,
.footer-contact__link,
.footer-emails a,
.footer-social__link {
    transition: color .18s var(--ease-signature), opacity .18s ease, background .18s ease, border-color .18s ease;
}
.footer-col__link:hover,
.footer-legal-nav__link:hover,
.footer-contact__link:hover,
.footer-emails a:hover {
    color: #fff !important;
}
.footer-col__link:focus-visible,
.footer-legal-nav__link:focus-visible,
.footer-contact__link:focus-visible,
.footer-emails a:focus-visible,
.footer-social__link:focus-visible,
.footer-newsletter__input:focus-visible,
.footer-newsletter__btn:focus-visible {
    outline: 2px solid #37B54A;
    outline-offset: 3px;
}
.footer-social__link:hover {
    border-color: rgba(55,181,74,.45);
    color: #fff;
    background: rgba(55,181,74,.12);
}
.footer-newsletter__input:focus {
    border-color: rgba(55,181,74,.55);
    box-shadow: 0 0 0 3px rgba(55,181,74,.15);
}
