/* ===========================================
   BASE STYLES (Replacing Squarespace defaults)
   =========================================== */

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    padding: 0;
    font-family: 'Roboto Condensed', sans-serif;
    background: #000;
    color: #fff;
    line-height: 1.6;
}

a {
    color: inherit;
    text-decoration: none;
}

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

/* ===========================================
   NAVIGATION (Static Site)
   =========================================== */
.sw-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background: rgba(0, 0, 0, 0.9);
    backdrop-filter: blur(10px);
    padding: 1rem 2rem;
}

.sw-nav {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.sw-logo {
    font-family: 'Roboto Condensed', sans-serif;
    font-size: 1.5rem;
    font-weight: 700;
    color: #fff;
}

.sw-nav-links {
    display: flex;
    gap: 2rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.sw-nav-links a {
    font-family: 'Roboto Condensed', sans-serif;
    font-size: 0.9rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #fff;
    transition: color 0.3s ease;
}

.sw-nav-links a:hover {
    color: #ff6a00;
}

/* ===========================================
   MAIN CONTENT AREA
   =========================================== */
.sw-main {
    padding-top: 80px;
    /* Account for fixed header */
    min-height: 100vh;
}

/* ===========================================
   FOOTER
   =========================================== */
.sw-footer {
    background: linear-gradient(135deg, #ff6a00 0%, #eb6e00 40%, #c85a00 100%);
    padding: 2rem;
    text-align: center;
}

.sw-footer-inner {
    max-width: 1200px;
    margin: 0 auto;
}

.sw-footer p {
    margin: 0;
    font-family: 'Roboto Condensed', sans-serif;
    font-size: 0.9rem;
    color: #fff;
}

/* Mobile footer alignment - match live site */
@media (max-width: 768px) {
    .sw-site-footer {
        text-align: left !important;
    }

    .sw-footer-content {
        flex-direction: column !important;
        text-align: left !important;
        align-items: flex-start !important;
        gap: 30px !important;
    }

    .sw-footer-tagline,
    .sw-footer-tagline p {
        text-align: left !important;
    }

    .sw-footer-right {
        align-items: flex-start !important;
        width: 100% !important;
    }

    .sw-footer-cta {
        align-self: flex-end !important;
    }

    .sw-footer-social {
        width: 100% !important;
        justify-content: flex-start !important;
    }

    .sw-footer-privacy {
        text-align: left !important;
    }
}

@media (max-width: 768px) {
    .sw-nav-links {
        display: none;
        /* Will need mobile menu */
    }
}



/* ============================================================
   1. GLOBAL VARIABLES & BASICS
   ============================================================ */
:root {
    /* No CSS variables defined - block closed */
}

/* Mobile overflow fix */
@media (max-width: 768px) {

    html,
    body,
    #siteWrapper,
    .site-wrapper,
    main,
    article {
        overflow-x: hidden !important;
        max-width: 100vw !important;
    }

    /* GLOBAL FIX: Unlock Grid Containers so full-width elements can breakout */
    .sqs-layout,
    .sqs-block,
    .sqs-col-12,
    .sqs-row,
    .Main {
        overflow: visible !important;
    }
}

html,
body {
    overscroll-behavior: none;
    hyphens: none !important;
    -webkit-hyphens: none !important;
    -ms-hyphens: none !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
}

/* GLOBAL RESET */
*,
*::before,
*::after {
    box-sizing: border-box !important;
}

/* ============================================================
   2. HERO GRADIENTS (BRINE 7.0 FIXED)
   ============================================================ */

/* 1. Set the Container to Handle Layers */
section.Intro.Intro--has-image,
.Banner,
.Index-page--has-image .Intro {
    position: relative !important;
    overflow: hidden !important;
    min-height: 180px;
    /* Prevent collapse during load */
}

/* 2. The Gradient Overlay (Top Layer) */
section.Intro.Intro--has-image::after,
.Banner::after,
.Index-page--has-image .Intro::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 2;
    background: linear-gradient(to bottom, #000 0%, rgba(0, 0, 0, 0.8) 15%, transparent 60%);
    opacity: 0.8;
}

/* 3. The Fog/Blur Overlay (Middle Layer) */
section.Intro.Intro--has-image::before,
.Banner::before,
.Index-page--has-image .Intro::before {
    content: "";
    position: absolute;
    top: -15%;
    left: 50%;
    transform: translateX(-50%);
    width: 120%;
    height: 130%;
    pointer-events: none;
    z-index: 1;
    background-image:
        radial-gradient(circle 950px at 15% -20%, rgba(0, 0, 0, 0.9) 20%, transparent 50%),
        radial-gradient(circle 870px at 85% -20%, rgba(0, 0, 0, 0.9) 20%, transparent 50%);
    filter: blur(60px);
    opacity: 0.7;
    will-change: transform, opacity;
    /* Hint to browser for GPU acceleration */
}

/* Homepage - taller header (near 16:9 aspect ratio) */
body.homepage section.Intro,
body.homepage .Banner,
body[class*="homepage"] section.Intro,
body[class*="collection-"] .Index-page:first-child .Intro {
    min-height: clamp(225px, 34vw, 525px) !important;
}

/* 4. FORCE CONTENT TO FRONT */
.Intro-content,
.Banner-content,
.sqs-layout {
    position: relative;
    z-index: 20 !important;
}

/* 5. FORCE IMAGE TO BACK */
.Intro-image,
.Banner-background {
    z-index: 0 !important;
}

/* ============================================================
   3. GALLERY HOVER EFFECTS (RESTORED)
   ============================================================ */
.sqs-gallery-block-grid {
    overflow: visible !important;
}

.sqs-gallery-block-grid .slide {
    background: transparent !important;
    transition: transform 0.3s ease, filter 0.3s ease;
    position: relative;
}

.sqs-gallery-block-grid .slide:hover {
    transform: translateY(-10px);
    filter: drop-shadow(0 8px 18px rgba(0, 0, 0, 0.35));
    z-index: 4;
}

.sqs-gallery-block-grid .slide:hover img {
    /* Empty - styles handled elsewhere */
}

/* FORCE HEADER HEIGHT STABILITY (Prevent Layout Shift) */
.Header,
.SiteHeader {
    min-height: 120px !important;
    /* Aggressive fix: Force root container to stay open */
}

.Header-inner {
    min-height: 120px !important;
    /* FIXED: Prevent collapse (was 0) */
    padding-top: 20px !important;
    padding-bottom: 20px !important;
}

#tagline-text {
    opacity: 0 !important;
    visibility: hidden !important;
    color: transparent !important;
    text-shadow: none !important;
}

/* ============================================================
   5. FOOTER STYLING
   ============================================================ */
footer,
.Footer,
.Footer-inner,
.Footer-blocks {
    background: linear-gradient(135deg, #ff6a00 0%, #eb6e00 40%, #c85a00 100%) !important;
    background-size: cover !important;
    background-repeat: no-repeat !important;
    background-attachment: fixed !important;
    color: #fff !important;
    text-align: left !important;
    border: none !important;
}

.Footer {
    min-height: auto !important;
    height: auto !important;
    position: relative !important;
    z-index: 5 !important;
    padding-top: 15px;
    padding-bottom: 0 !important;
}

.Footer-inner {
    padding-bottom: 35px !important;
}

.Footer-inner p {
    font-family: 'Roboto Condensed', sans-serif !important;
    font-weight: 400 !important;
    letter-spacing: .02em !important;
    line-height: 1.2 !important;
    font-size: clamp(0.7rem, 1.8vw, 1rem) !important;
    color: #fff !important;
}

.Footer-inner .sqs-svg-icon--wrapper svg path {
    fill: #fff !important;
}

/* ============================================================
   6. METRICS & TAGLINE TYPOGRAPHY
   ============================================================ */
.metrics-clean {
    max-width: var(--sw-max);
    padding: 0 var(--sw-gutter);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.metrics-clean p {
    display: flex;
    justify-content: center;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.3em;
    font-family: 'Roboto Condensed', sans-serif;
    font-weight: 700;
    font-size: clamp(26px, 3vw, 46px);
    line-height: 1.05;
    margin: 0.08em 0 !important;
    letter-spacing: .03em;
    text-align: center !important;
}

.metrics-clean .num {
    font-weight: 900;
    font-size: clamp(1.2em, 2.3vw, 1.6em);
    line-height: 1;
    display: inline-block;
    margin-right: 0.15em;
    font-variant-numeric: tabular-nums;
    text-align: center !important;
    margin: 0 auto !important;
    background: linear-gradient(90deg, #ff6a00, #ff9c33, #ff6a00);
    background-size: 300% 300%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: metricWave 5s ease-in-out infinite;
}

@keyframes metricWave {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

@media (max-width: 767px) {
    .metrics-clean {
        margin: 0.4rem auto 0.1rem !important;
        padding: 0 !important;
    }

    .metrics-clean p {
        flex-direction: column;
        align-items: center;
        line-height: 1.15;
        margin: 0.2em 0 !important;
    }

    .metrics-clean .num {
        font-size: clamp(1.45em, 5.5vw, 2em);
    }
}

.typewriter-wrapper {
    width: 100%;
    display: flex;
    justify-content: center;
    position: relative;
    z-index: 3;
    margin: 1em 0 1.2em !important;
}

.typewriter-container {
    display: flex;
    justify-content: center;
    align-items: center;
    max-width: 95vw;
    padding-inline: var(--sw-gutter);
    text-align: center;
    overflow: visible;
}

.highlight-text {
    display: inline-block;
    margin: 0 auto;
    border-radius: clamp(6px, 0.6vw, 12px);
    background: linear-gradient(135deg, rgba(255, 106, 0, .9), rgba(255, 160, 0, .95));
    box-shadow: 0 4px 15px rgba(255, 106, 0, .25), 0 -4px 10px rgba(255, 160, 0, .20);
    color: #111;
    font-family: 'Roboto Condensed', sans-serif;
    font-weight: 400;
    letter-spacing: .02em;
    line-height: 1.1;
    text-align: center;
    font-size: clamp(1.8rem, 2.8vw + 0.5rem, 3.3rem);
    padding: 0.45em 1.4em;
    white-space: nowrap;
    overflow-wrap: normal;
    opacity: 0;
    visibility: hidden;
    transform: translateY(25px);
    transition: opacity 1.2s ease, transform 1.2s ease;
}

.highlight-text.in-view {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

@media (min-width: 900px) {
    .highlight-text {
        border-right: 2px solid #000;
    }

    .highlight-text.is-typing {
        animation: typing-mask 3s steps(50, end) .3s forwards, blink-caret .8s step-end infinite alternate;
    }

    @keyframes typing-mask {
        0% {
            clip-path: inset(0 100% 0 0);
        }

        100% {
            clip-path: inset(0 0 0 0);
        }
    }

    @keyframes blink-caret {
        50% {
            border-color: transparent;
        }
    }
}

@media (max-width: 899px) {
    .highlight-text {
        border-right: none !important;
        white-space: normal !important;
        max-width: 90vw !important;
        font-size: clamp(1.8rem, 6vw + 0.2rem, 2.6rem) !important;
    }
}

.sw-tagline {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.tagline-inline {
    margin-top: -1.5em !important;
}

/* ============================================================
   7. WHO WE SERVE (Headline Cycle)
   ============================================================ */
.who-we-serve-section {
    text-align: center;
    padding: 4em 1em;
    font-family: 'Roboto Condensed', sans-serif;
    background: #fff;
    overflow: hidden;
}

.who-we-serve-section h2 {
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 800;
    color: #000;
    margin-bottom: 1.4em;
    line-height: 1.2;
}

.cycle-container {
    position: relative;
    display: inline-block;
    min-height: 2.5em;
    font-size: clamp(1.8rem, 3vw, 2.5rem);
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #ff6a00;
}

.cycle-container.animated {
    background: linear-gradient(90deg, #ff6a00, #ff9c33, #ff6a00);
    background-size: 400% 400%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: gradientWave 6s ease-in-out infinite;
}

@keyframes gradientWave {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

.cycle-container span {
    position: absolute;
    left: 0;
    right: 0;
    opacity: 0;
    transform: scale(.9);
    animation: fadeCycle 16s ease-in-out infinite;
}

.cycle-container span:nth-child(1) {
    animation-delay: 0s;
}

.cycle-container span:nth-child(2) {
    animation-delay: 2s;
}

.cycle-container span:nth-child(3) {
    animation-delay: 4s;
}

.cycle-container span:nth-child(4) {
    animation-delay: 6s;
}

.cycle-container span:nth-child(5) {
    animation-delay: 8s;
}

.cycle-container span:nth-child(6) {
    animation-delay: 10s;
}

.cycle-container span:nth-child(7) {
    animation-delay: 12s;
}

.cycle-container span:nth-child(8) {
    animation-delay: 14s;
}

@keyframes fadeCycle {

    0%,
    10% {
        opacity: 0;
        transform: scale(.9);
    }

    15%,
    25% {
        opacity: 1;
        transform: scale(1);
    }

    30%,
    100% {
        opacity: 0;
        transform: scale(.9);
    }
}

/* ============================================================
   8. SPECIFIC PAGES (Dark Mode & Link Gen)
   ============================================================ */
/* Soundwave Intelligence Engine */

/* Link Generator */

/* ============================================================
   9. MOBILE HERO HEADER
   ============================================================ */
@media (max-width: 600px) {
    section.Intro.Intro--has-image {
        min-height: 30vh;
    }

    .Mobile-leader {
        position: relative;
        z-index: 200;
    }

    .Mobile-bar,
    .Mobile-bar.Mobile-bar--top,
    .Mobile-bar-inner {
        position: absolute !important;
        top: 0;
        left: 0;
        right: 0;
        background: transparent !important;
        box-shadow: none !important;
        border: none !important;
    }

    .Mobile-bar-inner {
        padding-top: 18px !important;
        padding-bottom: 8px !important;
    }
}

@media (max-width: 600px) {
    section.Intro.Intro--has-image {
        min-height: 30vh;
    }

    .Mobile-leader {
        position: relative;
        z-index: 9998 !important;
    }

    .Mobile-bar,
    .Mobile-bar.Mobile-bar--top,
    .Mobile-bar-inner {
        position: absolute !important;
        top: 0;
        left: 0;
        right: 0;
        background: transparent !important;
        box-shadow: none !important;
        border: none !important;
        z-index: 9999 !important;
    }

    .Mobile-bar-inner {
        padding-top: 18px !important;
        padding-bottom: 8px !important;
    }

    section.Intro.Intro--has-image::before,
    section.Intro.Intro--has-image::after {
        z-index: 10 !important;
    }
}

@media (max-width: 640px) {
    section.Intro.Intro--has-image img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        object-position: 50% 85% !important;
        transform: scale(1.22) !important;
        max-width: none !important;
    }

    section.Intro.Intro--has-image {
        overflow: hidden !important;
    }
}

@media (max-width: 760px) {

    section.Intro.Intro--has-image,
    .Intro-background,
    .Intro-image,
    .Intro-imageWrapper {
        background-size: cover !important;
        background-position: 50% 85% !important;
        background-repeat: no-repeat !important;
        overflow: hidden !important;
    }

    section.Intro.Intro--has-image img {
        width: 100% !important;
        height: 125% !important;
        object-fit: cover !important;
        object-position: 50% 80% !important;
        transform: scale(1.35) !important;
        max-width: none !important;
    }

    section.Intro.Intro--has-image .Intro-image,
    section.Intro.Intro--has-image .Intro-imageWrapper {
        transform: none !important;
    }
}

/* ============================================================
   SAFE FULL-BLEED RESTORATION (LINK GEN & ENGINE)
   ============================================================ */

/* Link Generator: Force Full Width (Live Site Only) */

/* Soundwave Engine: Force Layout Reset (Live Site Only) */

/* ============================================================
   FIX: SOUNDWAVE ENGINE - FORCE TRANSPARENT LAYERS
   ============================================================ */

/* Ensure the body background color sticks */

/* ======================================================
   SOUNDWAVE ABOUT PAGE (WIP) - RESTORED STYLES
   ====================================================== */

/* --- 1. TYPOGRAPHY & UTILITIES --- */
.sw-block-container {
    width: 100%;
    min-width: 0;
    /* Best practices: 1200px max-width with 60px side padding */
    max-width: 1200px;
    padding: 3rem 60px 0;
    margin: 0 auto;
    position: relative;
    box-sizing: border-box;
    font-family: 'Roboto', sans-serif;
    color: #111;
    line-height: 1.4;
    font-size: clamp(1.1rem, 2.5vw, 1.2rem);
}

@media (max-width: 768px) {
    .sw-block-container {
        padding: 2rem 1.5rem !important;
        /* Reduced mobile padding */
        min-width: 0 !important;
        width: 100% !important;
        overflow-x: hidden !important;
    }
}

.sw-block-container * {
    box-sizing: border-box;
}

.sw-section-heading {
    font-family: 'Roboto Condensed', sans-serif;
    font-size: 2rem;
    font-weight: 800;
    text-transform: uppercase;
    color: #111;
    letter-spacing: 0.06em;
    margin-top: 2rem;
    margin-bottom: 2rem;
    position: relative;
    display: inline-block;
}

.sw-section-heading::after {
    content: '';
    display: block;
    width: 100px;
    height: 3px;
    background: linear-gradient(90deg, #ff6a00, #ff9c33, #ff6a00);
    margin-top: 2px;
}

/* --- 2. BADGES (What Sets Us Apart) --- */
.sw-badge-grid {
    display: flex;
    flex-wrap: wrap;
    max-width: 900px;
    gap: 1rem;
    margin-top: 2rem;
}

.sw-highlight-badge {
    display: inline-flex;
    align-items: center;
    background: #f7f7f7;
    border: 1px solid #e0e0e0;
    padding: 0.8rem 1.2rem;
    border-radius: 8px;
    font-family: 'Roboto', sans-serif;
    font-weight: 700;
    font-size: 0.95rem;
    color: #111;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.03);
    transition: 0.3s;
}

.sw-highlight-badge:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1), 0 0 10px rgba(247, 148, 29, 0.4);
    border-color: #ff6a00;
}

.sw-badge-icon {
    font-size: 1.2rem;
    margin-right: 10px;
}

/* ======================================================
   UPDATED SECTIONS (Paste below the Badges section)
   ====================================================== */

/* --- 3. CORE SERVICES PILLARS (Flexbox Fix for 5 items) --- */
.sw-verticals-wrapper {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem;
    margin-bottom: 2.5rem;
    width: 100%;
}

.sw-pillar-card {
    background: #080808;
    color: #fff;
    padding: 2.5rem 1rem !important;
    position: relative;
    overflow: hidden;
    transition: 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
    display: flex;
    flex-direction: column;
    justify-content: space-between !important;
    align-items: center;
    text-align: center;
    flex: 0 1 180px;
    min-width: 160px;
    height: 400px;
    border-radius: 25px;
    z-index: 1;
}

/* Medium screens: force 3 columns */
@media (max-width: 1100px) and (min-width: 601px) {
    .sw-verticals-wrapper {
        display: grid !important;
        grid-template-columns: repeat(3, 1fr) !important;
        flex-wrap: unset !important;
    }

    .sw-pillar-card {
        flex: unset !important;
        min-width: unset !important;
        width: 100% !important;
        height: 380px !important;
    }
}

/* Boosted Grid Visibility on Hover */
.sw-pillar-card:hover .sw-grid-plane {
    /* CHANGED: Increased from 0.6 to 0.9 for high visibility */
    opacity: 0.9;
    /* CHANGED: Increased color alpha from 0.5 to 0.85 (Stronger Orange Lines) */
    background-image: linear-gradient(rgba(255, 95, 0, 1) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 95, 0, 0.85) 1px, transparent 1px);
    animation: swTechnoGridScroll 1s linear infinite;
}

/* 3D Grid & Glow Effects */
.sw-grid-engine {
    position: absolute;
    inset: 1px;
    border-radius: 24px;
    overflow: hidden;
    z-index: 1;
    background: #080808;
    perspective: 400px;
}

.sw-grid-plane {
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background-image: linear-gradient(rgba(255, 255, 255, 0.15) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.15) 1px, transparent 1px);
    background-size: 40px 40px;
    transform: rotateX(50deg);
    transform-origin: 50% 50%;
    opacity: 0.2;
    transition: opacity 0.5s ease, background-image 0.5s ease;
    pointer-events: none;
}

.sw-grid-vignette {
    position: absolute;
    inset: 0;
    z-index: 2;
    background: radial-gradient(circle at center, transparent 30%, #080808 95%);
    pointer-events: none;
}

.sw-scanlines {
    position: absolute;
    inset: 0;
    z-index: 3;
    pointer-events: none;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0) 50%, rgba(0, 0, 0, 0.5) 50%, rgba(0, 0, 0, 0.5));
    background-size: 100% 4px;
    opacity: 0;
    transition: opacity 0.4s;
}

.sw-pillar-card:hover .sw-grid-plane {
    opacity: 0.6;
    background-image: linear-gradient(rgba(255, 95, 0, 0.5) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 95, 0, 0.5) 1px, transparent 1px);
    animation: swTechnoGridScroll 1s linear infinite;
}

@keyframes swTechnoGridScroll {
    0% {
        background-position: 0 0;
    }

    100% {
        background-position: 0 40px;
    }
}

.sw-pillar-glow {
    position: absolute;
    inset: 0;
    z-index: 4;
    pointer-events: none;
    border-radius: 25px;
    opacity: 0;
    transition: opacity 0.4s;
    padding: 2px;
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
}

.sw-pillar-glow::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: conic-gradient(from 0deg, transparent 0%, #ff6a00 10%, #ff8c33 20%, transparent 30%, #ff6a00 40%, #ff8c33 50%, transparent 60%, #ff6a00 70%, #ff8c33 80%, transparent 90%, transparent 100%);
    animation: swRotateSimple 4s linear infinite;
}

.sw-pillar-card:hover .sw-pillar-glow {
    opacity: 1;
}

@keyframes swRotateSimple {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

.sw-pillar-icon {
    width: 60px;
    height: 60px;
    fill: none;
    stroke: #fff;
    stroke-width: 1.5;
    margin-bottom: 2rem;
    transition: 0.4s;
    opacity: 0.8;
    position: relative;
    z-index: 5;
    margin-top: auto !important;
}

.sw-pillar-card:hover .sw-pillar-icon {
    stroke: #ff6a00;
    transform: scale(1.2);
    opacity: 1;
    filter: drop-shadow(0 0 10px #ff6a00);
}

.sw-pillar-title {
    font-family: 'Roboto Condensed', sans-serif;
    font-size: 1.15rem !important;
    /* Reduced from 1.45rem for long titles */
    color: #fff;
    font-weight: 600;
    text-transform: uppercase;
    line-height: 1.2 !important;
    margin-bottom: 1.5rem !important;
    position: relative;
    z-index: 5;
    text-shadow: 0 4px 10px rgba(0, 0, 0, 0.8);
    overflow-wrap: break-word;
    word-wrap: break-word;
    hyphens: auto;
}

.sw-deck-btn {
    display: inline-block;
    background: #000;
    color: rgba(255, 255, 255, 0.3);
    border: 1px solid rgba(255, 255, 255, 0.15);
    padding: 0.8rem 1.5rem;
    font-family: 'Roboto Condensed', sans-serif;
    font-size: 0.9rem;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-decoration: none;
    border-radius: 15px;
    z-index: 10;
    position: relative;
    transition: all 0.4s;
    overflow: hidden;
    margin-bottom: auto !important;
}

.sw-pillar-card:hover .sw-deck-btn {
    color: #ff6a00;
    border-color: #ff6a00;
    background: #000;
    box-shadow: 0 0 15px rgba(255, 95, 0, 0.2);
}

.sw-deck-btn:hover {
    background: #ff6a00 !important;
    color: #000 !important;
    border-color: #ff6a00 !important;
    box-shadow: 0 0 30px rgba(255, 95, 0, 0.6) !important;
}

/* --- 4. HIGHLIGHT BOX --- */
.sw-highlight-box {
    max-width: 900px;
    justify-content: center;
    margin: 1rem auto 5rem;
    background: #f9f9f9;
    border-radius: 8px;
    padding: 3rem;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.05);
    text-align: left;
    position: relative;
    padding-left: 3.5rem;
}

.sw-highlight-box::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 6px;
    background: linear-gradient(90deg, #ff6a00, #ff9c33, #ff6a00);
    background-size: 200% 200%;
    animation: swShimmerVertical 3s linear infinite;
    border-radius: 8px 0 0 8px;
}

.sw-highlight-title {
    font-family: 'Roboto Condensed', sans-serif;
    font-size: 1.4rem;
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 1rem;
    display: block;
}

@keyframes swShimmerVertical {
    0% {
        background-position: 50% 0%;
    }

    50% {
        background-position: 50% 100%;
    }

    100% {
        background-position: 50% 0%;
    }
}

/* Intro text styling for About page */
.sw-intro-grid {
    margin-bottom: 1.5rem;
}

/* About Hero Row - Text Left, Carousel Right */
.sw-about-hero-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    margin-bottom: 0.5rem;
    align-items: start;
}

.sw-about-text-col {
    display: flex;
    flex-direction: column;
}

.sw-about-carousel-col {
    position: relative;
}

/* About Carousel */
.sw-about-carousel {
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    aspect-ratio: 4/5;
    background: #0a0a0a;
}

.sw-about-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 0.8s ease;
}

.sw-about-slide.active {
    opacity: 1;
}

.sw-about-slide-image {
    position: absolute;
    inset: 0;
    overflow: hidden;
}

.sw-about-slide-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sw-about-slide-image::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 35%;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.7) 0%, transparent 100%);
    z-index: 1;
    pointer-events: none;
}

