*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:'Segoe UI', Arial, sans-serif;
    background:#06150f;
    color:#fff;
    overflow-x:hidden;
}

a{
    text-decoration:none;
}

.container{
    width:88%;
    max-width:1180px;
    margin:auto;
}

.narrow{
    max-width:900px;
}

/* HEADER */

.site-header{
    width:100%;
    background:rgba(6,31,20,.98);
    border-bottom:1px solid rgba(212,175,55,.22);
    box-shadow:0 12px 30px rgba(0,0,0,.20),0 4px 12px rgba(0,0,0,.10),0 1px 0 rgba(226,190,99,.08);
    z-index:999;
    position:relative;
}

.header-inner{
    height:104px;
    display:flex;
    align-items:center;
    justify-content:space-between;
}

.brand{
    display:flex;
    align-items:center;
    gap:14px;
    min-width:0;
}

.brand img{
    width:58px;
    height:58px;
    object-fit:contain;
    display:block;
    flex-shrink:0;
}

.brand-text{
    display:flex;
    flex-direction:column;
    line-height:1.05;
}

.brand-text span{
    font-family:Georgia, 'Times New Roman', serif;
    color:#d4af37;
    text-transform:uppercase;
    font-size:29px;
    letter-spacing:2px;
    white-space:nowrap;
}

.brand-text small{
    color:#d4af37;
    text-transform:uppercase;
    font-size:11px;
    font-weight:700;
    letter-spacing:4px;
    margin-top:8px;
    white-space:nowrap;
}

.menu-toggle{
    display:none;
    background:none;
    border:none;
    color:#d4af37;
    font-size:38px;
    cursor:pointer;
}

.main-nav{
    display:flex;
    align-items:center;
    gap:23px;
}

.main-nav a{
    color:#fff;
    font-size:15px;
    transition:color .2s ease;
}

.main-nav a:hover{
    color:#d4af37;
}

.nav-login{
    background:#d4af37;
    color:#07140d !important;
    padding:13px 22px;
    border-radius:999px;
    font-weight:800;
    letter-spacing:1.2px;
}

/* HERO */

.hero{
    position:relative;
    min-height:calc(100vh - 104px);
    background:url('/assets/img/hero-mangrove.jpg');
    background-size:cover;
    background-position:center;
    background-attachment:fixed;
    display:flex;
    align-items:center;
    overflow:hidden;
}

.hero-overlay{
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at 70% 24%, rgba(212,175,55,.26), transparent 30%),
        linear-gradient(90deg, rgba(0,0,0,.84), rgba(0,0,0,.46), rgba(0,0,0,.72));
    z-index:1;
}

.hero-content{
    position:relative;
    z-index:2;
    padding:92px 0;
    max-width:960px;
}

.hero-label{
    display:inline-block;
    margin-bottom:22px;
    color:#f0d36b;
    border:1px solid rgba(212,175,55,.42);
    background:rgba(0,0,0,.34);
    border-radius:999px;
    padding:10px 16px;
    font-size:12px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:2.6px;
}

.hero h1{
    font-size:69px;
    line-height:1.02;
    letter-spacing:-2px;
    margin-bottom:30px;
    max-width:980px;
    text-shadow:0 8px 28px rgba(0,0,0,.36);
}

.hero p{
    font-size:23px;
    line-height:1.62;
    max-width:820px;
    margin-bottom:42px;
    color:rgba(255,255,255,.9);
}

.hero-actions{
    display:flex;
    gap:18px;
    flex-wrap:wrap;
}

.btn-primary,
.btn-secondary{
    display:inline-flex;
    justify-content:center;
    align-items:center;
    min-height:58px;
    padding:16px 34px;
    border-radius:999px;
    font-weight:800;
    letter-spacing:1.6px;
    text-transform:uppercase;
    font-size:14px;
    transition:transform .22s ease, box-shadow .22s ease, background .22s ease;
}

.btn-primary{
    background:#d4af37;
    color:#07140d;
}

.btn-primary:hover{
    transform:translateY(-2px);
    box-shadow:0 14px 32px rgba(212,175,55,.25);
}

