/* ============================================================
   SkyNorth design tokens
   Canonical color palette — see docs/css-color-audit.md
   Class names unchanged; only underlying values are tokenized.
   ============================================================ */
:root {
    /* Neutrals */
    --sn-white: #ffffff;
    --sn-gray-bg: #f5f7fa;
    --sn-gray-bg-alt: #f3f3f3;
    --sn-slate-900: #0f172a;
    --sn-slate-700: #334155;
    --sn-slate-500: #64748b;
    --sn-slate-400: #506078;
    --sn-slate-300: #cbd5e1;
    --sn-slate-200: #dfe5ed;
    --sn-slate-100: #d7e0ec;

    /* Brand BLUE (light blue family, hue ~200°) — canonical brand color.
       #0797d5 is treated as identical to #0492dc and folded into --sn-blue-500. */
    --sn-blue-900: #0b3b5e;
    --sn-blue-700: #0378b5;   /* deeper brand blue for hovers/shadows */
    --sn-blue-500: #0492dc;   /* CANONICAL BRAND BLUE */
    --sn-blue-300: #7dd3fc;   /* pale sky highlight */
    --sn-blue-200: #38bdf8;   /* Tailwind sky-400 accent */

    /* AI cyan / aqua (greenish family, hue ~185°) — reserved for AI-themed UI.
       Do NOT use these as generic brand accents. */
    --sn-cyan-500: #42c2f5;   /* bright AI cyan */
    --sn-cyan-300: #4dd9f4;   /* pale AI aqua (tcpp gradient tail) */
    --sn-cyan-200: #7fccea;   /* soft AI aqua */

    /* Navy / dark surfaces */
    --sn-navy-950: #07172b;
    --sn-navy-900: #0a1733;
    --sn-navy-800: #0b2545;
    --sn-navy-700: #1b3a5c;

    /* Accents */
    --sn-purple-500: #7c3aed;
    --sn-purple-300: #8b5cf6;
    --sn-teal-500:  #00a38c;
    --sn-teal-400:  #0e9f8e;
    --sn-green-500: #10d9a0;
    --sn-amber-500: #f5a000;
    --sn-amber-400: #ffb020;

    /* Brand third-party */
    --sn-linkedin:      #0a66c2;
    --sn-linkedin-dark: #004182;

    /* Common overlays / effects */
    --sn-overlay-hero: rgba(7, 23, 43, 0.92);
    --sn-shadow-card: 0 2px 12px rgba(0, 0, 0, 0.1);
    --sn-shadow-card-hover: 0 8px 24px rgba(0, 0, 0, 0.15);
}

/* ── Font override: Inter as primary UI font ── */
html {
    font-size: 15px;
}
body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: 15px;
    line-height: 1.65;
}

/* Shared image hero layer contract */
.sns-image-hero {
    position: relative;
    display: flex;
    min-height: 320px;
    align-items: center;
    overflow: hidden;
    background: var(--sn-navy-950);
}

.sns-image-hero-media,
.sns-image-hero-overlay {
    position: absolute;
    inset: 0;
}

.sns-image-hero-media {
    z-index: 0;
    background-color: var(--sn-navy-950);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.sns-image-hero-overlay {
    z-index: 1;
}

.sns-image-hero-container {
    position: relative;
    z-index: 2;
    width: 100%;
}

@media (max-width: 767.98px) {
    .sns-image-hero {
        min-height: 360px;
        align-items: flex-start;
    }

    .sns-image-hero-container {
        min-height: 360px;
        padding-top: 96px;
    }

    .rd-navbar-fixed .rd-navbar-panel {
        height: 72px;
    }

    .rd-navbar-fixed .rd-navbar-brand {
        top: 10px;
    }

    .rd-navbar-fixed .rd-navbar-brand img {
        max-height: 52px;
        width: auto;
    }

    /* Replace default orange mobile menu hover/active with brand blue */
    .rd-navbar-fixed .rd-navbar-nav li:hover > a,
    .rd-navbar-fixed .rd-navbar-nav li:hover > a:hover,
    .rd-navbar-fixed .rd-navbar-nav li.focus > a,
    .rd-navbar-fixed .rd-navbar-nav li.focus > a:hover,
    .rd-navbar-fixed .rd-navbar-nav li.active > a,
    .rd-navbar-fixed .rd-navbar-nav li.active > a:hover,
    .rd-navbar-fixed .rd-navbar-nav li.opened > a,
    .rd-navbar-fixed .rd-navbar-nav li.opened > a:hover {
        background: var(--sn-blue-500) !important;
        color: #fff !important;
    }
}

h1, h2, h3, h4, h5, h6,
.slider-header, .slider-subheader,
.tcpp-headline, .tcpp-pillar-title,
.linkedin-section-title {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    letter-spacing: -0.01em;
}

.tcpp-section .tcpp-title,
.tcpp-content .tcpp-title {
    font-size: clamp(1.65rem, 2.7vw, 2.85rem) !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
    background: linear-gradient(180deg, var(--sn-blue-300) 0%, var(--sn-blue-500) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    letter-spacing: -.02em !important;
    margin-bottom: .5rem !important;
}

.tcpp-content .tcpp-tagline,
.tcpp-section .tcpp-tagline {
    font-size: 1.1rem !important;
    line-height: 1.35 !important;
    font-weight: 600 !important;
    color: var(--sn-white) !important;
    margin-bottom: .85rem !important;
}

@media (min-width: 1200px) {
    .rd-navbar-static .rd-navbar-dropdown, .rd-navbar-fullwidth .rd-navbar-dropdown {
        width: 720px !important;
    }
}

.rd-navbar-dropdown h5 {
    font-size: 13px;
    font-weight: 600;
    text-transform: none;
    margin-bottom: 4px;
    transition: color 0.2s ease;
    color: var(--sn-slate-900) !important;
    line-height: 1.35;
}

.rd-navbar-dropdown a:hover h5,
.nav-dropdown-item:hover h5 {
    color: var(--sn-blue-500);
}

.rd-navbar-dropdown p {
    font-size: 13px;
    line-height: 1.5;
    margin-bottom: 0;
    color: var(--sn-slate-500);
    text-transform: none;
    white-space: normal;
    overflow-wrap: anywhere;
}

.rd-navbar-corporate-light.rd-navbar-static .rd-navbar-inner {
    padding: 0;
    font-size: 0;
    line-height: unset !important;
    max-width: 1400px;
}

.nav-utility-bar {
    color: var(--sn-slate-300);
}

.nav-utility-bar .icon-primary,
.nav-utility-bar .unit-left .icon {
    color: var(--sn-blue-200);
}

.nav-utility-bar .link-secondary,
.nav-utility-bar .chatbot-trigger {
    color: var(--sn-slate-300);
    transition: color 0.2s ease;
}

.nav-utility-bar .link-secondary:hover,
.nav-utility-bar .chatbot-trigger:hover {
    color: var(--sn-white);
}

.rd-navbar-corporate-light.rd-navbar-static .rd-navbar-brand img {
    width: 220px;
    height: auto;
}

.rd-navbar-corporate-light.rd-navbar-static .rd-navbar-group {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 14px 0;
}

.rd-navbar-corporate-light.rd-navbar-static .rd-navbar-panel {
    display: flex;
    align-items: center;
    margin-bottom: 0;
}

.rd-navbar-corporate-light.rd-navbar-static .rd-navbar-group-asside {
    flex: 1 1 auto;
    justify-content: flex-end;
    gap: 18px;
}

.rd-navbar-corporate-light.rd-navbar-static .rd-navbar-nav {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-end;
    align-items: center;
    column-gap: 22px;
    row-gap: 0;
    white-space: nowrap;
    margin-right: 0;
}

.rd-navbar-corporate-light.rd-navbar-static .rd-navbar-nav > li,
.rd-navbar-corporate-light.rd-navbar-static .rd-navbar-nav > li + li {
    margin-left: 0;
}

.rd-navbar-corporate-light.rd-navbar-static .rd-navbar-nav > li.rd-navbar-submenu {
    margin-right: 0;
}

.rd-navbar-corporate-light.rd-navbar-static .rd-navbar-nav > li > a {
    font-size: 14px;
    font-weight: 600;
    color: var(--sn-slate-900);
    transition: color 0.2s ease;
}

.rd-navbar-corporate-light.rd-navbar-static .nav-parent-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.nav-parent-link .nav-chevron {
    display: inline-flex;
    align-items: center;
    opacity: 0.65;
    transition: transform 0.2s ease, opacity 0.2s ease;
    flex-shrink: 0;
}

.rd-navbar-submenu.focus > a .nav-chevron,
.rd-navbar-submenu:hover > a .nav-chevron {
    transform: rotate(180deg);
    opacity: 1;
}

.rd-navbar-corporate-light.rd-navbar-static .rd-navbar-submenu > a::before,
.rd-navbar-corporate-light.rd-navbar-static .rd-navbar-submenu > a::after,
.rd-navbar-static .rd-navbar-dropdown > li > a::before,
.rd-navbar-fullwidth .rd-navbar-dropdown > li > a::before,
.rd-navbar-static .rd-navbar-nav > li > .rd-navbar-submenu-toggle,
.rd-navbar-fullwidth .rd-navbar-nav > li > .rd-navbar-submenu-toggle {
    display: none !important;
}

.rd-navbar-corporate-light.rd-navbar-static .rd-navbar-nav > li > a:hover,
.rd-navbar-corporate-light.rd-navbar-static .rd-navbar-nav > li.active > a,
.rd-navbar-corporate-light.rd-navbar-static .rd-navbar-nav > li.focus > a {
    color: var(--sn-blue-500);
}

.rd-navbar-corporate-light.rd-navbar-static .rd-navbar-dropdown {
    margin-top: 18px;
}

.nav-dropdown-item {
    text-decoration: none;
}

.nav-dropdown-item p {
    max-width: 100%;
}

@media (min-width: 1200px) {
    .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-nav {
        column-gap: 26px;
    }
}

@media (max-width: 1199px) {
    .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-group {
        padding: 0;
    }

    .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-brand img {
        width: 200px;
    }
}

.modern-work-hero {
	position: relative;
    padding: 0;
 background-image: linear-gradient(rgba(8, 28, 46, 0.88), rgba(12, 46, 76, 0.88)), url('/images/ModernWork.jpeg') !important;
	background-size: cover !important;
	background-position: center center !important;
	background-repeat: no-repeat !important;
}

.modern-work-hero .container {
	position: relative;
	z-index: 2;
}

.modern-work-hero .contact-hero-title,
.modern-work-hero .contact-hero-sub {
	color: var(--sn-white);
}

.modern-work-hero .contact-hero-sub {
	max-width: 760px;
	color: rgba(255, 255, 255, 0.9);
}

/* Project experience section */
.project-experience {
	padding-bottom: 20rem;
	background-color: var(--sn-gray-bg-alt);
}

/* Project experience cards */
.project-card {
	padding: 1.5rem;
	background: var(--sn-white);
	border-radius: 8px;
	height: 100%;
	box-shadow: var(--sn-shadow-card);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	border-left: 3px solid var(--sn-blue-500);
}

.project-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--sn-shadow-card-hover);
}

.project-card h6 {
	font-weight: 600;
	margin-bottom: 0.5rem;
}

.project-card p {
	font-size: 0.85rem;
	color: var(--sn-slate-500);
	margin-bottom: 0;
}

/* Hero video background */
.hero-video-section {
    position: relative;
    overflow: hidden;
}

/* Solution area top-accent border + typographic eyebrow (Option 4) */
.solution-area-card-blue  { border-top: 4px solid var(--sn-blue-500) !important; }
.solution-area-card-purple { border-top: 4px solid var(--sn-purple-500) !important; }
.solution-area-card-teal   { border-top: 4px solid var(--sn-teal-400) !important; }

/* Equal-height cards with pinned CTAs */
.experts-cards-band .grid {
    align-items: stretch;
}
.experts-cards-band .grid > div,
.experts-cards-band .grid > div > div,
.experts-cards-band .grid > div > div > div {
    height: 100%;
}
.solution-area-card-blue,
.solution-area-card-purple,
.solution-area-card-teal {
    display: flex;
    flex-direction: column;
    height: 100%;
}
.solution-area-card-blue ul,
.solution-area-card-purple ul,
.solution-area-card-teal ul {
    flex: 1;
}
.solution-area-card-blue .mt-5.flex.justify-end,
.solution-area-card-purple .mt-5.flex.justify-end,
.solution-area-card-teal .mt-5.flex.justify-end {
    margin-top: auto;
    padding-top: 1.25rem;
}

.solution-area-eyebrow {
    display: block;
    text-decoration: none;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-bottom: 0.75rem;
    transition: opacity 0.15s ease;
}

.solution-area-eyebrow:hover {
    opacity: 0.75;
    text-decoration: none;
}

.solution-area-eyebrow-blue   { color: var(--sn-blue-500); }
.solution-area-eyebrow-purple { color: var(--sn-purple-500); }
.solution-area-eyebrow-teal   { color: var(--sn-teal-400); }

/* TCPP feature list dash accent */
.tcpp-bullet {
    display: inline-block;
    width: 18px;
    height: 2px;
    background: linear-gradient(90deg, var(--sn-cyan-300), var(--sn-blue-500));
    border-radius: 2px;
    vertical-align: middle;
}

.tcpp-bullet-teal,
.tcpp-bullet-cyan   { background: var(--sn-cyan-300); }
.tcpp-bullet-purple { background: var(--sn-purple-300); }
.tcpp-bullet-green  { background: var(--sn-green-500); }
.tcpp-bullet-amber  { background: var(--sn-amber-500); }

/* Experts card bullet dot */
.experts-bullet {
    display: inline-block;
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1;
    color: var(--sn-blue-500);
    content: "+";
}

.experts-bullet::before {
    content: "+";
}

/* Experts card list item size override */
.experts-cards-band ul li {
    font-size: 0.875rem !important;
    line-height: 1.6 !important;
}

/* Experts card Find Out More links */
.experts-cards-band .sns-link-arrow {
    display: inline-flex;
    align-items: center;
    font-size: 1rem;
    font-weight: 700;
    float: none;
    text-align: left;
}

/* Experts section */
.experts-section {
    background-image: url('/images/techbg.jpeg');
    background-size: cover;
    background-position: top center;
    background-repeat: no-repeat;
    background-color: var(--sn-white);
    position: relative;
}

.experts-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--sn-white);
    z-index: 0;
    pointer-events: none;
}

.experts-section > * {
    position: relative;
    z-index: 1;
}

.experts-cards-band {
    padding-bottom: 80px;
}

.hero-video-bg {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    transform: translate(-50%, -50%);
    object-fit: cover;
    z-index: 0;
}

.hero-video-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.75);
    z-index: 1;
}

.hero-video-content {
    position: relative;
    z-index: 2;
}

.hero-text-box {
    text-align: left;
}

.hero-headline {
    padding-left: 20px;
    position: relative;
    border-left: none;
    margin-bottom: 18px;
}
.hero-headline::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 72px;
    border-radius: 2px;
    background: linear-gradient(
        to bottom,
        var(--sn-blue-500) 0px,    var(--sn-blue-500) 20px,
        transparent 20px, transparent 24px,
        var(--sn-blue-300) 24px,   var(--sn-blue-300) 44px,
        transparent 44px, transparent 48px,
        var(--sn-blue-500) 48px,   var(--sn-blue-500) 68px
    );
}

.hero-text-box .slider-header {
    font-size: 18px;
    line-height: 1.2;
    margin-bottom: 6px;
    color: var(--sn-blue-500);
    font-weight: 700;
}

.hero-text-box .slider-subheader {
    font-size: 18px;
    line-height: 1.3;
    margin: 0;
    color: rgba(255, 255, 255, 0.9);
    font-weight: 300;
    font-family: inherit;
    letter-spacing: 0.5px;
}

@media (min-width: 768px) {
    .hero-headline {
        padding-left: 24px;
    }

    .hero-text-box .slider-header {
        font-size: 24px;
    }

    .hero-text-box .slider-subheader {
        font-size: 21px;
    }
}

.hero-text-box p {
    margin-bottom: 8px;
}

.hero-check-list {
    list-style: none;
    padding: 0;
    margin: 12px 0;
}

.hero-check-list li {
    padding: 3px 0;
}

.hero-video-content .btn-primary {
    border-radius: 30px;
}

.sns-button-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 0.85rem 1.2rem;
    border-radius: 14px;
    background: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.16);
    color: #0f172a;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    box-shadow: 0 12px 26px rgba(15, 23, 42, 0.18);
    transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
    -webkit-text-fill-color: #0f172a;
}

.sns-button-primary:hover,
.sns-button-primary:focus {
    background: #eff6ff;
    border-color: rgba(125, 211, 252, 0.45);
    color: #0b3b5e !important;
    -webkit-text-fill-color: #0b3b5e;
    text-decoration: none;
    transform: translateY(-1px);
    box-shadow: 0 16px 30px rgba(15, 23, 42, 0.2);
}

.sns-button-primary:visited,
.sns-button-primary:active {
    color: #0f172a !important;
    -webkit-text-fill-color: #0f172a;
}

.hero-text-box .sns-button-primary,
.hero-text-box .sns-button-primary:visited,
.hero-text-box .sns-button-primary:active,
.hero-text-box .sns-button-primary span:not(.icon),
.hero-text-box .sns-button-primary:hover span:not(.icon),
.hero-text-box .sns-button-primary:focus span:not(.icon),
.hero-video-content .sns-button-primary,
.hero-video-content .sns-button-primary:visited,
.hero-video-content .sns-button-primary:active,
.hero-video-content .sns-button-primary span:not(.icon),
.hero-video-content .sns-button-primary:hover span:not(.icon),
.hero-video-content .sns-button-primary:focus span:not(.icon) {
    background: rgba(15, 23, 42, 0.55);
    border: 1px solid rgba(255, 255, 255, 0.18);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.08), 0 8px 24px rgba(0,0,0,0.35);
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

.hero-text-box .sns-button-primary:hover,
.hero-text-box .sns-button-primary:focus,
.hero-video-content .sns-button-primary:hover,
.hero-video-content .sns-button-primary:focus {
    background: rgba(30, 42, 68, 0.7);
    border-color: rgba(4, 146, 220, 0.55);
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

.sns-button-primary .icon {
    color: #0492dc !important;
}

.sns-button-primary-compact {
    padding: 0.75rem 1rem;
    font-size: 0.875rem;
}

/* Microsoft Experts section (additional overrides) */

/* Trusted Cloud Partner Program section */
.tcpp-section {
    background: var(--sn-navy-900);
    padding: 30px 0 55px;
    position: relative;
}

.tcpp-section::before {
    display: none;
}

.tcpp-section > * {
    position: relative;
    z-index: 1;
}

@media (min-width: 992px) {
    .tcpp-section {
        padding: 40px 0 70px;
    }
}

.tcpp-header {
    max-width: 760px;
    margin-bottom: 40px;
}

.tcpp-eyebrow {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #0492dc;
    margin-bottom: 14px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.tcpp-eyebrow::before {
    content: '';
    display: inline-block;
    width: 28px;
    height: 2px;
    background: #0492dc;
    flex-shrink: 0;
}

.tcpp-headline {
    font-size: 24px;
    font-weight: 700;
    color: #fff;
    margin-bottom: 18px;
    line-height: 1.25;
}

@media (min-width: 768px) {
    .tcpp-headline {
        font-size: 30px;
    }
}

.tcpp-lead {
    font-size: 15px;
    color: rgba(255, 255, 255, 0.65);
    line-height: 1.7;
    margin-bottom: 22px;
}

.tcpp-core-label {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.5);
    margin: 0;
}

.tcpp-point {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    padding-top: 18px;
}

.tcpp-point:first-child {
    border-top: 0;
    padding-top: 0;
}

.tcpp-point-icon {
    display: flex;
    gap: 14px;
    align-items: flex-start;
}

.tcpp-point-ico {
    flex-shrink: 0;
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(4, 146, 220, 0.15);
    color: #0492dc;
    font-size: 1rem;
    margin-top: 2px;
}

.tcpp-point-ico .icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    width: auto;
    height: auto;
}

.tcpp-point-title {
    display: block;
    font-size: 1rem;
    line-height: 1.35;
    font-weight: 700;
    color: #fff;
    margin: 0 0 4px;
}

.tcpp-point-body {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.72);
}

/* Section transition eyebrow */
.section-transition-eyebrow-inline {
    letter-spacing: 0.16em;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    color: #4dd9f4;
    margin: 0;
}

