/* =========================================
   AGGAA
   AFRICA GO GLOBAL ACADEMY & AWARDS

   PHASE 2 DESIGN SYSTEM
========================================= */


:root {

    --green-950: #021b14;
    --green-900: #03271d;
    --green-800: #073b2a;
    --green-700: #075333;
    --green-600: #087443;
    --green-500: #179052;
    --green-400: #36a65c;

    --green-soft: #eaf5ed;
    --green-pale: #f4faf6;

    --gold: #d7a93d;
    --gold-light: #f0d27a;

    --dark: #10221a;
    --text: #43534b;
    --muted: #718078;

    --white: #ffffff;
    --off-white: #f7faf8;

    --border: #dce7e0;

    --container: 1200px;

    --radius: 18px;

    --shadow:
        0 20px 60px rgba(0, 45, 30, .08);

    --transition:
        all .35s ease;

}


/* =========================================
   RESET
========================================= */

* {

    margin: 0;
    padding: 0;

    box-sizing: border-box;

}


html {

    scroll-behavior: smooth;

}


body {

    font-family:
        "DM Sans",
        sans-serif;

    color: var(--text);

    background:
        var(--white);

    line-height: 1.7;

    overflow-x: hidden;

}


body.loading {

    overflow: hidden;

}


a {

    color: inherit;

    text-decoration: none;

}


button {

    font-family: inherit;

}


img {

    max-width: 100%;

    display: block;

}


/* =========================================
   GLOBAL
========================================= */

.container {

    width:
        min(
            calc(100% - 40px),
            var(--container)
        );

    margin: auto;

}


.section {

    padding:
        120px 0;

}


.section-label {

    display: inline-block;

    color:
        var(--green-600);

    font-size: 11px;

    font-weight: 700;

    letter-spacing: 2.5px;

    margin-bottom: 18px;

}


.section-intro {

    display: grid;

    grid-template-columns:
        1fr 1fr;

    gap: 80px;

    align-items: end;

    margin-bottom: 70px;

}


.section-intro h2,
.section-heading h2,
.section-title-centered h2 {

    font-family:
        "Playfair Display",
        serif;

    color:
        var(--dark);

    font-size:
        clamp(40px, 5vw, 60px);

    line-height: 1.08;

}


.section-intro h2 span,
.section-heading h2 span,
.section-title-centered h2 span {

    color:
        var(--green-600);

}


.section-intro > p {

    color:
        var(--muted);

    max-width: 600px;

}


.section-title-centered {

    text-align: center;

    max-width: 800px;

    margin:
        0 auto 65px;

}


.section-title-centered p {

    color:
        var(--muted);

    margin-top: 20px;

}


/* =========================================
   LOADER
========================================= */

.page-loader {

    position: fixed;

    inset: 0;

    z-index: 9999;

    background:
        var(--green-950);

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    transition:
        opacity .6s ease,
        visibility .6s ease;

}


.page-loader.loaded {

    opacity: 0;

    visibility: hidden;

}


.loader-logo {

    width:
        min(180px, 56vw);

    border-radius:
        18px;

    overflow:
        hidden;

}


.loader-logo img {

    width: 100%;

    height:
        auto;

    display:
        block;

    border-radius:
        inherit;

}


.loader-line {

    width: 100px;

    height: 2px;

    background:
        var(--gold);

    margin-top: 25px;

    animation:
        loader 1.2s infinite;

}


@keyframes loader {

    0% {

        transform:
            scaleX(0);

        transform-origin:
            left;

    }

    50% {

        transform:
            scaleX(1);

        transform-origin:
            left;

    }

    51% {

        transform-origin:
            right;

    }

    100% {

        transform:
            scaleX(0);

        transform-origin:
            right;

    }

}


/* =========================================
   HEADER
========================================= */

.header {

    position: fixed;

    top: 0;

    left: 0;

    width: 100%;

    z-index: 1000;

    padding:
        20px 0;

    transition:
        var(--transition);

}


.header.scrolled {

    padding:
        10px 0;

    background:
        rgba(255,255,255,.96);

    backdrop-filter:
        blur(15px);

    box-shadow:
        0 5px 30px
        rgba(0,0,0,.07);

}


.nav-container {

    display: flex;

    align-items: center;

    justify-content: space-between;

}


.brand {

    display:
        block;

    width:
        auto;

    max-width:
        42vw;

    border-radius:
        14px;

    overflow:
        hidden;

}


.brand img {

    width:
        auto;

    height:
        52px;

    max-width:
        100%;

    display:
        block;

    border-radius:
        inherit;

}


/* =========================================
   NAVIGATION
========================================= */

.navbar {

    display: flex;

    align-items: center;

    gap: 25px;

}


.nav-link {

    position: relative;

    color:
        var(--white);

    font-size: 13px;

    font-weight: 600;

    transition:
        var(--transition);

}


.header.scrolled .nav-link {

    color:
        var(--dark);

}


.nav-link::after {

    content: "";

    position: absolute;

    left: 0;

    bottom: -8px;

    width: 0;

    height: 2px;

    background:
        var(--gold);

    transition:
        var(--transition);

}