.btn-secondary{
    border:1px solid #d4af37;
    color:#d4af37;
    background:rgba(0,0,0,.28);
}

.btn-secondary:hover{
    transform:translateY(-2px);
    background:rgba(212,175,55,.08);
}

/* SECTION */

.section{
    padding:96px 0;
    background:#fff;
    color:#102016;
}

.section-label{
    color:#d4af37;
    text-transform:uppercase;
    letter-spacing:5px;
    font-size:13px;
    font-weight:800;
    margin-bottom:20px;
}

.section h2{
    font-size:46px;
    line-height:1.12;
    margin-bottom:26px;
    letter-spacing:-.8px;
}

.section p{
    font-size:19px;
    line-height:1.82;
    color:#34463b;
    margin-bottom:18px;
}

.dark{
    background:
        radial-gradient(circle at top left, rgba(212,175,55,.13), transparent 30%),
        #06150f;
    color:#fff;
}

.dark h2{
    color:#fff;
}

.dark p{
    color:#cdd8d2;
}

.center{
    text-align:center;
}

/* ABOUT */

.about-grid{
    display:grid;
    grid-template-columns:1.05fr .95fr;
    gap:46px;
    align-items:center;
}

.visual-stack{
    display:flex;
    flex-direction:column;
    gap:18px;
}

.visual-card{
    border-radius:30px;
    overflow:hidden;
    box-shadow:0 20px 52px rgba(0,0,0,.14);
    border:1px solid rgba(6,21,15,.08);
}

.visual-card img{
    width:100%;
    height:360px;
    object-fit:cover;
    display:block;
}

.visual-mini-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px;
}

.visual-mini{
    background:#06150f;
    color:#fff;
    border-radius:20px;
    padding:18px 14px;
    border:1px solid rgba(212,175,55,.24);
}

.visual-mini span{
    display:block;
    color:#d4af37;
    font-size:12px;
    letter-spacing:2px;
    font-weight:800;
    margin-bottom:8px;
}

.visual-mini strong{
    font-size:15px;
}

/* MODEL DIAGRAM */

.model-section{
    overflow:hidden;
}

.model-diagram{
    position:relative;
    width:640px;
    height:640px;
    margin:58px auto 0;
    border-radius:50%;
    background:
        radial-gradient(circle at center, rgba(212,175,55,.18), transparent 34%),
        radial-gradient(circle at center, rgba(255,255,255,.05), transparent 60%);
}

.model-diagram::before{
    content:"";
    position:absolute;
    inset:48px;
    border-radius:50%;
    border:1px solid rgba(212,175,55,.28);
}

.model-diagram::after{
    content:"";
    position:absolute;
    inset:118px;
    border-radius:50%;
    border:1px dashed rgba(212,175,55,.22);
}