/* Other ways cards */
.other-ways-card {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.09);
    border-radius: 16px;
    padding: 20px;
}

.other-ways-icon {
    flex-shrink: 0;
    width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: rgba(4, 146, 220, 0.12);
    color: #0492dc;
    font-size: 1rem;
}

.other-ways-title {
    font-size: 1rem;
    font-weight: 700;
    color: #fff;
    margin: 0 0 6px;
}

.other-ways-body {
    font-size: 0.875rem;
    line-height: 1.65;
    color: rgba(255,255,255,0.65);
    margin: 0 0 10px;
}

.other-ways-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.875rem;
    font-weight: 600;
    color: #0492dc;
    text-decoration: none;
}

.other-ways-link:hover {
    color: #7dd3fc;
    text-decoration: none;
}

/* Pillar cards */
.tcpp-pillars > [class*="col-"] {
    display: flex;
}

.tcpp-pillar {
    background: #162d4a;
    border-radius: 8px;
    border-left: 3px solid #0492dc;
    padding: 1.5rem;
    flex: 1;
    min-height: 155px;
    display: flex;
    flex-direction: column;
    transition: background 0.2s ease, transform 0.2s ease;
}

.tcpp-pillar:hover {
    background: #1e3a5f;
    transform: translateY(-3px);
}

