/* ===================================
   VISION HERO
=================================== */

.vision-hero{

    min-height:100vh;

    position:relative;

    overflow:hidden;

    display:flex;

    align-items:center;

    background:
    linear-gradient(
    135deg,
    #f8fafc 0%,
    #eef7f0 100%
    );

    padding:120px 0;
}

/* BACKGROUND GLOW */

.vision-hero::before{

    content:'';

    position:absolute;

    width:700px;
    height:700px;

    border-radius:50%;

    top:-250px;
    left:-250px;

    background:
    rgba(11,122,62,.08);

    filter:blur(120px);
}

.vision-hero::after{

    content:'';

    position:absolute;

    width:600px;
    height:600px;

    border-radius:50%;

    bottom:-250px;
    right:-250px;

    background:
    rgba(244,180,0,.08);

    filter:blur(120px);
}

.vision-hero .container{

    position:relative;

    z-index:2;
}

/* ===================================
   HERO CONTENT
=================================== */

.vision-hero-wrapper{

    max-width:850px;

    text-align:center;

    margin:auto;

    margin-bottom:90px;
}

.vision-label{

    display:inline-flex;

    align-items:center;

    gap:10px;

    padding:12px 26px;

    border-radius:50px;

    background:#fff;

    color:#0B7A3E;

    font-weight:700;

    box-shadow:
    0 10px 25px rgba(0,0,0,.05);
}

.vision-label::before{

    content:'●';

    color:#F4B400;
}

.vision-hero h1{

    font-size:
    clamp(3rem,6vw,6rem);

    line-height:1.05;

    margin:30px 0;

    color:#14532D;

    font-weight:800;
}

.vision-hero p{

    max-width:750px;

    margin:auto;

    color:#64748b;

    font-size:20px;

    line-height:1.9;
}

/* ===================================
   VISION CIRCLE
=================================== */

.vision-circle{

    position:relative;

    width:550px;
    height:550px;

    margin:auto;
}

/* CENTER */