.nav-link:hover::after,
.nav-link.active::after {

    width: 100%;

}


.nav-cta {

    background:
        var(--gold);

    color:
        var(--dark);

    padding:
        11px 20px;

    border-radius:
        50px;

    font-size: 13px;

    font-weight: 700;

    transition:
        var(--transition);

}


.nav-cta:hover {

    transform:
        translateY(-2px);

    background:
        var(--gold-light);

}


.menu-toggle {

    display: none;

    width: 42px;

    height: 42px;

    border: none;

    background:
        transparent;

    cursor: pointer;

}


.menu-toggle span {

    display: block;

    height: 2px;

    background:
        var(--white);

    margin: 6px;

}


.header.scrolled
.menu-toggle span {

    background:
        var(--dark);

}


/* =========================================
   HERO
========================================= */

.hero {

    min-height:
        920px;

    position: relative;

    overflow: hidden;

    background:
        var(--green-900);

    color:
        var(--white);

    display: flex;

    align-items: center;

}


.hero-background {

    position: absolute;

    inset: 0;

    background:
        radial-gradient(
            circle at 75% 35%,
            rgba(54,166,92,.28),
            transparent 30%
        ),
        radial-gradient(
            circle at 20% 80%,
            rgba(215,169,61,.08),
            transparent 25%
        ),
        linear-gradient(
            120deg,
            #021b14,
            #075333 60%,
            #087443
        );

}


.hero-pattern {

    position: absolute;

    inset: 0;

    opacity:
        .08;

    background-image:

        linear-gradient(
            30deg,
            #fff 12%,
            transparent 12.5%,
            transparent 87%,
            #fff 87.5%,
            #fff
        );

    background-size:
        80px 140px;

}


.hero-container {

    position: relative;

    z-index: 2;

    display: grid;

    grid-template-columns:
        1.25fr .75fr;

    gap: 80px;

    align-items: center;

    padding-top:
        80px;

}


.hero-content {

    max-width:
        760px;

}


.hero-eyebrow {

    display: flex;

    align-items: center;

    gap: 12px;

    color:
        var(--gold-light);

    font-size: 11px;

    font-weight: 700;

    letter-spacing: 3px;

    margin-bottom: 28px;

}


.hero-eyebrow span {

    width: 30px;

    height: 1px;

    background:
        var(--gold);

}


.hero h1 {

    font-family:
        "Playfair Display",
        serif;

    font-size:
        clamp(
            48px,
            6vw,
            78px
        );

    line-height:
        1.03;

    letter-spacing:
        -1.5px;

    margin-bottom:
        30px;

}


.hero h1 span {

    display: block;

    color:
        var(--gold-light);

}


.hero-content > p {

    max-width:
        680px;

    color:
        rgba(255,255,255,.75);

    font-size:
        17px;

    margin-bottom:
        35px;

}


.hero-buttons {

    display: flex;

    gap: 15px;

    flex-wrap: wrap;

}


.btn {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    padding:
        14px 26px;

    border-radius:
        50px;

    font-size:
        13px;

    font-weight:
        700;

    transition:
        var(--transition);

}


.btn-primary {

    background:
        var(--gold);

    color:
        var(--dark);

}


.btn-primary:hover {

    transform:
        translateY(-3px);

    background:
        var(--gold-light);

}


.btn-outline {

    border:
        1px solid
        rgba(255,255,255,.4);

    color:
        var(--white);

}


.btn-outline:hover {

    background:
        var(--white);

    color:
        var(--green-800);

}


.hero-trust {

    display: flex;

    align-items: center;

    gap: 10px;

    margin-top:
        40px;

    font-size:
        11px;

    letter-spacing:
        1px;

    color:
        rgba(255,255,255,.45);

}


.hero-trust span {

    width: 30px;

    height: 1px;

    background:
        var(--gold);

}


/* =========================================
   HERO VISUAL
========================================= */

.hero-visual {

    height:
        500px;

    position: relative;

    display: flex;

    align-items: center;

    justify-content: center;

}


.hero-logo-circle {

    width:
        clamp(150px, 20vw, 230px);

    height:
        clamp(150px, 20vw, 230px);

    border-radius:
        50%;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    border:
        1px solid
        rgba(255,255,255,.3);

    background:
        rgba(255,255,255,.035);

    backdrop-filter:
        blur(5px);

    position:
        relative;

    z-index: 2;

}


.hero-logo-circle::before {

    content: "";

    position: absolute;

    inset:
        15px;

    border:
        1px dashed
        rgba(215,169,61,.65);

    border-radius:
        50%;

}


.hero-logo-circle img {

    width:
        72%;

    max-width:
        190px;

    height:
        auto;

    display:
        block;

    border-radius:
        18px;

    object-fit:
        contain;

    position:
        relative;

    z-index: 2;

}


.hero-orbit {

    position:
        absolute;

    border:
        1px solid
        rgba(255,255,255,.12);

    border-radius:
        50%;

}


