.case-study-shell{
    min-height:100vh;
    background:
        radial-gradient(circle at top left,#dff5ff 0,#eef7ff 30%,#f5edff 65%,#fff 100%);
    color:#071827;
}

.case-study-main{
    overflow:hidden;
}

.case-study-nav-current{
    position:relative;
}

.case-study-nav-current::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:-8px;
    height:3px;
    border-radius:999px;
    background:#ffffff;
}

.case-study-hero{
    position:relative;
    padding:82px 5vw 72px;
    color:#fff;
    background:
        radial-gradient(circle at 86% 22%,rgba(0,153,255,.28),transparent 30%),
        radial-gradient(circle at 8% 80%,rgba(190,39,245,.20),transparent 34%),
        linear-gradient(135deg,#04111f,#092f50 54%,#21143a);
}

.case-study-hero-inner{
    width:min(1240px,100%);
    margin:0 auto;
}

.case-study-eyebrow{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:8px 14px;
    border:1px solid rgba(125,211,252,.35);
    border-radius:999px;
    background:rgba(0,153,255,.10);
    color:#7dd3fc;
    text-transform:uppercase;
    letter-spacing:.15em;
    font-size:.8rem;
    font-weight:900;
}

.case-study-hero h1{
    max-width:1050px;
    margin:20px 0 18px;
    font-size:clamp(2.8rem,5vw,5.5rem);
    line-height:1;
    color:#fff;
}

.case-study-hero-lead{
    max-width:940px;
    margin:0;
    color:#d6e7f7;
    font-size:1.15rem;
    line-height:1.8;
}

.case-study-meta{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:26px;
}

.case-study-chip{
    display:inline-flex;
    padding:8px 12px;
    border-radius:999px;
    background:rgba(255,255,255,.09);
    border:1px solid rgba(255,255,255,.16);
    color:#e8f4ff;
    font-size:.85rem;
    font-weight:800;
}

.case-study-section{
    padding:64px 5vw;
}

.case-study-container{
    width:min(1240px,100%);
    margin:0 auto;
}

.case-study-section h2{
    margin:0 0 16px;
    color:#071827;
    font-size:clamp(2rem,3vw,3.4rem);
}

.case-study-section h3{
    color:#092f50;
}

.case-study-section p,
.case-study-section li{
    color:#405a73;
    line-height:1.78;
}

.case-study-intro{
    max-width:940px;
    font-size:1.08rem;
}

.case-study-dark{
    background:
        linear-gradient(135deg,#071827,#092f50 54%,#25183f);
    color:#fff;
}

.case-study-dark h2,
.case-study-dark h3{
    color:#fff;
}

.case-study-dark p,
.case-study-dark li{
    color:#c9d9ee;
}

.case-study-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:20px;
    margin-top:30px;
}

.case-study-card{
    padding:26px;
    border-radius:24px;
    background:rgba(255,255,255,.88);
    border:1px solid rgba(0,153,255,.17);
    box-shadow:0 18px 46px rgba(15,23,42,.08);
}

.case-study-card h3{
    margin:8px 0 12px;
}

.case-study-card p{
    margin-bottom:0;
}

.case-study-card-icon{
    display:inline-flex;
    width:46px;
    height:46px;
    align-items:center;
    justify-content:center;
    border-radius:15px;
    background:linear-gradient(135deg,#0099ff,#be27f5);
    color:#fff;
    font-size:1.25rem;
}

.case-study-dark .case-study-card{
    background:rgba(255,255,255,.07);
    border-color:rgba(125,211,252,.22);
}

.case-study-dark .case-study-card h3{
    color:#fff;
}

.case-study-dark .case-study-card p{
    color:#c9d9ee;
}

.case-study-facts{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:16px;
    margin-top:28px;
}

.case-study-fact{
    padding:20px;
    border-radius:20px;
    background:#fff;
    border:1px solid rgba(0,153,255,.17);
    box-shadow:0 14px 34px rgba(15,23,42,.07);
}

.case-study-fact span{
    display:block;
    color:#64748b;
    font-size:.82rem;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.09em;
}

.case-study-fact strong{
    display:block;
    margin-top:8px;
    color:#071827;
    font-size:1.25rem;
}

.case-study-callout{
    padding:28px;
    margin-top:28px;
    border-left:5px solid #0099ff;
    border-radius:0 20px 20px 0;
    background:linear-gradient(135deg,#eaf7ff,#f7fbff);
}

.case-study-callout strong{
    color:#071827;
}

.case-study-list{
    margin:18px 0 0;
    padding-left:24px;
}

.case-study-list li{
    margin:10px 0;
}

.case-study-control{
    display:grid;
    grid-template-columns:70px 1fr;
    gap:20px;
    padding:24px 0;
    border-bottom:1px solid rgba(148,163,184,.22);
}

.case-study-control:last-child{
    border-bottom:0;
}

.case-study-control-number{
    display:flex;
    width:54px;
    height:54px;
    align-items:center;
    justify-content:center;
    border-radius:17px;
    background:linear-gradient(135deg,#0099ff,#be27f5);
    color:#fff;
    font-size:1.1rem;
    font-weight:950;
}

.case-study-control h3{
    margin:0 0 8px;
}

.case-study-control p{
    margin:0;
}

.case-study-table-wrap{
    overflow-x:auto;
    margin-top:28px;
    border-radius:22px;
    border:1px solid rgba(0,153,255,.16);
    background:#fff;
    box-shadow:0 16px 38px rgba(15,23,42,.07);
}

.case-study-table{
    width:100%;
    min-width:900px;
    border-collapse:collapse;
}

.case-study-table th,
.case-study-table td{
    padding:18px 20px;
    vertical-align:top;
    text-align:left;
    border-bottom:1px solid #e7eef5;
}

.case-study-table th{
    color:#fff;
    background:#092f50;
    font-size:.85rem;
    text-transform:uppercase;
    letter-spacing:.06em;
}

.case-study-table td{
    color:#405a73;
    line-height:1.55;
}

.case-study-table tr:last-child td{
    border-bottom:0;
}

.case-study-disclaimer{
    padding:26px;
    margin-top:30px;
    border-radius:22px;
    background:#fff7ed;
    border:1px solid #fed7aa;
}

.case-study-disclaimer h3{
    margin-top:0;
    color:#9a3412;
}

.case-study-disclaimer p{
    color:#7c2d12;
    margin-bottom:0;
}

.case-study-library-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:22px;
    margin-top:30px;
}

.case-study-library-card{
    display:flex;
    flex-direction:column;
    min-height:100%;
    padding:28px;
    border-radius:26px;
    background:#fff;
    border:1px solid rgba(0,153,255,.17);
    box-shadow:0 20px 48px rgba(15,23,42,.09);
}

.case-study-library-card h2{
    margin:14px 0 12px;
    font-size:1.55rem;
}

.case-study-library-card p{
    flex:1;
}

.case-study-library-card .btn{
    align-self:flex-start;
    margin-top:16px;
}

.case-study-status{
    display:inline-flex;
    align-self:flex-start;
    padding:7px 11px;
    border-radius:999px;
    background:#ecfdf5;
    color:#047857;
    font-size:.78rem;
    font-weight:900;
    text-transform:uppercase;
}

.case-study-status.coming{
    background:#eff6ff;
    color:#1d4ed8;
}

.case-study-cta-band{
    padding:52px 5vw;
    background:linear-gradient(135deg,#0099ff,#0066cc 58%,#41216d);
    color:#fff;
}

.case-study-cta-inner{
    width:min(1240px,100%);
    margin:0 auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
}

.case-study-cta-band h2{
    margin:0 0 10px;
    color:#fff;
}

.case-study-cta-band p{
    max-width:760px;
    margin:0;
    color:#e0f2fe;
    line-height:1.7;
}

.case-study-actions{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
}

body.landing-dark-mode .case-study-section:not(.case-study-dark){
    background:#07111f;
}

body.landing-dark-mode .case-study-section:not(.case-study-dark) h2,
body.landing-dark-mode .case-study-section:not(.case-study-dark) h3{
    color:#fff;
}

body.landing-dark-mode .case-study-section:not(.case-study-dark) p,
body.landing-dark-mode .case-study-section:not(.case-study-dark) li{
    color:#bfd1e5;
}

body.landing-dark-mode .case-study-card,
body.landing-dark-mode .case-study-fact,
body.landing-dark-mode .case-study-library-card,
body.landing-dark-mode .case-study-table-wrap{
    background:#0f1d33;
    border-color:rgba(0,153,255,.25);
}

body.landing-dark-mode .case-study-fact strong,
body.landing-dark-mode .case-study-library-card h2{
    color:#fff;
}

body.landing-dark-mode .case-study-fact span{
    color:#9fb7ce;
}

body.landing-dark-mode .case-study-table td{
    color:#bfd1e5;
    border-color:#253852;
}

body.landing-dark-mode .case-study-callout{
    background:#0d2238;
}

body.landing-dark-mode .case-study-callout strong{
    color:#fff;
}

@media(max-width:1320px) and (min-width:1001px){
    .landing-nav{
        padding-left:2.5vw !important;
        padding-right:2.5vw !important;
    }

    .landing-brand{
        min-width:235px !important;
        max-width:260px !important;
    }

    .landing-links{
        gap:8px !important;
    }

    .landing-links a{
        font-size:.82rem !important;
    }

    .landing-theme-toggle{
        min-width:102px !important;
        padding:0 12px !important;
    }

    .landing-actions .btn{
        padding:0 13px !important;
        font-size:.82rem !important;
    }
}

@media(max-width:1000px){
    .case-study-grid,
    .case-study-library-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .case-study-facts{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .case-study-cta-inner{
        align-items:flex-start;
        flex-direction:column;
    }
}

@media(max-width:650px){
    .case-study-hero{
        padding-top:52px;
    }

    .case-study-grid,
    .case-study-library-grid,
    .case-study-facts{
        grid-template-columns:1fr;
    }

    .case-study-control{
        grid-template-columns:1fr;
    }

    .case-study-actions{
        width:100%;
    }

    .case-study-actions .btn{
        width:100%;
        justify-content:center;
    }
}

/* ============================================================
   TShield Case Studies — Publication Polish
   ============================================================ */

.case-study-hero-grid{
    display:grid;
    grid-template-columns:minmax(0,1.45fr) minmax(320px,.55fr);
    gap:54px;
    align-items:center;
}

.case-study-publication-panel{
    position:relative;
    overflow:hidden;
    min-height:390px;
    padding:30px;
    border:1px solid rgba(76,201,240,.28);
    border-radius:30px;
    background:
        linear-gradient(145deg,rgba(5,20,38,.96),rgba(10,43,71,.88));
    box-shadow:
        0 30px 80px rgba(0,0,0,.28),
        inset 0 0 70px rgba(0,153,255,.05);
}

.case-study-publication-panel::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(rgba(0,153,255,.055) 1px,transparent 1px),
        linear-gradient(90deg,rgba(0,153,255,.055) 1px,transparent 1px);
    background-size:28px 28px;
    pointer-events:none;
}

.case-study-publication-panel::after{
    content:"";
    position:absolute;
    width:260px;
    height:260px;
    right:-70px;
    bottom:-85px;
    border-radius:50%;
    border:1px solid rgba(0,255,174,.25);
    box-shadow:
        0 0 0 32px rgba(0,255,174,.025),
        0 0 0 66px rgba(0,153,255,.025);
}

.case-study-publication-logo{
    position:relative;
    z-index:2;
    display:block;
    width:min(230px,72%);
    max-height:150px;
    object-fit:contain;
    object-position:left center;
    margin-bottom:34px;
}

.case-study-publication-kicker{
    position:relative;
    z-index:2;
    color:#6ee7ff;
    font-size:.76rem;
    font-weight:950;
    letter-spacing:.16em;
    text-transform:uppercase;
}

.case-study-publication-code{
    position:relative;
    z-index:2;
    margin-top:8px;
    color:#fff;
    font-size:1.6rem;
    font-weight:950;
}

.case-study-publication-meta{
    position:relative;
    z-index:2;
    margin-top:26px;
    display:grid;
    gap:10px;
}

.case-study-publication-meta div{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:11px 0;
    border-bottom:1px solid rgba(255,255,255,.11);
}

.case-study-publication-meta span{
    color:#8eabc3;
    font-size:.74rem;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.case-study-publication-meta strong{
    color:#e9f6ff;
    font-size:.88rem;
    text-align:right;
}

.case-study-featured{
    position:relative;
    overflow:hidden;
    grid-column:span 2;
    min-height:350px;
    padding:34px;
    background:
        radial-gradient(circle at 100% 0,rgba(0,153,255,.18),transparent 36%),
        linear-gradient(145deg,#0d1d33,#122b48);
}

.case-study-featured::after{
    content:"TShield";
    position:absolute;
    right:-10px;
    bottom:-38px;
    color:rgba(255,255,255,.035);
    font-size:8rem;
    font-weight:950;
    pointer-events:none;
}

.case-study-featured h2{
    color:#fff !important;
}

.case-study-featured p{
    color:#c9daec !important;
    max-width:820px;
}

/* Fix dark-theme analytical-disclaimer readability */
body.landing-dark-mode .case-study-disclaimer{
    background:#fff7ed;
    border-color:#fed7aa;
}

body.landing-dark-mode .case-study-disclaimer h3{
    color:#9a3412 !important;
}

body.landing-dark-mode .case-study-disclaimer p{
    color:#7c2d12 !important;
}

/* Telecom architecture topology */
.tshield-topology{
    position:relative;
    overflow:hidden;
    margin-top:38px;
    padding:28px;
    border:1px solid rgba(0,184,255,.24);
    border-radius:30px;
    background:
        linear-gradient(rgba(12,83,118,.11) 1px,transparent 1px),
        linear-gradient(90deg,rgba(12,83,118,.11) 1px,transparent 1px),
        radial-gradient(circle at 50% 15%,rgba(0,204,255,.08),transparent 32%),
        #061421;
    background-size:
        38px 38px,
        38px 38px,
        auto,
        auto;
    box-shadow:
        inset 0 0 60px rgba(0,0,0,.38),
        0 22px 55px rgba(0,0,0,.18);
}

.tshield-topology-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-bottom:28px;
}

.tshield-topology-title{
    color:#dff8ff;
    font-weight:950;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.tshield-topology-status{
    padding:9px 18px;
    border:1px solid rgba(0,244,160,.35);
    border-radius:999px;
    background:rgba(0,175,120,.12);
    color:#b9ffe2;
    font-size:.8rem;
    font-weight:950;
    letter-spacing:.08em;
}

.tshield-topology-core{
    position:relative;
    display:flex;
    flex-direction:column;
    align-items:center;
}

.tshield-node{
    position:relative;
    z-index:3;
    min-width:220px;
    padding:16px 24px;
    border:2px solid #3a92ff;
    border-radius:15px;
    background:rgba(19,42,70,.92);
    color:#fff;
    text-align:center;
    font-weight:950;
    box-shadow:0 12px 26px rgba(0,0,0,.22);
}

.tshield-node small{
    display:block;
    margin-top:5px;
    color:#94abc0;
    font-size:.62rem;
    letter-spacing:.08em;
}

.tshield-node.tshield-node-appliance{
    border-color:#00e39c;
    background:rgba(0,91,75,.48);
}

.tshield-node.tshield-node-switch{
    border-color:#ff9815;
    background:rgba(100,59,10,.40);
}

.tshield-topology-line{
    position:relative;
    width:5px;
    height:54px;
    background:linear-gradient(#027b9b,#19d9ff,#027b9b);
    box-shadow:0 0 12px rgba(0,211,255,.7);
}

.tshield-topology-line::after{
    content:"";
    position:absolute;
    left:50%;
    width:10px;
    height:10px;
    transform:translateX(-50%);
    border-radius:50%;
    background:#36edff;
    box-shadow:0 0 15px #36edff;
    animation:tshield-flow-vertical 2.1s linear infinite;
}

.tshield-topology-bus{
    position:relative;
    width:90%;
    height:5px;
    margin:0 auto 70px;
    background:#18cef4;
    box-shadow:0 0 13px rgba(0,207,255,.75);
}

.tshield-topology-bus::before,
.tshield-topology-bus::after{
    content:"";
    position:absolute;
    top:50%;
    width:11px;
    height:11px;
    border-radius:50%;
    transform:translateY(-50%);
    background:#00f1a5;
    box-shadow:0 0 15px #00f1a5;
    animation:tshield-flow-horizontal 4.5s linear infinite;
}

.tshield-topology-bus::after{
    animation-delay:-2.25s;
}

.tshield-topology-grid{
    display:grid;
    grid-template-columns:repeat(8,minmax(100px,1fr));
    gap:8px;
    margin-top:-50px;
}

.tshield-branch{
    position:relative;
    display:flex;
    flex-direction:column;
    align-items:center;
    min-width:0;
}

.tshield-branch::before{
    content:"";
    width:4px;
    height:55px;
    background:#12c8ed;
    box-shadow:0 0 10px rgba(0,207,255,.6);
}

.tshield-tap,
.tshield-server{
    width:100%;
    max-width:130px;
    padding:13px 7px;
    border-radius:14px;
    text-align:center;
    color:#fff;
    font-size:.72rem;
    font-weight:950;
}

.tshield-tap{
    border:2px solid #00e39c;
    background:#0b3133;
}

.tshield-server{
    border:2px solid #3a92ff;
    background:#122744;
}

.tshield-tap small,
.tshield-server small{
    display:block;
    margin-top:4px;
    color:#92a7b9;
    font-size:.54rem;
}

.tshield-branch-line{
    position:relative;
    width:4px;
    height:72px;
    background:#0baeca;
    box-shadow:0 0 10px rgba(0,207,255,.45);
}

.tshield-branch-line::after{
    content:"";
    position:absolute;
    left:50%;
    width:9px;
    height:9px;
    transform:translateX(-50%);
    border-radius:50%;
    background:#19f2af;
    box-shadow:0 0 14px #19f2af;
    animation:tshield-flow-vertical 2.7s linear infinite;
}

.tshield-branch:nth-child(even) .tshield-branch-line::after{
    animation-delay:-1.2s;
    background:#38ddff;
    box-shadow:0 0 14px #38ddff;
}

@keyframes tshield-flow-vertical{
    from{top:0}
    to{top:calc(100% - 10px)}
}

@keyframes tshield-flow-horizontal{
    from{left:0}
    to{left:calc(100% - 11px)}
}

@media(max-width:1100px){
    .case-study-hero-grid{
        grid-template-columns:1fr;
    }

    .case-study-publication-panel{
        min-height:auto;
    }

    .tshield-topology-grid{
        grid-template-columns:repeat(4,1fr);
        row-gap:25px;
    }

    .tshield-topology-bus{
        display:none;
    }

    .tshield-topology-grid{
        margin-top:20px;
    }
}

@media(max-width:650px){
    .case-study-featured{
        grid-column:auto;
    }

    .tshield-topology{
        padding:18px 12px;
    }

    .tshield-topology-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .tshield-node{
        min-width:0;
        width:90%;
    }
}

/* ============================================================
   TShield Topology — Official Appliance Logo Refinement
   ============================================================ */

.tshield-topology-logo{
    display:block;
    width:auto;
    height:auto;
    object-fit:contain;
    user-select:none;
    pointer-events:none;
}

.tshield-topology-logo-main{
    width:54px;
    max-height:62px;
    margin:0 auto 7px;
    filter:
        drop-shadow(0 0 8px rgba(255,205,28,.30))
        drop-shadow(0 5px 8px rgba(0,0,0,.28));
}

.tshield-node-appliance{
    padding-top:12px;
    padding-bottom:10px;
}

.tshield-node-appliance small{
    margin-top:2px;
}

.tshield-tap{
    position:relative;
    padding-top:8px;
    padding-bottom:7px;
}

.tshield-tap-logo-wrap{
    position:relative;
    display:flex;
    justify-content:center;
    align-items:center;
    min-height:37px;
    margin-bottom:2px;
}

.tshield-topology-logo-tap{
    width:29px;
    max-height:33px;
    filter:
        drop-shadow(0 0 5px rgba(255,205,28,.24))
        drop-shadow(0 3px 5px rgba(0,0,0,.25));
}

.tshield-topology-appliance-number{
    position:absolute;
    top:-2px;
    right:8px;
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:20px;
    height:20px;
    padding:0 5px;
    border:1px solid rgba(54,237,255,.50);
    border-radius:999px;
    background:rgba(3,37,53,.92);
    color:#7cecff;
    font-size:.60rem;
    font-weight:950;
    line-height:1;
    box-shadow:
        0 0 8px rgba(54,237,255,.16),
        inset 0 0 8px rgba(54,237,255,.06);
}

.tshield-tap small{
    margin-top:0;
}

@media(max-width:650px){
    .tshield-topology-logo-main{
        width:48px;
    }

    .tshield-topology-logo-tap{
        width:27px;
    }

    .tshield-topology-appliance-number{
        right:5px;
    }
}

/* ============================================================
   TShield Case Studies — Sticky Header Section Offset
   ============================================================ */

:root{
    --case-study-sticky-offset: 112px;
}

.case-study-section,
.case-study-hero,
.case-study-cta,
.case-study-main section{
    scroll-margin-top:
        var(--case-study-sticky-offset);
}

.case-study-section h2,
.case-study-section h3,
.case-study-main h2,
.case-study-main h3{
    scroll-margin-top:
        calc(
            var(--case-study-sticky-offset)
            + 16px
        );
}

.case-study-section{
    position:relative;
}

@media(max-width:900px){
    :root{
        --case-study-sticky-offset: 126px;
    }
}

@media(max-width:650px){
    :root{
        --case-study-sticky-offset: 144px;
    }
}

/* ============================================================
   TShield Case Studies — Section Heading Breathing Room
   ============================================================ */

.case-study-section > .case-study-container{
    padding-top:8px;
}

.case-study-section h2:first-child{
    margin-top:0;
}

.case-study-section .case-study-container > h2{
    padding-top:6px;
}

@media(max-width:650px){
    .case-study-section > .case-study-container{
        padding-top:4px;
    }
}

/* ============================================================
   CS-AFRICA-001 — Namibia Airports Company Visual System
   ============================================================ */

/* ------------------------------------------------------------
   500 GB Exfiltration Behaviour Monitor
   ------------------------------------------------------------ */

.nac-exfiltration-monitor{
    position:relative;
    overflow:hidden;
    margin:38px 0;
    padding:28px;
    border:1px solid rgba(44,187,255,.34);
    border-radius:22px;
    background:
        radial-gradient(
            circle at 78% 18%,
            rgba(120,49,255,.15),
            transparent 30%
        ),
        linear-gradient(
            145deg,
            rgba(4,26,44,.98),
            rgba(10,33,61,.98)
        );
    box-shadow:
        0 22px 48px rgba(0,0,0,.22),
        inset 0 0 0 1px rgba(255,255,255,.025);
}

.nac-exfiltration-monitor::before{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    opacity:.20;
    background-image:
        linear-gradient(
            rgba(48,201,255,.12) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(48,201,255,.12) 1px,
            transparent 1px
        );
    background-size:32px 32px;
}

.nac-monitor-header{
    position:relative;
    z-index:2;
    display:flex;
    justify-content:space-between;
    gap:20px;
    align-items:center;
    margin-bottom:30px;
    color:#fff;
    font-size:.84rem;
    font-weight:950;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.nac-monitor-header span{
    padding:8px 12px;
    border:1px solid rgba(0,230,167,.35);
    border-radius:999px;
    background:rgba(0,113,84,.20);
    color:#81ffd3;
    font-size:.68rem;
}

.nac-monitor-flow{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:
        minmax(0,1fr)
        auto
        minmax(0,1fr)
        auto
        minmax(0,1fr)
        auto
        minmax(0,1fr)
        auto
        minmax(0,1fr);
    gap:10px;
    align-items:center;
}

.nac-monitor-stage{
    min-height:118px;
    padding:17px 12px;
    border:1px solid rgba(69,172,255,.28);
    border-radius:15px;
    background:rgba(14,39,70,.88);
    text-align:center;
}

.nac-monitor-stage span{
    display:flex;
    align-items:center;
    justify-content:center;
    width:31px;
    height:31px;
    margin:0 auto 10px;
    border-radius:10px;
    background:linear-gradient(
        135deg,
        #199eff,
        #ac2fff
    );
    color:#fff;
    font-size:.72rem;
    font-weight:950;
}

.nac-monitor-stage strong{
    display:block;
    color:#fff;
    font-size:.76rem;
    letter-spacing:.045em;
}

.nac-monitor-stage small{
    display:block;
    margin-top:8px;
    color:#91a9bd;
    font-size:.63rem;
    line-height:1.35;
}

.nac-monitor-stage-alert{
    border-color:rgba(255,151,24,.48);
    box-shadow:0 0 24px rgba(255,138,0,.09);
}

.nac-monitor-stage-response{
    border-color:rgba(0,233,161,.42);
    box-shadow:0 0 24px rgba(0,233,161,.08);
}

.nac-monitor-arrow{
    color:#35dfff;
    font-size:1.45rem;
    font-weight:950;
    text-shadow:0 0 10px rgba(53,223,255,.70);
}

.nac-transfer-meter{
    position:relative;
    z-index:2;
    margin-top:32px;
}

.nac-transfer-labels{
    display:flex;
    justify-content:space-between;
    gap:20px;
    margin-bottom:8px;
    color:#a7bdd0;
    font-size:.68rem;
    font-weight:800;
}

.nac-transfer-track{
    position:relative;
    overflow:hidden;
    height:18px;
    border:1px solid rgba(66,197,255,.26);
    border-radius:999px;
    background:#061827;
}

.nac-transfer-normal{
    position:absolute;
    left:0;
    top:0;
    bottom:0;
    width:26%;
    background:linear-gradient(
        90deg,
        #00bde9,
        #00e69e
    );
    opacity:.76;
}

.nac-transfer-anomaly{
    position:absolute;
    left:26%;
    right:0;
    top:0;
    bottom:0;
    background:linear-gradient(
        90deg,
        #00e69e,
        #ffc22e 42%,
        #ff7356 74%,
        #d74cff
    );
    opacity:.68;
}

.nac-transfer-pulse{
    position:absolute;
    top:-4px;
    width:25px;
    height:25px;
    border-radius:50%;
    background:#fff;
    box-shadow:
        0 0 11px #fff,
        0 0 22px #31dcff,
        0 0 34px #9e49ff;
    animation:
        nac-transfer-scan 4.2s linear infinite;
}

@keyframes nac-transfer-scan{
    from{
        left:-30px;
    }

    to{
        left:calc(100% + 5px);
    }
}


/* ------------------------------------------------------------
   Correlation Chain
   ------------------------------------------------------------ */

.nac-correlation-chain{
    display:grid;
    grid-template-columns:
        minmax(0,1fr)
        auto
        minmax(0,1fr)
        auto
        minmax(0,1fr)
        auto
        minmax(0,1.15fr);
    gap:12px;
    align-items:stretch;
    margin:38px 0 10px;
}

.nac-correlation-chain > div:not(
    .nac-chain-plus
):not(
    .nac-chain-equals
){
    padding:20px 15px;
    border:1px solid rgba(67,178,255,.30);
    border-radius:16px;
    background:rgba(16,39,68,.90);
    text-align:center;
}

.nac-correlation-chain span{
    display:flex;
    align-items:center;
    justify-content:center;
    width:34px;
    height:34px;
    margin:0 auto 10px;
    border-radius:11px;
    background:linear-gradient(
        135deg,
        #1c9dff,
        #aa2fff
    );
    color:#fff;
    font-weight:950;
}

.nac-correlation-chain strong{
    display:block;
    color:#fff;
    font-size:.79rem;
}

.nac-correlation-chain small{
    display:block;
    margin-top:7px;
    color:#94aabd;
    font-size:.64rem;
    line-height:1.35;
}

.nac-chain-plus,
.nac-chain-equals{
    display:flex;
    align-items:center;
    justify-content:center;
    color:#43dcff;
    font-size:1.7rem;
    font-weight:950;
}

.nac-chain-incident{
    border-color:rgba(0,235,164,.42) !important;
    background:
        linear-gradient(
            145deg,
            rgba(0,80,69,.48),
            rgba(15,42,66,.94)
        ) !important;
    box-shadow:
        0 0 26px rgba(0,220,159,.10);
}


/* ------------------------------------------------------------
   Airport Defence Topology
   ------------------------------------------------------------ */

.nac-airport-topology{
    position:relative;
    overflow:hidden;
    margin:42px 0 4px;
    padding:28px 28px 34px;
    border:1px solid rgba(35,190,255,.35);
    border-radius:24px;
    background:
        radial-gradient(
            circle at 50% 30%,
            rgba(0,177,214,.10),
            transparent 38%
        ),
        linear-gradient(
            145deg,
            #041728,
            #061c31
        );
    box-shadow:
        0 24px 52px rgba(0,0,0,.25);
}

.nac-airport-topology::before{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    opacity:.20;
    background-image:
        linear-gradient(
            rgba(45,204,255,.15) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(45,204,255,.15) 1px,
            transparent 1px
        );
    background-size:34px 34px;
}

.nac-airport-topology-header{
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-bottom:28px;
}

.nac-airport-topology-header strong{
    color:#fff;
    font-size:.82rem;
    letter-spacing:.10em;
}

.nac-airport-topology-header span{
    padding:8px 12px;
    border:1px solid rgba(0,228,166,.36);
    border-radius:999px;
    background:rgba(0,98,73,.24);
    color:#84ffd6;
    font-size:.64rem;
    font-weight:950;
    letter-spacing:.07em;
}

.nac-airport-internet,
.nac-airport-core{
    position:relative;
    z-index:2;
    width:min(360px,80%);
    margin:0 auto;
    padding:16px 20px;
    border:2px solid #398fff;
    border-radius:15px;
    background:rgba(21,49,83,.94);
    color:#fff;
    text-align:center;
    font-weight:950;
}

.nac-airport-core{
    border-color:#ff9815;
    background:rgba(95,57,11,.46);
}

.nac-airport-internet small,
.nac-airport-core small{
    display:block;
    margin-top:5px;
    color:#94aac0;
    font-size:.60rem;
    letter-spacing:.08em;
}

.nac-airport-line{
    position:relative;
    z-index:2;
    width:5px;
    height:48px;
    margin:0 auto;
    background:
        linear-gradient(
            #087c9f,
            #21e5ff,
            #087c9f
        );
    box-shadow:
        0 0 12px rgba(0,216,255,.66);
}

.nac-airport-line::after{
    content:"";
    position:absolute;
    left:50%;
    width:10px;
    height:10px;
    transform:translateX(-50%);
    border-radius:50%;
    background:#3aeaff;
    box-shadow:0 0 15px #3aeaff;
    animation:
        nac-airport-flow-vertical 2.1s linear infinite;
}

.nac-airport-tshield{
    position:relative;
    z-index:2;
    width:min(250px,70%);
    margin:0 auto;
    padding:12px 18px 10px;
    border:2px solid #00df9b;
    border-radius:15px;
    background:rgba(0,80,69,.56);
    text-align:center;
}

.nac-airport-tshield img{
    display:block;
    width:55px;
    max-height:62px;
    margin:0 auto 5px;
    object-fit:contain;
    filter:
        drop-shadow(0 0 8px rgba(255,205,28,.30));
}

.nac-airport-tshield small{
    color:#a6bdcc;
    font-size:.60rem;
    font-weight:950;
    letter-spacing:.08em;
}

.nac-airport-zone-grid{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:22px;
    margin-top:60px;
}

.nac-airport-zone-grid::before{
    content:"";
    position:absolute;
    left:12%;
    right:12%;
    top:-31px;
    height:5px;
    background:#1bd4f3;
    box-shadow:0 0 13px rgba(0,207,255,.68);
}

.nac-airport-zone{
    position:relative;
    min-height:150px;
    padding:20px 14px 16px;
    border:2px solid #00df9b;
    border-radius:17px;
    background:rgba(8,47,52,.88);
    text-align:center;
}

.nac-airport-zone::before{
    content:"";
    position:absolute;
    left:50%;
    top:-32px;
    width:4px;
    height:32px;
    transform:translateX(-50%);
    background:#18ccef;
    box-shadow:0 0 9px rgba(0,208,255,.64);
}

.nac-airport-zone img{
    display:block;
    width:43px;
    max-height:49px;
    margin:0 auto 8px;
    object-fit:contain;
    filter:
        drop-shadow(0 0 6px rgba(255,205,28,.25));
}

.nac-airport-zone strong{
    display:block;
    color:#fff;
    font-size:.78rem;
}

.nac-airport-zone small{
    display:block;
    margin-top:7px;
    color:#91a9bc;
    font-size:.62rem;
    line-height:1.4;
}

.nac-airport-soc-line{
    position:relative;
    z-index:2;
    width:5px;
    height:55px;
    margin:0 auto;
    background:#1ed3f2;
    box-shadow:0 0 11px rgba(0,209,255,.62);
}

.nac-airport-soc-line::after{
    content:"";
    position:absolute;
    left:50%;
    width:10px;
    height:10px;
    transform:translateX(-50%);
    border-radius:50%;
    background:#20eca9;
    box-shadow:0 0 14px #20eca9;
    animation:
        nac-airport-flow-vertical 2.4s linear infinite;
}

.nac-airport-soc{
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:16px;
    width:min(570px,90%);
    margin:0 auto;
    padding:17px 20px;
    border:2px solid #8457ff;
    border-radius:17px;
    background:
        linear-gradient(
            135deg,
            rgba(20,54,87,.95),
            rgba(52,27,89,.94)
        );
}

.nac-airport-soc img{
    width:46px;
    max-height:52px;
    object-fit:contain;
}

.nac-airport-soc strong{
    display:block;
    color:#fff;
    font-size:.82rem;
}

.nac-airport-soc small{
    display:block;
    margin-top:4px;
    color:#a3b7ca;
    font-size:.61rem;
    letter-spacing:.045em;
}

@keyframes nac-airport-flow-vertical{
    from{
        top:0;
    }

    to{
        top:calc(100% - 10px);
    }
}


/* ------------------------------------------------------------
   NAC responsive treatment
   ------------------------------------------------------------ */

@media(max-width:1100px){

    .nac-monitor-flow{
        grid-template-columns:1fr;
    }

    .nac-monitor-arrow{
        transform:rotate(90deg);
        text-align:center;
    }

    .nac-correlation-chain{
        grid-template-columns:1fr;
    }

    .nac-chain-plus,
    .nac-chain-equals{
        min-height:24px;
    }

    .nac-airport-zone-grid{
        grid-template-columns:1fr;
        gap:42px;
    }

    .nac-airport-zone-grid::before{
        display:none;
    }

    .nac-airport-zone::before{
        top:-43px;
        height:43px;
    }
}

@media(max-width:650px){

    .nac-exfiltration-monitor,
    .nac-airport-topology{
        padding:18px 14px;
    }

    .nac-monitor-header,
    .nac-airport-topology-header{
        align-items:flex-start;
        flex-direction:column;
    }

    .nac-transfer-labels{
        flex-direction:column;
        gap:4px;
    }

    .nac-airport-internet,
    .nac-airport-core{
        width:100%;
    }

    .nac-airport-tshield{
        width:82%;
    }

    .nac-airport-soc{
        width:100%;
        align-items:center;
        flex-direction:column;
        text-align:center;
    }
}


/* ============================================================
   CS-AFRICA-001 — Publication Contrast Normalisation
   ============================================================ */

body.landing-dark-mode.case-study-shell{
    background:#06111f;
    color:#dcecff;
}

body.landing-dark-mode.case-study-shell
.case-study-section:not(.case-study-dark){
    color:#dcecff;
}

body.landing-dark-mode.case-study-shell
.case-study-section:not(.case-study-dark) h1,
body.landing-dark-mode.case-study-shell
.case-study-section:not(.case-study-dark) h2,
body.landing-dark-mode.case-study-shell
.case-study-section:not(.case-study-dark) h3{
    color:#f7fbff;
}

body.landing-dark-mode.case-study-shell
.case-study-section:not(.case-study-dark) p,
body.landing-dark-mode.case-study-shell
.case-study-section:not(.case-study-dark) li{
    color:#c6ddf4;
}

body.landing-dark-mode.case-study-shell
.case-study-section-gradient h2,
body.landing-dark-mode.case-study-shell
.case-study-section-gradient h3{
    color:#ffffff;
}

body.landing-dark-mode.case-study-shell
.case-study-section-gradient p,
body.landing-dark-mode.case-study-shell
.case-study-section-gradient li{
    color:#c7ddf5;
}

/*
 * White analytical cards intentionally retain dark typography
 * for maximum contrast.
 */
body.landing-dark-mode.case-study-shell
.case-study-card:not(.case-study-dark .case-study-card){
    color:#09233d;
}

body.landing-dark-mode.case-study-shell
.case-study-card:not(.case-study-dark .case-study-card) h3{
    color:#071d33;
}

body.landing-dark-mode.case-study-shell
.case-study-card:not(.case-study-dark .case-study-card) p{
    color:#315778;
}

.case-study-cta-band{
    position:relative;
    z-index:2;
}

.case-study-cta-inner{
    padding-left:max(5vw,32px);
    padding-right:max(5vw,32px);
}

.landing-footer{
    padding-left:max(5vw,32px);
    padding-right:max(5vw,32px);
}

@media(max-width:650px){
    .case-study-cta-inner,
    .landing-footer{
        padding-left:22px;
        padding-right:22px;
    }
}


/* ============================================================
   TShield Case Study Library — Completed Publication Catalogue
   ============================================================ */

.case-study-library-code{
    margin:18px 0 8px;
    color:#66ddff;
    font-size:.72rem;
    font-weight:950;
    letter-spacing:.13em;
    text-transform:uppercase;
}

.case-study-library-card{
    position:relative;
    overflow:hidden;
}

.case-study-library-card::before{
    content:"";
    position:absolute;
    top:0;
    right:0;
    width:150px;
    height:150px;
    pointer-events:none;
    background:
        radial-gradient(
            circle at top right,
            rgba(48,181,255,.12),
            transparent 68%
        );
}

.case-study-library-card .btn{
    position:relative;
    z-index:2;
}

.case-study-series-card{
    border-color:
        rgba(139,92,246,.38);
}

.case-study-series-card::before{
    background:
        radial-gradient(
            circle at top right,
            rgba(169,74,255,.20),
            transparent 68%
        );
}

.case-study-intelligence-card{
    border-color:
        rgba(0,226,166,.44);

    background:
        linear-gradient(
            145deg,
            rgba(8,38,55,.98),
            rgba(9,28,51,.98)
        );
}

.case-study-intelligence-card::before{
    width:240px;
    height:240px;

    background:
        radial-gradient(
            circle at top right,
            rgba(0,238,181,.18),
            transparent 66%
        );
}

.case-study-status.intelligence{
    color:#9dffe2;
    border-color:
        rgba(0,226,166,.42);
    background:
        rgba(0,128,95,.20);
}

.case-study-series-note,
.case-study-publication-pending{
    position:relative;
    z-index:2;
    margin-top:22px;
    padding:13px 15px;
    border-radius:12px;
    font-size:.82rem;
    line-height:1.55;
}

.case-study-series-note{
    border:
        1px solid rgba(151,103,255,.20);
    background:
        rgba(112,59,190,.10);
}

.case-study-publication-pending{
    border:
        1px solid rgba(0,226,166,.24);
    background:
        rgba(0,133,101,.10);
    color:#aeeedc;
    font-weight:800;
}

.case-study-intelligence-preview{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:
        repeat(3,minmax(0,1fr));
    gap:8px;
    margin-top:20px;
}

.case-study-intelligence-preview span{
    display:flex;
    flex-direction:column;
    min-width:0;
    padding:10px;
    border:
        1px solid rgba(73,196,255,.18);
    border-radius:10px;
    background:
        rgba(0,15,31,.30);
    color:#72dfff;
    font-size:.55rem;
    font-weight:900;
    letter-spacing:.08em;
}

.case-study-intelligence-preview strong{
    margin-top:5px;
    color:#fff;
    font-size:.64rem;
    letter-spacing:0;
}

@media(max-width:650px){
    .case-study-intelligence-preview{
        grid-template-columns:1fr;
    }
}

/* ============================================================
   CS-INTEL-001 — 2026 African Cyber Security Intelligence
   ============================================================ */

.africa-intel-shell{
    --intel-cyan:#31dfff;
    --intel-green:#27e7aa;
    --intel-purple:#9c55ff;
    --intel-orange:#ffab32;
    --intel-red:#ff626b;
}

.africa-intel-hero{
    background:
        radial-gradient(
            circle at 14% 18%,
            rgba(0,196,255,.18),
            transparent 28%
        ),
        radial-gradient(
            circle at 88% 15%,
            rgba(112,55,255,.16),
            transparent 26%
        );
}

.africa-intel-notice{
    margin-bottom:32px;
    padding:20px 22px;
    border:1px solid rgba(68,192,255,.28);
    border-radius:16px;
    background:
        linear-gradient(
            145deg,
            rgba(12,37,61,.94),
            rgba(9,28,48,.94)
        );
}

.africa-intel-notice strong{
    display:block;
    margin-bottom:8px;
    color:#6de7ff;
    font-size:.76rem;
    letter-spacing:.11em;
    text-transform:uppercase;
}

.africa-intel-notice p{
    margin:0;
    color:#c7dcef;
}

.africa-intel-kpi-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
}

.africa-intel-kpi-grid article{
    position:relative;
    overflow:hidden;
    min-height:145px;
    padding:20px;
    border:1px solid rgba(82,183,255,.24);
    border-radius:17px;
    background:
        linear-gradient(
            145deg,
            rgba(11,36,61,.98),
            rgba(7,26,46,.98)
        );
}

.africa-intel-kpi-grid article::after{
    content:"";
    position:absolute;
    width:100px;
    height:100px;
    top:-45px;
    right:-30px;
    border-radius:50%;
    background:rgba(49,223,255,.08);
}

.africa-intel-kpi-grid span{
    color:#77dfff;
    font-size:.65rem;
    font-weight:950;
    letter-spacing:.09em;
}

.africa-intel-kpi-grid strong{
    display:block;
    margin-top:14px;
    color:#fff;
    font-size:2rem;
}

.africa-intel-kpi-grid small{
    display:block;
    margin-top:6px;
    color:#94aec3;
}

.africa-intel-section-heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:20px;
    margin-bottom:24px;
}

.africa-intel-section-heading > div:first-child > span{
    color:#48ddff;
    font-size:.67rem;
    font-weight:950;
    letter-spacing:.12em;
}

.africa-intel-section-heading h2{
    margin:5px 0 0;
}

.africa-intel-live-indicator{
    display:flex;
    align-items:center;
    gap:8px;
    padding:9px 12px;
    border:1px solid rgba(39,231,170,.34);
    border-radius:999px;
    color:#9dffe0;
    font-size:.62rem;
    font-weight:950;
    letter-spacing:.08em;
}

.africa-intel-live-indicator i{
    width:8px;
    height:8px;
    border-radius:50%;
    background:#28e9aa;
    box-shadow:0 0 12px #28e9aa;
    animation:intel-live-pulse 1.8s ease-in-out infinite;
}

@keyframes intel-live-pulse{
    50%{
        opacity:.35;
        transform:scale(.72);
    }
}

.africa-intel-filters{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:30px;
}

.africa-intel-filters button{
    border:1px solid rgba(87,176,255,.25);
    border-radius:999px;
    padding:9px 14px;
    background:rgba(11,37,62,.72);
    color:#bcd4e7;
    font:inherit;
    font-size:.72rem;
    font-weight:850;
    cursor:pointer;
}

.africa-intel-filters button:hover,
.africa-intel-filters button.active{
    border-color:rgba(49,223,255,.56);
    background:rgba(20,117,153,.30);
    color:#fff;
}

.africa-intel-timeline{
    position:relative;
}

.africa-intel-timeline::before{
    content:"";
    position:absolute;
    left:174px;
    top:16px;
    bottom:16px;
    width:2px;
    background:
        linear-gradient(
            #2edfff,
            #8b59ff,
            #26e7aa
        );
    opacity:.48;
}

.africa-intel-event{
    position:relative;
    display:grid;
    grid-template-columns:145px 28px minmax(0,1fr);
    gap:16px;
    margin-bottom:20px;
}

.africa-intel-event[hidden]{
    display:none;
}

.africa-intel-event-date{
    padding-top:22px;
    color:#78dcff;
    font-size:.72rem;
    font-weight:950;
    text-align:right;
}

.africa-intel-event-marker{
    position:relative;
    z-index:2;
    width:14px;
    height:14px;
    margin:24px auto 0;
    border:3px solid #071827;
    border-radius:50%;
    background:#36e5ff;
    box-shadow:0 0 14px rgba(54,229,255,.86);
}

.africa-intel-event-body{
    padding:20px;
    border:1px solid rgba(76,170,255,.20);
    border-radius:17px;
    background:
        linear-gradient(
            145deg,
            rgba(15,42,70,.96),
            rgba(8,29,50,.96)
        );
}

.africa-intel-event-top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
}

.africa-intel-event-top > div{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}

.africa-intel-country,
.africa-intel-type,
.africa-intel-evidence{
    display:inline-flex;
    padding:6px 9px;
    border-radius:999px;
    font-size:.60rem;
    font-weight:950;
    letter-spacing:.04em;
}

.africa-intel-country{
    background:rgba(41,152,255,.15);
    color:#8dd5ff;
}

.africa-intel-type{
    background:rgba(155,80,255,.14);
    color:#d5b9ff;
}

.africa-intel-evidence{
    border:1px solid rgba(39,231,170,.23);
    background:rgba(39,231,170,.09);
    color:#9effde;
}

.africa-intel-event-body h3{
    margin:15px 0 9px;
    color:#fff;
}

.africa-intel-event-body p{
    color:#bfd4e7 !important;
}

.africa-intel-event-footer{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin-top:16px;
}

.africa-intel-event-footer span{
    padding:10px 12px;
    border:1px solid rgba(255,255,255,.07);
    border-radius:10px;
    color:#7896ae;
    font-size:.56rem;
    font-weight:900;
    letter-spacing:.08em;
}

.africa-intel-event-footer strong{
    display:block;
    margin-top:4px;
    color:#dbeeff;
    font-size:.70rem;
    letter-spacing:0;
}

.africa-intel-no-results{
    padding:30px;
    text-align:center;
    color:#9db5c9;
}

.africa-intel-finance-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    margin-top:30px;
}

.africa-intel-finance-card{
    min-height:190px;
    padding:22px;
    border-radius:17px;
    border:1px solid rgba(72,176,255,.22);
    background:#fff;
}

.africa-intel-finance-card span{
    font-size:.64rem;
    font-weight:950;
    letter-spacing:.09em;
}

.africa-intel-finance-card strong{
    display:block;
    margin:15px 0 10px;
    color:#071b31;
    font-size:1.55rem;
}

.africa-intel-finance-card p{
    color:#365b79 !important;
}

.africa-intel-finance-card small{
    color:#6c8295;
}

.africa-intel-finance-card.loss{
    border-top:4px solid #ff626b;
}

.africa-intel-finance-card.recovery{
    border-top:4px solid #20d79a;
}

.africa-intel-finance-card.demand{
    border-top:4px solid #ffab32;
}

.africa-intel-finance-card.exposure{
    border-top:4px solid #8c56ff;
}

.africa-ddos-chart{
    margin-top:35px;
    padding:25px;
    border:1px solid rgba(61,190,255,.25);
    border-radius:20px;
    background:
        linear-gradient(
            145deg,
            rgba(8,32,54,.96),
            rgba(8,24,43,.96)
        );
}

.africa-ddos-row{
    display:grid;
    grid-template-columns:230px minmax(0,1fr) 70px;
    gap:15px;
    align-items:center;
    margin-bottom:23px;
}

.africa-ddos-label strong{
    display:block;
    color:#fff;
}

.africa-ddos-label span{
    display:block;
    margin-top:4px;
    color:#8fa9bd;
    font-size:.66rem;
}

.africa-ddos-track{
    position:relative;
    height:22px;
    overflow:hidden;
    border-radius:999px;
    background:#071522;
}

.africa-ddos-bar{
    width:var(--bar);
    height:100%;
    border-radius:999px;
    background:
        linear-gradient(
            90deg,
            #20dba4,
            #28cfff
        );
    box-shadow:0 0 16px rgba(40,207,255,.30);
    transform-origin:left;
    animation:intel-bar-grow 1.3s ease-out both;
}

.africa-ddos-bar.medium{
    background:
        linear-gradient(
            90deg,
            #29d6ff,
            #9e55ff
        );
}

.africa-ddos-bar.critical{
    background:
        linear-gradient(
            90deg,
            #ffb42f,
            #ff5f68,
            #a74fff
        );
}

@keyframes intel-bar-grow{
    from{
        transform:scaleX(0);
    }
}

.africa-ddos-row > b{
    color:#fff;
    text-align:right;
}

.africa-ddos-axis{
    display:flex;
    justify-content:space-between;
    margin-left:245px;
    color:#68879e;
    font-size:.61rem;
}

.africa-intel-country-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:13px;
    margin:30px 0;
}

.africa-intel-country-grid article{
    padding:15px 17px;
    border:1px solid rgba(69,177,255,.18);
    border-radius:13px;
    background:rgba(12,37,61,.72);
}

.africa-intel-country-grid article > div:first-child{
    display:flex;
    justify-content:space-between;
    gap:10px;
}

.africa-intel-country-grid strong{
    color:#fff;
}

.africa-intel-country-grid span{
    color:#84a6bd;
    font-size:.67rem;
}

.africa-country-meter{
    height:8px;
    margin-top:11px;
    overflow:hidden;
    border-radius:999px;
    background:#081624;
}

.africa-country-meter i{
    display:block;
    width:var(--country-width);
    height:100%;
    border-radius:999px;
    background:
        linear-gradient(
            90deg,
            #2adfff,
            #8759ff
        );
}

.africa-source-quality-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    margin:28px 0;
}

.africa-source-quality-grid article{
    padding:19px;
    border-radius:15px;
    background:#fff;
    color:#12304a;
}

.africa-source-quality-grid strong{
    font-size:.70rem;
    letter-spacing:.09em;
}

.africa-source-quality-grid p{
    margin-bottom:0;
    color:#41627c !important;
}

.africa-source-quality-grid .official{
    border-top:4px solid #20d99d;
}

.africa-source-quality-grid .reported{
    border-top:4px solid #36cfff;
}

.africa-source-quality-grid .claimed{
    border-top:4px solid #ffae34;
}

@media(max-width:1000px){

    .africa-intel-kpi-grid,
    .africa-intel-finance-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .africa-ddos-row{
        grid-template-columns:180px minmax(0,1fr) 58px;
    }

    .africa-ddos-axis{
        margin-left:195px;
    }
}

@media(max-width:700px){

    .africa-intel-kpi-grid,
    .africa-intel-finance-grid,
    .africa-intel-country-grid,
    .africa-source-quality-grid{
        grid-template-columns:1fr;
    }

    .africa-intel-section-heading{
        align-items:flex-start;
        flex-direction:column;
    }

    .africa-intel-timeline::before{
        left:7px;
    }

    .africa-intel-event{
        grid-template-columns:20px minmax(0,1fr);
        gap:12px;
    }

    .africa-intel-event-date{
        grid-column:2;
        text-align:left;
        padding:0;
    }

    .africa-intel-event-marker{
        grid-column:1;
        grid-row:1 / span 2;
        margin-top:5px;
    }

    .africa-intel-event-body{
        grid-column:2;
    }

    .africa-intel-event-top,
    .africa-intel-event-footer{
        grid-template-columns:1fr;
    }

    .africa-intel-event-top{
        align-items:flex-start;
        flex-direction:column;
    }

    .africa-ddos-row{
        grid-template-columns:1fr;
        gap:8px;
    }

    .africa-ddos-row > b{
        text-align:left;
    }

    .africa-ddos-axis{
        display:none;
    }
}


/* ============================================================
   TShield Case Studies — Final Library / Source Register Polish
   ============================================================ */

.case-study-intelligence-featured{
    grid-column:1 / -1;
    display:grid;
    grid-template-columns:minmax(260px,.65fr) minmax(0,1.35fr);
    gap:34px;
    align-items:center;
    min-height:300px;
}

.case-study-intelligence-featured::before{
    content:"INTELLIGENCE";
    position:absolute;
    top:22px;
    right:-38px;
    width:160px;
    padding:7px 0;
    transform:rotate(38deg);
    background:linear-gradient(
        90deg,
        #14d6e8,
        #8d4fff
    );
    color:#fff;
    text-align:center;
    font-size:.57rem;
    font-weight:950;
    letter-spacing:.10em;
    box-shadow:0 8px 24px rgba(0,0,0,.24);
}

.case-study-intelligence-featured
.case-study-library-code{
    margin-top:0;
}

.case-study-intelligence-featured
h3{
    max-width:620px;
    font-size:1.65rem;
}

.case-study-intelligence-featured
p{
    max-width:800px;
}

.case-study-intelligence-featured
.btn{
    width:max-content;
}

.africa-source-register{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin-top:28px;
}

.africa-source-register article{
    display:grid;
    grid-template-columns:42px minmax(0,1fr) auto;
    gap:13px;
    align-items:center;
    min-height:78px;
    padding:13px 15px;
    border:1px solid rgba(76,184,255,.18);
    border-radius:13px;
    background:
        linear-gradient(
            145deg,
            rgba(12,39,65,.88),
            rgba(7,28,48,.88)
        );
}

.africa-source-number{
    display:flex;
    align-items:center;
    justify-content:center;
    width:36px;
    height:36px;
    border:1px solid rgba(51,220,255,.28);
    border-radius:10px;
    background:rgba(26,133,170,.12);
    color:#72e9ff;
    font-size:.68rem;
    font-weight:950;
}

.africa-source-register strong{
    display:block;
    color:#f5fbff;
    font-size:.78rem;
    line-height:1.35;
}

.africa-source-register small{
    display:block;
    margin-top:3px;
    color:#7f9eb5;
    font-size:.60rem;
}

.africa-source-register time{
    color:#9cb8cb;
    font-size:.62rem;
    font-weight:800;
    text-align:right;
    white-space:nowrap;
}

@media(max-width:900px){

    .case-study-intelligence-featured{
        grid-template-columns:1fr;
    }

    .africa-source-register{
        grid-template-columns:1fr;
    }
}

@media(max-width:600px){

    .africa-source-register article{
        grid-template-columns:38px minmax(0,1fr);
    }

    .africa-source-register time{
        grid-column:2;
        text-align:left;
        white-space:normal;
    }
}



/* ============================================================
   TShield Case Studies — Light Theme Hero Contrast Repair
   ============================================================ */


/*
   Light mode hero sections previously inherited
   dark-mode typography colours.
*/

html[data-theme="light"] 
.case-study-hero h1,
html[data-theme="light"] 
.case-study-hero .hero-title,
html[data-theme="light"] 
.case-study-hero p,
html[data-theme="light"] 
.case-study-hero .hero-description,
html[data-theme="light"] 
.case-study-hero .case-study-tags,
html[data-theme="light"] 
.case-study-hero .case-study-tags span {

    color:#10253d;
}


/*
   Stronger title contrast
*/

html[data-theme="light"]
.case-study-hero h1 {

    color:#08213d;
}


/*
   Metadata labels
*/

html[data-theme="light"]
.case-study-hero .case-study-eyebrow {

    color:#008fdc;
}


/*
   Bottom CTA text area
*/

html[data-theme="light"]
.case-study-cta {

    color:#ffffff;
}


html[data-theme="light"]
.case-study-cta h2,
html[data-theme="light"]
.case-study-cta p {

    color:#ffffff;
}


/*
   Buttons remain readable
*/

html[data-theme="light"]
.case-study-cta .btn.primary {

    color:#ffffff;
}




/* ============================================================
   TShield Case Studies — Final Light Mode Typography Override
   ============================================================ */


/*
   Hero typography
   Handles actual production case-study markup.
*/


html[data-theme="light"] 
.case-study-hero-content h1,

html[data-theme="light"]
.case-study-content h1,

html[data-theme="light"]
.case-study-title,

html[data-theme="light"]
.hero-title {

    color:#08213d !important;

}


html[data-theme="light"]
.case-study-hero-content p,

html[data-theme="light"]
.case-study-description,

html[data-theme="light"]
.hero-description {

    color:#163552 !important;

}


html[data-theme="light"]
.case-study-eyebrow {

    color:#008fdc !important;

}


html[data-theme="light"]
.case-study-tags,

html[data-theme="light"]
.case-study-tags span,

html[data-theme="light"]
.hero-tags {

    color:#0068b7 !important;

}


/*
   Navigation anchors within the hero
*/

html[data-theme="light"]
.case-study-hero a {

    color:#0068b7 !important;

}




/* ============================================================
   TShield Case Studies
   FINAL LIGHT MODE HERO VISIBILITY REPAIR
   ============================================================ */


/*
   Main hero title
*/

html[data-theme="light"]
.case-study-hero h1 {

    color:#08213d !important;

}


/*
   Hero paragraph
*/

html[data-theme="light"]
.case-study-hero-lead {

    color:#183b5c !important;

}


/*
   Small heading label
*/

html[data-theme="light"]
.case-study-eyebrow {

    color:#0076c8 !important;

}


/*
   Category navigation chips
*/

html[data-theme="light"]
.case-study-meta .case-study-chip {

    color:#0068b7 !important;

    background:
        rgba(0,104,183,0.08) !important;

    border-color:
        rgba(0,104,183,0.25) !important;

}


/*
   Hero container text inheritance safeguard
*/

html[data-theme="light"]
.africa-intel-hero,
html[data-theme="light"]
.africa-intel-hero * {

    text-shadow:none;

}


/*
   Publication card remains dark intentionally
*/

html[data-theme="light"]
.case-study-publication-panel {

    color:#ffffff;

}




/* ============================================================
   TShield Case Studies
   LIGHT MODE HERO INHERITANCE FINAL REPAIR
   ============================================================ */


/*
   Reset the dark hero inheritance.
   The original hero sets color:#fff on the container,
   which continues to cascade into children.
*/


html[data-theme="light"]
.africa-intel-hero {

    color:#10253d !important;

}


/*
   Main hero title
*/

html[data-theme="light"]
.africa-intel-hero h1 {

    color:#08213d !important;

}


/*
   Lead paragraph
*/

html[data-theme="light"]
.africa-intel-hero .case-study-hero-lead {

    color:#163552 !important;

}


/*
   Hero metadata chips
*/

html[data-theme="light"]
.africa-intel-hero .case-study-meta,
html[data-theme="light"]
.africa-intel-hero .case-study-chip {

    color:#0068b7 !important;

}


/*
   Remove inherited white text from nested containers
*/

html[data-theme="light"]
.africa-intel-hero div,
html[data-theme="light"]
.africa-intel-hero p,
html[data-theme="light"]
.africa-intel-hero span {

    text-shadow:none;

}




/* ============================================================
   TShield Case Studies
   BODY THEME LIGHT MODE HERO REPAIR
   ============================================================ */


/*
   Actual theme engine uses body.landing-light
   not html[data-theme="light"]
*/


body.landing-light.case-study-shell
.africa-intel-hero {

    color:#10253d !important;

}


body.landing-light.case-study-shell
.africa-intel-hero h1 {

    color:#08213d !important;

}


body.landing-light.case-study-shell
.africa-intel-hero .case-study-hero-lead {

    color:#163552 !important;

}


body.landing-light.case-study-shell
.africa-intel-hero .case-study-chip {

    color:#0068b7 !important;

    background:
        rgba(0,104,183,0.08) !important;

}


body.landing-light.case-study-shell
.africa-intel-hero .case-study-eyebrow {

    color:#0076c8 !important;

}