.center-circle{

    width:180px;
    height:180px;

    border-radius:50%;

    position:absolute;

    top:50%;
    left:50%;

    transform:
    translate(-50%,-50%);

    display:flex;

    align-items:center;
    justify-content:center;

    background:
    linear-gradient(
    135deg,
    #0B7A3E,
    #14532D);

    color:#fff;

    font-size:42px;

    font-weight:800;

    box-shadow:
    0 25px 60px rgba(11,122,62,.25);
}

/* ORBITS */

.orbit{

    position:absolute;

    background:#fff;

    padding:15px 22px;

    border-radius:50px;

    font-weight:700;

    color:#14532D;

    box-shadow:
    0 15px 40px rgba(0,0,0,.08);
}

/* POSITIONS */

.orbit-1{

    top:30px;
    left:50%;

    transform:
    translateX(-50%);
}

.orbit-2{

    right:0;
    top:50%;

    transform:
    translateY(-50%);
}

.orbit-3{

    bottom:30px;
    left:50%;

    transform:
    translateX(-50%);
}

.orbit-4{

    left:0;
    top:50%;

    transform:
    translateY(-50%);
}

/* CONNECTING CIRCLE */

.vision-circle::before{

    content:'';

    position:absolute;

    inset:80px;

    border-radius:50%;

    border:2px dashed
    rgba(11,122,62,.25);

    animation:
    rotateCircle 20s linear infinite;
}

@keyframes rotateCircle{

    from{
        transform:rotate(0deg);
    }

    to{
        transform:rotate(360deg);
    }
}

/* ===================================
   RESPONSIVE
=================================== */

@media(max-width:768px){

    .vision-circle{

        width:320px;
        height:320px;
    }

    .center-circle{

        width:120px;
        height:120px;

        font-size:28px;
    }

    .orbit{

        font-size:12px;

        padding:10px 14px;
    }

    .vision-hero h1{

        font-size:42px;
    }

    .vision-hero p{

        font-size:16px;
    }
}

/* ===================================
   VISION MISSION SPLIT
=================================== */

.vm-split-section{

    padding:160px 0;

    background:#ffffff;

    position:relative;
}

.vm-split-grid{

    display:grid;

    grid-template-columns:
    1fr 120px 1fr;

    align-items:center;

    gap:40px;
}

.vm-side{

    position:relative;
}

.vm-label{

    display:inline-block;

    font-size:14px;

    font-weight:700;

    letter-spacing:2px;

    color:#0B7A3E;

    margin-bottom:25px;
}

.vm-side h2{

    font-size:
    clamp(2.5rem,4vw,4rem);

    line-height:1.15;

    color:#14532D;

    margin-bottom:30px;
}

.vm-side p{

    color:#64748b;

    line-height:2;

    font-size:18px;

    margin-bottom:35px;
}

.vm-highlight{

    padding:22px 28px;

    border-left:5px solid #0B7A3E;

    background:#f8fafc;

    border-radius:0 18px 18px 0;

    color:#14532D;

    font-weight:600;
}

/* CENTER DIVIDER */

.vm-divider{

    display:flex;

    align-items:center;
    justify-content:center;

    height:100%;
}

.vm-divider span{

    width:3px;

    height:280px;

    background:
    linear-gradient(
    to bottom,
    transparent,
    #0B7A3E,
    #F4B400,
    transparent);
}

/* VISION */

.vision-side{

    padding-right:30px;
}

/* MISSION */

.mission-side{

    padding-left:30px;
}

/* HOVER EFFECT */

.vm-side{

    transition:.35s;
}

.vm-side:hover{

    transform:
    translateY(-8px);
}

/* RESPONSIVE */

@media(max-width:991px){

    .vm-split-grid{

        grid-template-columns:1fr;
    }

    .vm-divider{

        display:none;
    }

    .vision-side,
    .mission-side{

        padding:0;
    }
}

@media(max-width:768px){

    .vm-split-section{

        padding:100px 0;
    }

    .vm-side h2{

        font-size:34px;
    }

    .vm-side p{

        font-size:16px;
    }
}
/* ===================================
   ECOSYSTEM WHEEL
=================================== */

.ecosystem-section{

    padding:160px 0;

    background:#f8fafc;

    overflow:hidden;
}

.ecosystem-header{

    text-align:center;

    max-width:850px;

    margin:auto;

    margin-bottom:100px;
}

.ecosystem-header p{

    margin-top:20px;

    color:#64748b;

    line-height:1.9;
}

/* WHEEL */

.ecosystem-wheel{

    position:relative;

    width:700px;
    height:700px;

    margin:auto;
}

/* CENTER */

.eco-center{

    width:230px;
    height:230px;

    position:absolute;

    top:50%;
    left:50%;

    transform:
    translate(-50%,-50%);

    border-radius:50%;

    background:
    linear-gradient(
    135deg,
    #0B7A3E,
    #14532D);

    color:#fff;

    display:flex;

    flex-direction:column;

    align-items:center;
    justify-content:center;

    text-align:center;

    box-shadow:
    0 25px 60px rgba(11,122,62,.25);

    z-index:5;
}

.eco-center h3{

    font-size:30px;

    line-height:1.2;

    margin-bottom:10px;
}

.eco-center span{

    opacity:.85;
}

/* OUTER CIRCLE */

.ecosystem-wheel::before{

    content:'';

    position:absolute;

    inset:120px;

    border-radius:50%;

    border:2px dashed
    rgba(11,122,62,.25);

    animation:
    ecoRotate 40s linear infinite;
}

@keyframes ecoRotate{

    from{
        transform:rotate(0deg);
    }

    to{
        transform:rotate(360deg);
    }
}

/* NODES */

.eco-node{

    position:absolute;

    background:#fff;

    padding:18px 24px;

    border-radius:60px;

    font-weight:700;

    color:#14532D;

    box-shadow:
    0 15px 35px rgba(0,0,0,.08);

    transition:.35s;

    white-space:nowrap;
}

.eco-node:hover{

    transform:scale(1.08);

    background:#0B7A3E;

    color:#fff;
}

/* POSITIONS */

.eco-1{
    top:20px;
    left:50%;
    transform:translateX(-50%);
}

.eco-2{
    top:170px;
    right:40px;
}

.eco-3{
    bottom:170px;
    right:40px;
}

.eco-4{
    bottom:20px;
    left:50%;
    transform:translateX(-50%);
}

.eco-5{
    bottom:170px;
    left:40px;
}

.eco-6{
    top:170px;
    left:40px;
}

/* MOBILE */

@media(max-width:768px){

    .ecosystem-wheel{

        width:100%;
        height:auto;

        display:grid;

        gap:20px;
    }

    .ecosystem-wheel::before{

        display:none;
    }

    .eco-center{

        position:relative;

        top:auto;
        left:auto;

        transform:none;

        margin:auto;
    }

    .eco-node{

        position:relative;

        top:auto;
        left:auto;
        right:auto;
        bottom:auto;

        margin:auto;
    }
}
/* ===================================
   THEORY OF CHANGE
=================================== */

.theory-section{

    padding:180px 0;

    background:#ffffff;
}

.theory-header{

    text-align:center;

    max-width:850px;

    margin:auto;

    margin-bottom:100px;
}

.theory-header p{

    margin-top:20px;

    color:#64748b;

    line-height:1.9;
}

/* ROADMAP */

.change-roadmap{

    max-width:1000px;

    margin:auto;
}

.road-step{

    display:flex;

    align-items:center;

    gap:50px;
}

.road-number{

    width:100px;
    height:100px;

    flex-shrink:0;

    border-radius:50%;

    display:flex;

    align-items:center;
    justify-content:center;

    font-size:28px;

    font-weight:800;

    color:#fff;

    background:
    linear-gradient(
    135deg,
    #0B7A3E,
    #14532D);

    box-shadow:
    0 20px 50px rgba(11,122,62,.2);
}

.road-content{

    flex:1;
}

.road-content h3{

    color:#14532D;

    font-size:30px;

    margin-bottom:15px;
}

.road-content p{

    color:#64748b;

    line-height:1.9;

    max-width:650px;
}

.road-line{

    width:4px;

    height:90px;

    margin-left:48px;

    background:
    linear-gradient(
    #0B7A3E,
    #F4B400);
}

/* ALTERNATE SIDES */

.road-step:nth-child(4n+1){

    flex-direction:row;
}

.road-step:nth-child(4n+3){

    flex-direction:row-reverse;
}

.road-step:nth-child(4n+3) .road-content{

    text-align:right;
}

/* MOBILE */

@media(max-width:768px){

    .road-step,
    .road-step:nth-child(4n+3){

        flex-direction:column;
    }

    .road-content,
    .road-step:nth-child(4n+3) .road-content{

        text-align:center;
    }

    .road-line{

        margin:auto;

        height:60px;
    }
}

/* ===================================
   FUTURE ROADMAP
=================================== */

.future-roadmap-section{

    padding:180px 0;

    background:#f8fafc;

    overflow:hidden;
}

.future-header{

    text-align:center;

    max-width:850px;

    margin:auto;

    margin-bottom:90px;
}

.future-header p{

    margin-top:20px;

    color:#64748b;

    line-height:1.9;
}

/* ROADMAP */

.future-roadmap{

    position:relative;

    display:flex;

    gap:50px;

    overflow-x:auto;

    padding:80px 20px 40px;

    scrollbar-width:none;
}

.future-roadmap::-webkit-scrollbar{
    display:none;
}

.future-line{

    position:absolute;

    top:105px;
    left:0;

    width:100%;

    height:4px;

    background:
    linear-gradient(
    90deg,
    #0B7A3E,
    #F4B400
    );
}

.future-milestone{

    min-width:320px;

    position:relative;

    z-index:2;
}

.milestone-dot{

    width:24px;
    height:24px;

    border-radius:50%;

    background:#0B7A3E;

    margin-bottom:40px;

    box-shadow:
    0 0 0 10px rgba(11,122,62,.15);
}

.milestone-card{

    background:#fff;

    padding:30px;

    border-radius:24px;

    border:1px solid #e5e7eb;

    transition:.35s;

    box-shadow:
    0 10px 25px rgba(0,0,0,.05);
}

.milestone-card:hover{

    transform:
    translateY(-12px);

    border-color:#0B7A3E;

    box-shadow:
    0 25px 60px rgba(11,122,62,.12);
}

.year{

    display:inline-block;

    margin-bottom:15px;

    font-weight:800;

    color:#0B7A3E;

    font-size:18px;
}

.milestone-card h3{

    color:#14532D;

    margin-bottom:15px;
}

.milestone-card p{

    color:#64748b;

    line-height:1.8;
}
/* ===================================
   2030 VISION STATEMENT
=================================== */

.vision2030-section{

    position:relative;

    overflow:hidden;

    padding:220px 0;

    background:
    linear-gradient(
    135deg,
    #0B7A3E,
    #14532D);

    color:#fff;
}

.vision2030-bg-text{

    position:absolute;

    top:50%;

    left:50%;

    transform:
    translate(-50%,-50%);

    font-size:22vw;

    font-weight:900;

    color:
    rgba(255,255,255,.04);

    line-height:1;

    pointer-events:none;

    user-select:none;
}

.vision2030-content{

    position:relative;

    z-index:2;

    text-align:center;

    max-width:1100px;

    margin:auto;
}

.vision2030-label{

    display:inline-block;

    padding:14px 28px;

    border-radius:50px;

    background:
    rgba(255,255,255,.12);

    margin-bottom:40px;

    font-weight:700;

    letter-spacing:1px;
}

.vision2030-content blockquote{

    font-size:
    clamp(2rem,4vw,4rem);

    line-height:1.45;

    font-weight:700;

    margin-bottom:60px;
}

.vision2030-points{

    display:flex;

    justify-content:center;

    gap:18px;

    flex-wrap:wrap;
}

.vision2030-points span{

    padding:14px 22px;

    border-radius:50px;

    background:
    rgba(255,255,255,.10);

    backdrop-filter:blur(10px);

    font-weight:600;

    transition:.3s;
}

.vision2030-points span:hover{

    background:
    rgba(255,255,255,.18);

    transform:
    translateY(-4px);
}

/* MOBILE */

@media(max-width:768px){

    .vision2030-section{

        padding:120px 0;
    }

    .vision2030-content blockquote{

        font-size:28px;
    }

    .vision2030-bg-text{

        font-size:40vw;
    }
}