.orbit-1 {

    width:
        440px;

    height:
        190px;

    transform:
        rotate(25deg);

}


.orbit-2 {

    width:
        190px;

    height:
        440px;

    transform:
        rotate(25deg);

}


.floating-card {

    position:
        absolute;

    z-index:
        5;

    display:
        flex;

    align-items:
        center;

    gap:
        12px;

    padding:
        14px 18px;

    border:
        1px solid
        rgba(255,255,255,.15);

    border-radius:
        12px;

    background:
        rgba(255,255,255,.08);

    backdrop-filter:
        blur(15px);

}


.floating-card strong {

    display:
        block;

    font-size:
        12px;

}


.floating-card small {

    display:
        block;

    font-size:
        10px;

    color:
        rgba(255,255,255,.55);

}


.card-research {

    top:
        60px;

    left:
        0;

}


.card-awards {

    right:
        -20px;

    bottom:
        70px;

}


.floating-icon {

    width:
        35px;

    height:
        35px;

    border-radius:
        50%;

    display:
        grid;

    place-items:
        center;

    background:
        var(--green-600);

    color:
        white;

    font-size:
        12px;

    font-weight:
        700;

}


.floating-icon.gold {

    background:
        var(--gold);

    color:
        var(--dark);

}


/* =========================================
   HERO PILLARS
========================================= */

.hero-bottom {

    position:
        absolute;

    bottom:
        0;

    left:
        0;

    width:
        100%;

    z-index:
        5;

    border-top:
        1px solid
        rgba(255,255,255,.12);

}


.hero-pillars {

    display:
        grid;

    grid-template-columns:
        repeat(5,1fr);

}


.hero-pillars div {

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        12px;

    padding:
        20px 10px;

    border-right:
        1px solid
        rgba(255,255,255,.12);

}


.hero-pillars div:last-child {

    border:
        none;

}


.hero-pillars strong {

    font-size:
        10px;

    color:
        var(--gold-light);

}


.hero-pillars span {

    font-size:
        11px;

    color:
        rgba(255,255,255,.6);

}


/* =========================================
   ABOUT
========================================= */

.about {

    background:
        var(--off-white);

}


.about-grid {

    display:
        grid;

    grid-template-columns:
        1.2fr .8fr;

    gap:
        80px;

    align-items:
        stretch;

}


.about-main {

    max-width:
        650px;

}


.about-main p {

    margin-bottom:
        20px;

}


.about-main .large-text {

    font-family:
        "Playfair Display",
        serif;

    font-size:
        27px;

    line-height:
        1.4;

    color:
        var(--dark);

}


.text-link {

    display:
        inline-flex;

    gap:
        10px;

    color:
        var(--green-600);

    font-weight:
        700;

    margin-top:
        10px;

}


.text-link span {

    transition:
        var(--transition);

}


.text-link:hover span {

    transform:
        translateX(5px);

}


.about-highlight {

    background:
        var(--green-800);

    color:
        var(--white);

    padding:
        55px;

    border-radius:
        var(--radius);

    position:
        relative;

    overflow:
        hidden;

    display:
        flex;

    flex-direction:
        column;

    justify-content:
        center;

}


.about-highlight::after {

    content:
        "";

    position:
        absolute;

    width:
        300px;

    height:
        300px;

    right:
        -140px;

    bottom:
        -160px;

    border:
        1px solid
        rgba(255,255,255,.1);

    border-radius:
        50%;

}


.quote-mark {

    font-family:
        "Playfair Display",
        serif;

    color:
        var(--gold);

    font-size:
        70px;

    line-height:
        .5;

}


.about-highlight h3 {

    font-family:
        "Playfair Display",
        serif;

    font-size:
        32px;

    line-height:
        1.25;

    margin:
        25px 0;

}


.highlight-line {

    width:
        50px;

    height:
        2px;

    background:
        var(--gold);

    margin-bottom:
        20px;

}


.about-highlight p {

    color:
        rgba(255,255,255,.6);

    font-size:
        13px;

}


/* =========================================
   REGISTRATION
========================================= */

.registration-section {

    background:
        var(--white);

}


.registration-container {

    display:
        grid;

    grid-template-columns:
        .85fr 1.15fr;

    gap:
        70px;

    align-items:
        center;

}


.registration-heading h2 {

    font-family:
        "Playfair Display",
        serif;

    color:
        var(--dark);

    font-size:
        clamp(40px,5vw,58px);

    line-height:
        1.08;

    margin-bottom:
        20px;

}


.registration-heading h2 span {

    color:
        var(--green-600);

}


.registration-heading p {

    color:
        var(--muted);

    max-width:
        460px;

}


.registration-card {

    display:
        grid;

    grid-template-columns:
        minmax(260px, .75fr) 1.25fr;

    gap:
        30px;

    padding:
        34px;

    background:
        var(--off-white);

    border:
        1px solid
        var(--border);

    border-radius:
        var(--radius);

    box-shadow:
        var(--shadow);

}