.tcpp-pillar-teal  { border-left-color: #4dd9f4; }
.tcpp-pillar-purple { border-left-color: #8b5cf6; }
.tcpp-pillar-green  { border-left-color: #10d9a0; }
.tcpp-pillar-amber  { border-left-color: var(--sn-amber-500); }

.tcpp-pillar-tag {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.tcpp-pillar-teal  .tcpp-pillar-tag { color: #4dd9f4; }
.tcpp-pillar-purple .tcpp-pillar-tag { color: #8b5cf6; }
.tcpp-pillar-green  .tcpp-pillar-tag { color: #10d9a0; }
.tcpp-pillar-amber  .tcpp-pillar-tag { color: var(--sn-amber-500); }

.tcpp-pillar-title,
.tcpp-pillar h5 {
    font-size: 1.125rem;
    font-weight: 700;
    color: #fff;
    margin-bottom: 10px;
    line-height: 1.3;
}

.tcpp-pillar-body,
.tcpp-pillar .text-white-05 {
    font-size: 1rem;
    color: rgba(255, 255, 255, 0.65);
    line-height: 1.65;
    margin: 0;
}

.tcpp-pillar-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.tcpp-pillar-list li {
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.6);
    line-height: 1.5;
    padding-left: 1.1rem;
    position: relative;
}

.tcpp-pillar-list li::before {
    content: '—';
    position: absolute;
    left: 0;
    color: rgba(255, 255, 255, 0.3);
    font-size: 0.8rem;
}

/* Footer row */
.tcpp-footer {
    display: flex;
    flex-direction: column;
    gap: 18px;
    margin-top: 40px;
    padding-top: 28px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

@media (min-width: 768px) {
    .tcpp-footer {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }
}

.tcpp-promise {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.4);
    margin: 0;
    font-style: italic;
}

.tcpp-footer-actions {
    display: flex;
    gap: 12px;
    flex-shrink: 0;
    flex-wrap: wrap;
}

.tcpp-footer-actions .btn-nuka {
    border-radius: 30px;
}

/* Legacy selectors — kept for safety */
.tcpp-video-wrap {
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.45);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.tcpp-video-caption {
    text-align: center;
    font-style: italic;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.45);
    margin: 10px 0 0;
}

/* LinkedIn Feed Section */
.linkedin-section {
    background: #e7e7e7;
}

.linkedin-header-row {
    margin-bottom: 40px;
}

.linkedin-section-title {
    margin-bottom: 6px;
}

.linkedin-section-subtitle {
    color: #6c757d;
    font-size: 16px;
    font-weight: 300;
    margin-bottom: 0;
}

.linkedin-posts > [class*="col-"] {
    display: flex;
}

.linkedin-card {
    background: #fff;
    border-radius: 10px;
    padding: 30px 26px 26px;
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.06);
    border: 1px solid rgba(0, 0, 0, 0.06);
    display: flex;
    flex-direction: column;
    flex: 1;
    transition: box-shadow 0.25s ease, transform 0.25s ease;
}

.linkedin-card:hover {
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
    transform: translateY(-4px);
}

.linkedin-card-icon {
    margin-bottom: 16px;
}

.linkedin-card-icon .icon {
    font-size: 34px;
    color: #0a66c2;
}

.linkedin-card h6 {
    font-size: 17px;
    font-weight: 700;
    color: #1b3a5c;
    margin-bottom: 10px;
}

.linkedin-card p {
    font-size: 14px;
    color: #6c757d;
    line-height: 1.65;
    flex: 1;
    margin-bottom: 18px;
}

a.linkedin-card {
    text-decoration: none;
    color: inherit;
    cursor: pointer;
}

.linkedin-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 14px;
}

.linkedin-card-top .linkedin-card-icon {
    margin-bottom: 0;
}

.linkedin-card-badge {
    display: inline-block;
    background: rgba(10, 102, 194, 0.1);
    color: #0a66c2;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 3px 10px;
    border-radius: 20px;
}

.linkedin-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
    padding-top: 14px;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.linkedin-card-date {
    font-size: 12px;
    color: #adb5bd;
    font-weight: 500;
}

.linkedin-card-link {
    color: #0a66c2;
    font-weight: 600;
    font-size: 14px;
    text-decoration: none;
    transition: color 0.2s ease;
}

a.linkedin-card:hover .linkedin-card-link {
    color: #004182;
}

.linkedin-embed {
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.06);
}

.linkedin-embed iframe {
    display: block;
}

@media (max-width: 991.98px) {
    .linkedin-header-row {
        text-align: center;
        margin-bottom: 30px;
    }
    .linkedin-header-row .col-lg-4 {
        text-align: center !important;
        margin-top: 16px;
    }
}

/* LinkedIn Follow Button */
.linkedin-section .btn-primary {
    background: #0a66c2;
    border-color: #0a66c2;
    border-radius: 50px;
    padding: 12px 28px;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.3px;
    box-shadow: 0 4px 14px rgba(10, 102, 194, 0.35);
    transition: all 0.25s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.linkedin-section .btn-primary:hover {
    background: #004182;
    border-color: #004182;
    box-shadow: 0 6px 20px rgba(0, 65, 130, 0.4);
    transform: translateY(-1px);
}
.linkedin-section .btn-primary .icon {
    position: relative;
    top: 0;
    margin-left: 10px;
    font-size: 14px;
    line-height: 1;
    vertical-align: middle;
    background: #fff;
    color: #0a66c2;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* MSP Footer Badges */
.footer-shell {
    background: linear-gradient(180deg, var(--sn-navy-900) 0%, var(--sn-navy-950) 100%);
    color: #ffffff;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    position: relative;
    overflow: hidden;
}

.footer-shell::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: linear-gradient(120deg, rgba(255, 255, 255, 0.03) 0, rgba(255, 255, 255, 0.03) 16%, transparent 16%, transparent 84%, rgba(255, 255, 255, 0.03) 84%, rgba(255, 255, 255, 0.03) 100%), url('/images/snslight.png');
    background-repeat: no-repeat, no-repeat;
    background-position: center, left 8% center;
    background-size: cover, 620px auto;
    opacity: 0.08;
    pointer-events: none;
}

.footer-shell > * {
    position: relative;
    z-index: 1;
}

.footer-main-grid {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 48px;
    align-items: start;
}

.footer-shell .section-40.section-md-75 {
    padding-top: 48px;
    padding-bottom: 44px;
}

.footer-company-col {
    width: 100%;
    margin-top: 32px;
    padding-top: 28px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-eyebrow {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #7dd3fc;
    margin-bottom: 12px;
}

.msp-badges {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}

.footer-partner-col {
    min-width: max-content;
}

.footer-right-col {
    min-width: 0;
}

.footer-nav {
    display: grid;
    grid-template-columns: 1.05fr 1.15fr 1.55fr .8fr .9fr;
}

.footer-nav-group {
    min-width: 0;
    padding: 0 22px;
    border-left: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-nav-group:first-child {
    padding-left: 0;
    border-left: 0;
}

.footer-badge-strip {
    margin-top: 40px;
    padding-top: 28px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.footer-badge-title {
    margin-bottom: 18px;
    color: rgba(255, 255, 255, 0.6) !important;
    border-bottom: none !important;
    padding-bottom: 0 !important;
}

.msp-badge {
    height: 136px;
    width: auto;
    object-fit: contain;
}

.msp-description {
    color: rgba(255, 255, 255, 0.72);
    line-height: 1.6;
    margin-bottom: 0;
}

.footer-column-title {
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #7dd3fc;
    margin-bottom: 18px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(125, 211, 252, 0.2);
}

.footer-link-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-link-list li + li {
    margin-top: 14px;
}

.footer-link-list-divider {
    margin-top: 16px !important;
    padding-top: 16px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-link-list a {
    font-size: 0.98rem;
    color: rgba(255, 255, 255, 0.82);
    text-decoration: none;
    transition: color 0.2s ease;
}

.footer-link-list a:hover {
    color: #ffffff;
}

.footer-action-list {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 20px;
}

.footer-action-separator {
    width: 1px;
    height: 24px;
    background: rgba(255, 255, 255, 0.14);
}

.footer-action-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: rgba(255, 255, 255, 0.88);
    text-decoration: none;
    font-size: 1rem;
    font-weight: 500;
}

.footer-action-link:hover {
    color: #ffffff;
}

.footer-action-icon {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: #7dd3fc;
    flex-shrink: 0;
}

.footer-bottom-link {
    color: rgba(255, 255, 255, 0.72) !important;
}

.footer-bottom-link:hover {
    color: #ffffff !important;
}

.footer-social-icon {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
    transition: color 0.2s ease;
}

.footer-social-icon:hover {
    color: #ffffff;
    background: rgba(125, 211, 252, 0.18);
}

.footer-bottom-actions {
    flex-wrap: wrap;
}

.footer-shell hr {
    border-color: rgba(255, 255, 255, 0.08);
    margin: 0;
}

.footer-shell .rights,
.footer-shell .italic {
    color: rgba(255, 255, 255, 0.72) !important;
}

.footer-shell .section-35 {
    padding-top: 24px;
    padding-bottom: 24px;
}

.msp-meeting-link {
    white-space: nowrap;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.msp-meeting-link:hover {
    color: #0492dc;
}
@media (max-width: 767.98px) {
    .footer-shell .section-40.section-md-75 {
        padding-top: 40px;
        padding-bottom: 36px;
    }

    .footer-links-col {
        display: block;
    }

    .footer-link-groups {
        width: auto;
    }

    .footer-main-grid { grid-template-columns: 1fr; gap: 36px; }
    .footer-partner-col { min-width: 0; }
    .msp-badges { flex-direction: column; align-items: flex-start; }
    .footer-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 0; }
    .footer-nav-group, .footer-nav-group:first-child { padding: 0 18px; border-left: 1px solid rgba(255, 255, 255, 0.1); }
    .footer-nav-group:nth-child(odd) { padding-left: 0; border-left: 0; }
    .footer-company-col { margin-top: 28px; padding-top: 24px; }
    .footer-action-list { align-items: flex-start; flex-direction: column; }
    .footer-action-separator { display: none; }
}

@media (min-width: 768px) and (max-width: 1199.98px) {
    .footer-main-grid { grid-template-columns: 1fr; }
    .footer-partner-col { min-width: 0; }
    .footer-nav { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 0; }
    .footer-nav-group:nth-child(4) { padding-left: 0; border-left: 0; }
}

/* Footer bottom contact bar */
.footer-contact-inline {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
    font-style: normal;
}
.footer-contact-item {
    white-space: nowrap;
}
.footer-contact-sep {
    color: rgba(255, 255, 255, 0.25);
    margin: 0 4px;
}
@media (max-width: 991.98px) {
    .footer-contact-inline {
        justify-content: center;
        margin-top: 12px;
        margin-bottom: 12px;
    }
    .footer-contact-sep {
        display: none;
    }
    .footer-contact-inline .footer-contact-item {
        display: block;
        width: 100%;
        text-align: center;
    }
}

/* Hide theme scroll-to-top — conflicts with chat FAB */
.ui-to-top {
    display: none !important;
}

/* Chatbot Widget */
.chatbot-fab {
    position: fixed;
    bottom: 24px;
    right: 24px;
    height: 44px;
    padding: 0 20px 0 14px;
    border-radius: 22px;
    background: rgba(8, 18, 38, 0.82);
    border: 1px solid rgba(4, 146, 220, 0.5);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    cursor: pointer;
    box-shadow: 0 4px 20px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.07);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.2s ease;
}
.chatbot-fab:hover {
    transform: scale(1.04);
    border-color: rgba(4, 146, 220, 0.85);
    box-shadow: 0 6px 28px rgba(4, 146, 220, 0.3), inset 0 1px 0 rgba(255,255,255,0.1);
}
.chatbot-fab-label {
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.01em;
    white-space: nowrap;
    transition: opacity 0.2s ease;
}
.chatbot-fab.open .chatbot-fab-label {
    opacity: 0;
    pointer-events: none;
}
.chatbot-fab-icon,
.chatbot-fab-close {
    transition: opacity 0.2s ease, transform 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.chatbot-fab-close {
    opacity: 0;
    position: absolute;
    transform: rotate(-90deg);
}
.chatbot-fab.open {
    padding: 0;
    width: 44px;
    border-radius: 50%;
    opacity: 0;
    pointer-events: none;
    transform: scale(0.85);
}
.chatbot-fab.open .chatbot-fab-icon {
    opacity: 0;
    transform: rotate(90deg);
}
.chatbot-fab.open .chatbot-fab-close {
    opacity: 1;
    transform: rotate(0deg);
}

/* Header pill CTA — matches Ask SkyNorth / Explore Trusted Advisor look */
.sns-header-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    height: 40px;
    padding: 0 18px;
    border-radius: 20px;
    background: rgba(8, 18, 38, 0.82);
    border: 1px solid rgba(4, 146, 220, 0.5);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff;
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    text-decoration: none;
    white-space: nowrap;
    box-shadow: 0 4px 20px rgba(0,0,0,0.25), inset 0 1px 0 rgba(255,255,255,0.07);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.sns-header-pill:hover,
.sns-header-pill:focus {
    transform: translateY(-1px) scale(1.02);
    border-color: rgba(4, 146, 220, 0.85);
    box-shadow: 0 6px 24px rgba(4, 146, 220, 0.3), inset 0 1px 0 rgba(255,255,255,0.1);
    color: #ffffff !important;
    text-decoration: none;
}
.sns-header-pill:focus-visible {
    outline: 2px solid #38bdf8;
    outline-offset: 3px;
}
.sns-header-pill .icon { color: #4dd9f4 !important; }

/* Header "Let's Talk" text link — no underline default, cyan on hover/active */
.sns-lets-talk {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-left: -0.5rem;
    padding: 0.25rem 0 0.35rem;
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
    color: #0C2E4C !important;
    -webkit-text-fill-color: #0C2E4C;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: color 0.2s ease, border-color 0.2s ease;
}
.sns-lets-talk .sns-lets-talk-arrow {
    display: inline-block;
    transition: transform 0.2s ease;
}
.sns-lets-talk:hover,
.sns-lets-talk:focus,
.sns-lets-talk.is-active,
.sns-lets-talk.is-active:visited {
    color: #0797D5 !important;
    -webkit-text-fill-color: #0797D5;
    border-bottom-color: #42C2F5;
    text-decoration: none;
}
.sns-lets-talk:hover .sns-lets-talk-arrow,
.sns-lets-talk:focus .sns-lets-talk-arrow { transform: translateX(4px); }
.sns-lets-talk:focus-visible {
    outline: 2px solid #0797D5;
    outline-offset: 4px;
    border-radius: 2px;
}

@media (prefers-reduced-motion: reduce) {
    .sns-lets-talk,
    .sns-lets-talk-arrow { transition: none !important; }
    .sns-lets-talk:hover .sns-lets-talk-arrow { transform: none !important; }
}

/* Mobile menu row for Let's Talk — matches nav item type, minimum 44px touch target */
.sns-lets-talk-mobile > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 44px;
    padding: 0.75rem 1rem;
    color: #0C2E4C !important;
    font-weight: 700;
    border-top: 1px solid rgba(12, 46, 76, 0.08);
}
.sns-lets-talk-mobile.active > a,
.sns-lets-talk-mobile > a[aria-current="page"] { color: #0797D5 !important; }

.chatbot-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(8, 18, 38, 0.35);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
    z-index: 9997;
}
.chatbot-backdrop.open {
    opacity: 1;
    pointer-events: auto;
}

.chatbot-panel {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: 440px;
    max-width: 100vw;
    background: #ffffff;
    border-radius: 0;
    box-shadow: -12px 0 40px rgba(8, 18, 38, 0.22);
    display: flex;
    flex-direction: column;
    z-index: 9998;
    opacity: 0;
    transform: translateX(100%);
    pointer-events: none;
    transition: opacity 0.25s ease, transform 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.chatbot-panel.open {
    opacity: 1;
    transform: translateX(0);
    pointer-events: auto;
}

.chatbot-header {
    display: flex;
    align-items: center;
    background: var(--sn-navy-800);
    color: #fff;
    padding: 14px 16px;
    gap: 12px;
    min-height: 68px;
    border-radius: 0;
    border-bottom: 1px solid rgba(255,255,255,0.07);
}
.chatbot-header-logo {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(4,146,220,0.15);
    border: 1px solid rgba(4,146,220,0.35);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.chatbot-header-actions {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-left: auto;
    flex-shrink: 0;
}
.chatbot-header-btn {
    background: none;
    border: none;
    color: rgba(255,255,255,0.65);
    font-size: 18px;
    cursor: pointer;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    transition: background 0.15s, color 0.15s;
    line-height: 1;
    padding: 0;
}
.chatbot-header-btn:hover {
    background: rgba(255,255,255,0.1);
    color: #fff;
}
.chatbot-suggestions {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    padding: 10px 14px;
    background: #f5f7fa;
    border-bottom: 1px solid #e8ecf2;
}
.chatbot-suggestions.hidden {
    display: none;
}
.chatbot-chip {
    background: #fff;
    border: 1px solid #cbd5e1;
    border-radius: 20px;
    padding: 5px 13px;
    font-size: 12px;
    font-weight: 500;
    color: #1e3a5c;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
    white-space: nowrap;
}
.chatbot-chip:hover {
    border-color: #0492dc;
    background: #eff8ff;
    color: #0492dc;
}
.chatbot-msg-avatar {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    object-fit: cover;
    object-position: center top;
    flex-shrink: 0;
    border: 1.5px solid rgba(4,146,220,0.25);
}
.chatbot-header-info {
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex: 1;
    min-width: 0;
}
.chatbot-header-title {
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.01em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.chatbot-header-sub {
    font-size: 12px;
    opacity: 0.75;
    font-weight: 400;
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.chatbot-header-close {
    margin-left: auto;
    background: none;
    border: none;
    color: #fff;
    font-size: 22px;
    cursor: pointer;
    opacity: 0.65;
    transition: opacity 0.2s;
    line-height: 1;
    padding: 4px 2px 4px 8px;
    flex-shrink: 0;
}
.chatbot-header-close:hover {
    opacity: 1;
}

.chatbot-messages {
    flex: 1;
    overflow-y: auto;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-height: 280px;
    background: #f5f7fa;
}

.chatbot-msg {
    display: flex;
}
.chatbot-msg-user {
    justify-content: flex-end;
}
.chatbot-msg-assistant {
    justify-content: flex-start;
    align-items: flex-start;
    gap: 8px;
}
.chatbot-bubble {
    max-width: 80%;
    padding: 10px 14px;
    border-radius: 14px;
    font-size: 14px;
    line-height: 1.5;
    word-wrap: break-word;
}
.chatbot-msg-user .chatbot-bubble {
    background: #0492dc;
    color: #fff;
    border-bottom-right-radius: 4px;
}
.chatbot-msg-assistant .chatbot-bubble {
    background: #ffffff;
    color: #1e2d3d;
    border: 1px solid #dde4ec;
    border-bottom-left-radius: 4px;
}
.chatbot-msg-assistant .chatbot-bubble p {
    margin: 0 0 6px;
}
.chatbot-msg-assistant .chatbot-bubble p:last-child {
    margin-bottom: 0;
}
.chatbot-msg-assistant .chatbot-bubble ul,
.chatbot-msg-assistant .chatbot-bubble ol {
    margin: 6px 0 10px;
    padding-left: 22px;
    list-style-position: outside;
}
.chatbot-msg-assistant .chatbot-bubble ul { list-style: disc; }
.chatbot-msg-assistant .chatbot-bubble ol { list-style: decimal; }
.chatbot-msg-assistant .chatbot-bubble li {
    margin-bottom: 6px;
    padding-left: 4px;
    line-height: 1.5;
}
.chatbot-msg-assistant .chatbot-bubble ul li::marker { color: #0492dc; }
.chatbot-msg-assistant .chatbot-bubble ol li::marker { color: #0492dc; font-weight: 700; }
.chatbot-msg-assistant .chatbot-bubble strong {
    color: var(--sn-navy-800);
}

/* Source links footer */
.chatbot-sources {
    margin-top: 10px;
    padding-top: 8px;
    border-top: 1px solid #dde4ec;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}
.chatbot-sources-label {
    font-size: 11px;
    font-weight: 700;
    color: #6b839a;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-right: 2px;
}
.chatbot-source-link {
    display: inline-block;
    font-size: 11px;
    color: #ffffff;
    background: #0492dc;
    padding: 3px 10px;
    border-radius: 10px;
    text-decoration: none;
    font-weight: 600;
    transition: background 0.2s, color 0.2s;
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.chatbot-source-link:hover {
    background: #0378b7;
    color: #fff;
}

/* Typing dots */
.chatbot-typing .chatbot-bubble {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 12px 18px;
}
.chatbot-typing .dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #aab8c6;
    animation: chatbot-bounce 1.2s infinite ease-in-out;
}
.chatbot-typing .dot:nth-child(2) {
    animation-delay: 0.15s;
}
.chatbot-typing .dot:nth-child(3) {
    animation-delay: 0.3s;
}
@keyframes chatbot-bounce {
    0%, 60%, 100% { transform: translateY(0); }
    30% { transform: translateY(-6px); }
}

.chatbot-input-bar {
    display: flex;
    padding: 10px 12px;
    border-top: 1px solid #dde4ec;
    background: #ffffff;
    gap: 8px;
    border-radius: 0 0 16px 16px;
}
.chatbot-input {
    flex: 1;
    border: 1px solid #ccd6e0;
    border-radius: 24px;
    padding: 10px 16px;
    font-size: 14px;
    outline: none;
    transition: border-color 0.2s, box-shadow 0.2s;
    background: #f5f7fa;
    color: #1e2d3d;
}
.chatbot-input::placeholder {
    color: #8da4b8;
}
.chatbot-input:focus {
    border-color: #0492dc;
    background: #ffffff;
    box-shadow: 0 0 0 3px rgba(4, 146, 220, 0.12);
}
.chatbot-send {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #0492dc;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
    flex-shrink: 0;
}
.chatbot-send:hover {
    background: #0378b5;
}

@media (max-width: 480px) {
    .chatbot-panel {
        width: 100%;
        max-width: 100vw;
    }
    .chatbot-fab {
        bottom: 16px;
        right: 16px;
    }
}

/* Contact Us Page */
.contact-hero {
    padding: 70px 0 60px;
    background: linear-gradient(135deg, #1b3a5c 0%, var(--sn-navy-800) 100%);
}
.contact-hero-title {
    font-size: 42px;
    font-weight: 700;
    margin-bottom: 14px;
    color: #fff;
}
.contact-hero-sub {
    font-size: 17px;
    color: rgba(255, 255, 255, 0.8);
    font-weight: 300;
    line-height: 1.7;
    max-width: 640px;
    margin: 0;
}
@media (min-width: 768px) {
    .contact-hero {
        padding: 100px 0 85px;
    }
    .contact-hero-title {
        font-size: 52px;
    }
}

.contact-section {
    background: #f7f8fa;
}

.contact-form-card {
    background: #fff;
    border-radius: 12px;
    padding: 44px 40px;
    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.06);
    border: 1px solid rgba(0, 0, 0, 0.05);
}
@media (max-width: 767.98px) {
    .contact-form-card {
        padding: 28px 20px;
    }
}
.contact-form-title {
    font-size: 26px;
    font-weight: 700;
    color: #1b3a5c;
    margin-bottom: 6px;
}
.contact-form-desc {
    color: #6c757d;
    font-size: 15px;
    margin-bottom: 32px;
}
.contact-label {
    font-size: 14px;
    font-weight: 600;
    color: #1b3a5c;
    margin-bottom: 6px;
    display: block;
}
.contact-input {
    border: 1px solid #dee2e6;
    border-radius: 8px;
    padding: 11px 16px;
    font-size: 15px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.contact-input:focus {
    border-color: #0492dc;
    box-shadow: 0 0 0 3px rgba(4, 146, 220, 0.12);
}
textarea.contact-input {
    resize: vertical;
    min-height: 130px;
}
.contact-submit {
    background: #0492dc;
    border: none;
    border-radius: 30px;
    padding: 13px 40px;
    font-size: 16px;
    font-weight: 600;
    color: #fff;
    letter-spacing: 0.3px;
    box-shadow: 0 4px 16px rgba(4, 146, 220, 0.3);
    transition: all 0.25s ease;
}
.contact-submit:hover {
    background: #0380c2;
    box-shadow: 0 6px 24px rgba(4, 146, 220, 0.45);
    transform: translateY(-1px);
}
.contact-submit:disabled {
    opacity: 0.7;
    cursor: not-allowed;
    transform: none;
}

.contact-result {
    padding: 14px 18px;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 500;
    display: flex;
    align-items: center;
}
.contact-result-success {
    background: #d1f5e4;
    color: #0a6b3d;
    border: 1px solid #a3e4c1;
}
.contact-result-error {
    background: #fde8e8;
    color: #b91c1c;
    border: 1px solid #f5c6c6;
}

/* Sidebar info card */
.contact-info-card {
    background: #fff;
    border-radius: 12px;
    padding: 32px 28px;
    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.06);
    border: 1px solid rgba(0, 0, 0, 0.05);
    margin-bottom: 24px;
}
.contact-info-title {
    font-size: 20px;
    font-weight: 700;
    color: #1b3a5c;
    margin-bottom: 24px;
    padding-bottom: 14px;
    border-bottom: 2px solid #f0f1f3;
}
.contact-info-item {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 22px;
}
.contact-info-item:last-child {
    margin-bottom: 0;
}
.contact-info-icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(4, 146, 220, 0.1);
    color: #0492dc;
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.contact-info-item h6 {
    font-size: 12px;
    font-weight: 700;
    color: #8c95a1;
    margin-bottom: 2px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.contact-info-item a {
    color: #1b3a5c;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    transition: color 0.2s ease;
}
.contact-info-item a:hover {
    color: #0492dc;
}
.contact-info-item p {
    color: #4a5568;
    font-size: 15px;
    font-weight: 500;
    margin: 0;
    line-height: 1.4;
}

/* Nora CTA card */
.contact-nora-card {
    background: #1b3a5c;
    border-radius: 12px;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    overflow: hidden;
    margin-bottom: 24px;
}
.contact-nora-img {
    width: 120px;
    flex-shrink: 0;
    overflow: hidden;
}
.contact-nora-avatar {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
}
.contact-nora-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 20px 22px;
}
.contact-nora-card h5 {
    color: #fff;
    font-size: 16px;
    margin-bottom: 2px;
}
.contact-nora-card p {
    color: rgba(255, 255, 255, 0.65);
    font-size: 13px;
    margin-bottom: 12px;
    line-height: 1.5;
}
.contact-nora-btn {
    background: #0492dc;
    border-color: #0492dc;
    color: #fff;
    border-radius: 30px;
    font-size: 13px;
    padding: 6px 20px;
    transition: all 0.2s ease;
}
.contact-nora-btn:hover {
    background: #0380c2;
    border-color: #0380c2;
    color: #fff;
    box-shadow: 0 4px 14px rgba(4, 146, 220, 0.35);
}

/* AI Shield badge */
.contact-ai-shield {
    background: linear-gradient(135deg, rgba(4, 146, 220, 0.08), rgba(27, 58, 92, 0.06));
    border: 1px solid rgba(4, 146, 220, 0.18);
    border-radius: 12px;
    padding: 20px 24px;
    text-align: center;
}
.contact-ai-shield-icon {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: linear-gradient(135deg, #1b3a5c, #0492dc);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 10px;
    color: #fff;
    font-size: 18px;
}
.contact-ai-shield h6 {
    font-size: 14px;
    font-weight: 700;
    color: #1b3a5c;
    margin-bottom: 6px;
}
.contact-ai-shield p {
    font-size: 12.5px;
    color: #6c757d;
    line-height: 1.55;
    margin: 0;
}
.contact-ai-shield a {
    color: #0492dc;
    font-weight: 600;
    text-decoration: none;
}
.contact-ai-shield a:hover {
    text-decoration: underline;
}

/* ===== Modern Work Page ===== */

/* Hero badge */
.mw-hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(4, 146, 220, 0.15);
    color: #7ec8f0;
    font-size: 13px;
    font-weight: 600;
    padding: 6px 16px;
    border-radius: 30px;
    margin-bottom: 18px;
    letter-spacing: 0.3px;
    border: 1px solid rgba(4, 146, 220, 0.25);
}
.mw-hero-badge .icon {
    font-size: 14px;
    color: #0492dc;
}

/* Hero stats row */
.mw-hero-stats {
    display: flex;
    gap: 32px;
    margin: 28px 0 32px;
    flex-wrap: wrap;
}
.mw-hero-stat {
    display: flex;
    flex-direction: column;
}
.mw-hero-stat-num {
    font-size: 32px;
    font-weight: 700;
    color: #0492dc;
    line-height: 1.1;
}
.mw-hero-stat-label {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.6);
    font-weight: 400;
    margin-top: 2px;
}
@media (max-width: 575.98px) {
    .mw-hero-stats {
        gap: 20px;
    }
    .mw-hero-stat-num {
        font-size: 26px;
    }
}

/* ===== Modern Work Page — Capabilities + Fit Band ===== */

/* Hero */
.mw-hero {
    min-height: 320px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    color: #fff;
}
.mw-hero h1,
.mw-hero p {
    color: inherit;
}
.mw-hero .mw-hero-content {
    width: 100%;
    padding-left: 0;
    margin-left: 0;
}

/* Capability cards */
.mw-cap-card {
    background: #fff;
    border-radius: 12px;
    padding: 24px 22px 22px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06), 0 4px 16px rgba(0,0,0,0.04);
    border: 1px solid rgba(0,0,0,0.07);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    transition: box-shadow 0.2s, transform 0.2s;
}
.mw-cap-card:hover {
    box-shadow: 0 8px 32px rgba(0,0,0,0.1);
    transform: translateY(-3px);
}
.mw-cap-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: rgba(4,146,220,0.10);
    margin-bottom: 4px;
    flex: 0 0 auto;
}
.mw-cap-head {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
}
.mw-cap-head .mw-cap-title { margin: 0; }
.mw-cap-icon-teal { background: rgba(14,159,142,0.10); }
.mw-cap-icon-purple { background: rgba(124,58,237,0.10); }
.mw-cap-icon-cyan { background: rgba(37,198,247,0.12); }
.mw-cap-icon .icon {
    font-size: 22px;
    color: #0492dc;
    line-height: 1;
    display: inline-block;
}
.mw-cap-icon-teal .icon { color: #0e9f8e; }
.mw-cap-icon-purple .icon { color: #7c3aed; }
.mw-cap-icon-cyan .icon { color: #0aa9e0; }
.mw-cap-title {
    font-size: 15px;
    font-weight: 700;
    color: #1b3a5c;
    margin: 0;
    line-height: 1.35;
    text-align: left;
}
.mw-cap-body {
    font-size: 13px;
    color: #64748b;
    line-height: 1.6;
    margin: 0;
    text-align: left;
}

/* Legacy list support */
.mw-cap-list {
    list-style: none;
    padding: 0;
    margin: 0;
    border-top: 1px solid #f0f1f3;
    padding-top: 14px;
    margin-top: auto;
}
.mw-cap-list li {
    font-size: 13px;
    color: #4a5568;
    padding: 4px 0 4px 20px;
    position: relative;
    line-height: 1.5;
}
.mw-cap-list li::before {
    content: "\f00c";
    font-family: "FontAwesome";
    position: absolute;
    left: 0;
    color: #0492dc;
    font-size: 11px;
    top: 6px;
}

/* "When SkyNorth is the right fit" band */
.mw-fit-band {
    background: var(--sn-navy-900);
    color: #fff;
}
.mw-fit-eyebrow {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #4dd9f4;
    margin: 0 0 20px;
}
.mw-fit-item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    max-width: 260px;
}
.mw-fit-ico {
    flex-shrink: 0;
    width: 46px;
    height: 46px;
    border-radius: 10px;
    border: 1.5px solid rgba(77,217,244,0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #4dd9f4;
    font-size: 18px;
    line-height: 1;
}
.mw-fit-ico .icon {
    line-height: 1;
    display: inline-flex;
}
.mw-fit-item-title {
    font-size: 14px;
    font-weight: 700;
    color: #fff;
    margin: 0 0 4px;
}
.mw-fit-item-body {
    font-size: 12.5px;
    color: rgba(255,255,255,0.6);
    line-height: 1.55;
    margin: 0;
}
.mw-fit-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1.5px solid rgba(255,255,255,0.7);
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    padding: 12px 24px;
    border-radius: 8px;
    white-space: nowrap;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
    text-decoration: none;
}
.mw-fit-cta:hover {
    background: #fff;
    color: var(--sn-navy-900);
    border-color: #fff;
}

/* Why SkyNorth section (legacy) */
.mw-why-section {
    padding: 60px 0;
    background: linear-gradient(135deg, #1b3a5c 0%, var(--sn-navy-800) 100%);
}
@media (min-width: 992px) {
    .mw-why-section { padding: 80px 0; }
}
.mw-why-title { font-size: 28px; margin-bottom: 6px; }
@media (min-width: 768px) {
    .mw-why-title { font-size: 32px; }
}
.mw-why-subtitle {
    font-size: 15px;
    font-weight: 300;
    color: #5bc0f2;
    margin-bottom: 16px;
    letter-spacing: 0.5px;
}
.mw-why-pillars > [class*="col-"] { display: flex; }

.mw-why-pillar {
    padding: 20px 18px 16px;
    background: rgba(255, 255, 255, 0.04);
    border-radius: 8px;
    border-top: 2px solid #0492dc;
    flex: 1;
    transition: background 0.2s ease;
}
.mw-why-pillar:hover {
    background: rgba(255, 255, 255, 0.08);
}
.mw-why-pillar .icon {
    font-size: 22px;
}
.mw-why-pillar h6 {
    font-size: 14px;
    margin: 8px 0 6px;
    color: #fff;
    font-weight: 700;
}
.mw-why-pillar p {
    font-size: 12.5px;
    line-height: 1.55;
    margin-bottom: 0;
}

/* Engagements section */
.mw-engagements-section {
    background: #fff;
}
.mw-eng-card {
    background: #f7f8fa;
    border-radius: 10px;
    padding: 24px 22px;
    height: 100%;
    border: 1px solid rgba(0, 0, 0, 0.05);
    transition: box-shadow 0.25s ease, transform 0.25s ease;
    display: flex;
    flex-direction: column;
}
.mw-eng-card:hover {
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.08);
    transform: translateY(-3px);
}
.mw-eng-tag {
    display: inline-block;
    background: rgba(4, 146, 220, 0.1);
    color: #0492dc;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 3px 10px;
    border-radius: 20px;
    margin-bottom: 12px;
    align-self: flex-start;
}
.mw-eng-card h6 {
    font-size: 15px;
    font-weight: 700;
    color: #1b3a5c;
    margin-bottom: 8px;
}
.mw-eng-card p {
    font-size: 13px;
    color: #6c757d;
    line-height: 1.6;
    margin-bottom: 0;
}

/* CTA section */
.mw-cta-section {
    padding: 60px 0;
    background: linear-gradient(135deg, #1b3a5c 0%, var(--sn-navy-800) 100%);
}
@media (min-width: 768px) {
    .mw-cta-section {
        padding: 80px 0;
    }
}


/* =========================================================
   Modern Work — Bridge, Proven Experience, Featured Work, CTA
   ========================================================= */

/* Shared section typography */
.mw-eyebrow {
    font-size: .8125rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    font-weight: 600;
    color: #1D5FBF;
}
.mw-section-heading {
    font-size: clamp(1.75rem, 2.4vw, 2.25rem);
    line-height: 1.2;
    font-weight: 700;
    color: #0B2545;
    letter-spacing: -0.01em;
}
.mw-section-lede {
    font-size: 1.125rem;
    line-height: 1.55;
    color: #3B4A5A;
}

/* Bridge heading + link inside .mw-fit-band */
.mw-fit-heading {
    color: #ffffff;
    font-weight: 700;
    font-size: clamp(1.5rem, 2.2vw, 2rem);
    line-height: 1.25;
    max-width: 60ch;
    letter-spacing: -0.01em;
}
.mw-bridge-link {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    color: #ffffff;
    font-weight: 600;
    font-size: 1.0625rem;
    padding: .35rem 0;
    border-bottom: 1px solid rgba(255,255,255,.45);
    transition: border-color .2s ease, transform .2s ease, color .2s ease;
}
.mw-bridge-link:hover,
.mw-bridge-link:focus-visible {
    border-color: #ffffff;
    color: #ffffff;
}
.mw-bridge-link:focus-visible {
    outline: 2px solid #ffffff;
    outline-offset: 4px;
    border-radius: 2px;
}
.mw-bridge-link-ico {
    transition: transform .2s ease;
}
.mw-bridge-link:hover .mw-bridge-link-ico {
    transform: translateY(2px);
}
@media (prefers-reduced-motion: reduce) {
    .mw-bridge-link,
    .mw-bridge-link-ico { transition: none; }
    .mw-bridge-link:hover .mw-bridge-link-ico { transform: none; }
    html { scroll-behavior: auto; }
}
@media (prefers-reduced-motion: no-preference) {
    html { scroll-behavior: smooth; }
}

/* Proven Experience */
.mw-proven-band {
    background: #F5F7FA;
    padding: 4.5rem 0 5rem;
}
@media (min-width: 1024px) {
    .mw-proven-band { padding: 4.75rem 0 5rem; }
}
.mw-proven-panel {
    background: #0B2545;
    border-radius: 6px;
    padding: 2.25rem 1.5rem;
}
@media (min-width: 768px) {
    .mw-proven-panel { padding: 2.5rem 2rem; }
}
@media (min-width: 1024px) {
    .mw-proven-panel { padding: 2.75rem 2.5rem; }
}
.mw-proven-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.75rem;
}
@media (min-width: 640px) {
    .mw-proven-grid { grid-template-columns: repeat(2, 1fr); gap: 2rem 2.25rem; }
}
@media (min-width: 1024px) {
    .mw-proven-grid { grid-template-columns: repeat(4, 1fr); gap: 0; }
    .mw-proven-col { padding: .25rem 1.75rem; position: relative; }
    .mw-proven-col + .mw-proven-col::before {
        content: "";
        position: absolute;
        left: 0; top: 10%; bottom: 10%;
        width: 1px;
        background: rgba(255,255,255,.18);
    }
    .mw-proven-col:first-child { padding-left: 0; }
    .mw-proven-col:last-child { padding-right: 0; }
}
.mw-proven-title {
    color: #ffffff;
    font-weight: 600;
    font-size: 1.125rem;
    margin-bottom: .5rem;
    letter-spacing: -0.005em;
}
.mw-proven-body {
    color: #B7C4D4;
    font-size: 1rem;
    line-height: 1.55;
}

/* Featured Work */
.mw-featured-band {
    background: #F7F9FB;
    scroll-margin-top: 96px;
}
.mw-featured-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}
@media (min-width: 1024px) {
    .mw-featured-grid { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
}
.mw-project {
    background: #ffffff;
    border: 1px solid #E3E8EF;
    border-radius: 6px;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.mw-project[open] {
    border-color: #C9D3E0;
    box-shadow: 0 1px 2px rgba(11,37,69,.06);
}
.mw-project-summary {
    list-style: none;
    cursor: pointer;
    padding: 1.5rem 1.75rem;
    display: block;
    position: relative;
    outline: none;
}
.mw-project-summary::-webkit-details-marker { display: none; }
.mw-project-summary::marker { content: ""; }
.mw-project-summary:focus-visible {
    outline: 2px solid #0B2545;
    outline-offset: 2px;
    border-radius: 6px;
}
.mw-project-cat {
    display: inline-block;
    font-size: .75rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    font-weight: 600;
    color: #1D5FBF;
    margin-bottom: .5rem;
}
.mw-project-title {
    color: #0B2545;
    font-weight: 700;
    font-size: 1.25rem;
    line-height: 1.3;
    letter-spacing: -0.01em;
    margin-bottom: .5rem;
}
.mw-project-lede {
    color: #3B4A5A;
    font-size: 1rem;
    line-height: 1.55;
    margin: 0;
}
.mw-project-action {
    display: inline-block;
    margin-top: 1rem;
    font-size: .9375rem;
    font-weight: 600;
    color: #1D5FBF;
}
.mw-project-action-close { display: none; }
.mw-project[open] .mw-project-action-open { display: none; }
.mw-project[open] .mw-project-action-close { display: inline; }
.mw-project-body {
    padding: 0 1.75rem 1.75rem;
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem 2rem;
    border-top: 1px solid #EDF1F5;
    margin-top: 0;
    padding-top: 1.5rem;
}
@media (min-width: 640px) {
    .mw-project-body { grid-template-columns: 1fr 1fr; }
}
.mw-project-label {
    font-size: .75rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    font-weight: 600;
    color: #1D5FBF;
    margin-bottom: .4rem;
}
.mw-project-text {
    color: #2A3948;
    font-size: 1rem;
    line-height: 1.55;
    margin: 0;
}

/* Final CTA */
.mw-cta-band {
    background: #F5F7FA;
    padding: 3.5rem 0 5rem;
}
.mw-cta-panel {
    background: #0B2545;
    border-radius: 6px;
    padding: 2.75rem 1.75rem;
    text-align: center;
}
@media (min-width: 768px) {
    .mw-cta-panel { padding: 3.25rem 3rem; }
}
.mw-cta-heading {
    color: #ffffff;
    font-weight: 700;
    font-size: clamp(1.5rem, 2.2vw, 2rem);
    line-height: 1.25;
    letter-spacing: -0.01em;
}
.mw-cta-lede {
    color: #C6D2E0;
    font-size: 1.125rem;
    line-height: 1.55;
    margin: 1rem auto 0;
    max-width: 56ch;
}
.mw-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin-top: 1.75rem;
    background: #ffffff;
    color: #0B2545;
    font-weight: 600;
    font-size: 1rem;
    padding: .85rem 1.5rem;
    border-radius: 4px;
    transition: background-color .2s ease, color .2s ease, transform .2s ease;
}
.mw-cta-btn:hover,
.mw-cta-btn:focus-visible {
    background: #EAF0F7;
    color: #0B2545;
}
.mw-cta-btn:focus-visible {
    outline: 2px solid #ffffff;
    outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
    .mw-cta-btn,
    .mw-project { transition: none; }
}

/* Featured Work — screenshot alignment refinements */
.mw-project-summary {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-areas:
        "cat    action"
        "title  action";
    column-gap: 1.5rem;
    align-items: start;
    padding: 1.25rem 1.5rem;
}
.mw-project-cat { grid-area: cat; margin-bottom: .35rem; }
.mw-project-title { grid-area: title; margin-bottom: 0; font-size: 1.125rem; }
.mw-project-action {
    grid-area: action;
    align-self: start;
    margin-top: 0;
    white-space: nowrap;
    font-weight: 600;
}
.mw-project-action-open,
.mw-project-action-close { color: #1D5FBF; }

/* Copilot category variant */
.mw-project:nth-of-type(4) .mw-project-cat { color: #6B4BD8; }

/* Expanded body: pale blue-gray card interior */
.mw-project[open] .mw-project-body {
    background: #EEF2F7;
    border-top: 1px solid #E1E7EF;
    padding: 1.25rem 1.5rem 1.5rem;
    margin: 0 1rem 1rem;
    border-radius: 4px;
}
.mw-project[open] .mw-project-summary {
    padding-bottom: 1rem;
}

/* Final CTA — horizontal layout matching screenshot */
.mw-cta-panel {
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 2rem 1.75rem;
}
@media (min-width: 768px) {
    .mw-cta-panel {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 2rem;
        padding: 2.25rem 2.5rem;
    }
}
.mw-cta-lede { margin: .5rem 0 0; max-width: 62ch; }
.mw-cta-btn { margin-top: 0; flex-shrink: 0; }

/* =========================================================
   Modern Work — Connected-change transition + Selected work
   ========================================================= */
.mw-transition { background: #0B2545; color: #fff; }
.mw-transition-grid { display: flex; flex-direction: column; gap: 1.5rem; padding: 3.5rem 0; }
.mw-transition-eyebrow { font-size: .8125rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 700; color: #39c8ff; margin: 0 0 .75rem; }
.mw-transition-heading { color: #fff; font-weight: 700; font-size: clamp(1.75rem, 2.4vw, 2.25rem); line-height: 1.2; letter-spacing: -.01em; max-width: 720px; margin: 0; }
.mw-transition-lede { color: #C6D2E0; font-size: 1.0625rem; line-height: 1.6; max-width: 700px; margin: 1rem 0 0; }
.mw-transition-visual { display: none; }
.mw-signal { width: 100%; max-width: 420px; height: auto; }
@media (min-width: 1024px) {
    .mw-transition-grid { flex-direction: row; align-items: center; gap: 2rem; min-height: 210px; }
    .mw-transition-copy { flex: 0 0 52%; max-width: 52%; }
    .mw-transition-visual { display: flex; justify-content: flex-end; flex: 0 0 44%; }
}

.mw-selected { background: #F1F4F8; padding: 4rem 0; }
.mw-selected-lede { font-size: 1.0625rem; line-height: 1.6; color: #3B4A5A; max-width: 760px; }
.mw-eng-grid { display: grid; grid-template-columns: 1fr; gap: 1.25rem; margin-top: 2rem; }
@media (min-width: 1024px) { .mw-eng-grid { grid-template-columns: repeat(2, 1fr); } }
.mw-eng { background: #fff; border: 1px solid #E3E8EF; border-radius: 12px; box-shadow: 0 1px 2px rgba(11,37,69,.05); overflow: hidden; transition: border-color .2s ease, box-shadow .2s ease; }
.mw-eng.is-open { border-color: #C9D3E0; box-shadow: 0 2px 12px rgba(11,37,69,.08); }
.mw-eng-h { margin: 0; }
.mw-eng-btn { display: flex; width: 100%; align-items: flex-start; justify-content: space-between; gap: 1.25rem; text-align: left; background: transparent; border: 0; cursor: pointer; padding: 1.5rem; font: inherit; color: inherit; }
.mw-eng-btn:focus-visible { outline: 2px solid #0B2545; outline-offset: -3px; border-radius: 12px; }
.mw-eng-head { display: flex; flex-direction: column; gap: .4rem; }
.mw-eng-cat { font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: #1D5FBF; }
.mw-eng-title { font-size: 1.125rem; font-weight: 700; color: #0B2545; line-height: 1.3; letter-spacing: -.01em; }
.mw-eng-summary { font-size: 1rem; line-height: 1.55; color: #3B4A5A; }
.mw-eng-action { flex-shrink: 0; font-size: .9375rem; font-weight: 600; color: #1D5FBF; white-space: nowrap; }
.mw-eng-action-close { display: none; }
.mw-eng.is-open .mw-eng-action-open { display: none; }
.mw-eng.is-open .mw-eng-action-close { display: inline; }
.mw-eng:nth-of-type(4) .mw-eng-cat { color: #6B4BD8; }
.mw-eng-panel { max-height: 0; overflow: hidden; transition: max-height .3s ease; }
.mw-eng-detail { background: #EEF2F7; border-top: 1px solid #E1E7EF; padding: 1.25rem 1.5rem 1.5rem; margin: 0 1rem 1rem; border-radius: 8px; display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
.mw-eng-label { font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: #1D5FBF; margin: 0 0 .4rem; }
.mw-eng-text { color: #2A3948; font-size: 1rem; line-height: 1.55; margin: 0; }
@media (min-width: 768px) {
    .mw-eng-detail { grid-template-columns: 1fr 1fr 1fr; gap: 0; }
    .mw-eng-col { padding: 0 1.5rem; border-left: 1px solid #D8E0EA; }
    .mw-eng-col:first-child { padding-left: 0; border-left: 0; }
}
.mw-selected-cta { margin-top: 2.5rem; }
@media (prefers-reduced-motion: reduce) {
    .mw-eng, .mw-eng-panel { transition: none; }
}

/* Modern Workplace engagement accordion */
.mw-engagement-accordion {
    display: grid;
    grid-template-columns: 1fr;
    gap: .75rem;
    margin-top: 2rem;
}

.mw-engagement-item {
    overflow: hidden;
    border: 1px solid #DCE3EB;
    border-radius: 8px;
    background: #ffffff;
    transition: border-color .2s ease, background-color .2s ease;
}

.mw-engagement-item:hover,
.mw-engagement-item.is-open {
    border-color: #B8C7D8;
}

.mw-engagement-heading {
    margin: 0;
}

.mw-engagement-button {
    display: flex;
    width: 100%;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.35rem 1.5rem;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: background-color .2s ease;
}

.mw-engagement-button:hover {
    background: #F8FAFC;
}

.mw-engagement-button:focus-visible,
.mw-engagement-toggle:focus-visible {
    outline: 2px solid var(--sn-blue-500);
    outline-offset: -3px;
}

.mw-engagement-copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.mw-engagement-category,
.mw-engagement-stage-label {
    color: var(--sn-blue-500);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .14em;
    line-height: 1.4;
    text-transform: uppercase;
}

.mw-engagement-title {
    margin-top: .25rem;
    color: #0A1733;
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.mw-engagement-summary {
    margin-top: .45rem;
    color: #506078;
    font-size: 1rem;
    line-height: 1.55;
}

.mw-engagement-chevron {
    width: 1.25rem;
    height: 1.25rem;
    margin-top: .2rem;
    flex: 0 0 auto;
    color: #506078;
    transition: transform .2s ease;
}

.mw-engagement-chevron svg {
    display: block;
    width: 100%;
    height: 100%;
}

.mw-engagement-item.is-open .mw-engagement-chevron {
    transform: rotate(180deg);
}

.mw-engagement-panel {
    padding: 1.5rem;
    border-top: 1px solid #E2E8F0;
    background: #F8FAFC;
}

.mw-engagement-stages {
    display: grid;
    gap: .75rem;
}

.mw-engagement-stage {
    padding: 1rem 1.25rem;
    border-left: 4px solid;
}

.mw-engagement-stage.is-challenge {
    border-color: #C99A3D;
    background: #FBF6EA;
}

.mw-engagement-stage.is-challenge .mw-engagement-stage-label {
    color: #8A661D;
}

.mw-engagement-stage.is-work {
    border-color: var(--sn-blue-500);
    background: #EEF8FC;
}

.mw-engagement-stage.is-work .mw-engagement-stage-label {
    color: #0678AA;
}

.mw-engagement-stage.is-result {
    border-color: #00A38C;
    background: #ECF8F5;
}

.mw-engagement-stage.is-result .mw-engagement-stage-label {
    color: #087967;
}

.mw-engagement-stage-text {
    margin: .5rem 0 0;
    color: #334155;
    font-size: 1rem;
    line-height: 1.75;
}

.mw-engagement-toggle {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: 1.5rem auto 0;
    padding: .5rem;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: #0678AA;
    font: inherit;
    font-size: .875rem;
    font-weight: 700;
    cursor: pointer;
    transition: color .2s ease;
}

.mw-engagement-toggle:hover {
    color: #0A1733;
}

.mw-engagement-toggle[hidden] {
    display: none;
}

@media (max-width: 639.98px) {
    .mw-engagement-button { gap: 1rem; padding: 1.25rem; }
    .mw-engagement-panel { padding: 1rem; }
    .mw-engagement-stage { padding: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
    .mw-engagement-item,
    .mw-engagement-button,
    .mw-engagement-chevron,
    .mw-engagement-toggle { transition: none; }
}

/* =========================================================
   Capability cards — enriched content (Modern Work)
   ========================================================= */

/* Reusable solution-page hero hierarchy
   (Modern Workplace, Microsoft Security, AI & Cloud Innovation) */
.sol-hero-eyebrow {
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .22em;
    color: #39c8ff;
    margin: 0;
}
.sol-hero-title {
    color: #fff;
    font-weight: 800;
    letter-spacing: -.035em;
    line-height: 1.05;
    font-size: clamp(2.25rem, 4vw, 3rem);
    max-width: 680px;
    margin: 1rem 0 0;
}
.sol-hero-lede {
    color: #cdd9e6;
    font-size: 1rem;
    line-height: 1.65;
    max-width: 760px;
    margin: 1.25rem 0 0;
}

/* Capability section background + left-aligned intro */
.mw-cap-section {
    background:
        radial-gradient(circle at 86% 8%, rgba(7,151,213,0.07), transparent 34%),
        #f2f5f7;
    padding: 4rem 0 4.5rem;
}
@media (max-width: 767px) {
    .mw-cap-section { padding: 2.5rem 0 3rem; }
}
.mw-cap-intro { max-width: 760px; }
.mw-cap-eyebrow {
    font-size: .8125rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    font-weight: 700;
    color: #1D5FBF;
    margin: 0;
}
.mw-cap-heading {
    font-size: clamp(2rem, 2.4vw, 2.25rem);
    font-weight: 700;
    color: #0B2545;
    line-height: 1.2;
    letter-spacing: -.01em;
    margin: .75rem 0 0;
}
.mw-cap-intro-lede {
    font-size: 1rem;
    line-height: 1.6;
    color: #3B4A5A;
    margin: 1rem 0 0;
}

#capabilities .mw-cap-card {
    position: relative;
    overflow: hidden;
    padding: 1.75rem;
    gap: 0;
    height: 100%;
    --card-accent: var(--sn-blue-500);
    background: linear-gradient(145deg, #ffffff 0%, #fbfcfd 100%);
    border: 1px solid #d8e1e8;
    border-radius: 12px;
    box-shadow: 0 8px 22px rgba(7,23,43,0.07);
}
#capabilities .mw-cap-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--card-accent);
}
#capabilities .mw-cap-card:has(.mw-cap-icon-teal) { --card-accent: #00A38C; }
#capabilities .mw-cap-card:has(.mw-cap-icon-purple) { --card-accent: #7C3AED; }
@media (min-width: 1024px) {
    #capabilities .mw-cap-card { padding: 2rem; }
}
#capabilities .mw-cap-title {
    font-size: 1.125rem;
    margin-top: 0;
}
#capabilities .mw-cap-body {
    font-size: 1rem;
    color: #475569;
    line-height: 1.5;
    margin-top: .625rem;
}
#capabilities .mw-cap-includes-label {
    font-size: .75rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    font-weight: 700;
    color: #64748B;
    margin-top: 1.25rem;
    margin-bottom: 0;
}
#capabilities .mw-cap-list {
    list-style: none;
    padding: 0;
    margin: .625rem 0 0;
    border-top: none;
    margin-top: .625rem;
}
#capabilities .mw-cap-list li {
    font-size: .9375rem;
    color: #334155;
    line-height: 1.5;
    padding: .3125rem 0 .3125rem 1.375rem;
    position: relative;
}
#capabilities .mw-cap-list li::before { content: none; }
.mw-cap-bullet {
    position: absolute;
    left: 0;
    top: .6rem;
    width: .5rem;
    height: .5rem;
    border-radius: 9999px;
    background: #0492dc;
}
.mw-cap-bullet-blue { background: #0492dc; }
.mw-cap-bullet-teal { background: #0e9f8e; }
.mw-cap-bullet-purple { background: #7c3aed; }
.mw-cap-bullet-cyan { background: #25c6f7; }
#capabilities .mw-cap-insight {
    margin: 1.25rem 0 0;
    margin-top: auto;
    padding: 1rem;
    background: #eef3f7;
    border: 1px solid #dce5ec;
    border-radius: 7px;
    font-size: .875rem;
    line-height: 1.55;
    color: #24364d;
}
/* push insight to the bottom so cards align in each row */
#capabilities .mw-cap-list { margin-bottom: 1.25rem; }

/* Credibility statement below the grid */
.mw-cap-cred-line {
    display: block;
    width: 40px;
    height: 3px;
    border-radius: 2px;
    background: #4dd9f4;
    margin: 0 auto 1rem;
}
.mw-cap-cred {
    font-size: 1.0625rem;
    font-weight: 500;
    line-height: 1.6;
    color: #1b3a5c;
    margin: 0;
}

/* ==========================================================================
   Trusted Advisor page
   ========================================================================== */
.ta-page {
    --ta-navy-950: var(--sn-navy-950);
    --ta-navy-900: var(--sn-navy-900);
    --ta-navy-800: var(--sn-navy-800);
    --ta-navy-700: #16375c;
    --ta-ink: var(--sn-navy-900);
    --ta-slate: #52657b;
    --ta-paper: #f6f7f9;
    --ta-cyan: #39c8ff;
    --ta-blue: #078bd3;
    --ta-mint: #19d4b1;
    --ta-violet: #8c68ff;
    --ta-amber: var(--sn-amber-400);
    --ta-container: min(100% - 3rem, 1400px);
    color: var(--ta-ink);
}
.ta-page * { box-sizing: border-box; }
.ta-page .ta-container { width: var(--ta-container); margin: 0 auto; }
.ta-page section { position: relative; }

/* Eyebrows / headings */
.ta-eyebrow { margin: 0; font-size: .72rem; font-weight: 800; letter-spacing: .22em; text-transform: uppercase; }
.ta-eyebrow-cyan { color: var(--ta-cyan); }
.ta-eyebrow-blue { color: var(--ta-blue); }
.ta-h2 { margin: .6rem 0 0; font-size: clamp(1.9rem, 3.4vw, 2.9rem); font-weight: 800; letter-spacing: -.03em; line-height: 1.08; color: var(--ta-ink); }
.ta-lede { margin-top: 1.1rem; font-size: 1.075rem; line-height: 1.7; color: var(--ta-slate); }
.ta-on-dark { color: #e7eef6; }
.ta-on-dark .ta-h2 { color: #fff; }
.ta-on-dark .ta-lede { color: #b6c6d8; }

/* ---------- 1. HERO ---------- */
.ta-hero { overflow: hidden; background: var(--ta-navy-950); color: #fff; }
.ta-hero-media { position: absolute; inset: 0; background-color: var(--ta-navy-950); background-image: url('/images/trusted-advisor-hero.png'); background-size: cover; background-position: 58% center; background-repeat: no-repeat; }
.ta-hero-scrim { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(6,20,37,0.97) 0%, rgba(6,20,37,0.92) 42%, rgba(6,20,37,0.55) 66%, rgba(6,20,37,0.12) 100%); }
.ta-hero-scrim-mobile { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(6,20,37,0.96) 6%, rgba(6,20,37,0.35) 58%, rgba(6,20,37,0.12) 100%); display: none; }
.ta-hero-inner { position: relative; z-index: 2; display: flex; align-items: center; min-height: 320px; padding: 1rem 0; }
.ta-hero-copy { max-width: 40rem; }
.ta-hero h1 { margin: 1rem 0 0; font-size: clamp(2.25rem, 4vw, 3rem); font-weight: 800; letter-spacing: -.035em; line-height: 1.05; color: #fff; }
.ta-hero-lead { margin-top: 1.25rem; font-size: 1rem; line-height: 1.65; color: #cdd9e6; }
.ta-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-top: 1.9rem; }
.ta-btn-solid { display: inline-flex; align-items: center; gap: .5rem; border-radius: .625rem; background: #fff; color: var(--sn-navy-900); font-size: .9rem; font-weight: 700; padding: .8rem 1.25rem; text-decoration: none; transition: background .2s ease, transform .2s ease; }
.ta-btn-solid:hover { background: #eaf1f8; }
.ta-link-cyan { display: inline-flex; align-items: center; gap: .45rem; color: var(--ta-cyan); font-size: .9rem; font-weight: 700; text-decoration: none; transition: color .2s ease; }
.ta-link-cyan:hover { color: #fff; }
.ta-hero-foot { margin-top: 1.6rem; font-size: .85rem; color: #90a4ba; max-width: 34rem; }
.ta-hero-accent { position: absolute; left: 0; right: 0; bottom: 0; height: 4px; z-index: 3; background: linear-gradient(90deg, var(--ta-cyan) 0%, var(--ta-blue) 40%, var(--ta-violet) 72%, var(--ta-amber) 100%); }

/* SkyNorth brand gradient accent bar — durable class for RTE-authored content.
   Use: <div class="sns-accent-bar" aria-hidden="true"></div>
   Safe when inline styles get stripped by the Umbraco rich text editor. */
.sns-accent-bar {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 4px;
    z-index: 10;
    background: linear-gradient(90deg, #39c8ff 0%, #078bd3 40%, #8c68ff 72%, #ffb51b 100%) !important;
    pointer-events: none;
}
.ta-capsule { position: absolute; z-index: 2; right: 0; bottom: 2.25rem; display: inline-flex; gap: .35rem; align-items: center; padding: .5rem .85rem; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; background: rgba(6,20,37,.55); backdrop-filter: blur(4px); }
.ta-capsule span { font-size: .72rem; font-weight: 700; letter-spacing: .06em; color: #d7e3ef; }
.ta-capsule i { width: 4px; height: 4px; border-radius: 999px; background: var(--ta-cyan); display: inline-block; }
.ta-capsule i:nth-of-type(2) { background: var(--ta-blue); }
.ta-capsule i:nth-of-type(3) { background: var(--ta-violet); }

/* ---------- 2. WHY CONTINUITY ---------- */
.ta-paper-band { background: #fff; padding: 5rem 0; }
.ta-two-col { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: 3.5rem; align-items: start; }
.ta-rail { margin-top: 3.5rem; }
.ta-rail-line { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.75rem; }
.ta-rail-line::before { content: ""; position: absolute; top: 7px; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, var(--ta-cyan), var(--ta-blue) 40%, var(--ta-violet) 72%, var(--ta-amber)); border-radius: 2px; }
.ta-node { position: relative; padding-top: 1.75rem; }
.ta-node::before { content: ""; position: absolute; top: 0; left: 0; width: 16px; height: 16px; border-radius: 999px; background: var(--ta-navy-900); border: 3px solid var(--ta-cyan); }
.ta-node:nth-child(2)::before { border-color: var(--ta-blue); }
.ta-node:nth-child(3)::before { border-color: var(--ta-violet); }
.ta-node:nth-child(4)::before { border-color: var(--ta-amber); }
.ta-node h4 { margin: 0 0 .35rem; font-size: 1rem; font-weight: 800; letter-spacing: -.01em; }
.ta-node p { margin: 0; font-size: .9rem; line-height: 1.55; color: var(--ta-slate); }

/* ---------- 3. ONE CONNECTED TEAM (orbit + accordion) ---------- */
.ta-navy-band { background: radial-gradient(85% 85% at 32% 42%, #123153, var(--ta-navy-950) 72%); color: #fff; padding: 5.5rem 0; }
.ta-oct-grid { display: grid; grid-template-columns: minmax(0, 42fr) minmax(0, 58fr); gap: 4rem; align-items: start; margin-top: 2.75rem; }
.ta-orbit { position: relative; width: 100%; max-width: 380px; margin-inline: auto; aspect-ratio: 1; }
.ta-orbit svg { width: 100%; height: 100%; display: block; overflow: visible; }
.ta-orbit-core { position: absolute; inset: 0; display: grid; place-items: center; }
.ta-orbit-core span { max-width: 6.5rem; text-align: center; font-size: .66rem; font-weight: 800; letter-spacing: .1em; line-height: 1.35; text-transform: uppercase; color: #dbe7f4; }
.ta-dot { transition: r .3s ease, filter .3s ease; }
.ta-active-ring { opacity: 0; transition: opacity .3s ease, stroke .3s ease; }
@media (min-width: 901px) { .ta-orbit-col { position: sticky; top: 6rem; } }
@media (prefers-reduced-motion: reduce) { .ta-dot, .ta-active-ring, .ta-acc-panel, .ta-acc-item { transition: none !important; } }

/* Accordion */
.ta-acc { display: grid; gap: .75rem; }
.ta-acc-minilabel { display: none; margin: 0 0 1rem; font-size: .72rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--ta-cyan); }
.ta-acc-item { border: 1px solid rgba(255,255,255,.1); border-radius: .85rem; background: rgba(255,255,255,.02); overflow: hidden; transition: border-color .25s ease, background .25s ease; }
.ta-acc-item.is-open { background: rgba(255,255,255,.04); }
.ta-acc-item[data-accent="cyan"].is-open { border-color: rgba(56,189,248,.5); }
.ta-acc-item[data-accent="violet"].is-open { border-color: rgba(139,92,246,.5); }
.ta-acc-item[data-accent="teal"].is-open { border-color: rgba(32,214,181,.5); }
.ta-acc-item[data-accent="amber"].is-open { border-color: rgba(255,176,32,.5); }
.ta-acc-header { width: 100%; display: flex; align-items: center; gap: 1rem; min-height: 78px; padding: .95rem 1.25rem; background: transparent; border: 0; text-align: left; cursor: pointer; color: inherit; font: inherit; }
.ta-acc-header:focus-visible { outline: 2px solid var(--ta-cyan); outline-offset: -3px; border-radius: .85rem; }
.ta-acc-ico { flex: none; width: 2.6rem; height: 2.6rem; border-radius: .7rem; display: grid; place-items: center; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); font-size: 1.05rem; }
.ta-acc-item[data-accent="cyan"] .ta-acc-ico { color: #38BDF8; }
.ta-acc-item[data-accent="violet"] .ta-acc-ico { color: #8B5CF6; }
.ta-acc-item[data-accent="teal"] .ta-acc-ico { color: #20D6B5; }
.ta-acc-item[data-accent="amber"] .ta-acc-ico { color: var(--sn-amber-400); }
.ta-acc-htext { flex: 1 1 auto; min-width: 0; }
.ta-acc-title { display: block; margin: 0 0 .2rem; font-size: 1.05rem; font-weight: 700; color: #fff; }
.ta-acc-summary { display: block; margin: 0; font-size: .9rem; line-height: 1.45; color: #b6c6d8; }
.ta-acc-toggle { flex: none; width: 1.9rem; height: 1.9rem; border-radius: 999px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.22); color: #dbe7f4; font-size: 1.05rem; line-height: 1; }
.ta-acc-panel { overflow: hidden; max-height: 0; opacity: 0; transition: max-height .35s ease, opacity .3s ease; }
.ta-acc-item.is-open .ta-acc-panel { opacity: 1; }
.ta-acc-panel-inner { padding: 0 1.25rem 1.25rem 4.75rem; }
.ta-acc-intro { margin: 0 0 1rem; font-size: .95rem; line-height: 1.6; color: #c6d3e2; }
.ta-acc-cols { display: grid; grid-template-columns: 2fr 1fr; gap: 1.75rem; }
.ta-acc-label { margin: 0 0 .55rem; font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #9fb2c6; }
.ta-acc-list { margin: 0; padding: 0; list-style: none; display: grid; gap: .5rem; }
.ta-acc-list li { position: relative; padding-left: 1.15rem; font-size: .9375rem; line-height: 1.5; color: #cdd9e6; }
.ta-acc-list li::before { content: ""; position: absolute; left: 0; top: .5rem; width: 6px; height: 6px; border-radius: 999px; background: #7f93a8; }
.ta-acc-item[data-accent="cyan"] .ta-acc-list li::before { background: #38BDF8; }
.ta-acc-item[data-accent="violet"] .ta-acc-list li::before { background: #8B5CF6; }
.ta-acc-item[data-accent="teal"] .ta-acc-list li::before { background: #20D6B5; }
.ta-acc-item[data-accent="amber"] .ta-acc-list li::before { background: var(--sn-amber-400); }
.ta-acc-outcome { margin: 0; font-size: .9375rem; line-height: 1.55; color: #cdd9e6; }

/* ---------- 4. HOW THE RELATIONSHIP MOVES (timeline) ---------- */
.ta-offwhite-band { background: var(--ta-paper); padding: 5.5rem 0; }
.ta-time-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 3.5rem; align-items: start; }
.ta-time-intro { position: sticky; top: 6rem; }
.ta-timeline { position: relative; display: grid; gap: 2.25rem; padding-left: 2.75rem; }
.ta-timeline::before { content: ""; position: absolute; left: 13px; top: .4rem; bottom: .4rem; width: 2px; background: linear-gradient(180deg, var(--ta-cyan), var(--ta-violet) 55%, var(--ta-amber)); }
.ta-step { position: relative; }
.ta-step-num { position: absolute; left: -2.75rem; top: -.15rem; width: 28px; height: 28px; border-radius: 999px; display: grid; place-items: center; background: #fff; border: 2px solid var(--ta-blue); font-size: .8rem; font-weight: 800; color: var(--ta-ink); }
.ta-step:nth-child(2) .ta-step-num { border-color: var(--ta-violet); }
.ta-step:nth-child(3) .ta-step-num { border-color: var(--ta-mint); }
.ta-step:nth-child(4) .ta-step-num { border-color: var(--ta-amber); }
.ta-step-kicker { margin: 0; font-size: .72rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--ta-blue); }
.ta-step h4 { margin: .25rem 0 .4rem; font-size: 1.15rem; font-weight: 800; }
.ta-step p { margin: 0; font-size: .95rem; line-height: 1.65; color: var(--ta-slate); }

/* ---------- 5. THE BENCH (merged into off-white band) ---------- */
.ta-bench-inner { margin-top: 4rem; padding-top: 3.5rem; border-top: 1px solid rgba(10,26,47,.12); }
.ta-bench-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 3.5rem; align-items: start; }
.ta-rows-light .ta-row { border-color: rgba(10,26,47,.12); }
.ta-rows-light .ta-row-ico { background: #fff; border-color: rgba(10,26,47,.1); box-shadow: 0 1px 2px rgba(10,26,47,.06); }
.ta-rows-light .ta-row h4 { color: var(--ta-ink); }
.ta-rows-light .ta-row p { color: var(--ta-slate); }
/* expertise nested inside timeline Step 3 */
.ta-exp-list { margin: 1rem 0 0; display: grid; gap: .55rem; }
.ta-exp { display: flex; gap: .75rem; align-items: flex-start; padding: .7rem .85rem; border: 1px solid rgba(10,26,47,.12); border-radius: .6rem; background: #fff; box-shadow: 0 1px 2px rgba(10,26,47,.05); }
.ta-exp-ico { flex: none; width: 1.9rem; height: 1.9rem; border-radius: .45rem; display: grid; place-items: center; background: var(--ta-paper); font-size: .85rem; }
.ta-exp:nth-child(1) .ta-exp-ico { color: var(--ta-cyan); }
.ta-exp:nth-child(2) .ta-exp-ico { color: var(--ta-violet); }
.ta-exp:nth-child(3) .ta-exp-ico { color: var(--ta-mint); }
.ta-exp h5 { margin: 0 0 .15rem; font-size: .9rem; font-weight: 700; color: var(--ta-ink); }
.ta-exp p { margin: 0; font-size: .82rem; line-height: 1.5; color: var(--ta-slate); }

/* ---------- 6. PROOF + CTA ---------- */
.ta-proof-band { background: var(--ta-navy-900); color: #fff; padding: 4rem 0; }
.ta-proof-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3rem; align-items: center; }
.ta-video { overflow: hidden; border-radius: 1rem; border: 1px solid rgba(255,255,255,.12); box-shadow: 0 24px 60px rgba(0,0,0,.35); aspect-ratio: 16/9; }
.ta-video iframe { width: 100%; height: 100%; border: 0; display: block; }
.ta-video-cap { margin-top: .75rem; font-size: .82rem; color: #90a4ba; }

.ta-cta-band { position: relative; overflow: hidden; background: #F5F7FA; color: #07172B; padding: 6rem 0; text-align: center; border-top: 3px solid var(--sn-blue-500); }
.ta-cta-rings { position: absolute; inset: 0; display: grid; place-items: center; z-index: 0; opacity: .6; }
.ta-cta-rings span { position: absolute; border: 1px solid rgba(7,151,213,.18); border-radius: 999px; }
.ta-cta-rings span:nth-child(1) { width: 320px; height: 320px; }
.ta-cta-rings span:nth-child(2) { width: 560px; height: 560px; border-color: rgba(140,104,255,.16); }
.ta-cta-rings span:nth-child(3) { width: 820px; height: 820px; border-color: rgba(255,181,27,.14); }
.ta-cta-inner { position: relative; z-index: 1; max-width: 44rem; margin: 0 auto; }
.ta-cta-inner .ta-h2 { color: #07172B; }
.ta-cta-inner .ta-lede { color: #506078; }
.ta-cta-band .ta-btn-solid { margin-top: 1.9rem; }
.ta-cta-band .sns-header-pill { margin-top: 1.9rem; height: auto; padding: 0.95rem 1.5rem; font-size: 0.95rem; border-radius: 999px; }

/* ---------- responsive ---------- */
@media (max-width: 900px) {
    .ta-two-col, .ta-oct-grid, .ta-time-grid, .ta-bench-grid, .ta-proof-grid { grid-template-columns: 1fr; gap: 2.25rem; }
    .ta-time-intro { position: static; }
    .ta-hero-copy { max-width: 82%; }
    .ta-acc-cols { grid-template-columns: 1fr; gap: 1.25rem; }
    .ta-acc-panel-inner { padding-left: 1.25rem; }
}
@media (max-width: 620px) {
    .ta-page { --ta-container: min(100% - 2rem, 1400px); }
    .ta-rail-line { grid-template-columns: 1fr; gap: 0; }
    .ta-rail-line::before { display: none; }
    .ta-node { padding-top: 1rem; padding-left: 1rem; border-top: 3px solid var(--ta-cyan); margin-top: 1.25rem; }
    .ta-node:nth-child(2) { border-top-color: var(--ta-blue); }
    .ta-node:nth-child(3) { border-top-color: var(--ta-violet); }
    .ta-node:nth-child(4) { border-top-color: var(--ta-amber); }
    .ta-node::before { display: none; }
    .ta-hero { padding-top: 72px; }
    .ta-hero-media { background-position: 70% center; }
    .ta-hero-scrim { display: none; }
    .ta-hero-scrim-mobile { display: block; }
    .ta-hero-inner { align-items: flex-end; min-height: 300px; }
    .ta-hero-copy { max-width: 100%; }
    .ta-capsule { display: none; }
    .ta-orbit-col { display: none; }
    .ta-acc-minilabel { display: block; }
}
@media (prefers-reduced-motion: reduce) {
    .ta-page * { scroll-behavior: auto !important; }
}

/* =========================================================
   OUTER LINKEDIN SECTION
   ========================================================= */

.linkedin-feed-section {
    position: relative;
    isolation: isolate;
    overflow: hidden;

    padding: 72px 24px 88px;

    background:
        radial-gradient(
            circle at 82% 40%,
            rgba(7, 151, 213, 0.11),
            transparent 36%
        ),
        linear-gradient(
            180deg,
            #fbfcfd 0%,
            #f4f7fa 100%
        );
}


/* Cyan dot field along the outside edges */

.linkedin-feed-section::before {
    content: "";

    position: absolute;
    inset: 0;
    z-index: 0;

    pointer-events: none;

    background-image:
        radial-gradient(
            circle,
            rgba(7, 151, 213, 0.42) 1.25px,
            transparent 1.5px
        );

    background-position: left top;

    background-size: 22px 22px;

    opacity: 0.62;

    -webkit-mask-image:
        linear-gradient(
            90deg,
            #000 0%,
            rgba(0, 0, 0, 0.7) 7%,
            transparent 23%,
            transparent 77%,
            rgba(0, 0, 0, 0.7) 93%,
            #000 100%
        );

    mask-image:
        linear-gradient(
            90deg,
            #000 0%,
            rgba(0, 0, 0, 0.7) 7%,
            transparent 23%,
            transparent 77%,
            rgba(0, 0, 0, 0.7) 93%,
            #000 100%
        );
}


/* Soft cyan wash behind the widget */

.linkedin-feed-section::after {
    content: "";

    position: absolute;
    top: 120px;
    right: -160px;
    z-index: 0;

    width: 720px;
    height: 720px;

    pointer-events: none;

    background:
        radial-gradient(
            circle,
            rgba(7, 151, 213, 0.15) 0%,
            rgba(7, 151, 213, 0.06) 36%,
            transparent 70%
        );

    filter: blur(10px);
}


/* Keep section content above the decorative background */

.linkedin-feed-section > .container {
    position: relative;
    z-index: 1;

    width: min(100%, 1440px);
    margin-inline: auto;
}


/* Section heading */

.linkedin-feed-heading {
    max-width: 760px;
    margin-bottom: 36px;
}

.linkedin-feed-eyebrow {
    margin: 0 0 10px;

    color: var(--sn-blue-500);

    font-size: 0.875rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    line-height: 1.2;
    text-transform: uppercase;
}

.linkedin-feed-title {
    margin: 0;

    color: #07172b;

    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 750;
    letter-spacing: -0.035em;
    line-height: 1.08;
}

.linkedin-feed-description {
    max-width: 720px;
    margin: 14px 0 0;

    color: #506078;

    font-size: 1rem;
    line-height: 1.6;
}


/* Elfsight wrapper */

.linkedin-feed-widget {
    position: relative;

    border-radius: 18px;

    box-shadow: 0 24px 55px rgba(7, 23, 43, 0.13);
}


/* Remove spacing often added around the embed */

.linkedin-feed-widget iframe,
.linkedin-feed-widget .elfsight-app {
    display: block;
    width: 100%;
    margin: 0;
}


/* ---------- TABLET ---------- */

@media (max-width: 1024px) {
    .linkedin-feed-section {
        padding: 64px 20px 72px;
    }

    .linkedin-feed-heading {
        margin-bottom: 28px;
    }
}


/* ---------- MOBILE ---------- */

@media (max-width: 640px) {
    .linkedin-feed-section {
        padding: 48px 14px 56px;
    }

    .linkedin-feed-section::before {
        background-size: 18px 18px;
        opacity: 0.38;
    }

    .linkedin-feed-heading {
        margin-bottom: 24px;
    }

    .linkedin-feed-title {
        font-size: 2rem;
    }

    .linkedin-feed-description {
        font-size: 0.9375rem;
    }
}

/* =========================================================
   LINKEDIN WEBSITE SECTION
   Steel-slate background with corner dots
   ========================================================= */

section.linkedin-section.sns-section-soft {
    position: relative !important;
    isolation: isolate;
    overflow: hidden !important;

    padding-top: 72px !important;
    padding-bottom: 84px !important;

    background-color: #f7f9fb !important;

    background-image:
        radial-gradient(
            ellipse at 50% 46%,
            rgba(255, 255, 255, 0.98) 0%,
            rgba(251, 252, 253, 0.94) 36%,
            transparent 70%
        ),
        radial-gradient(
            ellipse at 82% 60%,
            rgba(201, 214, 226, 0.32) 0%,
            rgba(201, 214, 226, 0.12) 34%,
            transparent 65%
        ),
        linear-gradient(
            180deg,
            #fbfcfd 0%,
            #f0f3f6 100%
        ) !important;
}


/* ---------- TOP-LEFT DOT CLUSTER ---------- */

section.linkedin-section.sns-section-soft::before {
    content: "";

    position: absolute;
    top: -22px;
    left: -18px;
    z-index: 0;

    width: 430px;
    height: 390px;

    pointer-events: none;

    background-image:
        radial-gradient(
            circle,
            rgba(30, 94, 135, 0.68) 1.4px,
            transparent 1.7px
        );

    background-size: 18px 18px;

    opacity: 0.72;

    -webkit-mask-image:
        radial-gradient(
            ellipse at top left,
            #000 0%,
            rgba(0, 0, 0, 0.92) 22%,
            rgba(0, 0, 0, 0.48) 48%,
            transparent 74%
        );

    mask-image:
        radial-gradient(
            ellipse at top left,
            #000 0%,
            rgba(0, 0, 0, 0.92) 22%,
            rgba(0, 0, 0, 0.48) 48%,
            transparent 74%
        );
}


/* ---------- BOTTOM-RIGHT DOT CLUSTER ---------- */

section.linkedin-section.sns-section-soft::after {
    content: "";

    position: absolute;
    right: -22px;
    bottom: -34px;
    z-index: 0;

    width: 450px;
    height: 410px;

    pointer-events: none;

    background-image:
        radial-gradient(
            circle,
            rgba(94, 135, 163, 0.72) 1.4px,
            transparent 1.7px
        );

    background-size: 18px 18px;

    opacity: 0.72;

    -webkit-mask-image:
        radial-gradient(
            ellipse at bottom right,
            #000 0%,
            rgba(0, 0, 0, 0.92) 22%,
            rgba(0, 0, 0, 0.48) 48%,
            transparent 74%
        );

    mask-image:
        radial-gradient(
            ellipse at bottom right,
            #000 0%,
            rgba(0, 0, 0, 0.92) 22%,
            rgba(0, 0, 0, 0.48) 48%,
            transparent 74%
        );
}


/* ---------- CONTENT WIDTH AND LAYERING ---------- */

section.linkedin-section.sns-section-soft
    > .mx-auto.max-w-screen-2xl {
    position: relative;
    z-index: 1;

    width: min(100%, 1440px);
}


/* ---------- SECTION HEADING ---------- */

section.linkedin-section .linkedin-header-row {
    position: relative;
    z-index: 2;

    margin-bottom: 32px;
}

section.linkedin-section .linkedin-section-title {
    color: #07172b !important;
}

section.linkedin-section .linkedin-section-subtitle {
    color: #536579 !important;
}


/* Remove duplicate mt-8 gap before Elfsight */

section.linkedin-section .linkedin-header-row + .mt-8 {
    margin-top: 0 !important;
}


/* ---------- ELFSIGHT WRAPPER ---------- */

section.linkedin-section
    [class*="elfsight-app-"] {
    display: block;

    width: 100%;
    margin: 0;

    border-radius: 10px;

    filter:
        drop-shadow(0 18px 36px rgba(7, 23, 43, 0.06));
}


/* ---------- TABLET ---------- */

@media (max-width: 1024px) {
    section.linkedin-section.sns-section-soft {
        padding-top: 60px !important;
        padding-bottom: 70px !important;
    }

    section.linkedin-section .linkedin-header-row {
        margin-bottom: 26px;
    }

    section.linkedin-section.sns-section-soft::before,
    section.linkedin-section.sns-section-soft::after {
        opacity: 0.52;
    }
}


/* ---------- MOBILE ---------- */

@media (max-width: 640px) {
    section.linkedin-section.sns-section-soft {
        padding-top: 46px !important;
        padding-bottom: 54px !important;
    }

    section.linkedin-section .linkedin-header-row {
        margin-bottom: 22px;
    }

    section.linkedin-section.sns-section-soft::before {
        top: -20px;
        left: -80px;

        width: 300px;
        height: 280px;

        background-size: 16px 16px;
        opacity: 0.38;
    }

    section.linkedin-section.sns-section-soft::after {
        right: -90px;
        bottom: -30px;

        width: 320px;
        height: 300px;

        background-size: 16px 16px;
        opacity: 0.38;
    }
}

/* =========================================================
   Programs page (structured transformation initiatives)
   ========================================================= */

/* Hero */
.programs-hero {
    position: relative;
    height: 320px;
    min-height: 320px;
    background-color: var(--sn-navy-900);
    background-image: url("/images/programs-hero-maturity.png");
    background-repeat: no-repeat;
    background-position: right center;
    background-size: auto 100%;
}

.programs-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            90deg,
            rgba(1, 16, 40, 1) 0%,
            rgba(1, 16, 40, 0.98) 34%,
            rgba(1, 16, 40, 0.76) 52%,
            rgba(1, 16, 40, 0.08) 76%,
            rgba(1, 16, 40, 0) 100%
        );
    pointer-events: none;
}

.programs-hero::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 4px;
    z-index: 2;
    background: linear-gradient(90deg, #42C2F5 0%, var(--sn-blue-500) 40%, #7C3AED 72%, #F5A000 100%);
    pointer-events: none;
}

.programs-hero > div { position: relative; z-index: 1; }
.programs-hero-inner { display: flex; align-items: center; height: 320px; padding-top: 1rem; padding-bottom: 1rem; }

.pg-hero-eyebrow {
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .22em;
    color: #42C2F5;
    margin: 0;
}

.pg-hero-title {
    font-size: 2.25rem;
    line-height: 1.12;
    font-weight: 800;
    letter-spacing: -.01em;
    color: #fff;
    margin: 0;
}
@media (min-width: 768px) { .pg-hero-title { font-size: 3rem; } }

.pg-hero-lede {
    font-size: 1.125rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.75);
    margin: 0;
}

.pg-hero-proof {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.pg-hero-proof-item {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-size: .875rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.85);
}
.pg-hero-proof-ico {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    color: #42C2F5;
}

/* Maturity approach */
.pg-maturity { background: #F5F7FA; padding: 4rem 0; }
@media (min-width: 768px) { .pg-maturity { padding: 5rem 0; } }

.pg-eyebrow {
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .2em;
    color: var(--sn-blue-500);
    margin: 0;
}
.pg-eyebrow-onDark { color: #42C2F5; }

.pg-heading {
    font-size: 1.875rem;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: -.01em;
    color: #0A1733;
    margin: 0;
}
@media (min-width: 1024px) { .pg-heading { font-size: 2.25rem; } }
.pg-heading-onDark { color: #fff; }

.pg-intro { font-size: 1.0625rem; line-height: 1.65; color: #0A1733; margin: 0; }
.pg-intro-support { font-size: 1rem; line-height: 1.65; color: #506078; margin: 0; }
.pg-intro-onDark { color: rgba(255, 255, 255, 0.8); }

/* Connected three-stage progression */
.pg-progression { position: relative; margin-top: 3rem; display: grid; grid-template-columns: 1fr; gap: 2rem; }
.pg-progression-line { display: none; }

.pg-stage { position: relative; display: grid; grid-template-columns: auto 1fr; gap: 1.25rem; align-items: start; padding-left: .25rem; }
.pg-stage-marker {
    position: relative;
    z-index: 1;
    width: 64px;
    height: 64px;
    flex-shrink: 0;
    border-radius: 50%;
    background: #fff;
    border: 3px solid var(--pg-accent);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 10px rgba(10, 23, 51, .08);
}
.pg-stage-num { font-size: 1.375rem; font-weight: 800; color: var(--pg-accent); letter-spacing: -.02em; }
.pg-stage-body { padding-top: .35rem; }
.pg-stage-title {
    font-size: 1rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: #0A1733;
    margin: 0;
}
.pg-stage-subtitle { font-size: 1.0625rem; font-weight: 600; color: var(--pg-accent); margin: .25rem 0 0; }
.pg-stage-desc { font-size: 1rem; line-height: 1.6; color: #506078; margin: .5rem 0 0; max-width: 34ch; }

/* Mobile vertical connecting line on the left */
.pg-progression::before {
    content: "";
    position: absolute;
    left: 32px;
    top: 32px;
    bottom: 32px;
    width: 2px;
    background: linear-gradient(180deg, #F5A000 0%, #00A38C 50%, var(--sn-blue-500) 100%);
    opacity: .35;
}

@media (min-width: 900px) {
    .pg-progression {
        grid-template-columns: repeat(3, 1fr);
        gap: 2.5rem;
        align-items: start;
        margin-top: 4rem;
        padding-top: 1.5rem;
    }
    .pg-progression::before { display: none; }
    .pg-progression-line {
        display: block;
        position: absolute;
        left: 8%;
        right: 8%;
        top: 46px;
        height: 2px;
        background: linear-gradient(90deg, #F5A000 0%, #00A38C 52%, var(--sn-blue-500) 100%);
        opacity: .4;
        transform: rotate(-2.2deg);
        transform-origin: left center;
    }
    .pg-stage {
        grid-template-columns: 1fr;
        justify-items: center;
        text-align: center;
        gap: 1.25rem;
    }
    .pg-stage-body { padding-top: 0; }
    .pg-stage-desc { max-width: 30ch; margin-left: auto; margin-right: auto; }
    /* gentle ascending elevation */
    .pg-stage-2 { transform: translateY(-1.75rem); }
    .pg-stage-3 { transform: translateY(-3.5rem); }
}

/* Foundation reinforcing statement */
.pg-foundation-note {
    margin-top: 3rem;
    display: flex;
    align-items: flex-start;
    gap: .875rem;
    background: #E9EEF5;
    border: 1px solid #D7E0EC;
    border-radius: 10px;
    padding: 1rem 1.25rem;
    max-width: 760px;
}
@media (min-width: 900px) { .pg-foundation-note { margin-top: 1.5rem; } }
.pg-foundation-ico { width: 24px; height: 24px; flex-shrink: 0; color: var(--sn-blue-500); margin-top: .1rem; }
.pg-foundation-text { font-size: .9375rem; line-height: 1.6; color: #506078; margin: 0; }

/* Example programs (dark navy) */
.pg-programs { background: #07172B; padding: 4rem 0; }
@media (min-width: 768px) { .pg-programs { padding: 5rem 0; } }

.pg-program-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; align-items: stretch; }
@media (min-width: 768px) { .pg-program-grid { grid-template-columns: repeat(2, 1fr); } }

.pg-program-card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    background: var(--sn-navy-800);
    border: 1px solid #1C3A5C;
    border-radius: 12px;
    padding: 2rem;
    overflow: hidden;
}
@media (min-width: 768px) { .pg-program-card { padding: 2.25rem; } }
.pg-program-accent { position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--pg-card-accent); }
.pg-program-cat {
    font-size: .6875rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .16em;
    color: var(--pg-card-accent);
    margin-top: .25rem;
}
.pg-program-head { display: flex; align-items: center; gap: .625rem; margin: 1rem 0 .75rem; }
.pg-program-ico { color: var(--pg-card-accent); display: inline-flex; flex: 0 0 auto; }
.pg-program-ico svg { width: 28px; height: 28px; }
.pg-program-title { font-size: 1.1875rem; font-weight: 700; line-height: 1.3; color: #fff; letter-spacing: -.01em; margin: 0; }
.pg-program-desc { font-size: .9375rem; line-height: 1.6; color: #A8B8CC; margin: .625rem 0 0; }
.pg-program-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    margin-top: 1.5rem;
    padding: 1rem 0 0;
    border: 0;
    border-top: 1px solid rgba(255, 255, 255, .12);
    background: transparent;
    color: #fff;
    font: inherit;
    font-size: .9375rem;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
}
.pg-program-toggle svg { width: 1.125rem; height: 1.125rem; flex: 0 0 auto; color: var(--pg-card-accent); transition: transform .2s ease; }
.pg-program-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.pg-program-toggle:focus-visible { outline: 2px solid #42C2F5; outline-offset: 4px; }
.pg-program-detail { margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid rgba(255, 255, 255, .12); color: #A8B8CC; }
.pg-program-detail[hidden] { display: none; }
.pg-program-detail-group + .pg-program-detail-group { margin-top: 1.5rem; }
.pg-program-detail h4 { margin: 0 0 .75rem; color: #fff; font-size: 1rem; font-weight: 700; }
.pg-program-detail ul { margin: 0; padding-left: 1.25rem; }
.pg-program-detail li + li { margin-top: .4rem; }
.pg-program-maturity { display: grid; gap: 1rem; }
.pg-program-maturity h5 { margin: 0 0 .25rem; color: var(--pg-card-accent); font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.pg-program-maturity p { margin: 0; }

/* Integrated program outcomes (inside dark section) */
.pg-outcomes-band { margin-top: 3.5rem; padding-top: 2.5rem; border-top: 1px solid rgba(255, 255, 255, .1); }
.pg-outcome-row { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
.pg-outcome { position: relative; display: flex; align-items: center; gap: .75rem; }
.pg-outcome-ico { flex: 0 0 auto; color: #42C2F5; display: inline-flex; }
.pg-outcome-ico svg { width: 1.375rem; height: 1.375rem; display: block; }
.pg-outcome-title { font-size: 1.0625rem; font-weight: 600; line-height: 1.35; color: #fff; margin: 0; }
@media (min-width: 768px) {
    .pg-outcome-row { grid-template-columns: repeat(3, 1fr); gap: 0; }
    .pg-outcome { padding: 0 2rem; border-left: 1px solid rgba(255, 255, 255, .1); }
    .pg-outcome:first-child { padding-left: 0; border-left: 0; }
}

/* Final CTA */
.programs-final-cta { margin: 0; border-top: 3px solid var(--sn-blue-500); background: #F5F7FA; }
.programs-final-cta-pattern { opacity: .1; color: var(--sn-blue-500); }
.programs-final-cta-pattern svg { display: block; width: 100%; height: 100%; }
.programs-final-cta-pattern path { stroke: currentColor; stroke-width: 1.25; vector-effect: non-scaling-stroke; }
.programs-final-cta-btn { position: relative; z-index: 1; text-decoration: none; }

/* Privacy and AI Policy */
.pai-hero {
    padding: 54px 0 50px;
    border-bottom: 3px solid var(--sn-blue-500);
    background: linear-gradient(135deg, #07172B 0%, var(--sn-navy-800) 100%);
    color: #ffffff;
}

.pai-container {
    width: min(100% - 48px, 1280px);
    margin-inline: auto;
}

.pai-eyebrow,
.pai-toc-title {
    margin: 0 0 12px;
    color: #42C2F5;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .2em;
    text-transform: uppercase;
}

.pai-hero h1 {
    margin: 0;
    color: #ffffff;
    font-size: clamp(2.25rem, 4vw, 3.5rem);
    font-weight: 800;
    line-height: 1.08;
}

.pai-subtitle {
    max-width: 760px;
    margin: 16px 0 0;
    color: rgba(255, 255, 255, .78);
    font-size: clamp(1rem, 2vw, 1.2rem);
    line-height: 1.65;
}

.pai-effective {
    margin: 18px 0 0;
    color: rgba(255, 255, 255, .62);
    font-size: .9rem;
    font-weight: 600;
}

.pai-layout {
    display: grid;
    grid-template-columns: 240px minmax(0, 920px);
    justify-content: center;
    gap: 64px;
    padding-top: 64px;
    padding-bottom: 88px;
    background: #ffffff;
}

.pai-toc {
    position: sticky;
    top: 112px;
    align-self: start;
    padding: 22px;
    border: 1px solid #dbe3ec;
    border-radius: 12px;
    background: #f7f9fc;
}

.pai-toc-title {
    color: var(--sn-blue-500);
}

.pai-toc ol {
    margin: 0;
    padding-left: 1.15rem;
}

.pai-toc li + li {
    margin-top: 8px;
}

.pai-toc a {
    color: #40526a;
    font-size: .84rem;
    line-height: 1.35;
    text-decoration: none;
}

.pai-toc a:hover,
.pai-toc a:focus-visible {
    color: var(--sn-blue-500);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.pai-toc a:focus-visible {
    outline: 2px solid var(--sn-blue-500);
    outline-offset: 3px;
    border-radius: 2px;
}

.pai-content {
    width: 100%;
    max-width: 920px;
    color: #40526a;
    font-size: 1rem;
    line-height: 1.75;
}

.pai-content section {
    scroll-margin-top: 112px;
}

.pai-content section + section {
    margin-top: 46px;
    padding-top: 46px;
    border-top: 1px solid #e4eaf1;
}

.pai-content section:focus {
    outline: none;
}

.pai-content section:focus-visible {
    outline: 2px solid var(--sn-blue-500);
    outline-offset: 8px;
    border-radius: 4px;
}

.pai-content h2 {
    margin: 0 0 16px;
    color: #0A1733;
    font-size: clamp(1.45rem, 2.4vw, 1.85rem);
    font-weight: 750;
    line-height: 1.25;
}

.pai-content p {
    margin: 0;
}

.pai-content p + p,
.pai-content p + ul,
.pai-content ul + p {
    margin-top: 16px;
}

.pai-content ul {
    margin-bottom: 0;
    padding-left: 1.35rem;
}

.pai-content li + li {
    margin-top: 7px;
}

.pai-content li::marker {
    color: var(--sn-blue-500);
}

.pai-content strong {
    color: #0A1733;
}

.pai-content address {
    margin-top: 16px;
    color: #40526a;
    font-style: normal;
}

.pai-content a {
    color: #087FB1;
    font-weight: 600;
    text-underline-offset: 3px;
}

@media (max-width: 991.98px) {
    .pai-toc { display: none; }
    .pai-layout { grid-template-columns: minmax(0, 920px); gap: 0; }
}

@media (max-width: 767.98px) {
    .pai-container { width: min(100% - 32px, 1280px); }
    .pai-hero { padding: 42px 0 38px; }
    .pai-layout { padding-top: 44px; padding-bottom: 64px; }
    .pai-content section + section { margin-top: 36px; padding-top: 36px; }
}

/* Programs hero responsive */
@media (max-width: 900px) {
    .programs-hero {
        height: 320px;
        min-height: 320px;
        background-position: 78% center;
        background-size: auto 100%;
    }
    .programs-hero::before {
        background: linear-gradient(
            90deg,
            rgba(1, 16, 40, 1) 0%,
            rgba(1, 16, 40, 0.96) 58%,
            rgba(1, 16, 40, 0.5) 100%
        );
    }
}
@media (max-width: 640px) {
    .programs-hero {
        height: 320px;
        min-height: 320px;
        background-position: 68% center;
        background-size: auto 88%;
    }
    .programs-hero::before { background: rgba(1, 16, 40, 0.9); }
}

@media (prefers-reduced-motion: reduce) {
    .pg-program-toggle svg,
    .programs-final-cta-btn { transition: none; }
}

/* =========================================================
   Accelerators page (focused predefined engagements)
   ========================================================= */
.accelerators-hero {
    height: 320px;
    min-height: 320px;
}
.accelerators-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 82% 50%, rgba(7, 151, 213, .11), transparent 34%);
    pointer-events: none;
}
.acc-eyebrow { margin: 0; color: var(--sn-blue-500); font-size: .72rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.acc-eyebrow-dark { color: #42C2F5; }
.acc-hero-title { margin: 0; color: #fff; font-size: clamp(2.25rem, 4vw, 3rem); font-weight: 800; letter-spacing: -.025em; line-height: 1.06; }
.acc-hero-lede { margin: 0; color: rgba(255, 255, 255, .76); font-size: 1.125rem; line-height: 1.6; }
.acc-hero-graphic { justify-self: end; width: min(100%, 620px); opacity: .9; }
.acc-hero-graphic svg { display: block; width: 100%; height: auto; }
.acc-hero-grid path { stroke: rgba(66, 194, 245, .11); stroke-width: 1; stroke-dasharray: 3 8; }
.acc-hero-path { fill: none; stroke-width: 2; stroke-linecap: round; }
.acc-hero-path-blue { stroke: #42C2F5; }
.acc-hero-path-teal { stroke: #00A38C; }
.acc-hero-path-violet { stroke: #7C3AED; }
.acc-hero-endpoint-glow { fill: rgba(66, 194, 245, .12); }
.acc-hero-endpoint { fill: #42C2F5; }

.acc-model { background: #F5F7FA; padding: 4rem 0; }
.acc-heading { margin: 0; color: #0A1733; font-size: clamp(1.875rem, 3vw, 2.25rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.15; }
.acc-heading-dark { color: #fff; }
.acc-intro { margin: 0; color: #506078; font-size: 1.0625rem; line-height: 1.65; }
.acc-intro-dark { color: rgba(255, 255, 255, .76); }
.acc-accent-blue { --acc-accent: var(--sn-blue-500); --acc-card-accent: var(--sn-blue-500); }
.acc-accent-teal { --acc-accent: #00A38C; --acc-card-accent: #00A38C; }
.acc-accent-violet { --acc-accent: #7C3AED; --acc-card-accent: #7C3AED; }
.acc-accent-amber { --acc-accent: #F5A000; --acc-card-accent: #F5A000; }
.acc-progression { position: relative; display: grid; grid-template-columns: 1fr; gap: 2rem; margin-top: 3rem; }
.acc-progression::before { content: ""; position: absolute; top: 28px; bottom: 28px; left: 28px; width: 2px; background: linear-gradient(180deg, var(--sn-blue-500), #00A38C 50%, #7C3AED); opacity: .35; }
.acc-progression-line { display: none; }
.acc-step { position: relative; display: grid; grid-template-columns: auto 1fr; align-items: start; gap: 1.25rem; }
.acc-step-marker { position: relative; z-index: 1; display: flex; width: 56px; height: 56px; align-items: center; justify-content: center; border: 2px solid var(--acc-accent); border-radius: 10px; background: #fff; color: var(--acc-accent); font-size: 1.125rem; font-weight: 800; box-shadow: 0 2px 8px rgba(10, 23, 51, .06); }
.acc-step-body { padding-top: .25rem; }
.acc-step-title { margin: 0; color: #0A1733; font-size: 1rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.acc-step-desc { max-width: 34ch; margin: .5rem 0 0; color: #506078; font-size: 1rem; line-height: 1.6; }
.acc-value-strip { display: grid; grid-template-columns: 1fr; margin-top: 3rem; border: 1px solid #D7E0EC; border-radius: 10px; background: rgba(255, 255, 255, .65); }
.acc-value-item { display: flex; align-items: center; gap: .75rem; padding: 1rem 1.25rem; color: #0A1733; font-size: 1rem; font-weight: 700; }
.acc-value-item + .acc-value-item { border-top: 1px solid #D7E0EC; }
.acc-value-item svg { width: 1.375rem; height: 1.375rem; flex: 0 0 auto; color: var(--sn-blue-500); }

.acc-catalog { background: #07172B; padding: 4rem 0; }
.acc-catalog-grid { position: absolute; top: 0; bottom: 0; width: 18%; opacity: .12; background-image: linear-gradient(rgba(66, 194, 245, .28) 1px, transparent 1px), linear-gradient(90deg, rgba(66, 194, 245, .28) 1px, transparent 1px); background-size: 32px 32px; pointer-events: none; mask-image: linear-gradient(to bottom, transparent, #000 18%, #000 82%, transparent); }
.acc-catalog-grid-left { left: 0; mask-image: linear-gradient(to right, #000, transparent); }
.acc-catalog-grid-right { right: 0; mask-image: linear-gradient(to left, #000, transparent); }
.acc-card-grid { display: grid; grid-template-columns: 1fr; gap: 1.25rem; align-items: stretch; }
.acc-card { position: relative; display: flex; height: 100%; flex-direction: column; overflow: hidden; border: 1px solid #21405F; border-radius: 12px; background: var(--sn-navy-800); padding: 1.75rem; }
.acc-card-accent { position: absolute; inset: 0 0 auto; height: 3px; background: var(--acc-card-accent); }
.acc-card-head { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 1rem; }
.acc-card-icon { display: inline-flex; color: var(--acc-card-accent); }
.acc-card-icon svg { width: 3rem; height: 3rem; }
.acc-card-category { margin: 0 0 .35rem; color: var(--acc-card-accent); font-size: .6875rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.acc-card-title { margin: 0; color: #fff; font-size: 1.25rem; font-weight: 700; letter-spacing: -.01em; line-height: 1.3; }
.acc-card-desc { margin: 1.25rem 0 0; color: #B6C4D5; font-size: 1rem; line-height: 1.6; }
.acc-card-footer { display: grid; grid-template-columns: 1fr; gap: 1.25rem; margin-top: auto; padding-top: 1.5rem; border-top: 1px solid rgba(255, 255, 255, .12); }
.acc-card-label { margin: 0; color: var(--acc-card-accent); font-size: .6875rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.acc-card-value { margin: .4rem 0 0; color: #fff; font-size: .9375rem; line-height: 1.5; }
.acc-good-fit { margin-top: 3.5rem; padding-top: 2.5rem; border-top: 1px solid rgba(255, 255, 255, .12); }
.acc-good-fit-row { display: grid; grid-template-columns: 1fr; gap: 0; }
.acc-good-fit-item { display: flex; align-items: center; gap: .75rem; padding: 1rem 0; color: #fff; font-size: 1rem; font-weight: 600; }
.acc-good-fit-item + .acc-good-fit-item { border-top: 1px solid rgba(255, 255, 255, .1); }
.acc-good-fit-item svg { width: 1.25rem; height: 1.25rem; flex: 0 0 auto; color: #42C2F5; }

.accelerators-final-cta { margin: 0; border-top: 3px solid var(--sn-blue-500); background: #F5F7FA; }
.accelerators-final-pattern { color: var(--sn-blue-500); opacity: .1; }
.accelerators-final-pattern svg { display: block; width: 100%; height: 100%; }
.accelerators-final-pattern path { stroke: currentColor; stroke-width: 1.25; vector-effect: non-scaling-stroke; }
.acc-cta-heading { margin: 0; color: #0A1733; font-size: clamp(1.875rem, 3vw, 2.25rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.15; }
.acc-cta-lede { margin: 0; color: #506078; font-size: 1.0625rem; line-height: 1.65; }
.accelerators-final-btn { position: relative; z-index: 1; text-decoration: none; }

@media (min-width: 768px) {
    .acc-model, .acc-catalog { padding: 5rem 0; }
    .acc-progression { grid-template-columns: repeat(3, 1fr); gap: 2.5rem; margin-top: 3.5rem; padding-top: 0; }
    .acc-progression::before { display: none; }
    .acc-progression-line { display: block; position: absolute; top: 28px; right: 8%; left: 8%; height: 2px; background: linear-gradient(90deg, var(--sn-blue-500), #00A38C 50%, #7C3AED); opacity: .35; }
    .acc-step { grid-template-columns: 1fr; justify-items: center; gap: 1.25rem; text-align: center; }
    .acc-step-body { padding-top: 0; }
    .acc-step-desc { margin-right: auto; margin-left: auto; }
    .acc-value-strip { grid-template-columns: repeat(3, 1fr); }
    .acc-value-item { justify-content: center; }
    .acc-value-item + .acc-value-item { border-top: 0; border-left: 1px solid #D7E0EC; }
    .acc-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .acc-card { padding: 2rem; }
    .acc-card-footer { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .acc-good-fit-row { grid-template-columns: repeat(3, 1fr); }
    .acc-good-fit-item { padding: 0 2rem; }
    .acc-good-fit-item + .acc-good-fit-item { border-top: 0; border-left: 1px solid rgba(255, 255, 255, .1); }
    .acc-good-fit-item:first-child { padding-left: 0; }
}

@media (max-width: 767px) {
    .accelerators-hero { height: auto; min-height: 360px; padding: 3.5rem 0; }
    .accelerators-hero > div { height: auto; }
    .acc-hero-graphic { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .accelerators-final-btn { transition: none; }
}

/* =========================================================
   Custom Engagements page (tailored SOW-based projects)
   ========================================================= */
.custom-engagements-hero { height: 320px; min-height: 320px; overflow: hidden; background-color: #07172B; }
.custom-engagements-hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 82% 50%, rgba(7, 151, 213, .1), transparent 31%); pointer-events: none; }
.ce-eyebrow { margin: 0; color: var(--sn-blue-500); font-size: .72rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.ce-eyebrow-dark { color: #42C2F5; }
.ce-hero-title { max-width: 13ch; margin: 0; color: #fff; font-size: clamp(2.25rem, 4vw, 3rem); font-weight: 800; letter-spacing: -.025em; line-height: 1.06; }
.ce-hero-lede { margin: 0; color: rgba(255, 255, 255, .72); font-size: 1.125rem; line-height: 1.6; }
.ce-hero-graphic { width: min(78%, 500px); justify-self: end; opacity: .88; }
.ce-hero-graphic svg { display: block; width: 100%; height: auto; }
.ce-hero-connectors path { stroke: rgba(66, 194, 245, .34); stroke-width: 1.25; stroke-dasharray: 3 7; }
.ce-hero-inputs rect, .ce-hero-inputs circle, .ce-hero-inputs path, .ce-hero-assembly path { stroke-width: 1.5; }
.ce-stroke-blue { stroke: #42C2F5; }
.ce-stroke-teal { stroke: #00A38C; }
.ce-stroke-violet { stroke: #7C3AED; }
.ce-stroke-amber { stroke: #F5A000; }
.ce-hero-center { fill: #42C2F5; }

.ce-built-around { background: #F5F7FA; padding: 4rem 0; }
.ce-heading { margin: 0; color: #0A1733; font-size: clamp(1.875rem, 3vw, 2.25rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.15; }
.ce-heading-dark { color: #fff; }
.ce-intro { margin: 0; color: #506078; font-size: 1.0625rem; line-height: 1.65; }
.ce-intro-dark { color: rgba(255, 255, 255, .76); }
.ce-positioning { margin: 0; color: #0A1733; font-size: 1.25rem; font-weight: 650; line-height: 1.55; }
.ce-defined-note { display: inline-flex; align-items: center; gap: .65rem; border: 1px solid #CAD6E4; border-radius: 8px; padding: .75rem 1rem; color: #0A1733; font-size: .9375rem; font-weight: 700; }
.ce-defined-note svg { width: 1.25rem; height: 1.25rem; flex: 0 0 auto; color: var(--sn-blue-500); }
.ce-shaping-panel { overflow: hidden; border: 1px solid #21405F; border-radius: 12px; background: var(--sn-navy-800); }
.ce-panel-heading { margin: 0; padding: 1.25rem 1.5rem; border-bottom: 1px solid rgba(255, 255, 255, .12); color: #fff; font-size: .75rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.ce-quadrants { position: relative; display: grid; grid-template-columns: 1fr; }
.ce-quadrant { padding: 1.5rem; }
.ce-quadrant + .ce-quadrant { border-top: 1px solid rgba(255, 255, 255, .12); }
.ce-quadrant svg { width: 1.75rem; height: 1.75rem; color: var(--ce-accent); }
.ce-quadrant h3 { margin: .8rem 0 0; color: var(--ce-accent); font-size: .75rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.ce-quadrant p { margin: .45rem 0 0; color: #C0CCDA; font-size: 1rem; line-height: 1.5; }
.ce-quadrant-center { display: none; }
.ce-accent-blue { --ce-accent: var(--sn-blue-500); }
.ce-accent-teal { --ce-accent: #00A38C; }
.ce-accent-violet { --ce-accent: #7C3AED; }
.ce-accent-amber { --ce-accent: #F5A000; }

.ce-process { background: #07172B; padding: 4rem 0; }
.ce-process-outline { position: absolute; top: 0; bottom: 0; width: 18%; opacity: .1; background-image: linear-gradient(rgba(66, 194, 245, .28) 1px, transparent 1px), linear-gradient(90deg, rgba(66, 194, 245, .28) 1px, transparent 1px); background-size: 36px 36px; pointer-events: none; }
.ce-process-outline-left { left: 0; mask-image: linear-gradient(to right, #000, transparent); }
.ce-process-outline-right { right: 0; mask-image: linear-gradient(to left, #000, transparent); }
.ce-process-steps { position: relative; display: grid; grid-template-columns: 1fr; gap: 2rem; margin-top: 3rem; }
.ce-process-steps::before { content: ""; position: absolute; top: 34px; bottom: 34px; left: 34px; width: 2px; background: linear-gradient(180deg, var(--sn-blue-500), #00A38C 50%, #7C3AED); opacity: .35; }
.ce-process-line { display: none; }
.ce-process-step { position: relative; display: grid; grid-template-columns: auto 1fr; gap: 1.25rem; align-items: start; }
.ce-process-number { position: relative; z-index: 1; display: flex; width: 68px; height: 68px; align-items: center; justify-content: center; border: 2px solid var(--ce-accent); border-radius: 50%; background: #07172B; color: var(--ce-accent); font-size: 1.375rem; font-weight: 800; }
.ce-process-step h3 { margin: .35rem 0 0; color: #fff; font-size: 1rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.ce-process-step p { max-width: 35ch; margin: .5rem 0 0; color: #B6C4D5; font-size: 1rem; line-height: 1.6; }
.ce-principles { margin-top: 3.5rem; padding-top: 2.5rem; border-top: 1px solid rgba(255, 255, 255, .12); }
.ce-principles-grid { display: grid; grid-template-columns: 1fr; }
.ce-principle { display: grid; grid-template-columns: auto 1fr; gap: 1rem; padding: 1.35rem 0; }
.ce-principle + .ce-principle { border-top: 1px solid rgba(255, 255, 255, .1); }
.ce-principle svg { width: 1.75rem; height: 1.75rem; color: var(--ce-accent); }
.ce-principle h3 { margin: 0; color: #fff; font-size: 1.125rem; font-weight: 700; }
.ce-principle p { margin: .4rem 0 0; color: #AEBFD1; font-size: 1rem; line-height: 1.55; }
.ce-principle .ce-principle-fit { color: #fff; font-weight: 600; }

.custom-engagements-final-cta { margin: 0; border-top: 3px solid var(--sn-blue-500); background: #F5F7FA; }
.ce-final-pattern { color: var(--sn-blue-500); opacity: .1; }
.ce-final-pattern svg { display: block; width: 100%; height: 100%; }
.ce-final-pattern path { stroke: currentColor; stroke-width: 1.25; vector-effect: non-scaling-stroke; }
.ce-cta-heading { margin: 0; color: #0A1733; font-size: clamp(1.875rem, 3vw, 2.25rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.15; }
.ce-cta-lede { margin: 0; color: #506078; font-size: 1.0625rem; line-height: 1.65; }
.ce-final-btn { position: relative; z-index: 1; text-decoration: none; }

@media (min-width: 640px) {
    .ce-quadrants { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ce-quadrant:nth-child(even) { border-left: 1px solid rgba(255, 255, 255, .12); }
    .ce-quadrant:nth-child(2) { border-top: 0; }
    .ce-quadrant-center { display: block; position: absolute; z-index: 2; top: 50%; left: 50%; width: 12px; height: 12px; border: 2px solid #42C2F5; background: var(--sn-navy-800); transform: translate(-50%, -50%) rotate(45deg); }
}

@media (min-width: 768px) {
    .ce-built-around, .ce-process { padding: 5rem 0; }
    .ce-process-steps { grid-template-columns: repeat(3, 1fr); gap: 2rem; margin-top: 3.5rem; }
    .ce-process-steps::before { display: none; }
    .ce-process-line { display: block; position: absolute; top: 34px; right: 8%; left: 8%; height: 2px; background: linear-gradient(90deg, var(--sn-blue-500), #00A38C 50%, #7C3AED); opacity: .35; }
    .ce-process-step { grid-template-columns: 1fr; justify-items: center; gap: 1rem; text-align: center; }
    .ce-process-step p { margin-right: auto; margin-left: auto; }
    .ce-principles-grid { grid-template-columns: repeat(3, 1fr); }
    .ce-principle { padding: 0 2rem; }
    .ce-principle + .ce-principle { border-top: 0; border-left: 1px solid rgba(255, 255, 255, .1); }
    .ce-principle:first-child { padding-left: 0; }
}

@media (max-width: 767px) {
    .custom-engagements-hero { height: auto; min-height: 360px; padding: 3.5rem 0; }
    .custom-engagements-hero > div { height: auto; }
    .ce-hero-graphic { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .ce-final-btn { transition: none; }
}

/* =========================================================
   Events page (where to find SkyNorth next)
   ========================================================= */
.events-hero { height: 320px; min-height: 320px; overflow: hidden; background-color: #07172B; background-image: url("/images/events-hero-real-workshop.png"); background-repeat: no-repeat; background-position: right center; background-size: auto 100%; }
.events-hero::before { content: ""; position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, #07172B 0%, #07172B 48%, rgba(7, 23, 43, .9) 58%, rgba(7, 23, 43, .18) 78%, rgba(7, 23, 43, .08) 100%); pointer-events: none; }
.evt-eyebrow { margin: 0; color: var(--sn-blue-500); font-size: .72rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.evt-eyebrow-dark { color: #42C2F5; }
.evt-hero-title { max-width: 17ch; margin: 0; color: #fff; font-size: clamp(2.25rem, 4vw, 3rem); font-weight: 800; letter-spacing: -.025em; line-height: 1.06; }
.evt-hero-lede { max-width: 42rem; margin: 0; color: rgba(255, 255, 255, .76); font-size: 1.125rem; line-height: 1.6; }

.evt-upcoming { background: #F5F7FA; padding: 3.5rem 0; }
.evt-heading { margin: 0; color: #0A1733; font-size: clamp(1.875rem, 3vw, 2.25rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.15; }
.evt-intro { margin: 0; color: #506078; font-size: 1.0625rem; line-height: 1.65; }
.evt-list { border-top: 1px solid #D6DEE9; }
.evt-row { display: grid; grid-template-columns: 7.25rem 14.375rem minmax(0, 1fr) auto; align-items: center; gap: 1.75rem; padding: 1.5rem 0; border-bottom: 1px solid #D6DEE9; }
.evt-date { display: flex; min-height: 7rem; flex-direction: column; align-items: center; justify-content: center; border-right: 1px solid #D6DEE9; color: #0A1733; text-align: center; }
.evt-date-month { color: var(--sn-blue-500); font-size: .75rem; font-weight: 800; letter-spacing: .16em; }
.evt-date-day { margin-top: .2rem; font-size: 2rem; font-weight: 800; letter-spacing: -.035em; line-height: 1; }
.evt-date-year { margin-top: .35rem; color: #506078; font-size: .8125rem; font-weight: 700; }
.evt-image-wrap { position: relative; width: 100%; aspect-ratio: 23 / 14; overflow: hidden; border-radius: 12px; background: var(--sn-navy-800); }
.evt-image { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.evt-image-fallback { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .65rem; padding: 1rem; background: radial-gradient(circle at 75% 20%, rgba(66, 194, 245, .16), transparent 35%), linear-gradient(135deg, var(--sn-navy-800), #07172B); color: #BFD0E1; text-align: center; }
.evt-image-fallback[hidden] { display: none; }
.evt-image-fallback::before { content: ""; position: absolute; inset: 0; opacity: .15; background-image: linear-gradient(rgba(66, 194, 245, .32) 1px, transparent 1px), linear-gradient(90deg, rgba(66, 194, 245, .32) 1px, transparent 1px); background-size: 24px 24px; }
.evt-image-fallback svg, .evt-image-fallback span { position: relative; z-index: 1; }
.evt-image-fallback svg { width: 2rem; height: 2rem; color: #42C2F5; }
.evt-image-fallback span { font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.evt-status { margin: 0; color: var(--sn-blue-500); font-size: .6875rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.evt-title { margin: .35rem 0 0; color: #0A1733; font-size: 1.375rem; font-weight: 750; letter-spacing: -.015em; line-height: 1.25; }
.evt-location { display: flex; align-items: flex-start; gap: .45rem; margin: .5rem 0 0; color: #506078; font-size: 1rem; line-height: 1.45; }
.evt-location svg { width: 1.125rem; height: 1.125rem; flex: 0 0 auto; margin-top: .15rem; color: var(--sn-blue-500); }
.evt-description { max-width: 47rem; margin: .7rem 0 0; color: #506078; font-size: 1rem; line-height: 1.55; }
.evt-action-wrap { min-width: 8.5rem; text-align: right; }
.evt-action { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; border: 1px solid var(--sn-blue-500); border-radius: 8px; padding: .75rem 1rem; color: #076F9E; font-size: .9375rem; font-weight: 750; text-decoration: none; transition: background-color .2s ease, color .2s ease; }
.evt-action svg { width: 1.125rem; height: 1.125rem; }
.evt-action:hover { background: var(--sn-blue-500); color: #fff; }
.evt-action:focus-visible { outline: 2px solid var(--sn-blue-500); outline-offset: 3px; }
.evt-coming-soon { color: #68778C; font-size: .9375rem; font-weight: 650; }
.evt-empty { display: grid; grid-template-columns: auto 1fr; gap: 1rem; max-width: 50rem; margin-top: 2.5rem; border: 1px solid #C7DEEC; border-radius: 10px; background: #EAF5FB; padding: 1.25rem; }
.evt-empty[hidden] { display: none; }
.evt-empty > svg { width: 1.75rem; height: 1.75rem; color: var(--sn-blue-500); }
.evt-empty h3 { margin: 0; color: #0A1733; font-size: 1.125rem; font-weight: 750; }
.evt-empty p { margin: .35rem 0 0; color: #506078; font-size: 1rem; line-height: 1.55; }
.evt-empty a { display: inline-flex; margin-top: .65rem; color: #076F9E; font-weight: 750; text-decoration: none; }
.evt-empty a:hover { text-decoration: underline; }
.evt-empty a:focus-visible { outline: 2px solid var(--sn-blue-500); outline-offset: 3px; }

.evt-contact-band { margin: 0; background: #07172B; padding: 2.5rem 0; }
.evt-contact-heading { margin: 0; color: #fff; font-size: clamp(1.75rem, 3vw, 2.125rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.15; }
.evt-contact-copy { margin: 0; color: #B6C4D5; font-size: 1.0625rem; line-height: 1.6; }
.evt-contact-btn { text-decoration: none; }

@media (min-width: 768px) {
    .evt-upcoming { padding: 5rem 0; }
    .evt-contact-band { padding: 3rem 0; }
}

@media (max-width: 1023px) {
    .evt-row { grid-template-columns: 6rem 12rem minmax(0, 1fr); gap: 1.25rem; }
    .evt-action-wrap { grid-column: 3; min-width: 0; text-align: left; }
}

@media (max-width: 767px) {
    .events-hero { height: auto; min-height: 360px; padding: 3.5rem 0; }
    .events-hero > div { height: auto; }
    .events-hero::before { background: linear-gradient(90deg, rgba(7, 23, 43, .98), rgba(7, 23, 43, .88)); }
    .evt-row { grid-template-columns: 5.5rem minmax(0, 1fr); align-items: start; gap: 1rem; padding: 1.5rem 0; }
    .evt-date { grid-column: 1; grid-row: 1; min-height: 5.5rem; border-right: 1px solid #D6DEE9; }
    .evt-date-day { font-size: 1.5rem; }
    .evt-image-wrap { grid-column: 1 / -1; grid-row: 2; }
    .evt-details { grid-column: 2; grid-row: 1; }
    .evt-description { grid-column: 1 / -1; }
    .evt-action-wrap { grid-column: 1 / -1; grid-row: 4; }
}

@media (prefers-reduced-motion: reduce) {
    .evt-action,
    .evt-contact-btn { transition: none; }
}

/* Sponsorship page */
.sponsorship-hero {
    background-color: #07172B;
    background-image: url("/images/sponsorship.png");
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    border-bottom: 0;
}
.sponsorship-hero-overlay {
    background: linear-gradient(90deg, rgba(7, 23, 43, .98) 0%, rgba(7, 23, 43, .95) 48%, rgba(7, 23, 43, .45) 100%);
}
.sponsorship-inquiry::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle at 1px 1px, rgba(66, 194, 245, .55) 1px, transparent 0);
    background-size: 18px 18px;
    opacity: .25;
    mask-image: linear-gradient(to bottom left, #000, transparent 70%);
    pointer-events: none;
}
@media (max-width: 767px) {
    .sponsorship-hero { height: auto; min-height: 360px; padding: 3.5rem 0; }
}
@media (prefers-reduced-motion: reduce) {
    .sponsorship-hero ~ section a { transition: none; }
}

/* Local Government industry page */
.sled-hero { border-bottom: 0; }
.sled-hero-image { background-image: url("/images/industries/local-government-minneapolis-hero-2400x600.png"); }
.sled-hero-overlay { background: linear-gradient(90deg, rgba(7, 23, 43, .92) 0%, rgba(7, 23, 43, .72) 48%, rgba(7, 23, 43, .12) 100%); }
.sled-eyebrow { margin: 0; color: var(--sn-blue-500); font-size: .72rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.sled-eyebrow-dark { color: #42C2F5; }
.sled-hero-title { margin: 0; color: #fff; font-size: clamp(2.25rem, 4vw, 3rem); font-weight: 800; letter-spacing: -.025em; line-height: 1.06; }
.sled-hero-lede { max-width: 36rem; margin: 0; color: rgba(255, 255, 255, .8); font-size: 1.125rem; line-height: 1.6; }
.sled-positioning { background: #F5F7FA; padding: 4rem 0; }
.sled-heading { margin: 0; color: #0A1733; font-size: clamp(1.875rem, 3vw, 2.25rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.15; }
.sled-copy { margin: 0; color: #506078; font-size: 1.0625rem; line-height: 1.65; }
.sled-cloud-panel { box-shadow: 0 8px 24px rgba(7, 23, 43, .12); }
.sled-audiences { background: #fff; padding: 3.5rem 0; }
.sled-audience-heading { margin: 0; color: #0A1733; font-size: 1.75rem; font-weight: 800; letter-spacing: -.015em; }
.sled-audience-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sled-audience-item { display: flex; min-height: 6rem; flex-direction: column; align-items: center; justify-content: center; gap: .65rem; padding: 1rem; color: #0A1733; text-align: center; font-size: .9375rem; font-weight: 700; }
.sled-audience-item:nth-child(n+3) { border-top: 1px solid #DFE5ED; }
.sled-audience-item:nth-child(even) { border-left: 1px solid #DFE5ED; }
.sled-audience-item svg { width: 2rem; height: 2rem; color: var(--sn-blue-500); }
.sled-solutions { background: #F5F7FA; padding: 2rem 0; }
.sled-solution-grid { display: grid; grid-template-columns: 1fr; }
.sled-solution-item { display: grid; grid-template-columns: auto 1fr; gap: 1rem; padding: 1.5rem 0; }
.sled-solution-item + .sled-solution-item { border-top: 1px solid #D7E0EC; }
.sled-solution-item svg { width: 2.5rem; height: 2.5rem; color: var(--sled-accent); }
.sled-solution-item h2 { margin: 0; color: #0A1733; font-size: 1.125rem; font-weight: 750; }
.sled-solution-item p { margin: .4rem 0 0; color: #506078; font-size: 1rem; line-height: 1.55; }
.sled-accent-blue { --sled-accent: var(--sn-blue-500); }
.sled-accent-teal { --sled-accent: #00A38C; }
.sled-accent-violet { --sled-accent: #7C3AED; }
.sled-cta { margin: 0; }
.sled-cta a { text-decoration: none; }
@media (min-width: 768px) {
    .sled-audience-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .sled-audience-item:nth-child(even) { border-left: 0; }
    .sled-audience-item:nth-child(3n+2), .sled-audience-item:nth-child(3n+3) { border-left: 1px solid #DFE5ED; }
    .sled-audience-item:nth-child(n+4) { border-top: 1px solid #DFE5ED; }
    .sled-solution-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .sled-solution-item { padding: 1.5rem; }
    .sled-solution-item + .sled-solution-item { border-top: 0; border-left: 1px solid #D7E0EC; }
}
@media (min-width: 1024px) {
    .sled-audience-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .sled-audience-item, .sled-audience-item:nth-child(n+3), .sled-audience-item:nth-child(n+4) { border-top: 0; }
    .sled-audience-item:nth-child(n+2) { border-left: 1px solid #DFE5ED; }
}
@media (max-width: 767px) {
    .sled-hero { height: auto; min-height: 360px; background-position: 68% center; }
    .sled-hero-image { background-position: 68% center; }
    .sled-cloud-panel { padding: 1.5rem; }
    .sled-cloud-panel > div { flex-direction: column; }
    .sled-cta a { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .sled-cta a { transition: none; }
}

/* Healthcare industry page */
.hc-hero { border-bottom: 0; }
.hc-hero-image { background-image: url("/images/industries/healthcare-security-dlp-hero-2400x600.png"); }
.hc-hero-overlay { background: linear-gradient(90deg, rgba(7, 23, 43, .92) 0%, rgba(7, 23, 43, .7) 48%, rgba(7, 23, 43, .1) 100%); }
.hc-eyebrow { margin: 0; color: var(--sn-blue-500); font-size: .72rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.hc-eyebrow-dark { color: #42C2F5; }
.hc-hero-title { margin: 0; color: #fff; font-size: clamp(2.25rem, 4vw, 3rem); font-weight: 800; letter-spacing: -.025em; line-height: 1.06; }
.hc-hero-lede { max-width: 36rem; margin: 0; color: rgba(255, 255, 255, .8); font-size: 1.125rem; line-height: 1.6; }
.hc-positioning { background: #F5F7FA; padding: 4rem 0; }
.hc-heading { margin: 0; color: #0A1733; font-size: clamp(1.875rem, 3vw, 2.25rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.15; }
.hc-copy { margin: 0; color: #506078; font-size: 1.0625rem; line-height: 1.65; }
.hc-dlp-panel { box-shadow: 0 8px 24px rgba(7, 23, 43, .12); }
.hc-marker { display: inline-flex; border-radius: 999px; padding: .3rem .75rem; font-size: .6875rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.hc-marker-blue { background: rgba(7, 151, 213, .15); color: #42C2F5; }
.hc-marker-teal { background: rgba(0, 163, 140, .15); color: #6EE7D2; }
.hc-marker-light { background: rgba(255, 255, 255, .1); color: #fff; }
.hc-marker-arrow { color: rgba(255, 255, 255, .35); }
.hc-audiences { background: #fff; padding: 3.5rem 0; }
.hc-audience-heading { margin: 0; color: #0A1733; font-size: 1.75rem; font-weight: 800; letter-spacing: -.015em; }
.hc-audience-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hc-audience-item { display: flex; min-height: 6rem; flex-direction: column; align-items: center; justify-content: center; gap: .65rem; padding: 1rem; color: #0A1733; text-align: center; font-size: .9375rem; font-weight: 700; }
.hc-audience-item:nth-child(n+3) { border-top: 1px solid #DFE5ED; }
.hc-audience-item:nth-child(even) { border-left: 1px solid #DFE5ED; }
.hc-audience-item svg { width: 2rem; height: 2rem; color: var(--sn-blue-500); }
.hc-focus { background: #F5F7FA; padding: 2.5rem 0; }
.hc-focus-grid { display: grid; grid-template-columns: 1fr; }
.hc-focus-item { display: grid; grid-template-columns: auto 1fr; gap: 1rem; padding: 1.5rem 0; }
.hc-focus-item + .hc-focus-item { border-top: 1px solid #D7E0EC; }
.hc-focus-item svg { width: 2.5rem; height: 2.5rem; color: var(--hc-accent); }
.hc-focus-item h2 { margin: 0; color: #0A1733; font-size: 1.125rem; font-weight: 750; }
.hc-focus-item p { margin: .4rem 0 0; color: #506078; font-size: 1rem; line-height: 1.55; }
.hc-accent-blue { --hc-accent: var(--sn-blue-500); }
.hc-accent-teal { --hc-accent: #00A38C; }
.hc-accent-violet { --hc-accent: #7C3AED; }
.hc-compliance-note { margin: 1.5rem 0 0; padding-top: 1.25rem; border-top: 1px solid #D7E0EC; color: #607086; font-size: .9375rem; line-height: 1.6; }
.hc-cta { margin: 0; }
.hc-cta a { text-decoration: none; }
@media (min-width: 768px) {
    .hc-audience-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .hc-audience-item:nth-child(even) { border-left: 0; }
    .hc-audience-item:nth-child(3n+2), .hc-audience-item:nth-child(3n+3) { border-left: 1px solid #DFE5ED; }
    .hc-audience-item:nth-child(n+4) { border-top: 1px solid #DFE5ED; }
    .hc-focus-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .hc-focus-item { padding: 1.5rem; }
    .hc-focus-item + .hc-focus-item { border-top: 0; border-left: 1px solid #D7E0EC; }
}
@media (min-width: 1024px) {
    .hc-audience-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .hc-audience-item, .hc-audience-item:nth-child(n+3), .hc-audience-item:nth-child(n+4) { border-top: 0; }
    .hc-audience-item:nth-child(n+2) { border-left: 1px solid #DFE5ED; }
}
@media (max-width: 767px) {
    .hc-hero { height: auto; min-height: 360px; }
    .hc-hero-image { background-position: 70% center; }
    .hc-dlp-panel { padding: 1.5rem; }
    .hc-dlp-panel > div { flex-direction: column; }
    .hc-cta a { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .hc-cta a { transition: none; }
}

/* Construction and Engineering industry page */
.con-hero { border-bottom: 0; }
.con-hero-image { background-image: url("/images/industries/construction-engineering-project-optimization-hero-2400x600.png"); }
.con-hero-overlay { background: linear-gradient(90deg, rgba(7, 23, 43, .92) 0%, rgba(7, 23, 43, .7) 48%, rgba(7, 23, 43, .1) 100%); }
.con-eyebrow { margin: 0; color: var(--sn-blue-500); font-size: .72rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.con-eyebrow-dark { color: #42C2F5; }
.con-hero-title { margin: 0; color: #fff; font-size: clamp(2.25rem, 4vw, 3rem); font-weight: 800; letter-spacing: -.025em; line-height: 1.06; }
.con-hero-lede { max-width: 36rem; margin: 0; color: rgba(255, 255, 255, .8); font-size: 1.125rem; line-height: 1.6; }
.con-positioning { background: #F5F7FA; padding: 4rem 0; }
.con-heading { margin: 0; color: #0A1733; font-size: clamp(1.875rem, 3vw, 2.25rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.15; }
.con-copy { margin: 0; color: #506078; font-size: 1.0625rem; line-height: 1.65; }
.con-project-panel { box-shadow: 0 8px 24px rgba(7, 23, 43, .12); }
.con-marker { display: inline-flex; border-radius: 999px; padding: .3rem .75rem; font-size: .6875rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.con-marker-blue { background: rgba(7, 151, 213, .15); color: #42C2F5; }
.con-marker-teal { background: rgba(0, 163, 140, .15); color: #6EE7D2; }
.con-marker-light { background: rgba(255, 255, 255, .1); color: #fff; }
.con-marker-arrow { color: rgba(255, 255, 255, .35); }
.con-audiences { background: #fff; padding: 3.5rem 0; }
.con-audience-heading { margin: 0; color: #0A1733; font-size: 1.75rem; font-weight: 800; letter-spacing: -.015em; }
.con-audience-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.con-audience-item { display: flex; min-height: 6rem; flex-direction: column; align-items: center; justify-content: center; gap: .65rem; padding: 1rem; color: #0A1733; text-align: center; font-size: .9375rem; font-weight: 700; }
.con-audience-item:nth-child(n+3) { border-top: 1px solid #DFE5ED; }
.con-audience-item:nth-child(even) { border-left: 1px solid #DFE5ED; }
.con-audience-item svg { width: 2rem; height: 2rem; color: var(--sn-blue-500); }
.con-capabilities { background: #F5F7FA; padding: 2.5rem 0; }
.con-capability-grid { display: grid; grid-template-columns: 1fr; }
.con-capability-item { display: grid; grid-template-columns: auto 1fr; gap: 1rem; padding: 1.5rem 0; }
.con-capability-item + .con-capability-item { border-top: 1px solid #D7E0EC; }
.con-capability-item svg { width: 2.5rem; height: 2.5rem; color: var(--con-accent); }
.con-capability-item h2 { margin: 0; color: #0A1733; font-size: 1.125rem; font-weight: 750; }
.con-capability-item p { margin: .4rem 0 0; color: #506078; font-size: 1rem; line-height: 1.55; }
.con-accent-blue { --con-accent: var(--sn-blue-500); }
.con-accent-teal { --con-accent: #00A38C; }
.con-accent-violet { --con-accent: #7C3AED; }
.con-supporting-note { margin: 1.5rem 0 0; padding-top: 1.25rem; border-top: 1px solid #D7E0EC; color: #607086; font-size: .9375rem; line-height: 1.6; }
.con-cta { margin: 0; }
.con-cta a { text-decoration: none; }
@media (min-width: 768px) {
    .con-audience-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .con-audience-item:nth-child(even) { border-left: 0; }
    .con-audience-item:nth-child(3n+2), .con-audience-item:nth-child(3n+3) { border-left: 1px solid #DFE5ED; }
    .con-audience-item:nth-child(n+4) { border-top: 1px solid #DFE5ED; }
    .con-capability-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .con-capability-item { padding: 1.5rem; }
    .con-capability-item + .con-capability-item { border-top: 0; border-left: 1px solid #D7E0EC; }
}
@media (min-width: 1024px) {
    .con-audience-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .con-audience-item, .con-audience-item:nth-child(n+3), .con-audience-item:nth-child(n+4) { border-top: 0; }
    .con-audience-item:nth-child(n+2) { border-left: 1px solid #DFE5ED; }
}
@media (max-width: 767px) {
    .con-hero { height: auto; min-height: 360px; }
    .con-hero-image { background-position: 72% center; }
    .con-project-panel { padding: 1.5rem; }
    .con-project-panel > div { flex-direction: column; }
    .con-cta a { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .con-cta a { transition: none; }
}

/* Agribusiness industry page */
.ag-hero {
    position: relative;
    display: flex;
    min-height: 320px;
    align-items: center;
    overflow: hidden;
    background: #07172B;
    color: #ffffff;
    border-bottom: 0;
}
.ag-hero-image {
    position: absolute;
    inset: 0;
    background-color: #07172B;
    background-image: url("/images/industries/agribusiness-connected-operations-hero-2400x600.png");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
.ag-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(7, 23, 43, .97) 0%, rgba(7, 23, 43, .92) 42%, rgba(7, 23, 43, .55) 66%, rgba(7, 23, 43, .12) 100%);
}
.ag-hero-container {
    position: relative;
    z-index: 2;
    display: flex;
    width: min(100% - 3rem, 1280px);
    min-height: 320px;
    margin: 0 auto;
    padding: 1rem 0;
    align-items: center;
}
.ag-eyebrow { margin: 0; color: var(--sn-blue-500); font-size: .72rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.ag-eyebrow-dark { color: #42C2F5; }
.ag-hero-title { margin: 0; color: #fff; font-size: clamp(2.25rem, 4vw, 3rem); font-weight: 800; letter-spacing: -.025em; line-height: 1.06; }
.ag-hero-lede { max-width: 36rem; margin: 0; color: rgba(255, 255, 255, .8); font-size: 1.125rem; line-height: 1.6; }
.ag-positioning { background: #F5F7FA; padding: 4rem 0; }
.ag-heading { margin: 0; color: #0A1733; font-size: clamp(1.875rem, 3vw, 2.25rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.15; }
.ag-copy { margin: 0; color: #506078; font-size: 1.0625rem; line-height: 1.65; }
.ag-operations-panel { box-shadow: 0 8px 24px rgba(7, 23, 43, .12); }
.ag-marker { display: inline-flex; border-radius: 999px; padding: .3rem .75rem; font-size: .6875rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.ag-marker-blue { background: rgba(7, 151, 213, .15); color: #42C2F5; }
.ag-marker-green { background: rgba(77, 140, 87, .22); color: #9FD0A6; }
.ag-marker-light { background: rgba(255, 255, 255, .1); color: #fff; }
.ag-marker-arrow { color: rgba(255, 255, 255, .35); }
.ag-audiences { background: #fff; padding: 3.5rem 0; }
.ag-audience-heading { margin: 0; color: #0A1733; font-size: 1.75rem; font-weight: 800; letter-spacing: -.015em; }
.ag-audience-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ag-audience-item { display: flex; min-height: 6rem; flex-direction: column; align-items: center; justify-content: center; gap: .65rem; padding: 1rem; color: #0A1733; text-align: center; font-size: .9375rem; font-weight: 700; }
.ag-audience-item:nth-child(n+3) { border-top: 1px solid #DFE5ED; }
.ag-audience-item:nth-child(even) { border-left: 1px solid #DFE5ED; }
.ag-audience-item svg { width: 2rem; height: 2rem; color: #4D8C57; }
.ag-capabilities { background: #F5F7FA; padding: 2.5rem 0; }
.ag-capability-grid { display: grid; grid-template-columns: 1fr; }
.ag-capability-item { display: grid; grid-template-columns: auto 1fr; gap: 1rem; padding: 1.5rem 0; }
.ag-capability-item + .ag-capability-item { border-top: 1px solid #D7E0EC; }
.ag-capability-item svg { width: 2.5rem; height: 2.5rem; color: var(--ag-accent); }
.ag-capability-item h2 { margin: 0; color: #0A1733; font-size: 1.125rem; font-weight: 750; }
.ag-capability-item p { margin: .4rem 0 0; color: #506078; font-size: 1rem; line-height: 1.55; }
.ag-accent-blue { --ag-accent: var(--sn-blue-500); }
.ag-accent-green { --ag-accent: #4D8C57; }
.ag-accent-gold { --ag-accent: #A97719; }
.ag-supporting-note { margin: 1.5rem 0 0; padding-top: 1.25rem; border-top: 1px solid #D7E0EC; color: #607086; font-size: .9375rem; line-height: 1.6; }
.ag-cta { margin: 0; }
.ag-cta a { text-decoration: none; }
@media (min-width: 768px) {
    .ag-audience-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ag-audience-item:nth-child(even) { border-left: 0; }
    .ag-audience-item:nth-child(3n+2), .ag-audience-item:nth-child(3n+3) { border-left: 1px solid #DFE5ED; }
    .ag-audience-item:nth-child(n+4) { border-top: 1px solid #DFE5ED; }
    .ag-capability-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ag-capability-item { padding: 1.5rem; }
    .ag-capability-item + .ag-capability-item { border-top: 0; border-left: 1px solid #D7E0EC; }
}
@media (min-width: 1024px) {
    .ag-audience-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .ag-audience-item, .ag-audience-item:nth-child(n+3), .ag-audience-item:nth-child(n+4) { border-top: 0; }
    .ag-audience-item:nth-child(n+2) { border-left: 1px solid #DFE5ED; }
}
@media (max-width: 767px) {
    .ag-hero { height: auto; min-height: 360px; }
    .ag-hero-image { background-position: 72% center; }
    .ag-operations-panel { padding: 1.5rem; }
    .ag-operations-panel > div { flex-direction: column; }
    .ag-cta a { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .ag-cta a { transition: none; }
}