.model-center{
    position:absolute;
    top:50%;
    left:50%;
    width:210px;
    height:210px;
    transform:translate(-50%, -50%);
    border-radius:50%;
    background:linear-gradient(135deg, #d4af37, #f0d36b);
    color:#06150f;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:26px;
    z-index:5;
    box-shadow:0 22px 60px rgba(0,0,0,.36);
}

.model-center strong{
    font-size:23px;
    line-height:1.2;
}

.model-center span{
    font-size:13px;
    margin-top:8px;
    font-weight:800;
}

.model-node{
    position:absolute;
    width:168px;
    height:168px;
    border-radius:50%;
    background:rgba(255,255,255,.08);
    border:1px solid rgba(212,175,55,.35);
    color:#fff;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
    padding:20px;
    z-index:4;
    box-shadow:0 18px 42px rgba(0,0,0,.24);
}

.model-node span{
    display:block;
    color:#d4af37;
    font-size:12px;
    font-weight:900;
    letter-spacing:2px;
    margin-bottom:8px;
}

.model-node strong{
    font-size:14px;
    line-height:1.35;
}

.node-1{
    top:0;
    left:50%;
    transform:translateX(-50%);
}

.node-2{
    top:122px;
    right:20px;
}

.node-3{
    bottom:122px;
    right:20px;
}

.node-4{
    bottom:0;
    left:50%;
    transform:translateX(-50%);
}

.node-5{
    bottom:122px;
    left:20px;
}

.node-6{
    top:122px;
    left:20px;
}

/* CARDS */

.cards{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
    margin-top:44px;
}

.card{
    background:#fff;
    border-radius:26px;
    padding:30px;
    box-shadow:0 14px 38px rgba(0,0,0,.08);
    border:1px solid rgba(6,21,15,.06);
}

.card h3{
    color:#d4af37;
    font-size:25px;
    line-height:1.2;
    margin-bottom:14px;
}

.card p{
    font-size:16px;
    line-height:1.72;
    margin:0;
    color:#3b4f43;
}

.icon-card{
    min-height:250px;
}

.pillar-icon{
    width:58px;
    height:58px;
    border-radius:18px;
    background:#06150f;
    color:#d4af37;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:28px;
    margin-bottom:18px;
    flex-shrink:0;
}

/* MAP */

.map-section{
    background:#f4f7f5;
}

.map-grid{
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:44px;
    align-items:center;
}

.map-container{
    background:#fff;
    border-radius:28px;
    padding:22px;
    box-shadow:0 18px 42px rgba(0,0,0,.12);
    border:1px solid rgba(6,21,15,.06);
}

.map-container img{
    width:100%;
    display:block;
    cursor:zoom-in;
    border-radius:18px;
}

.map-container small{
    display:block;
    color:#69776e;
    font-size:13px;
    margin-top:14px;
    line-height:1.5;
}

.map-btn{
    margin-top:16px;
}

/* PROJECTS */

.project-cards{
    align-items:stretch;
}

.project-card{
    text-align:center;
    display:flex;
    flex-direction:column;
    align-items:center;
    color:inherit;
    transition:transform .22s ease, box-shadow .22s ease;
}

.project-card:hover{
    transform:translateY(-4px);
    box-shadow:0 22px 48px rgba(0,0,0,.12);
}

.project-logo{
    width:98px;
    height:98px;
    border-radius:24px;
    border:1px solid rgba(212,175,55,.24);
    background:#f7f4ea;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:18px;
    overflow:hidden;
}

.project-logo img{
    width:78px;
    height:78px;
    object-fit:contain;
}

.project-card h3{
    font-size:42px;
    margin-bottom:8px;
}

.project-card p{
    font-size:17px;
    font-weight:700;
    color:#102016;
    margin-bottom:12px;
}

.project-card span{
    display:inline-block;
    color:#66736b;
    font-size:14px;
    line-height:1.5;
}

/* NCDE */

.ncde-section{
    background:
        radial-gradient(circle at center top, rgba(212,175,55,.16), transparent 34%),
        #06150f;
}

.ncde-logo-mark{
    width:92px;
    height:92px;
    margin:0 auto 24px;
}

.ncde-logo-mark img{
    width:100%;
    height:100%;
    object-fit:contain;
}

.ncde-apps{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:12px;
    margin:34px 0;
}

.ncde-apps span{
    border:1px solid rgba(212,175,55,.24);
    background:rgba(255,255,255,.06);
    color:#fff;
    border-radius:999px;
    padding:10px 16px;
    font-size:13px;
    font-weight:700;
}

/* FOOTER */

.site-footer{
    background:#03180f;
    color:#fff;
    padding:42px 0;
    border-top:1px solid rgba(212,175,55,.18);
}

.footer-inner{
    display:flex;
    justify-content:space-between;
    gap:28px;
    line-height:1.8;
    color:rgba(255,255,255,.76);
}

.footer-inner strong{
    display:inline-block;
    color:#d4af37;
    letter-spacing:3px;
    margin-bottom:6px;
}

/* MAP MODAL */

.map-modal{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.88);
    z-index:2000;
    align-items:center;
    justify-content:center;
    padding:20px;
}

.map-modal img{
    max-width:96%;
    max-height:92vh;
    background:#fff;
    border-radius:18px;
    padding:18px;
}