.registration-number {

    background:
        var(--green-800);

    color:
        var(--white);

    border-radius:
        14px;

    padding:
        26px;

    display:
        flex;

    flex-direction:
        column;

    justify-content:
        center;

}


.registration-number span {

    color:
        var(--gold-light);

    font-size:
        10px;

    font-weight:
        700;

    letter-spacing:
        2px;

    text-transform:
        uppercase;

    margin-bottom:
        12px;

}


.registration-number strong {

    font-family:
        "Playfair Display",
        serif;

    font-size:
        clamp(24px, 2.3vw, 30px);

    line-height:
        1.15;

    overflow-wrap:
        anywhere;

    word-break:
        break-word;

}


.registration-details h3 {

    color:
        var(--dark);

    font-size:
        16px;

    line-height:
        1.35;

    margin-bottom:
        18px;

}


.registration-details p {

    color:
        var(--text);

    font-size:
        13px;

    margin-bottom:
        14px;

}


/* =========================================
   VISION
========================================= */

.vision-section {

    background:
        white;

}


.vision-grid {

    display:
        grid;

    grid-template-columns:
        repeat(2,1fr);

    gap:
        25px;

}


.vision-card {

    padding:
        50px;

    border-radius:
        var(--radius);

    background:
        var(--green-soft);

    position:
        relative;

    overflow:
        hidden;

}


.vision-card.mission {

    background:
        var(--dark);

    color:
        white;

}


.vision-top {

    display:
        flex;

    justify-content:
        space-between;

    align-items:
        center;

    margin-bottom:
        30px;

}


.vision-number {

    font-size:
        11px;

    font-weight:
        700;

    color:
        var(--green-600);

}


.mission .vision-number {

    color:
        var(--gold);

}


.vision-icon {

    width:
        50px;

    height:
        50px;

    display:
        grid;

    place-items:
        center;

    border-radius:
        50%;

    background:
        var(--gold);

    color:
        var(--dark);

}


.card-label {

    display:
        block;

    color:
        var(--green-600);

    font-size:
        11px;

    font-weight:
        700;

    letter-spacing:
        2px;

    margin-bottom:
        15px;

}


.mission .card-label {

    color:
        var(--gold-light);

}


.vision-card h3 {

    font-family:
        "Playfair Display",
        serif;

    color:
        var(--dark);

    font-size:
        30px;

    line-height:
        1.2;

    margin-bottom:
        20px;

}


.mission h3 {

    color:
        white;

}


.vision-card p {

    font-size:
        14px;

    margin-bottom:
        15px;

}


.mission p {

    color:
        rgba(255,255,255,.65);

}


/* =========================================
   OBJECTIVES
========================================= */

.objectives {

    background:
        var(--off-white);

}


.section-heading {

    max-width:
        750px;

    margin-bottom:
        60px;

}


.objective-grid {

    display:
        grid;

    grid-template-columns:
        repeat(3,1fr);

    border-top:
        1px solid
        var(--border);

    border-left:
        1px solid
        var(--border);

}


.objective {

    padding:
        35px;

    min-height:
        260px;

    border-right:
        1px solid
        var(--border);

    border-bottom:
        1px solid
        var(--border);

    transition:
        var(--transition);

}


.objective:hover {

    background:
        var(--white);

}


.objective > span {

    color:
        var(--gold);

    font-weight:
        700;

    font-size:
        12px;

}


.objective h3 {

    font-family:
        "Playfair Display",
        serif;

    color:
        var(--dark);

    font-size:
        24px;

    margin:
        20px 0 10px;

}


.objective p {

    color:
        var(--muted);

    font-size:
        13px;

}


/* =========================================
   ACADEMY
========================================= */

.academy {

    background:
        var(--green-900);

    color:
        white;

}


.academy-container {

    display:
        grid;

    grid-template-columns:
        1fr 1fr;

    gap:
        100px;

    align-items:
        center;

}


.academy-content {

    max-width:
        600px;

}


.academy .section-label {

    color:
        var(--gold-light);

}


.academy h2 {

    font-family:
        "Playfair Display",
        serif;

    font-size:
        clamp(40px,5vw,60px);

    line-height:
        1.08;

    margin-bottom:
        25px;

}


.academy h2 span {

    color:
        var(--gold-light);

}


.academy-content > p {

    color:
        rgba(255,255,255,.65);

    margin-bottom:
        30px;

}


.academy-programmes {

    border-top:
        1px solid
        rgba(255,255,255,.12);

}


.academy-item {

    display:
        grid;

    grid-template-columns:
        60px 1fr;

    gap:
        20px;

    padding:
        25px 0;

    border-bottom:
        1px solid
        rgba(255,255,255,.12);

}


.academy-icon {

    width:
        45px;

    height:
        45px;

    display:
        grid;

    place-items:
        center;

    border-radius:
        50%;

    border:
        1px solid
        var(--gold);

    color:
        var(--gold-light);

    font-size:
        10px;

    font-weight:
        700;

}


.academy-item h3 {

    font-family:
        "Playfair Display",
        serif;

    font-size:
        21px;

    margin-bottom:
        5px;

}