.sw-about-slide-image::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 35%;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, transparent 100%);
    z-index: 1;
    pointer-events: none;
}

.sw-about-slide-stat {
    position: absolute;
    top: 2rem;
    left: 2rem;
    z-index: 2;
    text-align: left;
}

.sw-about-slide-stat .sw-stat-number {
    display: block;
    font-family: 'Roboto Condensed', sans-serif;
    font-size: clamp(3rem, 8vw, 5rem);
    font-weight: 900;
    color: #ff6a00;
    line-height: 1;
    margin-bottom: 0.5rem;
}

.sw-about-slide-stat .sw-stat-label {
    display: block;
    font-size: 0.9rem;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 0.15em;
}

.sw-about-slide-stat .sw-slide-kicker {
    display: block;
    font-size: 0.85rem;
    color: #ff6a00;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

/* Bottom kicker positioning */
.sw-about-slide-kicker-top {
    position: absolute;
    bottom: 1.5rem;
    right: 1.5rem;
    z-index: 2;
    display: inline-block !important;
    width: fit-content !important;
    font-family: 'Roboto Condensed', sans-serif;
    font-size: clamp(0.75rem, 1.2vw, 1rem);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #ff6a00;
    padding: 0.3rem 0.8rem;
    background: rgba(255, 106, 0, 0.15);
    border-radius: 4px;
}

/* Mobile: stack columns */
@media (max-width: 768px) {
    .sw-about-hero-row {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .sw-about-carousel {
        aspect-ratio: 4/3;
    }
}

/* Keep old two-col for backward compat */
.sw-intro-two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    margin-bottom: 2rem;
    align-items: stretch;
}

.sw-intro-col {
    display: flex;
    flex-direction: column;
    height: 100%;
    flex-grow: 1;
}

.sw-intro-text {
    max-width: 100%;
}

.sw-intro-text p {
    font-size: 1.05rem;
    line-height: 1.5;
    color: #334155;
    margin-bottom: 0.5rem;
}

.sw-intro-text p:last-child {
    margin-bottom: 0.5rem;
}

.sw-intro-text strong {
    color: #1e293b;
    font-weight: 600;
}

/* Stat blocks */
.sw-stat-block {
    margin-top: auto;
    padding: 1.5rem;
    padding-top: 2rem;
    background: #080808;
    border-radius: 16px;
    text-align: center;
}

.sw-big-stat {
    font-family: 'Roboto Condensed', sans-serif;
    font-size: clamp(2.5rem, 5vw, 3.5rem);
    font-weight: 900;
    color: #ff6a00;
    line-height: 1;
    margin-bottom: 0.25rem;
}

.sw-stat-desc {
    font-size: 0.9rem;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

/* Stat carousel cycling */
.sw-stat-carousel {
    position: relative;
    min-height: 80px;
}

.sw-stat-slide {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}

.sw-stat-slide.active {
    position: relative;
    opacity: 1;
    transform: translateY(0);
}

/* Mobile: stack columns */
@media (max-width: 768px) {
    .sw-intro-two-col {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
}

/* --- 5. CAPABILITIES & TECH CARDS --- */
.sw-services-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: 1fr;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
}

.sw-card {
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 25px;
    padding: 2rem;
    transition: 0.3s ease;
    display: flex;
    flex-direction: column;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.03);
    height: 100%;
}

.sw-card:hover {
    border-color: #ff6a00;
    box-shadow: 0 20px 60px -10px rgba(247, 148, 29, 0.2);
    transform: translateY(-5px);
}

.sw-card h3 {
    font-family: 'Roboto Condensed', sans-serif;
    font-size: 1.4rem;
    margin-bottom: 0.8rem;
    color: #111;
    font-weight: 800;
    text-transform: uppercase;
    line-height: 1.1;
}

.sw-card ul {
    list-style: none;
    padding: 0;
    margin: 0;
    color: #111;
    font-size: 1rem;
    line-height: 1.3;
}

.sw-card li {
    margin-bottom: 0.25rem;
    padding-left: 1.2rem;
    position: relative;
}

.sw-card li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 5px;
    height: 5px;
    background: #ff6a00;
    border-radius: 50%;
}