/* TABLET */

@media(max-width:900px){

    .header-inner{
        height:96px;
    }

    .brand img{
        width:54px;
        height:54px;
    }

    .brand-text span{
        font-size:25px;
        letter-spacing:1.5px;
    }

    .brand-text small{
        font-size:10px;
        letter-spacing:3px;
    }

    .menu-toggle{
        display:block;
    }

    .main-nav{
        position:absolute;
        top:96px;
        left:0;
        width:100%;
        display:none;
        flex-direction:column;
        align-items:flex-start;
        background:#061f14;
        padding:22px 6%;
        border-top:1px solid rgba(212,175,55,.18);
    }

    .main-nav.active{
        display:flex;
    }

    .main-nav a{
        width:100%;
        padding:14px 0;
        font-size:20px;
        border-bottom:1px solid rgba(255,255,255,.08);
    }

    .nav-login{
        width:auto !important;
        margin-top:14px;
        padding:15px 24px !important;
        border-bottom:none !important;
    }

    .hero{
        min-height:calc(100vh - 96px);
        background-attachment:scroll;
    }

    .hero h1{
        font-size:49px;
        line-height:1.06;
    }

    .hero p{
        font-size:20px;
    }

    .hero-actions{
        flex-direction:column;
    }

    .btn-primary,
    .btn-secondary{
        width:100%;
    }

    .section{
        padding:74px 0;
    }

    .section h2{
        font-size:35px;
    }

    .section p{
        font-size:18px;
    }

    .about-grid,
    .map-grid{
        grid-template-columns:1fr;
    }

    .cards{
        grid-template-columns:1fr;
    }

    .model-diagram{
        width:100%;
        max-width:430px;
        height:430px;
        margin:42px auto 0;
    }

    .model-center{
        width:145px;
        height:145px;
        padding:18px;
    }

    .model-center strong{
        font-size:16px;
    }

    .model-center span{
        font-size:10px;
    }

    .model-node{
        width:118px;
        height:118px;
        padding:14px;
    }

    .model-node span{
        font-size:10px;
        margin-bottom:5px;
    }

    .model-node strong{
        font-size:11px;
        line-height:1.25;
    }

    .node-1{
        top:-2px;
        left:50%;
        transform:translateX(-50%);
    }

    .node-2{
        top:76px;
        right:0;
    }

    .node-3{
        bottom:76px;
        right:0;
    }

    .node-4{
        bottom:-2px;
        left:50%;
        transform:translateX(-50%);
    }

    .node-5{
        bottom:76px;
        left:0;
    }

    .node-6{
        top:76px;
        left:0;
    }

    .footer-inner{
        flex-direction:column;
    }
}

/* MOBILE */