.academy-item p {

    color:
        rgba(255,255,255,.5);

    font-size:
        12px;

}


/* =========================================
   RESEARCH
========================================= */

.research {

    background:
        white;

}


.research-header {

    display:
        grid;

    grid-template-columns:
        1fr 1fr;

    gap:
        80px;

    align-items:
        end;

    margin-bottom:
        60px;

}


.research-header h2 {

    font-family:
        "Playfair Display",
        serif;

    font-size:
        clamp(40px,5vw,60px);

    line-height:
        1.08;

    color:
        var(--dark);

}


.research-header h2 span {

    color:
        var(--green-600);

}


.research-header > p {

    color:
        var(--muted);

}


.research-grid {

    display:
        grid;

    grid-template-columns:
        1.2fr .9fr .9fr;

    gap:
        20px;

}


.research-card {

    padding:
        40px;

    min-height:
        310px;

    background:
        var(--off-white);

    border:
        1px solid
        var(--border);

    border-radius:
        var(--radius);

    display:
        flex;

    flex-direction:
        column;

    transition:
        var(--transition);

}


.research-card:hover {

    transform:
        translateY(-8px);

    box-shadow:
        var(--shadow);

}


.research-card.featured {

    background:
        var(--green-800);

    color:
        white;

}


.research-number {

    color:
        var(--gold);

    font-size:
        11px;

    font-weight:
        700;

}


.research-card h3 {

    font-family:
        "Playfair Display",
        serif;

    font-size:
        28px;

    color:
        var(--dark);

    margin:
        auto 0 15px;

}


.featured h3 {

    color:
        white;

}


.research-card p {

    color:
        var(--muted);

    font-size:
        13px;

    margin-bottom:
        20px;

}


.featured p {

    color:
        rgba(255,255,255,.6);

}


.research-card a {

    color:
        var(--green-600);

    font-weight:
        700;

    font-size:
        12px;

}


.featured a {

    color:
        var(--gold-light);

}


/* =========================================
   FOCUS AREAS
========================================= */

.focus {

    background:
        var(--off-white);

}


.focus-grid {

    display:
        grid;

    grid-template-columns:
        repeat(3,1fr);

    gap:
        20px;

}


.focus-card {

    background:
        white;

    border:
        1px solid
        var(--border);

    border-radius:
        var(--radius);

    overflow:
        hidden;

    transition:
        var(--transition);

}


.focus-card:hover {

    transform:
        translateY(-7px);

    box-shadow:
        var(--shadow);

}


.focus-image {

    height:
        180px;

    display:
        flex;

    align-items:
        flex-end;

    padding:
        20px;

    position:
        relative;

    overflow:
        hidden;

}


.focus-image::before {

    content:
        "";

    position:
        absolute;

    inset:
        0;

    background:
        linear-gradient(
            135deg,
            rgba(3,39,29,.9),
            rgba(8,116,67,.4)
        );

}


.focus-image span {

    position:
        relative;

    z-index:
        2;

    color:
        white;

    font-size:
        11px;

    font-weight:
        700;

    letter-spacing:
        2px;

}


.tourism {

    background:
        linear-gradient(
            135deg,
            #2d6844,
            #b2c95b
        );

}


.mining {

    background:
        linear-gradient(
            135deg,
            #4b3c28,
            #b28a45
        );

}


.education {

    background:
        linear-gradient(
            135deg,
            #184f65,
            #4aa2b7
        );

}


.aviation {

    background:
        linear-gradient(
            135deg,
            #1b405e,
            #8ab8c9
        );

}


.ocean {

    background:
        linear-gradient(
            135deg,
            #063f52,
            #31a8ae
        );

}


.resources {

    background:
        linear-gradient(
            135deg,
            #24522d,
            #8ab94e
        );

}


.focus-content {

    padding:
        28px;

}


.focus-content > span {

    font-size:
        9px;

    color:
        var(--green-600);

    font-weight:
        700;

    letter-spacing:
        1.5px;

}


.focus-content h3 {

    font-family:
        "Playfair Display",
        serif;

    color:
        var(--dark);

    font-size:
        25px;

    margin:
        8px 0;

}


.focus-content p {

    color:
        var(--muted);

    font-size:
        13px;

    margin-bottom:
        15px;

}


.focus-content a {

    color:
        var(--green-600);

    font-size:
        12px;

    font-weight:
        700;

}


/* =========================================
   COLLABORATION
========================================= */

.collaboration {

    background:
        white;

}


.collaboration-container {

    display:
        grid;

    grid-template-columns:
        1fr 1fr;

    gap:
        100px;

    align-items:
        center;

}


.collaboration-content {

    max-width:
        580px;

}


.collaboration h2 {

    font-family:
        "Playfair Display",
        serif;

    font-size:
        clamp(40px,5vw,60px);

    line-height:
        1.08;

    color:
        var(--dark);

    margin-bottom:
        25px;

}


.collaboration h2 span {

    color:
        var(--green-600);

}


.collaboration-content p {

    color:
        var(--muted);

    margin-bottom:
        18px;

}