/* Sub-bullets for nested lists */
.sw-sub-bullets {
    list-style: none;
    padding-left: 0.5rem;
    margin-top: 0.15rem;
    margin-bottom: 0.15rem;
}

.sw-sub-bullets li {
    margin-bottom: 0.15rem;
    color: #111;
    font-size: 1rem;
    padding-left: 1.2rem;
    position: relative;
}

.sw-sub-bullets li::before {
    position: absolute;
    left: 0;
    top: 0.5em;
    width: 5px;
    height: 5px;
    background: #ff6a00;
}

/* Card title link styling */
.sw-card-title-link,
.sw-card-title-link:link,
.sw-card-title-link:visited,
.sw-card-title-link:hover,
.sw-card-title-link:active,
.sw-card h3 a {
    color: #ff6a00 !important;
    text-decoration: none !important;
    border-bottom: none !important;
    transition: opacity 0.2s;
}

.sw-card-title-link:hover,
.sw-card h3 a:hover {
    opacity: 0.8;
    text-decoration: none !important;
    border-bottom: none !important;
}

.sw-card.tech-card {
    background: #111;
    border-color: #111;
    color: #fff;
}

.sw-card.tech-card h3 {
    color: #fff;
}

.sw-card.tech-card ul {
    color: #bbb;
}

.sw-tech-highlight {
    color: #ff6a00 !important;
    font-weight: 700;
    font-size: 1.1rem;
    margin-top: 0.5rem;
}

.sw-tech-desc {
    font-size: 0.9em;
    margin-bottom: 1.5rem !important;
    color: #888;
    border-left: 2px solid #333;
    padding-left: 1rem !important;
}

.sw-card.tech-card li.sw-tech-highlight::before,
.sw-card.tech-card li.sw-tech-desc::before {
    display: none;
}

/* --- 6. THE PROCESS --- */
.sw-process-wrapper {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: 0rem;
    margin-bottom: 4rem;
    border-top: 1px solid #e5e5e5;
}

.sw-process-row {
    display: grid;
    grid-template-columns: 100px 1fr 2fr;
    gap: 2rem;
    padding: 3rem 0;
    border-bottom: 1px solid #e5e5e5;
    align-items: flex-start;
    transition: 0.3s;
}