@media(max-width:480px){

    .container{
        width:88%;
    }

    .header-inner{
        height:90px;
    }

    .brand{
        gap:10px;
    }

    .brand img{
        width:46px;
        height:46px;
    }

    .brand-text span{
        font-size:20px;
        letter-spacing:1px;
    }

    .brand-text small{
        font-size:8px;
        letter-spacing:2px;
        margin-top:5px;
    }

    .menu-toggle{
        font-size:34px;
    }

    .main-nav{
        top:90px;
    }

    .hero{
        min-height:calc(100vh - 90px);
        background-position:center;
    }

    .hero-content{
        padding:64px 0;
    }

    .hero-label{
        font-size:10px;
        letter-spacing:1.4px;
        padding:9px 13px;
        line-height:1.4;
    }

    .hero h1{
        font-size:37px;
        letter-spacing:-1px;
        margin-bottom:24px;
    }

    .hero p{
        font-size:17px;
        line-height:1.68;
        margin-bottom:34px;
    }

    .btn-primary,
    .btn-secondary{
        min-height:54px;
        padding:15px 24px;
        font-size:12px;
        letter-spacing:1.2px;
    }

    .section{
        padding:66px 0;
    }

    .section-label{
        font-size:11px;
        letter-spacing:3px;
    }

    .section h2{
        font-size:30px;
        letter-spacing:-.4px;
    }

    .section p{
        font-size:16.5px;
        line-height:1.78;
    }

    .visual-card img{
        height:260px;
    }

    .visual-mini-grid{
        grid-template-columns:1fr;
    }

    .model-diagram{
        max-width:340px;
        height:340px;
    }

    .model-diagram::before{
        inset:30px;
    }

    .model-diagram::after{
        inset:78px;
    }

    .model-center{
        width:112px;
        height:112px;
        padding:12px;
    }

    .model-center strong{
        font-size:13px;
    }

    .model-center span{
        font-size:8.5px;
        margin-top:5px;
    }

    .model-node{
        width:92px;
        height:92px;
        padding:9px;
    }

    .model-node span{
        font-size:8.5px;
        letter-spacing:1px;
        margin-bottom:4px;
    }

    .model-node strong{
        font-size:9px;
        line-height:1.18;
    }

    .node-2{
        top:58px;
        right:-2px;
    }

    .node-3{
        bottom:58px;
        right:-2px;
    }

    .node-5{
        bottom:58px;
        left:-2px;
    }

    .node-6{
        top:58px;
        left:-2px;
    }

    .card{
        padding:24px;
        border-radius:22px;
    }

    .card h3{
        font-size:23px;
    }

    .icon-card{
        min-height:auto;
        display:grid;
        grid-template-columns:58px 1fr;
        column-gap:18px;
        align-items:start;
    }

    .icon-card .pillar-icon{
        grid-row:1 / span 2;
        margin-bottom:0;
    }

    .icon-card h3{
        margin-top:0;
        margin-bottom:10px;
    }

    .icon-card p{
        grid-column:2;
    }

    .project-logo{
        width:86px;
        height:86px;
        border-radius:22px;
    }

    .project-logo img{
        width:68px;
        height:68px;
    }

    .project-card h3{
        font-size:38px;
    }

    .map-container{
        padding:14px;
        border-radius:22px;
    }

    .footer-inner{
        font-size:14px;
    }
}
html {
    scroll-behavior: smooth;
    scroll-padding-top: 90px;
}

@media (max-width: 900px) {
    .site-header {
        position: sticky;
        top: 0;
        z-index: 1000;
    }

    .header-inner {
        position: relative;
    }

    .main-nav {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        z-index: 1001;

        max-height: calc(100vh - 76px);
        overflow-y: auto;

        padding: 20px 24px 28px;
        background: #032c22;
        border-top: 1px solid rgba(255, 255, 255, 0.08);
        box-shadow: 0 18px 30px rgba(0, 0, 0, 0.22);
    }

    .main-nav.active {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
    }

    .main-nav a {
        display: block;
        width: 100%;
        padding: 18px 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    }

    .main-nav .nav-login {
        width: fit-content;
        margin-top: 20px;
        padding: 14px 24px;
        border-bottom: none;
    }
}/* =========================================================
   HEADER PATCH — MINIMAL & SAFE
   ========================================================= */

/* 1. Cegah tabrakan desktop lebih awal */
@media (max-width: 1180px) {
    .menu-toggle {
        display: block;
    }

    .main-nav {
        display: none;
    }

    .main-nav.active {
        display: flex;
    }
}

/* 2. Mobile/tablet menu overlay transparan */
@media (max-width: 1180px) {
    .header-inner {
        position: relative;
    }

    .main-nav {
        position: absolute;
        top: 100%;
        right: 0;
        left: auto;
        z-index: 1500;

        width: min(88vw, 620px);
        max-height: calc(100vh - 90px);
        overflow-y: auto;

        background: rgba(0, 48, 36, 0.82);
        -webkit-backdrop-filter: blur(16px);
        backdrop-filter: blur(16px);

        box-shadow: -12px 18px 36px rgba(0, 0, 0, 0.24);
    }
}

/* 3. Full-width menu khusus HP */
@media (max-width: 680px) {
    .main-nav {
        left: 0;
        right: 0;
        width: 100%;
        background: rgba(0, 48, 36, 0.78);
        -webkit-backdrop-filter: blur(18px);
        backdrop-filter: blur(18px);
    }
}
/* =========================================================
   DESKTOP-SITE ON NARROW SCREENS
   Keep mobile menu style when hamburger is visible
   ========================================================= */