.partnership-network {

    width:
        450px;

    height:
        450px;

    position:
        relative;

    margin:
        auto;

}


.network-center {

    position:
        absolute;

    width:
        140px;

    height:
        140px;

    border-radius:
        50%;

    background:
        var(--green-800);

    left:
        50%;

    top:
        50%;

    transform:
        translate(-50%,-50%);

    display:
        grid;

    place-items:
        center;

    z-index:
        5;

    box-shadow:
        0 15px 50px
        rgba(0,50,30,.2);

}


.network-center img {

    width:
        76%;

    max-width:
        106px;

    height:
        auto;

    display:
        block;

    border-radius:
        16px;

    object-fit:
        contain;

}


.network-node {

    position:
        absolute;

    padding:
        11px 16px;

    background:
        white;

    border:
        1px solid
        var(--border);

    border-radius:
        50px;

    font-size:
        10px;

    font-weight:
        700;

    color:
        var(--green-800);

    box-shadow:
        0 8px 25px
        rgba(0,0,0,.07);

    z-index:
        5;

}


.node-1 {

    top:
        10px;

    left:
        50%;

    transform:
        translateX(-50%);

}


.node-2 {

    top:
        130px;

    left:
        0;

}


.node-3 {

    top:
        130px;

    right:
        0;

}


.node-4 {

    bottom:
        80px;

    left:
        15px;

}


.node-5 {

    bottom:
        80px;

    right:
        15px;

}


.network-line {

    position:
        absolute;

    width:
        1px;

    height:
        130px;

    background:
        var(--border);

    left:
        50%;

    top:
        50%;

    transform-origin:
        top;

}


.line-1 {

    transform:
        rotate(0deg)
        translateY(-145px);

}


.line-2 {

    transform:
        rotate(65deg)
        translateY(-120px);

}


.line-3 {

    transform:
        rotate(-65deg)
        translateY(-120px);

}


.line-4 {

    transform:
        rotate(125deg)
        translateY(-120px);

}


.line-5 {

    transform:
        rotate(-125deg)
        translateY(-120px);

}


/* =========================================
   AWARDS
========================================= */

.awards {

    background:
        var(--green-pale);

}


.awards-header {

    max-width:
        800px;

    margin-bottom:
        55px;

}


.awards-header h2 {

    font-family:
        "Playfair Display",
        serif;

    font-size:
        clamp(40px,5vw,60px);

    line-height:
        1.08;

    color:
        var(--dark);

    margin-bottom:
        20px;

}


.awards-header h2 span {

    color:
        var(--green-600);

}


.awards-header p {

    color:
        var(--muted);

}


.award-categories {

    display:
        grid;

    grid-template-columns:
        repeat(3,1fr);

    gap:
        15px;

}


.award-category {

    background:
        white;

    padding:
        30px;

    border:
        1px solid
        var(--border);

    border-radius:
        12px;

    min-height:
        150px;

    transition:
        var(--transition);

}


.award-category:hover {

    background:
        var(--green-800);

    color:
        white;

    transform:
        translateY(-5px);

}


.award-category span {

    color:
        var(--gold);

    font-size:
        11px;

    font-weight:
        700;

}


.award-category h3 {

    font-family:
        "Playfair Display",
        serif;

    font-size:
        21px;

    margin-top:
        25px;

}


.awards-cta {

    margin-top:
        40px;

    background:
        var(--green-800);

    color:
        white;

    padding:
        30px 35px;

    border-radius:
        15px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        30px;

}


.awards-cta strong {

    display:
        block;

    color:
        var(--gold-light);

    font-size:
        11px;

    letter-spacing:
        2px;

}


.awards-cta span {

    font-family:
        "Playfair Display",
        serif;

    font-size:
        21px;

}


.btn-gold {

    background:
        var(--gold);

    color:
        var(--dark);

}


/* =========================================
   IMPACT
========================================= */

.impact {

    background:
        linear-gradient(
            135deg,
            var(--green-950),
            var(--green-700)
        );

    color:
        white;

    padding:
        100px 0;

}


.impact-header {

    text-align:
        center;

    max-width:
        800px;

    margin:
        0 auto 70px;

}


.impact .section-label {

    color:
        var(--gold-light);

}


.impact h2 {

    font-family:
        "Playfair Display",
        serif;

    font-size:
        clamp(40px,5vw,60px);

    line-height:
        1.08;

}


.impact h2 span {

    color:
        var(--gold-light);

}


.impact-grid {

    display:
        grid;

    grid-template-columns:
        repeat(4,1fr);

    border-top:
        1px solid
        rgba(255,255,255,.12);

    border-bottom:
        1px solid
        rgba(255,255,255,.12);

}


.impact-stat {

    padding:
        40px 20px;

    text-align:
        center;

    border-right:
        1px solid
        rgba(255,255,255,.12);

}


.impact-stat:last-child {

    border:
        none;

}


.impact-stat strong {

    display:
        block;

    font-family:
        "Playfair Display",
        serif;

    color:
        var(--gold-light);

    font-size:
        55px;

    line-height:
        1;

    margin-bottom:
        10px;

}