.sw-process-row:hover {
    background: #fafafa;
    padding-left: 1rem;
}

.sw-step-num {
    font-family: 'Roboto Condensed', sans-serif;
    font-size: 3rem;
    font-weight: 900;
    color: #e0e0e0;
    line-height: 1;
    transition: 0.3s;
}

.sw-process-row:hover .sw-step-num {
    background: linear-gradient(90deg, #ff6a00, #ff9c33, #ff6a00);
    background-size: 200% auto;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: swShimmer 3s linear infinite;
}

.sw-step-title {
    font-family: 'Roboto Condensed', sans-serif;
    font-size: 1.5rem;
    font-weight: 800;
    text-transform: uppercase;
    color: #111;
}

.sw-icon-container {
    width: 60px;
    height: 60px;
    margin-bottom: 1rem;
}

.sw-svg-icon {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: #333;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: stroke 0.3s;
}

/* Process Hover Effects */
.sw-process-row:hover .sw-svg-icon,
.sw-process-row:hover .sw-svg-icon path {
    stroke: #ff6a00 !important;
    filter: drop-shadow(0 0 5px rgba(255, 106, 0, 0.5));
}

.sw-anim-graph-line {
    stroke-dasharray: 100;
    stroke-dashoffset: 0;
    stroke: #333;
}

.sw-process-row:hover .sw-anim-graph-line {
    animation: swDrawGraph 2s ease-in-out infinite;
    stroke: #ff6a00 !important;
}

.sw-anim-cursor {
    opacity: 1;
    stroke: #333;
}

.sw-process-row:hover .sw-anim-cursor {
    animation: swBlink 0.8s step-end infinite;
    stroke: #ff6a00 !important;
}

.sw-anim-bar {
    transform-origin: bottom;
    transform: scaleY(0.6);
    fill: #333;
    stroke: none !important;
}

.sw-process-row:hover .sw-anim-bar {
    animation: swGrowBar 0.6s ease-in-out infinite alternate;
    fill: #ff6a00 !important;
    stroke: none !important;
}

@keyframes swBlink {
    50% {
        opacity: 0;
    }
}

@keyframes swDrawGraph {
    0% {
        stroke-dashoffset: 100;
    }

    50% {
        stroke-dashoffset: 0;
    }

    100% {
        stroke-dashoffset: 0;
    }
}

@keyframes swGrowBar {
    0% {
        transform: scaleY(0.6);
    }

    100% {
        transform: scaleY(1);
    }
}

/* --- 7. TERMINAL CTA --- */
.sw-terminal-cta {
    background: #080808;
    border: 1px solid #333;
    border-radius: 12px;
    padding: 0;
    margin-bottom: 4rem;
    position: relative;
    overflow: hidden;
    /* CHANGED: Multi-layered shadow for deeper lift */
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.5), 0 50px 100px rgba(0, 0, 0, 0.3);
    text-align: center;
    font-family: 'Space Mono', monospace;
}

.sw-terminal-cta::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%), linear-gradient(90deg, rgba(255, 0, 0, 0.06), rgba(0, 255, 0, 0.02), rgba(0, 0, 255, 0.06));
    background-size: 100% 2px, 3px 100%;
    pointer-events: none;
    z-index: 20;
    border-radius: 12px;
}

.sw-term-header {
    background: #1a1a1a;
    padding: 10px 20px;
    display: flex;
    align-items: center;
    border-bottom: 1px solid #333;
    position: relative;
    z-index: 6;
}

.sw-term-dots {
    display: flex;
    gap: 8px;
}

.sw-term-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
}

.sw-term-dot.r {
    background: #ff5f56;
}

.sw-term-dot.y {
    background: #ffbd2e;
}

.sw-term-dot.g {
    background: #27c93f;
}

.sw-term-title {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    color: #666;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

/* FIXED TERMINAL BODY: Ensures text is background and button is foreground */
.sw-term-body {
    padding: 4rem 2rem;
    position: relative;
    z-index: 6;
    overflow: hidden;
    height: 400px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

/* Terminal Typewriter - with CRT glow effect and top fade */
#sw-terminal-typewriter {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    padding: 2.9rem 2rem 1.5rem 2.8rem;
    color: rgba(16, 185, 129, 0.35);
    font-size: 0.85rem;
    font-family: 'Roboto Mono', monospace;
    text-align: left;
    overflow: hidden;
    z-index: 1;
    pointer-events: none;
    line-height: 1.5;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    /* CRT glow effect */
    text-shadow:
        0 0 3px rgba(16, 185, 129, 0.3),
        0 0 8px rgba(16, 185, 129, 0.2);
    /* Fade out at top */
    mask-image: linear-gradient(to bottom, transparent 0%, black 30%, black 100%);
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 30%, black 100%);
    /* Subtle CRT barrel curve */
    transform: perspective(800px) rotateX(2deg);
    transform-origin: center bottom;
}

.sw-term-line {
    white-space: nowrap;
    overflow: visible;
}

.sw-type-cursor {
    display: inline-block;
    width: 10px;
    height: 1em;
    background: #10b981;
    margin-left: 2px;
    vertical-align: text-bottom;
    animation: swBlink 1s step-end infinite;
    box-shadow: 0 0 12px #10b981;
    position: relative;
    z-index: 100;
}

.sw-cta-glitch-text {
    font-family: 'Roboto Condensed', sans-serif;
    font-size: clamp(1.5rem, 4vw, 2.5rem);
    font-weight: 900;
    color: #fff;
    text-transform: uppercase;
    margin-bottom: 2.5rem;
    position: relative;
    z-index: 21;
    text-shadow: 2px 0 #111;
    letter-spacing: 0.05em;
    line-height: 1.1;
}

.sw-btn-terminal {
    display: inline-block;
    background: #080808;
    color: #ff6a00;
    padding: 1rem 3rem;
    border: 2px solid #ff6a00;
    font-family: 'Roboto Condensed', sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    text-decoration: none;
    transition: all 0.2s ease;
    position: relative;
    z-index: 21;
    border-radius: 15px;
    box-shadow: 0 0 15px rgba(247, 148, 29, 0.2);
}

.sw-btn-terminal:hover {
    background: #ff6a00;
    color: #000;
    box-shadow: 0 0 30px rgba(247, 148, 29, 0.6);
}

.sw-btn-terminal::before {
    content: "";
    position: absolute;
    top: -2px;
    left: -2px;
    right: -2px;
    bottom: -2px;
    border-radius: 15px;
    border: 2px solid transparent;
    z-index: -1;
    pointer-events: none;
    opacity: 0;
}

.sw-btn-terminal.sw-spark-active::before {
    animation: swElectricSpark 0.1s linear infinite;
}

@keyframes swElectricSpark {
    0% {
        opacity: 1;
        transform: scale(1.02) skewX(2deg);
        border-color: #fff;
    }

    50% {
        opacity: 0.8;
        transform: scale(1.05) skewY(-2deg);
        border-color: var(--sw-orange);
        box-shadow: 0 0 30px rgba(247, 148, 29, 0.6);
    }

    100% {
        opacity: 1;
        transform: scale(1.02) skewX(-2deg);
        border-color: #fff;
    }
}

/* --- 8. PADDING FIX FOR TEXT --- */
.sw-intro-text-pad {
    padding-top: 2rem;
}

/* ============================================================
   9. MOBILE RESPONSIVE FIX (RESTORES NUMBERS & LAYOUT)
   ============================================================ */
@media (max-width: 900px) {

    /* 1. RESET THE GRID: 2 Columns (Number | Content) */
    .sw-process-row {
        display: grid !important;
        /* 50px for the number, 1fr for the rest */
        grid-template-columns: 50px 1fr !important;
        grid-template-rows: auto auto;
        gap: 0.5rem 1.5rem !important;
        text-align: left !important;
        padding: 2rem 0 !important;
        align-items: start !important;
        justify-items: start !important;
    }

    /* 2. RESTORE NUMBER (Left Column, Spans Down) */
    .sw-step-num {
        display: block !important;
        grid-column: 1;
        grid-row: 1 / span 2;
        /* Sits tall next to title AND desc */
        font-size: 2.2rem !important;
        /* Visible but proportionate */
        line-height: 1;
        margin-top: 5px;
        /* Slight visual alignment fix */
    }

    /* 3. ICON & TITLE (Top Right) */
    .sw-step-content {
        grid-column: 2;
        grid-row: 1;
        display: flex;
        flex-direction: column;
        align-items: flex-start !important;
        /* Force left align */
        width: 100%;
    }

    /* 4. DESCRIPTION (Bottom Right) */
    .sw-step-desc {
        grid-column: 2;
        grid-row: 2;
        margin-top: 0.5rem;
        font-size: 1rem !important;
        line-height: 1.5;
    }

    /* 5. RESIZE ELEMENTS FOR MOBILE */
    .sw-icon-container {
        width: 45px !important;
        height: 45px !important;
        margin-bottom: 0.8rem !important;
    }

    .sw-step-title {
        font-size: 1.3rem !important;
    }

    /* Mobile Grid for Services */
    .sw-services-grid {
        grid-template-columns: 1fr;
    }

    /* 6. KILL HOVER STICKINESS (Removes the grey box on tap) */
    .sw-process-row:hover {
        background: transparent !important;
        padding-left: 0 !important;
    }

    /* Keep your other mobile tweaks below here */
    .sw-highlight-box {
        padding: 2rem 1rem;
    }

    .sw-highlight-box::before {
        left: 0;
    }

    .sw-term-body {
        padding: 3rem 1rem;
    }

    .sw-btn-terminal {
        padding: 1rem;
        width: 90%;
        white-space: normal;
        line-height: 1.4;
    }
}

/* ======================================================
   FINAL LAYOUT POLISH (Add to bottom of CSS)
   ====================================================== */

/* Ensure the paragraph specifically pushes content down */
.sw-header-group p {
    margin-bottom: 3.5rem !important;
    display: block;
}

/* 2. FORCE PILLARS TO 5-IN-A-ROW */
/* Lowers the minimum width so they can squeeze onto one line */
@media (min-width: 1300px) {
    .sw-verticals-wrapper {
        flex-wrap: nowrap !important;
        /* Force single line on wide screens */
    }

    .sw-pillar-card {
        /* Allow them to shrink to fit 5 across */
        flex: 1 1 auto !important;
        min-width: 0 !important;
        width: 100% !important;
    }
}

/* 3. PROCESS ICON ANIMATION FIX */
/* Ensures the stroke changes color on hover */
.sw-process-row:hover .sw-svg-icon,
.sw-process-row:hover .sw-svg-icon path,
.sw-process-row:hover .sw-svg-icon polyline,
.sw-process-row:hover .sw-svg-icon line,
.sw-process-row:hover .sw-svg-icon circle,
.sw-process-row:hover .sw-svg-icon rect {
    stroke: #ff6a00 !important;
    transition: stroke 0.3s ease;
}