@media (min-width: 681px) and (max-width: 1180px) {

    .main-nav {
        display: none;
        position: absolute;
        top: 100%;
        right: 0;
        left: auto;
        z-index: 1600;

        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        gap: 0;

        width: min(72vw, 520px);
        max-height: calc(100vh - 80px);
        overflow-y: auto;

        padding: 24px 30px 30px;

        background: rgba(0, 48, 36, 0.82);
        -webkit-backdrop-filter: blur(18px);
        backdrop-filter: blur(18px);

        border-left: 1px solid rgba(255,255,255,.08);
        border-bottom: 1px solid rgba(255,255,255,.08);
        box-shadow: -12px 18px 36px rgba(0,0,0,.25);
    }

    .main-nav.active {
        display: flex;
    }

    .main-nav > a {
        display: flex;
        justify-content: flex-start;
        width: 100%;

        padding: 17px 0;

        color: #fff;
        font-size: 18px;
        line-height: 1.25;
        white-space: normal;

        border-bottom: 1px solid rgba(255,255,255,.08);
    }

    .main-nav .nav-ncis {
        color: #d9b632;
    }

    .main-nav .nav-login {
        justify-content: center;

        width: 100%;
        margin-top: 24px;
        padding: 15px 20px;

        border: 0;
        border-radius: 999px;

        background: #d9b632;
        color: #102f25;
        font-size: 18px;
        font-weight: 800;
        text-align: center;
    }
}
/* ============================================================
   Nusantara Carbon
   Premium Mobile Navigation v1.0
   ============================================================ */