.impact-stat span {

    color:
        rgba(255,255,255,.55);

    font-size:
        11px;

}


/* =========================================
   INSIGHTS
========================================= */

.insights {

    background:
        white;

}


.insights-grid {

    display:
        grid;

    grid-template-columns:
        repeat(3,1fr);

    gap:
        20px;

}


.insight-card {

    border:
        1px solid
        var(--border);

    border-radius:
        15px;

    overflow:
        hidden;

    transition:
        var(--transition);

}


.insight-card:hover {

    transform:
        translateY(-7px);

    box-shadow:
        var(--shadow);

}


.insight-placeholder {

    height:
        210px;

    display:
        flex;

    align-items:
        flex-end;

    padding:
        25px;

    background:
        linear-gradient(
            135deg,
            var(--green-800),
            var(--green-400)
        );

}


.insight-placeholder.second {

    background:
        linear-gradient(
            135deg,
            #5c4824,
            var(--gold)
        );

}


.insight-placeholder.third {

    background:
        linear-gradient(
            135deg,
            #16455c,
            #42a1a7
        );

}


.insight-placeholder span {

    color:
        white;

    font-size:
        10px;

    letter-spacing:
        2px;

    font-weight:
        700;

}


.insight-body {

    padding:
        28px;

}


.insight-body small {

    color:
        var(--green-600);

    font-size:
        9px;

    font-weight:
        700;

    letter-spacing:
        1.5px;

}


.insight-body h3 {

    font-family:
        "Playfair Display",
        serif;

    color:
        var(--dark);

    font-size:
        23px;

    line-height:
        1.2;

    margin:
        12px 0 20px;

}


.insight-body a {

    color:
        var(--green-600);

    font-size:
        11px;

    font-weight:
        700;

}


/* =========================================
   CONTACT
========================================= */

.contact-section {

    background:
        var(--off-white);

    padding:
        100px 0;

}


.contact-box {

    background:
        var(--green-800);

    border-radius:
        25px;

    padding:
        65px;

    display:
        grid;

    grid-template-columns:
        1fr .4fr;

    align-items:
        center;

    gap:
        60px;

    overflow:
        hidden;

    position:
        relative;

}


.contact-box::before {

    content:
        "";

    position:
        absolute;

    width:
        500px;

    height:
        500px;

    border:
        1px solid
        rgba(255,255,255,.08);

    border-radius:
        50%;

    right:
        -200px;

    bottom:
        -250px;

}


.contact-content {

    position:
        relative;

    z-index:
        2;

}


.contact-box .section-label {

    color:
        var(--gold-light);

}


.contact-box h2 {

    font-family:
        "Playfair Display",
        serif;

    font-size:
        clamp(40px,5vw,60px);

    line-height:
        1.08;

    color:
        white;

    margin-bottom:
        20px;

}


.contact-box p {

    max-width:
        650px;

    color:
        rgba(255,255,255,.65);

    margin-bottom:
        30px;

}


.contact-buttons {

    display:
        flex;

    gap:
        12px;

    flex-wrap:
        wrap;

}


.btn-light {

    background:
        white;

    color:
        var(--green-800);

}


.btn-transparent {

    border:
        1px solid
        rgba(255,255,255,.35);

    color:
        white;

}


.contact-logo {

    position:
        relative;

    z-index:
        2;

    display:
        flex;

    justify-content:
        center;

}


.contact-logo img {

    width:
        min(210px, 70vw);

    height:
        auto;

    display:
        block;

    border-radius:
        18px;

    object-fit:
        contain;

}


/* =========================================
   FOOTER
========================================= */

.footer {

    background:
        var(--green-950);

    color:
        white;

    padding:
        75px 0 25px;

}


.footer-main {

    display:
        grid;

    grid-template-columns:
        2fr 1fr 1fr 1.3fr;

    gap:
        60px;

    padding-bottom:
        60px;

}


.footer-brand img {

    width:
        min(190px, 100%);

    height:
        auto;

    display:
        block;

    border-radius:
        16px;

    object-fit:
        contain;

}


.footer-brand p {

    max-width:
        350px;

    color:
        rgba(255,255,255,.5);

    font-size:
        13px;

    margin:
        20px 0;

}


.social-links {

    display:
        flex;

    gap:
        8px;

}


.social-links a {

    width:
        35px;

    height:
        35px;

    border:
        1px solid
        rgba(255,255,255,.15);

    border-radius:
        50%;

    display:
        grid;

    place-items:
        center;

    font-size:
        11px;

    color:
        rgba(255,255,255,.65);

    transition:
        var(--transition);

}


.social-links a:hover {

    background:
        var(--gold);

    color:
        var(--dark);

}


.footer-column {

    display:
        flex;

    flex-direction:
        column;

    gap:
        10px;

}


.footer-column h4 {

    color:
        var(--gold-light);

    text-transform:
        uppercase;

    font-size:
        10px;

    letter-spacing:
        2px;

    margin-bottom:
        10px;

}