/* ======================================================
   FINAL TWEAK: FIX CARD TITLE WRAPPING & BUTTON ALIGNMENT
   ====================================================== */

/* 1. Give the text more side room by reducing card padding */
.sw-pillar-card {
    padding: 2.5rem 1rem !important;
}

/* 2. Slightly reduce font size to ensure long titles fit on 2 lines */
.sw-pillar-title {
    font-size: 1.45rem !important;
    line-height: 1.1 !important;
    margin-bottom: 1.5rem !important;
    /* Adjust spacing to button */
}

/* Optional: Force the buttons to align at the bottom if titles vary */
.sw-pillar-card {
    justify-content: space-between !important;
}

.sw-pillar-icon {
    margin-top: auto !important;
}

.sw-deck-btn {

    /* Reuses your existing animation for inline text */
    .sw-text-gradient {
        background: linear-gradient(90deg, #ff6a00, #ff9c33, #ff6a00);
        background-size: 300% 300%;
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        background-clip: text;
        color: #ff6a00;
        font-weight: 800;
        /* This "gradientWave" is already defined in your "Who We Serve" section */
        animation: gradientWave 6s ease-in-out infinite;
    }

    /* ============================================================
   GLOBAL SITE BACKGROUND (CLEAN GREY - NO DOTS)
   ============================================================ */

    /* 1. Apply the Flat Grey Background */
    body {
        background-color: #f2f4f6 !important;
        /* Premium cool grey */
        background-image: none !important;
        /* Ensures no dots/patterns load */
    }

    /* 2. Force Squarespace's white containers to be transparent 
   so the grey shows through everywhere */
    .Site,
    .Site-inner,
    .Content-outer,
    .Main {
        background-color: transparent !important;
    }

    /* 3. Fix the "Who We Serve" section transparency */
    .who-we-serve-section {
        background-color: transparent !important;
    }

    /* ============================================================
   FIX: RESTORE LIFT EFFECT TO CORE SERVICES ONLY
   (Targets only the black pillar cards)
   ============================================================ */
    .sw-pillar-card:hover {
        /* Moves the card up 10px */
        transform: translateY(-10px) !important;

        /* Adds a shadow so it looks like it's floating off the new grey background */
        box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5) !important;

        /* Ensures it sits on top of everything else while lifting */
        z-index: 50 !important;
    }

    /* =========================================
   FIX: REMOVE WHITE BAR AT BOTTOM (MOBILE)
   ========================================= */
    .Mobile-bar.Mobile-bar--bottom {
        display: none !important;
        height: 0 !important;
        padding: 0 !important;
        background: transparent !important;
    }

    /* Optional: Ensure footer covers iPhone 'Home Swipe' area */
    @media only screen and (max-width: 600px) {
        .Footer {
            padding-bottom: env(safe-area-inset-bottom) !important;
        }
    }

    /* =========================================
   FIX: MOBILE MENU OVERLAP (UPDATED)
   ========================================= */

    /* 1. Push the menu items WAY down */
    .Mobile-overlay-menu {
        /* Increased from 80px to 140px to clear the orange box */
        padding-top: 140px !important;

        /* Ensure content stays within the screen width */
        box-sizing: border-box !important;
        width: 100% !important;

        /* Optional: If text is sticking too far left, add some breathing room */
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    /* 2. Ensure the Close Button/Header stays pinned on top */
    .Mobile-overlay-header {
        position: absolute !important;
        top: 0;
        left: 0;
        width: 100%;
        z-index: 100002 !important;
        /* Higher than the menu content */
        background: transparent !important;
        /* Or #fff if you prefer */
    }

    /* 3. Global Overlay Z-Index Fix */
    .Mobile-overlay {
        z-index: 999999 !important;
        overflow-y: scroll !important;
        /* Ensures you can scroll if the menu is tall */
    }

    /* =========================================
   FIX: 'X' BUTTON (STRICT STATE CONTROL)
   ========================================= */

    /* 1. DEFAULT STATE: HIDE IT COMPLETELY */
    /* This ensures no orange box appears on the normal site */
    .Mobile-overlay-close {
        display: none !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }

    /* 2. ACTIVE STATE: ONLY SHOW WHEN MENU IS OPEN */
    body.is-mobile-overlay-active .Mobile-overlay-close {
        /* Reveal it */
        display: flex !important;
        opacity: 1 !important;
        pointer-events: auto !important;

        /* Positioning (Top Right, safe from scrollbar) */
        position: fixed !important;
        top: 25px !important;
        right: 25px !important;
        left: auto !important;
        z-index: 2147483647 !important;

        /* Styling: Orange Box */
        background-color: #ff6a00 !important;
        width: 44px !important;
        height: 44px !important;

        /* Clean up any old icon junk */
        color: transparent !important;
    }

    /* 3. DRAW THE 'X' (CSS Only - No SVGs) */
    /* Line 1 */
    body.is-mobile-overlay-active .Mobile-overlay-close::before {
        content: '';
        position: absolute;
        width: 24px;
        height: 3px;
        background-color: #ffffff !important;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%) rotate(45deg);
    }

    /* Line 2 */
    body.is-mobile-overlay-active .Mobile-overlay-close::after {
        content: '';
        position: absolute;
        width: 24px;
        height: 3px;
        background-color: #ffffff !important;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%) rotate(-45deg);
    }

    /* 4. Double check to hide original SVG */
    body.is-mobile-overlay-active .Mobile-overlay-close svg,
    body.is-mobile-overlay-active .Mobile-overlay-close-icon {
        display: none !important;
    }

    /* ============================================================
   SERVICES PAGE - Light Glass Cards (Festival Analytics Style)
   ============================================================ */

    /* Container for all service modules - 2 column grid on desktop */
    .sw-services-modules {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 1.5rem;
        margin-bottom: 3rem;
    }

    /* Single column on mobile */
    @media (max-width: 900px) {
        .sw-services-modules {
            grid-template-columns: 1fr;
        }
    }

    /* Individual Service Module Card - Light Theme */
    .sw-service-module {
        background: rgba(255, 255, 255, 0.9);
        border: 1px solid #e2e8f0;
        border-radius: 20px;
        overflow: hidden;
        transition: all 0.3s ease;
        position: relative;
        box-shadow: 0 5px 25px -5px rgba(0, 0, 0, 0.08);
    }

    .sw-service-module:hover {
        border-color: #ff6a00;
        box-shadow: 0 15px 40px -10px rgba(255, 106, 0, 0.15);
        transform: translateY(-4px);
    }

    .sw-module-inner {
        padding: 1.8rem;
        position: relative;
        z-index: 2;
    }

    /* Module Header */
    .sw-module-header {
        display: flex;
        justify-content: flex-start;
        align-items: center;
        margin-bottom: 1rem;
    }

    .sw-module-metric {
        font-family: 'Roboto Condensed', sans-serif;
        font-size: 0.75rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.08em;
        padding: 0.4rem 0.8rem;
        border-radius: 6px;
        background: linear-gradient(135deg, #ff6a00, #ff9c33);
        color: #fff;
    }

    /* Module Icon */
    .sw-module-icon {
        width: 40px;
        height: 40px;
        margin-bottom: 0.8rem;
    }

    .sw-module-icon svg {
        width: 100%;
        height: 100%;
        stroke: #64748b;
        transition: all 0.3s;
    }

    .sw-service-module:hover .sw-module-icon svg {
        stroke: #ff6a00;
    }

    /* Module Title & Subtitle */
    .sw-module-title {
        font-family: 'Roboto Condensed', sans-serif;
        font-size: 1.4rem;
        font-weight: 800;
        text-transform: uppercase;
        color: #0f172a;
        margin-bottom: 0.2rem;
        letter-spacing: 0.02em;
    }

    .sw-module-subtitle {
        font-family: 'Roboto Condensed', sans-serif;
        font-size: 0.85rem;
        font-weight: 500;
        color: #64748b;
        text-transform: uppercase;
        letter-spacing: 0.08em;
        margin-bottom: 1rem;
    }

    /* Module Body */
    .sw-module-body {
        color: #334155;
        line-height: 1.6;
    }

    .sw-module-desc {
        font-size: 0.95rem;
        margin-bottom: 1rem;
    }

    .sw-module-desc strong {
        color: #0f172a;
    }

    /* Feature Items */
    .sw-module-features {
        display: flex;
        flex-direction: column;
        gap: 0.8rem;
        margin-bottom: 1rem;
    }

    .sw-feature-item {
        display: flex;
        gap: 0.8rem;
        align-items: flex-start;
        padding: 0.8rem;
        background: #f8fafc;
        border-radius: 10px;
        border-left: 3px solid #e2e8f0;
        transition: all 0.3s;
    }

    .sw-feature-item:hover {
        border-left-color: #ff6a00;
        background: rgba(255, 106, 0, 0.04);
    }

    .sw-feature-icon {
        font-size: 1.1rem;
        flex-shrink: 0;
    }

    .sw-feature-content {
        display: flex;
        flex-direction: column;
        gap: 0.2rem;
    }

    .sw-feature-title {
        font-family: 'Roboto Condensed', sans-serif;
        font-size: 0.9rem;
        font-weight: 700;
        color: #0f172a;
        text-transform: uppercase;
        letter-spacing: 0.02em;
    }

    .sw-feature-text {
        font-size: 0.85rem;
        color: #64748b;
        line-height: 1.4;
    }

    /* Case Study Badges */
    .sw-case-study-inline {
        background: rgba(255, 106, 0, 0.06);
        border: 1px solid rgba(255, 106, 0, 0.15);
        border-radius: 8px;
        padding: 0.8rem 1rem;
        margin-bottom: 1rem;
    }

    .sw-case-label {
        font-family: 'Roboto Condensed', sans-serif;
        font-size: 0.7rem;
        text-transform: uppercase;
        letter-spacing: 0.1em;
        color: #ff6a00;
        display: block;
        margin-bottom: 0.2rem;
    }

    .sw-case-stat {
        font-size: 0.85rem;
        color: #334155;
    }

    .sw-case-study-badge {
        display: flex;
        align-items: center;
        gap: 1rem;
        background: linear-gradient(135deg, rgba(255, 106, 0, 0.08), rgba(255, 150, 0, 0.04));
        border: 1px solid rgba(255, 106, 0, 0.2);
        border-radius: 10px;
        padding: 1rem;
        margin-bottom: 1rem;
    }

    .sw-case-stat-large {
        font-family: 'Roboto Condensed', sans-serif;
        font-size: 2rem;
        font-weight: 900;
        color: #ff6a00;
        line-height: 1;
    }

    .sw-case-context {
        display: flex;
        flex-direction: column;
        gap: 0.1rem;
    }

    .sw-case-metric {
        font-family: 'Roboto Condensed', sans-serif;
        font-size: 0.75rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.1em;
        color: #0f172a;
    }

    .sw-case-artist {
        font-size: 0.8rem;
        color: #64748b;
    }

    /* Module CTA Button */
    .sw-module-cta {
        display: inline-block;
        background: linear-gradient(135deg, #ff6a00, #ff9c33);
        color: #fff;
        padding: 0.8rem 1.5rem;
        border: none;
        font-family: 'Roboto Condensed', sans-serif;
        font-weight: 700;
        font-size: 0.8rem;
        text-transform: uppercase;
        letter-spacing: 0.06em;
        text-decoration: none;
        border-radius: 10px;
        transition: all 0.3s;
        margin-top: 0.5rem;
    }

    .sw-module-cta:hover {
        background: linear-gradient(135deg, #e55a00, #ff6a00);
        box-shadow: 0 8px 20px rgba(255, 106, 0, 0.3);
        transform: translateY(-2px);
    }

    /* Mobile Responsive */
    @media (max-width: 768px) {
        .sw-module-inner {
            padding: 1.5rem;
        }

        .sw-module-title {
            font-size: 1.25rem;
        }

        .sw-case-study-badge {
            flex-direction: column;
            align-items: flex-start;
            gap: 0.6rem;
        }

        .sw-case-stat-large {
            font-size: 1.8rem;
        }

        .sw-module-cta {
            width: 100%;
            text-align: center;
        }
    }

    /* ============================================================
   SERVICES PAGE - Hero & Carousel Styles
   ============================================================ */

    /* New 2-Column Hero Structure */
    .sw-hero-row {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 4rem;
        margin-bottom: 3rem;
    }

    /* Services page - reduce container padding but keep breathing room */
    .sw-block-container.sw-services-page {
        padding-top: 1.5rem;
        overflow-x: hidden;
    }

    /* About page - consistent section spacing */
    .sw-block-container.sw-about-page {
        padding-top: 1rem;
        padding-bottom: 0;
    }

    /* First About block should have more top padding (below hero) */
    .sw-block-container.sw-about-page:first-of-type {
        padding-top: 3rem;
    }

    .sw-services-header {
        flex: 1;
        /* 1/3 width */
        min-width: 300px;
    }

    /* Gradient Bar Accent */
    .sw-header-accent {
        display: flex;
        align-items: center;
        gap: 1rem;
        margin-bottom: 1.5rem;
    }

    .sw-gradient-bar {
        width: 5px !important;
        min-width: 5px !important;
        min-height: 2.5rem !important;
        height: 100%;
        background: linear-gradient(180deg, #ff6a00, #ff9c33, #ff6a00);
        background-size: 100% 200%;
        border-radius: 2px !important;
        flex-shrink: 0 !important;
        display: block !important;
    }

    /* Shimmer animation for gradient bars */
    .sw-gradient-bar.sw-shimmer {
        animation: shimmer-vertical 2s ease-in-out infinite;
    }

    @keyframes shimmer-vertical {

        0%,
        100% {
            background-position: 0% 0%;
        }

        50% {
            background-position: 0% 100%;
        }
    }

    /* Color variants for different sections */
    .sw-bar-orange {
        background: linear-gradient(180deg, #ff6a00, #ff9c33, #ff6a00) !important;
        background-size: 100% 200% !important;
    }

    .sw-bar-blue {
        background: linear-gradient(180deg, #3b82f6, #60a5fa, #3b82f6) !important;
        background-size: 100% 200% !important;
    }

    .sw-bar-green {
        background: linear-gradient(180deg, #10b981, #34d399, #10b981) !important;
        background-size: 100% 200% !important;
    }

    .sw-bar-purple {
        background: linear-gradient(180deg, #8b5cf6, #a78bfa, #8b5cf6) !important;
        background-size: 100% 200% !important;
    }

    .sw-bar-cyan {
        background: linear-gradient(180deg, #06b6d4, #22d3ee, #06b6d4) !important;
        background-size: 100% 200% !important;
    }

    .sw-section-label {
        font-family: 'Roboto Condensed', sans-serif;
        font-size: clamp(2rem, 4vw, 3rem);
        font-weight: 900;
        letter-spacing: 0.04em;
        color: #1e293b;
        text-transform: uppercase;
    }

    /* Section Label Row (like Festival Analytics section titles) */
    .sw-section-label-row {
        display: flex;
        align-items: center;
        gap: 0.75rem;
        margin-bottom: 1rem;
    }

    /* Hero Intro Paragraphs - sized up to fill space */
    .sw-hero-intro {
        font-size: 1.15rem;
        line-height: 1.7;
        color: #334155;
        margin-bottom: 1.25rem;
    }

    .sw-body-secondary {
        font-size: 0.95rem;
        color: #64748b;
        margin-top: 1rem;
    }

    /* Large Hero Intro - fills vertical space alongside carousel */
    .sw-hero-intro-large {
        font-size: clamp(1.5rem, 2.8vw, 2.2rem);
        line-height: 1.5;
        color: #1e293b;
        font-weight: 500;
        margin-bottom: 0;
        padding-top: 1rem;
        padding-bottom: 1rem;
    }

    @media (max-width: 900px) {
        .sw-hero-intro-large {
            font-size: clamp(1.2rem, 4vw, 1.6rem);
            padding: 1rem 0;
        }
    }

    /* Slide Link Styling */
    .sw-slide-link {
        display: block;
        text-decoration: none;
        color: inherit;
        width: 100%;
        height: 100%;
    }

    /* Image Anchoring Modifiers */
    .sw-slide-image img[data-anchor="center"] {
        object-position: center center;
    }

    .sw-slide-image img[data-anchor="left"] {
        object-position: left center;
    }

    .sw-slide-image img[data-anchor="right"] {
        object-position: right center;
    }

    .sw-services-carousel {
        width: 100%;
        position: relative;
        background: #080808;
        border-radius: 20px;
        overflow: hidden;
        height: clamp(320px, 35vw, 480px);
        min-width: 320px;
        box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
    }

    @media (max-width: 900px) {
        .sw-hero-row {
            flex-direction: column;
            align-items: flex-start;
            gap: 2rem;
        }

        .sw-services-carousel {
            width: 100%;
            height: 380px;
        }
    }

    .sw-carousel-track {
        position: relative;
        width: 100%;
        height: 100%;
    }

    .sw-carousel-slide {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.5s ease, visibility 0.5s;
    }

    .sw-carousel-slide.active {
        position: relative;
        opacity: 1;
        visibility: visible;
    }

    .sw-slide-content {
        padding: 1.2rem 2.5rem 8rem 2.5rem;
        color: #fff;
        position: relative;
        z-index: 2;
        max-width: 65%;
        /* Allowed text to spill over more */
    }

    /* Slide Image */
    .sw-slide-image {
        position: absolute;
        top: 0;
        right: 0;
        width: 95%;
        height: 100%;
        z-index: 1;
    }

    .sw-slide-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center right;
        /* Anchor image to right */
        opacity: 0.9;
    }

    .sw-slide-image::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: linear-gradient(115deg, #080808 0%, #080808 25%, transparent 65%);
        z-index: 2;
    }

    .sw-slide-kicker {
        display: inline-block;
        font-family: 'Roboto Condensed', sans-serif;
        font-size: clamp(0.75rem, 1.2vw, 1.5rem);
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.1em;
        color: #ff6a00;
        margin-bottom: 0.5rem;
        padding: 0.3rem 0.8rem;
        background: rgba(255, 106, 0, 0.15);
        border-radius: 4px;
    }

    .sw-slide-title {
        font-family: 'Roboto Condensed', sans-serif;
        font-size: clamp(1.8rem, 3vw, 3.6rem);
        /* Slightly smaller for narrower box */
        font-weight: 800;
        text-transform: uppercase;
        margin-bottom: 0.5rem;
        line-height: 1.1;
        color: #fff !important;
    }

    .sw-slide-desc {
        font-size: clamp(1rem, 1.5vw, 2rem);
        color: #d4d4d4;
        max-width: 600px;
        line-height: 1.5;
        margin-bottom: 0.8rem;
    }

    .sw-slide-stat {
        display: flex;
        flex-direction: column;
        /* Stack vertically */
        align-items: flex-start;
        /* Left align */
        gap: 0;
    }

    .sw-stat-number {
        font-family: 'Roboto Condensed', sans-serif;
        font-size: clamp(2.5rem, 4vw, 5rem);
        font-weight: 900;
        color: #ff6a00;
        line-height: 1;
    }

    .sw-stat-label {
        font-size: clamp(0.9rem, 1.2vw, 1.8rem);
        color: #d4d4d4;
        text-transform: uppercase;
        letter-spacing: 0.05em;
        padding-left: 2px;
        /* Optical alignment */
    }

    /* Carousel Controls */
    .sw-carousel-controls {
        position: absolute;
        /* Absolute positioning relative to container */
        bottom: 1.2rem;
        /* Moved further down */
        left: 2.5rem;
        /* Align with left padding */
        display: flex;
        align-items: center;
        gap: 1rem;
        z-index: 10;
        width: auto;
        margin-top: 0;
        justify-content: flex-start;
    }

    .sw-carousel-btn {
        width: 36px;
        height: 36px;
        border-radius: 50%;
        border: 1px solid rgba(255, 255, 255, 0.2);
        background: rgba(255, 255, 255, 0.05);
        color: #fff;
        font-size: 1.2rem;
        cursor: pointer;
        transition: all 0.2s;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .sw-carousel-btn:hover {
        background: #ff6a00;
        border-color: #ff6a00;
    }

    .sw-carousel-dots {
        display: flex;
        gap: 0.5rem;
    }

    .sw-carousel-dots .sw-dot {
        width: 8px;
        height: 8px;
        border-radius: 50%;
        background: rgba(255, 255, 255, 0.3);
        border: none;
        cursor: pointer;
        transition: all 0.2s;
        padding: 0;
    }

    .sw-carousel-dots .sw-dot.active {
        background: #ff6a00;
        transform: scale(1.2);
    }

    /* Primary Button */
    .sw-btn-primary {
        display: inline-block;
        background: linear-gradient(135deg, #ff6a00, #ff9c33);
        color: #fff;
        padding: 1rem 2.5rem;
        font-family: 'Roboto Condensed', sans-serif;
        font-weight: 700;
        font-size: 1rem;
        text-transform: uppercase;
        letter-spacing: 0.08em;
        text-decoration: none;
        border-radius: 12px;
        transition: all 0.3s;
        box-shadow: 0 8px 25px rgba(255, 106, 0, 0.25);
    }

    .sw-btn-primary:hover {
        background: linear-gradient(135deg, #e55a00, #ff6a00);
        box-shadow: 0 12px 35px rgba(255, 106, 0, 0.35);
        transform: translateY(-2px);
    }

    /* Mobile Carousel */
    @media (max-width: 768px) {
        .sw-services-carousel {
            height: 380px;
        }

        .sw-slide-content {
            padding: 1.5rem 1.5rem 7rem 1.5rem;
            max-width: 100%;
        }

        .sw-slide-image {
            width: 100%;
            height: 100%;
            opacity: 0.4;
            /* Dim to keep text readable */
        }

        .sw-slide-image::before {
            background: linear-gradient(180deg, #080808 0%, transparent 40%, transparent 60%, #080808 100%);
        }

        .sw-slide-title {
            font-size: 1.5rem;
        }

        .sw-stat-number {
            font-size: 2rem;
        }

        .sw-carousel-controls {
            bottom: 1rem;
            right: 1rem;
        }
    }

    /* Mobile Stacking Layout for Service Cards */
    @media (max-width: 600px) {

        /* Single column stacking for pillar cards */
        .sw-verticals-wrapper {
            display: flex !important;
            flex-direction: column !important;
            flex-wrap: nowrap !important;
            overflow-x: visible !important;
            gap: 1rem;
            padding: 0 !important;
            max-width: 100%;
            box-sizing: border-box;
        }

        .sw-pillar-card {
            flex: none !important;
            min-width: 100% !important;
            width: 100% !important;
            height: 320px !important;
            opacity: 1 !important;
            transform: none !important;
        }

        .sw-pillar-card .sw-grid-engine {
            transform-style: preserve-3d;
        }

        /* All cards fully visible */
        .sw-pillar-card .sw-grid-plane {
            opacity: 0.3;
        }

        /* Ensure cards show hover effects on tap */
        .sw-pillar-card:active .sw-grid-plane,
        .sw-pillar-card:focus-within .sw-grid-plane {
            opacity: 0.9;
            background-image: linear-gradient(rgba(255, 95, 0, 1) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 95, 0, 0.85) 1px, transparent 1px);
            animation: swTechnoGridScroll 1s linear infinite;
            transform: rotateX(50deg);
        }

        /* Legacy class support */
        .sw-pillar-card.sw-mobile-active {
            opacity: 1 !important;
            transform: scale(1) !important;
        }

        /* Force hover effects on active mobile card */
        .sw-pillar-card.sw-mobile-active .sw-grid-plane {
            opacity: 0.9 !important;
            background-image: linear-gradient(rgba(255, 95, 0, 1) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 95, 0, 0.85) 1px, transparent 1px) !important;
            animation: swTechnoGridScroll 1s linear infinite !important;
            transform: rotateX(50deg) !important;
        }

        .sw-pillar-card.sw-mobile-active .sw-pillar-glow {
            opacity: 1;
        }
    }

    /* ============================================================
   11. TERMINAL BUTTON STYLES (Standardized)
   ============================================================ */
    .sw-btn-terminal {
        display: inline-block;
        padding: 16px 40px;
        background: #000;
        border: 2px solid #ef4444;
        color: #ef4444;
        font-family: 'Roboto Condensed', sans-serif;
        font-size: 1.1rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.1em;
        text-decoration: none;
        border-radius: 8px;
        transition: all 0.3s ease;
        position: relative;
        overflow: visible;
        box-shadow: 0 0 15px rgba(217, 119, 6, 0.2);
    }

    .sw-btn-terminal:hover {
        background: #ef4444;
        color: #000;
        box-shadow: 0 0 30px rgba(217, 119, 6, 0.6);
    }

    .sw-btn-terminal.sw-spark-active::before {
        content: "";
        position: absolute;
        top: -2px;
        left: -2px;
        right: -2px;
        bottom: -2px;
        z-index: 25;
        border-radius: 8px;
        pointer-events: none;
        animation: swElectricSparkRed 0.1s linear infinite;
    }

    @keyframes swElectricSparkRed {
        0% {
            opacity: 1;
            transform: scale(1.02) skewX(2deg);
            border: 2px solid #fff;
        }

        50% {
            opacity: 1;
            transform: scale(1.05) skewY(-2deg);
            border: 2px solid #ffffff;
            box-shadow: 0 0 30px rgba(255, 255, 255, 0.8), 0 0 10px #ef4444;
        }
    }

    /* ============================================================
   11. NAVIGATION DROPDOWN FIX (Brine 7.0)
   ============================================================ */

    /* 
   - Prevents the 'Services' dropdown from being cut off on the right.
   - Fixes the 'jump' caused by horizontal layout shifts when opening the menu.
*/

    /* Disable clicking on Analytics folder parent link - dropdown only */
    .Header-nav-item--folder>a[href*="analytics"],
    .Header-nav-item--folder>a[href="/analytics"] {
        pointer-events: none !important;
        cursor: default !important;
    }

    /* Mobile: Also disable Analytics folder parent link */
    .Mobile-overlay-nav-item--folder>a[href*="analytics"],
    .Mobile-overlay-nav-item--folder>a[href="/analytics"] {
        pointer-events: none !important;
        cursor: default !important;
    }

    /* 1. Stop horizontal overflow jump */
    html,
    body {
        overflow-x: hidden !important;
        position: relative;
        width: 100%;
    }

    /* 2. Fix Dropdown Cutoff & Alignment */
    .Header-nav-folder {
        /* FIXED: Reverted forced right-alignment to prevent 'ghost hover' on adjacent links */
        /* left: auto !important; */
        /* right: 0 !important; */
        /* transform: none !important; */

        min-width: 250px !important;
        /* Slightly constrained width */
        max-width: 340px !important;
        padding: 10px 0 !important;
        /* Reduced padding to tighten hit area */
        box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5) !important;
        text-align: left !important;
    }

    /* 3. Wrap long text to prevent width bloating */
    .Header-nav-folder-item {
        white-space: normal !important;
        /* Allows multi-line if text is huge */
        word-wrap: break-word !important;
        line-height: 1.4 !important;
        padding: 12px 25px !important;
        display: block !important;
        text-align: left !important;
    }

    /* Mobile folder fix for consistency */
    .Mobile-overlay-folder-item {
        padding-right: 20px !important;
    }

    /* 4. Indent Logo from left edge & Fix Height Instability */
    .Header-branding {
        margin-left: 25px !important;
        min-height: 80px !important;
        /* Forces container to stay open */
        display: flex !important;
        align-items: center !important;
    }

    .Header-branding a {
        min-height: 80px !important;
        display: block !important;
    }

    .Header-branding img {
        min-height: 80px !important;
        /* Matches container to ensure stability */
        width: auto !important;
        /* Preserves aspect ratio */
    }

    /* ============================================================
   CASE STUDY COMPONENTS (Shared across all case study pages)
   ============================================================ */

    /* --- Animations --- */
    @keyframes sw-shimmer-h {
        0% {
            background-position: 200% 50%;
        }

        100% {
            background-position: 0% 50%;
        }
    }

    @keyframes sw-shimmer-v {
        0% {
            background-position: 50% 0%;
        }

        50% {
            background-position: 50% 100%;
        }

        100% {
            background-position: 50% 200%;
        }
    }

    @keyframes sw-shimmer-diagonal {
        0% {
            background-position: 0% 0%;
        }

        50% {
            background-position: 100% 100%;
        }

        100% {
            background-position: 0% 0%;
        }
    }

    @keyframes sw-blink {

        0%,
        100% {
            opacity: 1;
        }

        50% {
            opacity: 0.3;
        }
    }

    /* --- Case Study Page Wrapper --- */
    .sw-case-study-page {
        --sw-border: #e2e8f0;
        --sw-light-bg: #f8fafc;
        background: #fff;
        color: #1e293b;
        font-family: 'Roboto', sans-serif;
    }

    /* --- Hero Section (layout only, colors per-page) --- */
    .sw-case-hero {
        padding: 4rem 2rem;
        text-align: center;
        position: relative;
        overflow: hidden;
    }

    .sw-case-hero::before {
        content: '';
        position: absolute;
        inset: 0;
        background: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.02'%3E%3Cpath d='M20 20h20v20H20V20zm0-20h20v20H20V0zM0 20h20v20H0V20zM0 0h20v20H0V0z'/%3E%3C/g%3E%3C/svg%3E");
        z-index: 0;
    }

    .sw-case-hero-content {
        position: relative;
        z-index: 1;
        max-width: 800px;
        margin: 0 auto;
    }

    .sw-case-badge {
        display: inline-block;
        background: rgba(186, 230, 253, 0.2);
        border: 1px solid rgba(186, 230, 253, 0.4);
        color: #bae6fd;
        font-family: 'Roboto Condensed', sans-serif;
        font-size: 0.75rem;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.1em;
        padding: 8px 16px;
        border-radius: 4px;
        margin-bottom: 1.5rem;
    }

    .sw-case-hero h1 {
        font-family: 'Roboto Condensed', sans-serif;
        font-size: clamp(2.2rem, 5vw, 3.5rem);
        font-weight: 800;
        color: #fff;
        margin: 0 0 1rem;
        line-height: 1.15;
    }

    .sw-case-hero .sw-subtitle {
        font-family: 'Roboto', sans-serif;
        font-size: 1.15rem;
        color: #bae6fd;
        margin: 0;
        line-height: 1.6;
    }

    /* --- Stats Bar --- */
    .sw-stats-bar {
        background: #fff;
        border-bottom: 1px solid var(--sw-border);
        padding: 2rem 1.5rem;
    }

    .sw-stats-grid {
        display: grid !important;
        grid-template-columns: repeat(4, 1fr) !important;
        gap: 2rem;
        max-width: 900px;
        margin: 0 auto;
        text-align: center;
    }

    .sw-stat-number {
        font-family: 'Roboto Condensed', sans-serif;
        font-size: 2.5rem;
        font-weight: 800;
        line-height: 1;
        margin-bottom: 0.5rem;
    }

    .sw-stat-label {
        font-family: 'Roboto', sans-serif;
        font-size: 0.85rem;
        color: #64748b !important;
        text-transform: uppercase;
        letter-spacing: 0.05em;
    }

    @media (max-width: 768px) {
        .sw-stats-grid {
            grid-template-columns: repeat(2, 1fr);
            gap: 1.5rem;
        }
    }

    /* --- Section Headers --- */
    .sw-section-header {
        display: flex;
        align-items: stretch;
        gap: 1rem;
        margin-bottom: 2rem;
    }

    .sw-gradient-bar {
        flex-shrink: 0;
        width: 4px;
        min-height: 0 !important;
        height: auto !important;
        align-self: stretch !important;
        background-size: 100% 200%;
        animation: sw-shimmer-v 3s linear infinite;
        border-radius: 2px;
    }

    .sw-section-kicker {
        display: inline-block;
        font-family: 'Roboto Condensed', sans-serif;
        font-size: 0.8rem;
        font-weight: 500;
        text-transform: uppercase;
        letter-spacing: 0.1em;
        color: #fff;
        background-size: 200% auto;
        animation: sw-shimmer-h 3s linear infinite;
        padding: 0.4rem 1rem;
        border-radius: 4px;
        margin-bottom: 0.75rem;
    }

    .sw-section-headline {
        font-family: 'Roboto Condensed', sans-serif;
        font-size: clamp(1.8rem, 4vw, 2.5rem);
        font-weight: 800;
        text-transform: uppercase;
        color: #111;
        margin: 0 0 0.5rem;
        letter-spacing: 0.02em;
    }

    .sw-section-subhead {
        font-family: 'Roboto', sans-serif;
        font-size: 1.1rem;
        color: #475569;
        margin: 0;
        line-height: 1.6;
    }

    /* --- Content Sections --- */
    .sw-content-section {
        padding: 1.5rem 0;
    }

    .sw-content-section.sw-alt-bg {
        background: var(--sw-light-bg);
    }

    .sw-block-container {
        max-width: 1200px;
        margin: 0 auto;
        padding: 0 60px;
    }

    @media (max-width: 1024px) {
        .sw-block-container {
            padding: 0 3rem;
        }
    }

    @media (max-width: 768px) {
        .sw-block-container {
            padding: 0 1.5rem;
        }
    }

    .sw-content-text {
        font-family: 'Roboto', sans-serif;
        font-size: 1.05rem;
        color: #334155;
        line-height: 1.8;
    }

    .sw-content-text p {
        margin: 0 0 1.5rem;
    }

    /* --- Callout Box --- */
    .sw-callout-box {
        border-left: 4px solid #0ea5e9;
        padding: 1.5rem 2rem;
        border-radius: 0 12px 12px 0;
        margin: 1.5rem 0;
    }

    .sw-cs-hero-row .sw-callout-box {
        overflow: hidden;
        clear: right;
    }

    .sw-callout-box p {
        font-family: 'Roboto', sans-serif;
        font-size: 1.05rem;
        color: #bae6fd;
        margin: 0;
        line-height: 1.7;
    }

    .sw-callout-box strong {
        color: #fde047;
    }

    /* --- Card Grids --- */
    .sw-approach-grid,
    .sw-insight-grid {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 1.5rem;
    }

    .sw-result-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 1.5rem;
        margin-bottom: 2rem;
    }

    @media (max-width: 768px) {

        .sw-approach-grid,
        .sw-insight-grid {
            grid-template-columns: 1fr;
        }

        .sw-result-grid {
            grid-template-columns: 1fr;
        }
    }

    .sw-approach-card,
    .sw-result-card,
    .sw-insight-card {
        background: #fff;
        border: 1px solid var(--sw-border);
        border-radius: 12px;
        padding: 1.75rem;
        transition: all 0.3s ease;
    }

    .sw-approach-card:hover,
    .sw-result-card:hover,
    .sw-insight-card:hover {
        box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    }

    .sw-approach-card .sw-card-number {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 32px;
        height: 32px;
        color: #fff;
        font-family: 'Roboto Condensed', sans-serif;
        font-size: 0.9rem;
        font-weight: 700;
        border-radius: 8px;
        margin-bottom: 1rem;
        background-size: 300% 300%;
        animation: sw-shimmer-diagonal 4s ease-in-out infinite;
    }

    .sw-approach-card h4,
    .sw-result-card h4,
    .sw-insight-card h4 {
        font-family: 'Roboto Condensed', sans-serif;
        font-size: 1.1rem;
        font-weight: 700;
        color: #111;
        margin: 0 0 0.75rem;
    }

    .sw-approach-card p,
    .sw-result-card p,
    .sw-insight-card p {
        font-family: 'Roboto', sans-serif;
        font-size: 0.95rem;
        color: #334155;
        margin: 0;
        line-height: 1.6;
    }

    /* --- Insight Callout --- */
    .sw-insight-callout {
        border-radius: 16px;
        padding: 2.5rem;
        margin: 2rem 0;
    }

    .sw-insight-callout h3 {
        font-family: 'Roboto Condensed', sans-serif;
        font-size: 1rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.05em;
        margin: 0 0 1rem;
    }

    .sw-insight-callout p {
        font-family: 'Roboto', sans-serif;
        font-size: 1.1rem;
        color: #bae6fd;
        line-height: 1.7;
        margin: 0;
    }

    /* --- Terminal CTA --- */
    .sw-terminal-cta {
        background: #0a0a0a;
        border-radius: 16px;
        overflow: hidden;
        margin: 2rem 0;
    }

    .sw-term-header {
        background: #1a1a1a;
        padding: 12px 16px;
        display: flex;
        align-items: center;
        gap: 12px;
    }

    .sw-term-dots {
        display: flex;
        gap: 6px;
    }

    .sw-term-dot {
        width: 12px;
        height: 12px;
        border-radius: 50%;
    }

    .sw-term-dot.r {
        background: #ff5f56;
    }

    .sw-term-dot.y {
        background: #ffbd2e;
    }

    .sw-term-dot.g {
        background: #27ca40;
    }

    .sw-term-title {
        font-family: 'Roboto Mono', monospace;
        font-size: 0.75rem;
        color: #64748b;
        letter-spacing: 0.1em;
    }

    .sw-term-body {
        position: relative;
        padding: 2rem;
        min-height: 320px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        overflow: hidden;
    }

    /* Duplicate removed - using definition at line ~1680 instead */

    .sw-status-blink {
        position: relative;
        z-index: 10;
        display: block;
        font-family: 'Roboto Mono', monospace;
        font-size: 0.8rem;
        color: #10b981;
        margin-bottom: 1rem;
        animation: sw-blink 1.5s ease-in-out infinite;
    }

    .sw-cta-glitch-text {
        position: relative;
        z-index: 10;
        font-family: 'Roboto Condensed', sans-serif;
        font-size: clamp(1.5rem, 3vw, 2rem);
        font-weight: 700;
        color: #fff;
        text-transform: uppercase;
        margin-bottom: 1.5rem;
        max-width: 600px;
    }

    .sw-btn-terminal {
        position: relative;
        z-index: 10;
        display: inline-block;
        padding: 16px 40px;
        background: #0a0a0a;
        border: 2px solid;
        font-family: 'Roboto Condensed', sans-serif;
        font-size: 1.1rem;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.1em;
        text-decoration: none;
        border-radius: 8px;
        transition: all 0.3s ease;
        width: fit-content;
    }

    .sw-btn-terminal:hover {
        transform: translateY(-2px);
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
    }

    /* Related/Learn More Section */
    .sw-related-section {
        text-align: center;
        padding: 2rem 1.5rem;
        background: #fff;
    }

    .sw-related-section p {
        font-family: 'Roboto', sans-serif;
        font-size: 1.05rem;
        color: #475569;
        margin: 0;
    }

    .sw-related-section a {
        font-weight: 700;
        text-decoration: none;
        background-size: 200% auto;
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        background-clip: text;
        animation: sw-shimmer-h 3s linear infinite;
        transition: all 0.2s ease;
    }

    .sw-link-tour {
        background: linear-gradient(90deg, #d97706, #f59e0b, #fbbf24, #f59e0b, #d97706);
    }

    .sw-link-festivals {
        background: linear-gradient(90deg, #7c3aed, #8b5cf6, #a78bfa, #8b5cf6, #7c3aed);
    }

    /* --- Fade Up Animation --- */
    .sw-fade-up {
        opacity: 0;
        transform: translateY(20px);
        animation: swFadeUp 0.6s ease forwards;
    }

    @keyframes swFadeUp {
        to {
            opacity: 1;
            transform: translateY(0);
        }
    }

    /* --- Carousel Component (structure only) --- */
    @media (max-width: 768px) {
        .sw-cs-carousel-col {
            display: none !important;
        }
    }

    @media (min-width: 769px) {
        .sw-cs-carousel-col {
            float: right;
            width: 280px;
            margin: 0 0 1.5rem 2rem;
            shape-outside: margin-box;
        }

        .sw-cs-carousel {
            position: relative;
            width: 100%;
            border-radius: 16px;
            overflow: hidden;
            aspect-ratio: 9 / 16;
            background: #0a0a0a;
        }

        .sw-cs-slide {
            position: absolute;
            inset: 0;
            opacity: 0;
            transition: opacity 0.8s ease;
        }

        .sw-cs-slide.active {
            opacity: 1;
        }

        .sw-cs-slide-image {
            position: absolute;
            inset: 0;
            overflow: hidden;
        }

        .sw-cs-slide-image img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

        .sw-cs-slide-image::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 35%;
            background: linear-gradient(to bottom, rgba(0, 0, 0, 0.7) 0%, transparent 100%);
            z-index: 1;
            pointer-events: none;
        }

        .sw-cs-slide-image::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            height: 35%;
            background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, transparent 100%);
            z-index: 1;
            pointer-events: none;
        }

        .sw-cs-slide-stat {
            position: absolute;
            top: 1rem;
            left: 1rem;
            z-index: 2;
            text-align: left;
        }

        .sw-cs-slide-stat .sw-stat-number {
            display: block;
            font-family: 'Roboto Condensed', sans-serif;
            font-size: clamp(2.5rem, 6vw, 3.8rem);
            font-weight: 900;
            line-height: 1;
            margin-bottom: 0.25rem;
        }

        .sw-cs-slide-stat .sw-stat-label {
            display: block;
            font-size: 0.75rem;
            color: #fff;
            text-transform: uppercase;
            letter-spacing: 0.1em;
        }

        .sw-cs-slide-kicker {
            position: absolute;
            bottom: 1rem;
            right: 1rem;
            z-index: 2;
            display: inline-block;
            width: fit-content;
            font-family: 'Roboto Condensed', sans-serif;
            font-size: 0.75rem;
            font-weight: 500;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            color: #fff;
            padding: 8px 16px;
            border-radius: 4px;
            background-size: 200% auto;
            animation: sw-shimmer-h 4s linear infinite;
        }

        .sw-cs-hero-row::after {
            content: "";
            display: table;
            clear: both;
        }

        /* GUI Corner Elements */
        .sw-gui-corner {
            position: absolute;
            width: 20px;
            height: 20px;
            z-index: 10;
            pointer-events: none;
            border: 1.2px solid #fff;
            opacity: 0.8;
        }

        .sw-gui-corner-tr {
            top: 8px;
            right: 8px;
            border-bottom: none !important;
            border-left: none !important;
            border-top-right-radius: 12px;
        }

        .sw-gui-corner-bl {
            bottom: 8px;
            left: 8px;
            border-top: none !important;
            border-right: none !important;
            border-bottom-left-radius: 12px;
        }
    }