@media (max-width: 900px) {

    .site-header {
        position: sticky;
        top: 0;
        z-index: 1000;
        background:
            linear-gradient(
                180deg,
                rgba(3, 39, 29, 0.98) 0%,
                rgba(3, 34, 26, 0.96) 100%
            );
        border-bottom: 1px solid rgba(216, 177, 62, 0.2);
        box-shadow: 0 13px 30px rgba(0, 0, 0, 0.20), 0 4px 12px rgba(0, 0, 0, 0.10), 0 1px 0 rgba(226, 190, 99, 0.08);
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
    }

    .header-inner {
        position: relative;
        min-height: 84px;
    }

    .menu-toggle {
        position: relative;
        width: 50px;
        height: 50px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0;
        color: #d8b13e;
        background:
            linear-gradient(
                145deg,
                rgba(255, 255, 255, 0.08),
                rgba(255, 255, 255, 0.025)
            );
        border: 1px solid rgba(216, 177, 62, 0.28);
        border-radius: 16px;
        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, 0.08),
            0 10px 26px rgba(0, 0, 0, 0.22);
        transition:
            transform 0.25s ease,
            background 0.25s ease,
            border-color 0.25s ease;
    }

    .menu-toggle:hover,
    .menu-toggle:focus-visible {
        transform: translateY(-1px);
        background:
            linear-gradient(
                145deg,
                rgba(216, 177, 62, 0.18),
                rgba(255, 255, 255, 0.05)
            );
        border-color: rgba(216, 177, 62, 0.55);
        outline: none;
    }

    .menu-toggle span {
        font-size: 0;
        width: 24px;
        height: 18px;
        position: relative;
        display: block;
    }

    .menu-toggle span::before,
    .menu-toggle span::after,
    .menu-toggle span {
        background: transparent;
    }

    .menu-toggle span::before,
    .menu-toggle span::after {
        content: "";
        position: absolute;
        left: 0;
        width: 24px;
        height: 2px;
        border-radius: 999px;
        background: #d8b13e;
        box-shadow: 0 7px 0 #d8b13e;
        transition:
            transform 0.25s ease,
            top 0.25s ease,
            box-shadow 0.25s ease;
    }

    .menu-toggle span::before {
        top: 1px;
    }

    .menu-toggle span::after {
        top: 15px;
        box-shadow: none;
    }

    .menu-toggle[aria-expanded="true"] span::before {
        top: 8px;
        transform: rotate(45deg);
        box-shadow: none;
    }

    .menu-toggle[aria-expanded="true"] span::after {
        top: 8px;
        transform: rotate(-45deg);
    }

    .main-nav {
        position: absolute;
        top: calc(100% + 12px);
        left: 20px;
        right: 20px;

        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;

        padding: 16px;

        background:
            linear-gradient(
                145deg,
                rgba(7, 57, 42, 0.97),
                rgba(3, 41, 31, 0.97)
            );

        border: 1px solid rgba(216, 177, 62, 0.24);
        border-radius: 24px;

        box-shadow:
            0 28px 70px rgba(0, 0, 0, 0.42),
            inset 0 1px 0 rgba(255, 255, 255, 0.07);

        backdrop-filter: blur(24px);
        -webkit-backdrop-filter: blur(24px);

        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(-10px) scale(0.98);

        transition:
            opacity 0.25s ease,
            visibility 0.25s ease,
            transform 0.25s ease;
    }

    .main-nav.is-open,
    .main-nav[data-open="true"] {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0) scale(1);
    }

    .main-nav a {
        min-height: 68px;

        display: flex;
        align-items: center;
        justify-content: center;

        padding: 14px 12px;

        color: rgba(255, 255, 255, 0.88);
        font-size: 15px;
        font-weight: 600;
        line-height: 1.25;
        text-align: center;
        text-decoration: none;

        background:
            linear-gradient(
                145deg,
                rgba(255, 255, 255, 0.07),
                rgba(255, 255, 255, 0.025)
            );

        border: 1px solid rgba(255, 255, 255, 0.08);
        border-radius: 17px;

        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, 0.05),
            0 8px 20px rgba(0, 0, 0, 0.12);

        transition:
            transform 0.22s ease,
            background 0.22s ease,
            border-color 0.22s ease,
            color 0.22s ease;
    }

    .main-nav a:hover,
    .main-nav a:focus-visible {
        color: #f2d36c;
        transform: translateY(-2px);
        background:
            linear-gradient(
                145deg,
                rgba(216, 177, 62, 0.17),
                rgba(255, 255, 255, 0.04)
            );
        border-color: rgba(216, 177, 62, 0.34);
        outline: none;
    }

    .main-nav .nav-ncis {
        color: #f0d16a;
        border-color: rgba(216, 177, 62, 0.26);
    }

    .main-nav .nav-login {
        grid-column: 1 / -1;
        min-height: 58px;

        color: #08291f;
        font-weight: 800;
        letter-spacing: 0.04em;

        background:
            linear-gradient(
                135deg,
                #e5c34b 0%,
                #cda62f 100%
            );

        border-color: rgba(255, 232, 147, 0.6);

        box-shadow:
            0 12px 28px rgba(190, 148, 27, 0.23),
            inset 0 1px 0 rgba(255, 255, 255, 0.38);
    }

    .main-nav .nav-login:hover,
    .main-nav .nav-login:focus-visible {
        color: #06241b;
        background:
            linear-gradient(
                135deg,
                #efd46c 0%,
                #d8b13e 100%
            );
    }
}

@media (max-width: 520px) {

    .main-nav {
        left: 14px;
        right: 14px;
        gap: 8px;
        padding: 12px;
        border-radius: 21px;
    }

    .main-nav a {
        min-height: 62px;
        padding: 12px 8px;
        font-size: 14px;
        border-radius: 15px;
    }

    .main-nav .nav-login {
        min-height: 56px;
    }
}
/* ============================================================
   Premium Mobile Navigation
   Compatibility Fix — landing.js uses .active
   ============================================================ */

@media (max-width: 900px) {

    .main-nav.active {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;

        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;

        transform: translateY(0) scale(1) !important;
    }

    .main-nav.active > a {
        width: auto !important;
        margin: 0 !important;
    }

    .main-nav.active .nav-login {
        grid-column: 1 / -1 !important;
        width: auto !important;
    }
}