.footer-column a,
.footer-column p {

    color:
        rgba(255,255,255,.5);

    font-size:
        12px;

}


.footer-column a:hover {

    color:
        white;

}


.footer-bottom {

    border-top:
        1px solid
        rgba(255,255,255,.1);

    padding-top:
        25px;

    display:
        flex;

    justify-content:
        space-between;

    gap:
        20px;

}


.footer-bottom p {

    color:
        rgba(255,255,255,.35);

    font-size:
        10px;

}


/* =========================================
   SCROLL ANIMATION
========================================= */

.reveal {

    opacity:
        0;

    transform:
        translateY(30px);

    transition:
        opacity .7s ease,
        transform .7s ease;

}


.reveal.visible {

    opacity:
        1;

    transform:
        translateY(0);

}


/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 1050px) {


    .navbar {

        gap:
            15px;

    }


    .nav-link {

        font-size:
            11px;

    }


    .hero-container {

        grid-template-columns:
            1fr;

    }


    .hero-visual {

        display:
            none;

    }


    .hero-content {

        max-width:
            800px;

    }


    .about-grid,
    .academy-container,
    .collaboration-container,
    .registration-container {

        grid-template-columns:
            1fr;

    }


    .research-grid {

        grid-template-columns:
            1fr 1fr;

    }


    .research-card.featured {

        grid-column:
            span 2;

    }


    .footer-main {

        grid-template-columns:
            2fr 1fr 1fr;

    }

}


@media (max-width: 800px) {


    .section {

        padding:
            80px 0;

    }


    .section-intro,
    .research-header {

        grid-template-columns:
            1fr;

        gap:
            20px;

        margin-bottom:
            45px;

    }


    .vision-grid {

        grid-template-columns:
            1fr;

    }


    .objective-grid {

        grid-template-columns:
            1fr 1fr;

    }


    .focus-grid,
    .award-categories,
    .insights-grid {

        grid-template-columns:
            1fr 1fr;

    }


    .partnership-network {

        transform:
            scale(.85);

    }


    .impact-grid {

        grid-template-columns:
            repeat(2,1fr);

    }


    .impact-stat:nth-child(2) {

        border-right:
            none;

    }


    .impact-stat:nth-child(-n+2) {

        border-bottom:
            1px solid
            rgba(255,255,255,.12);

    }


    .contact-box {

        grid-template-columns:
            1fr;

    }


    .contact-logo {

        display:
            none;

    }


    .footer-main {

        grid-template-columns:
            1fr 1fr;

    }

}


@media (max-width: 650px) {


    .container {

        width:
            calc(100% - 30px);

    }


    .navbar {

        position:
            fixed;

        top:
            75px;

        right:
            15px;

        width:
            280px;

        background:
            white;

        padding:
            20px;

        border-radius:
            15px;

        box-shadow:
            var(--shadow);

        flex-direction:
            column;

        align-items:
            stretch;

        gap:
            5px;

        opacity:
            0;

        visibility:
            hidden;

        transform:
            translateY(-15px);

        transition:
            var(--transition);

    }


    .navbar.active {

        opacity:
            1;

        visibility:
            visible;

        transform:
            translateY(0);

    }


    .nav-link {

        color:
            var(--dark) !important;

        padding:
            10px;

    }


    .nav-link::after {

        display:
            none;

    }


    .nav-cta {

        text-align:
            center;

        margin-top:
            5px;

    }


    .menu-toggle {

        display:
            block;

    }


    .brand {

        max-width:
            38vw;

    }


    .brand img {

        height:
            44px;

    }


    .hero {

        min-height:
            820px;

    }


    .hero h1 {

        font-size:
            43px;

    }


    .hero-content > p {

        font-size:
            15px;

    }


    .hero-buttons {

        flex-direction:
            column;

        align-items:
            stretch;

    }


    .btn {

        width:
            100%;

    }


    .hero-pillars {

        grid-template-columns:
            repeat(2,1fr);

    }


    .hero-pillars div {

        padding:
            12px 5px;

    }


    .hero-pillars div:last-child {

        grid-column:
            span 2;

    }


    .objective-grid,
    .focus-grid,
    .award-categories,
    .insights-grid,
    .research-grid {

        grid-template-columns:
            1fr;

    }


    .research-card.featured {

        grid-column:
            auto;

    }


    .vision-card {

        padding:
            35px 25px;

    }


    .registration-card {

        grid-template-columns:
            1fr;

        padding:
            25px;

    }


    .registration-number strong {

        font-size:
            24px;

    }


    .academy-container,
    .collaboration-container {

        gap:
            50px;

    }


    .partnership-network {

        width:
            350px;

        height:
            350px;

        transform:
            scale(.8);

    }


    .network-center {

        width:
            116px;

        height:
            116px;

    }


    .awards-cta {

        flex-direction:
            column;

        align-items:
            flex-start;

    }


    .contact-box {

        padding:
            40px 25px;

    }


    .footer-main {

        grid-template-columns:
            1fr;

        gap:
            35px;

    }


    .footer-bottom {

        flex-direction:
            column;

    }

}
