/* ===========================
   NASS DESIGN SYSTEM
=========================== */


:root{

    --primary:#003B8E;
    --secondary:#0057D9;
    --accent:#00B4FF;
    --dark:#081B33;
    --light:#F5F9FF;
    --text:#1A1A1A;

}





/* ===========================
   GLOBAL
=========================== */


*{

    scroll-behavior:smooth;

}



body{

    font-family:'Poppins', sans-serif;

    color:var(--text);

    background:white;

    margin:0;

    line-height:1.7;
    overflow-x:hidden;

}



img{

    max-width:100%;

    height:auto;

}

html,
body {
    max-width: 100%;
    overflow-x: clip;
}

body,
button,
input,
textarea,
select {
    max-width: 100%;
}

p,
h1,
h2,
h3,
h4,
h5,
a,
small {
    overflow-wrap: anywhere;
}







/* ===========================
   SECTIONS
=========================== */


.section{

    padding:100px 0;

}

.admin-main .section {
    padding-top: 56px;
}



.section-title{

    font-size:2.5rem;

    font-weight:700;

    color:var(--dark);

}



.section-subtitle{

    color:#6c757d;

    max-width:700px;

    margin:auto;

    line-height:1.8;

}







/* ===========================
   HERO
=========================== */


.hero{

    min-height:90vh;


    background:
    linear-gradient(
        rgba(8,27,51,.70),
        rgba(8,27,51,.70)
    ),
    url("../images/home1.jpg");


    background-size:cover;

    background-position:center;

    background-repeat:no-repeat;


    display:flex;

    align-items:center;

    justify-content:center;

    text-align:center;

    color:#dbe6f2;

}



.hero h1{

    font-size:clamp(2.5rem,5vw,4rem);

    font-weight:800;

}



.hero p{

    max-width:800px;

    margin:auto;

    font-size:1.2rem;

}

.hero-content{

    max-width:900px;

}


.hero .btn{

    margin-top:10px;

}





/* ===========================
   NAVBAR
=========================== */

.navbar{

    background:rgba(8,27,51,.96);

    backdrop-filter:blur(10px);

    padding:10px 0;

}



.navbar-brand{

    display:flex;

    align-items:center;

    gap:15px;

}



.logo{

    height:65px;

    width:auto;

    background:white;

    padding:5px;

    border-radius:10px;

}



.navbar-brand h5{

    color:white;

    font-weight:700;

    margin:0;

}



.navbar-brand small{

    color:#BFD8FF;

    font-size:.75rem;

    display:block;

    max-width:220px;

}



.navbar-nav{

    gap:0px;

}


.nav-link{

    color:white !important;

    font-weight:500;

    padding:.45rem .55rem !important;

    border-radius:8px;

    transition:.3s;

}

.navbar-collapse{

    justify-content:flex-end;

}


.navbar-brand{

    margin-right:20px;

}

.nav-link:hover{

    color:var(--accent)!important;

    background:rgba(255,255,255,.08);

}


@media(max-width:991px){

    .navbar-brand small{

        display:none;

    }


    .logo{

        height: 55px;;

    }

}


/* ===========================
   BUTTONS
=========================== */


.btn-nass{

    background:var(--accent);

    color:white;

    padding:11px 24px;

    border-radius:50px;

    font-weight:600;

    transition:.3s;

}



.btn-nass:hover{

    background:#0098D8;

    color:white;

    transform:translateY(-3px);

}



.btn-outline-nass{

    border:2px solid var(--accent);

    color:var(--accent);

    padding:10px 22px;

    border-radius:50px;

    transition:.3s;

}



.btn-outline-nass:hover{

    background:var(--accent);

    color:white;

}







/* ===========================
   CARDS
=========================== */


.nass-card{

    background:white;

    border-radius:18px;

    padding:25px;

    box-shadow:
    0 10px 30px rgba(0,0,0,.08);


    transition:.35s ease;

}

.nass-card h4{

    color:var(--dark);

}


.nass-card i{

    transition:.3s;

}


.nass-card:hover i{

    transform:scale(1.1);

}



.nass-card:hover{

    transform:translateY(-8px);

    box-shadow:
    0 20px 45px rgba(0,0,0,.15);

}

/* ===========================
   NEWS CARDS
=========================== */


.news-category{

    display:inline-block;

    color:var(--accent);

    font-size:.85rem;

    font-weight:600;

    text-transform:uppercase;

    letter-spacing:.5px;

    margin-bottom:10px;

}



.nass-card h4{

    line-height:1.3;

}



.nass-card p{

    color:#6c757d;

}


/* ===========================
   EXPO SECTION
=========================== */


.expo-section{

    background:
    linear-gradient(
        135deg,
        #081B33,
        #003B8E
    );

}



.expo-section h2{

    line-height:1.2;

}



.expo-section img{

    border:4px solid rgba(255,255,255,.15);

}



.expo-badge{

    display:inline-block;

    background:var(--accent);

    color:white;

    padding:8px 18px;

    border-radius:50px;

    font-size:.8rem;

    font-weight:700;

    letter-spacing:1px;

}




/* ===========================
   IMAGES
=========================== */


.nass-card img{

    object-fit:cover;

}



.rounded{

    border-radius:18px!important;

}







/* ===========================
   FORMS
=========================== */


.form-control{

    border-radius:12px;

    padding:12px 15px;

    border:1px solid #ddd;

}



.form-control:focus{

    border-color:var(--accent);

    box-shadow:0 0 0 .2rem rgba(0,180,255,.15);

}







/* ===========================
   BADGES
=========================== */


.badge{

    padding:8px 14px;

    border-radius:50px;

}



/* ===========================
   LEADERSHIP
=========================== */

.leadership-card,
.advisory-card {
    height: 100%;
    padding: 18px;
    overflow: hidden;
    text-align: left;
}

.leadership-card h4,
.advisory-card h4 {
    margin: 0 0 6px;
    color: var(--dark);
}

.leadership-card p,
.advisory-card p {
    margin-bottom: 0;
}

.profile-image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 5 / 4;
    margin-bottom: 22px;
    object-fit: contain;
    object-position: center var(--photo-position, 35%);
    background: #f3f6f9;
    border: 4px solid var(--light);
    border-radius: 14px;
}

.hero-carousel {
    background: var(--dark);
    overflow: hidden;
}

.hero-slide {
    min-height: 90vh;
    background-position: center;
    background-size: cover;
}

.hero-slide-programmes {
    background-image: linear-gradient(rgba(8,27,51,.76), rgba(8,27,51,.76)), url("../images/home2.jpg");
}

.hero-slide-innovation {
    background-image: linear-gradient(rgba(8,27,51,.76), rgba(8,27,51,.76)), url("../images/home3.jpg");
}

.hero-indicators {
    margin-bottom: 1.7rem;
}

.hero-indicators [data-bs-target] {
    width: 30px;
    height: 4px;
    border-radius: 99px;
}

.hero-control {
    width: 9%;
}

.hero-primary-action {
    min-width: 190px;
}

.page-hero {
    align-items: center;
    background-color: var(--dark);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    color: #fff;
    display: flex;
    min-height: 360px;
    padding: 110px 0 82px;
    position: relative;
    text-align: center;
}

.page-hero::before {
    background: linear-gradient(105deg, rgba(8,27,51,.88), rgba(8,27,51,.64));
    content: "";
    inset: 0;
    position: absolute;
}

.page-hero .container {
    position: relative;
}

.page-hero h1 {
    color: #fff;
    font-size: clamp(2.35rem, 5vw, 4.2rem);
    font-weight: 800;
    margin: 0;
}

.page-hero-subtitle {
    color: rgba(255,255,255,.88);
    font-size: 1.12rem;
    line-height: 1.75;
    margin-left: auto;
    margin-right: auto;
    max-width: 760px;
}

.page-hero-about { background-image: url("../images/about-hero.jpg"); }
.page-hero-leadership { background-image: url("../images/leadership-hero.jpg"); }
.page-hero-events { background-image: url("../images/events-hero.jpg"); }
.page-hero-media { background-image: url("../images/media-hero.jpg"); }

.home-stats-section {
    background: linear-gradient(135deg, #eaf4ff, #f7fbff);
}

.home-stats-section .nass-card {
    border: 1px solid rgba(0, 87, 217, .10);
}

.campus-network-section {
    padding: 72px 0;
    background: #fff;
}

.partner-network-section {
    background: #f6faff;
    border-top: 1px solid #e6eff8;
    border-bottom: 1px solid #e6eff8;
    padding: 68px 0;
}

.partner-logo {
    text-decoration: none;
    transition: border-color .25s ease, transform .25s ease;
}

a.partner-logo:hover {
    border-color: rgba(0,87,217,.35);
    transform: translateY(-2px);
}

.campus-logo-strip {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    justify-content: center;
}

.campus-logo {
    align-items: center;
    background: #fff;
    border: 1px solid #e5edf6;
    border-radius: 14px;
    display: flex;
    height: 76px;
    justify-content: center;
    padding: 10px;
    width: 104px;
}

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

.institution-admin-logo {
    align-items: center;
    background: #f3f7fb;
    border: 1px solid #e5edf6;
    border-radius: 10px;
    color: var(--primary);
    display: flex;
    flex: 0 0 auto;
    height: 48px;
    justify-content: center;
    overflow: hidden;
    width: 60px;
}

.institution-admin-logo img {
    height: 100%;
    object-fit: contain;
    padding: 5px;
    width: 100%;
}

.leadership-card:hover .profile-image,
.advisory-card:hover .profile-image {
    transform: none;
}

.admin-leadership-image {
    height: 280px;
    object-fit: contain;
    object-position: center var(--photo-position, 35%);
    background: #f3f6f9;
}

.admin-content-list .btn + form.d-inline {
    margin-left: .55rem;
}

.advisory-card {
    border-top: 4px solid var(--accent);
}

.campus-card {
    transition: .3s ease;
}

.campus-card i {
    transition: .3s ease;
}

.campus-card:hover i {
    transform: translateY(-5px);
}

.campus-card .profile-image {
    height: 180px;
}

@media (max-width: 768px) {
    .profile-image {
        height: 240px;
    }
}


/* EVENTS */

.event-card img{

    height:220px;

    object-fit:cover;

}


.event-meta{

    color:#6c757d;

    font-size:.9rem;

}



.flash-container{
    position: fixed;
    top: 88px;
    right: 24px;
    z-index: 9999;
    width:min(390px, calc(100vw - 32px));
}

.about-intro{
    padding-bottom: 78px;
}

.about-pill{
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .55rem .9rem;
    border: 1px solid rgba(14, 94, 170, .15);
    border-radius: 999px;
    background: #fff;
    color: var(--dark);
    font-size: .88rem;
    font-weight: 600;
}

.about-pill i,
.about-value i{
    color: var(--primary);
}

.about-image{
    width: 100%;
    max-height: 430px;
    object-fit: cover;
}

.about-value{
    display: flex;
    min-height: 126px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .7rem;
    padding: 1.25rem .75rem;
    border: 1px solid #e8eef5;
    border-radius: 16px;
    background: #fff;
    color: var(--dark);
    font-weight: 700;
    text-align: center;
}

.about-value i{
    font-size: 1.55rem;
}

.about-purpose{
    background: linear-gradient(130deg, #061d3a, #0b4f8a);
}

.about-purpose-item{
    display: flex;
    align-items: center;
    gap: .8rem;
    height: 100%;
    padding: 1rem;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 14px;
    color: #fff;
    background: rgba(255, 255, 255, .08);
}

.about-purpose-item i{
    flex: 0 0 auto;
    color: #8fd0ff;
    font-size: 1.35rem;
}


.flash-card{
    align-items:flex-start;
    animation:flash-card-enter .25s ease-out;
    background:#fff;
    border:1px solid rgba(8,27,51,.12);
    border-left:5px solid var(--primary);
    border-radius:14px;
    box-shadow:0 14px 36px rgba(8,27,51,.18);
    display:flex;
    gap:12px;
    margin-bottom:12px;
    padding:15px;
}


.flash-card.success{
    border-left-color:#198754;
}


.flash-card.danger{
    border-left-color:#dc3545;
}

.flash-card.warning{ border-left-color:#f0ad00; }
.flash-icon{ color:var(--primary); font-size:1.25rem; line-height:1.2; }
.flash-card.success .flash-icon{ color:#198754; }
.flash-card.danger .flash-icon{ color:#dc3545; }
.flash-card.warning .flash-icon{ color:#d49600; }
.flash-content{ flex:1; font-size:.9rem; line-height:1.45; }
.flash-content strong{ color:var(--dark); display:block; font-size:.92rem; margin-bottom:2px; }
.flash-content p{ color:#495057; margin:0; }
.flash-close{ background:transparent; border:0; color:#6c757d; padding:2px; }
.flash-card-leaving{ animation:flash-card-leave .3s ease-in forwards; }
@keyframes flash-card-enter{ from{ opacity:0; transform:translateX(24px); } to{ opacity:1; transform:translateX(0); } }
@keyframes flash-card-leave{ to{ opacity:0; transform:translateX(24px); } }
@media (max-width:576px){ .flash-container{ right:16px; top:76px; } }

.archive-confirm-toggle{ position:absolute; opacity:0; pointer-events:none; }
.archive-confirm-modal{ display:none; }
.archive-confirm-toggle:checked ~ .archive-confirm-modal{ align-items:center; display:flex; inset:0; justify-content:center; padding:16px; position:fixed; z-index:10000; }
.archive-confirm-backdrop{ background:rgba(8,27,51,.48); inset:0; position:absolute; }
.archive-confirm-card{ background:#fff; border-radius:16px; box-shadow:0 24px 70px rgba(0,0,0,.25); max-width:390px; padding:24px; position:relative; width:100%; }



/* ===========================
   FOOTER
=========================== */


footer{

    background:var(--dark);

    color:#ded8ce;

    padding:70px 0 30px;

}



footer p{

    color:#cbc4b8;

}



footer a{

    transition:.3s;

}



footer a:hover{

    color:var(--accent)!important;

}




/* ===========================
   MOBILE
=========================== */


@media(max-width:768px){


    .section{

        padding:60px 0;

    }


    .section-title{

        font-size:2rem;

    }


    .logo{

        height:60px;

    }


    .hero{

        min-height:80vh;

    }


}

@media(max-width:768px){
    .hero h1{
        font-size:clamp(2.25rem, 11vw, 3.1rem);
    }

    .hero p{
        font-size:1rem;
    }

    .hero .btn,
    .btn-nass,
    .btn-outline-nass{
        width:100%;
        max-width:340px;
    }

    .nass-card{
        padding:20px;
        border-radius:14px;
    }

    .section-subtitle{
        font-size:.98rem;
    }

    .row.g-3,
    .row.g-4,
    .row.g-5{
        --bs-gutter-y:1.75rem;
    }

    .nass-card .d-flex.gap-2,
    .nass-card .d-flex.gap-3{
        row-gap:.85rem!important;
    }

    .list-group-item{
        padding-top:.9rem;
        padding-bottom:.9rem;
    }

    .gallery-body{
        padding:18px 20px 20px;
    }

    .table-responsive,
    .overflow-auto{
        -webkit-overflow-scrolling:touch;
    }
}

footer h4,
footer h5 { color:#f0ebe2; }
footer .text-white { color:#d8d1c7 !important; }

.footer-contact-item{ align-items:center; display:flex; gap:8px; }
.footer-contact-item i{ color:var(--accent); font-size:.96rem; }
.footer-contact-email{ color:#d5cec4; text-decoration:none; }
.footer-contact-email:hover{ color:var(--accent); }
.footer-socials{ display:flex; flex-wrap:wrap; gap:8px; }
.footer-social{ align-items:center; background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.12); border-radius:999px; color:#e5ded4; display:inline-flex; font-size:.78rem; gap:6px; padding:7px 10px; text-decoration:none; }
.footer-social:hover{ background:rgba(255,255,255,.16); color:#f2ede5; }
.footer-social i{ color:var(--accent); }

/* Publications and technical papers */
.publication-chip{ color:#8a3b11; display:block; font-size:.78rem; font-weight:700; margin:.65rem 0 -.15rem; }
.publication-callout{ align-items:center; background:#f3f8fc; border:1px solid #d8e7f2; border-radius:16px; display:flex; gap:1.25rem; justify-content:space-between; padding:1.25rem; }
.publication-callout p{ color:#617082; font-size:.92rem; }
.publication-label{ color:#a4420d; display:block; font-size:.76rem; font-weight:800; letter-spacing:.04em; margin-bottom:.45rem; text-transform:uppercase; }
.resource-hero{ padding-bottom:3.5rem; }
.resource-hero .section-subtitle{ margin-left:auto; margin-right:auto; }
.resource-count{ color:#526273; font-size:.9rem; font-weight:600; }
.resource-card{ background:#fff; border:1px solid #e3ebf2; border-radius:18px; box-shadow:0 10px 28px rgba(8,27,51,.05); display:flex; flex-direction:column; gap:1rem; height:100%; padding:1.45rem; }
.resource-card p{ color:#5f6d7d; line-height:1.65; }
.resource-card-top{ align-items:center; display:flex; flex-wrap:wrap; gap:.55rem; justify-content:space-between; }
.resource-format,.resource-category{ border-radius:999px; font-size:.76rem; font-weight:700; padding:.4rem .65rem; }
.resource-format{ background:#edf4fa; color:#31516d; }
.resource-format.is-pdf{ background:#fef0e9; color:#a4420d; }
.resource-category{ background:#f5f7f9; color:#667586; }
.publication-guidance{ align-items:center; background:linear-gradient(115deg,#eef7fc,#f8fbfd); border:1px solid #dbeaf3; border-radius:20px; display:flex; gap:2rem; justify-content:space-between; padding:2rem; }
.member-profile-avatar{ border:2px solid rgba(255,255,255,.7); border-radius:50%; height:64px; object-fit:cover; width:64px; }
.member-profile-preview,.member-profile-placeholder{ align-items:center; background:#edf4fa; border-radius:50%; display:flex; height:58px; justify-content:center; object-fit:cover; width:58px; }
.member-profile-preview{ border:1px solid #d5e2ec; }
.member-profile-placeholder{ color:#52718a; font-size:1.45rem; }
.admin-member-avatar{ border:1px solid #d9e4ed; border-radius:50%; height:48px; object-fit:cover; width:48px; }
.admin-member-avatar-empty{ align-items:center; background:#edf4fa; color:#52718a; display:flex; font-size:1.25rem; justify-content:center; }
.profile-readonly{ background:#f6f8fa; border:1px solid #e3e9ee; border-radius:.5rem; color:#445468; padding:.8rem 1rem; }
.profile-readonly span{ color:#738093; display:block; font-size:.8rem; margin-top:.25rem; }
.member-dashboard-kicker{ color:#176b87; font-size:.74rem; font-weight:700; letter-spacing:.12em; }
.member-dashboard{ padding-top:56px; }
.member-id-card-dashboard{ background:linear-gradient(140deg,#0b1f3a,#176b87); display:flex; flex-direction:column; min-height:285px; }
.member-card-label{ border:1px solid rgba(255,255,255,.28); border-radius:99px; color:#d7edf6; display:inline-block; font-size:.68rem; letter-spacing:.04em; padding:.18rem .55rem; }
.member-summary-grid .member-summary-item{ align-items:flex-start; background:#f7fafc; border:1px solid #e8eff4; border-radius:12px; display:flex; gap:.75rem; height:100%; padding:.85rem; }
.member-summary-item > i{ color:#176b87; font-size:1.05rem; margin-top:.08rem; }
.member-summary-item span,.member-summary-item small{ color:#718093; display:block; font-size:.75rem; }
.member-summary-item strong{ color:#28384a; display:block; font-size:.92rem; line-height:1.35; }
.member-contact-strip{ align-items:center; border-top:1px solid #e7edf1; color:#526273; display:flex; flex-wrap:wrap; font-size:.88rem; gap:.35rem .55rem; padding-top:1rem; }
.member-contact-strip i{ color:#176b87; }
.member-activity-panel{ background:linear-gradient(135deg,#f7fbfd,#eef7fb); border:1px solid #dcebf2; border-radius:18px; padding:1.4rem; }
.member-entry-card{ background:#fff; border:1px solid #dfeaf1; border-radius:14px; height:100%; padding:1.1rem; }
.member-quick-link{ align-items:center; background:#fff; border:1px solid #e1eaf0; border-radius:14px; color:#24384a; display:flex; gap:.8rem; height:100%; padding:1rem; text-decoration:none; transition:transform .2s ease,box-shadow .2s ease; }
.member-quick-link:hover{ box-shadow:0 10px 22px rgba(8,27,51,.08); color:#176b87; transform:translateY(-2px); }
.member-quick-link>i:first-child{ background:#e7f5fa; border-radius:10px; color:#176b87; font-size:1.1rem; padding:.55rem .65rem; }
.member-quick-link span{ flex:1; min-width:0; }
.member-quick-link strong,.member-quick-link small{ display:block; }
.member-quick-link small{ color:#6e7d8d; font-size:.76rem; margin-top:.12rem; }
.member-settings{ overflow:hidden; padding:0!important; }
.member-settings summary{ align-items:center; cursor:pointer; display:flex; justify-content:space-between; list-style:none; padding:1.15rem 1.35rem; }
.member-settings summary::-webkit-details-marker{ display:none; }
.member-settings summary small{ color:#6e7d8d; display:block; font-size:.78rem; margin-top:.15rem; }
.member-settings[open] summary{ border-bottom:1px solid #e7edf1; }
.member-settings[open] summary>i{ transform:rotate(180deg); }
.member-settings-body{ padding:1.35rem; }

@media(max-width:576px){ .publication-callout,.publication-guidance{ align-items:flex-start; flex-direction:column; } .publication-guidance{ padding:1.4rem; } .member-dashboard{ padding-top:38px; } .member-dashboard-header{ align-items:flex-start!important; } .member-id-card-dashboard{ min-height:260px; } .member-contact-strip .ms-sm-3{ margin-left:0!important; } }

/* Admin pages remain dense on desktop, but need more forgiving wrapping on phones. */
@media(max-width:576px){
    .admin-main .section{ padding-top:38px; }
    .admin-main .section-title{ font-size:1.75rem; line-height:1.2; }
    .admin-main .nass-card{ padding:1rem!important; }
    .admin-main .list-group-item .d-flex{ align-items:flex-start!important; }
    .admin-main .list-group-item strong,
    .admin-main .list-group-item p,
    .admin-main .list-group-item small{ overflow-wrap:anywhere; }
    .admin-main .table{ font-size:.8rem; }
    .admin-content-list .btn + form.d-inline{ margin-left:.35rem; }
}

/* Gallery cards */

.gallery-card{
    padding:0;
    overflow:hidden;
}

.gallery-thumb{
    position:relative;
    width:100%;
    aspect-ratio: 4 / 3;
    overflow:hidden;
}

.gallery-thumb img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:.4s ease;
}

.gallery-card:hover .gallery-thumb img{
    transform:scale(1.08);
}

.gallery-grid-card {
    border-radius: 14px;
    box-shadow: 0 8px 22px rgba(8,27,51,.08);
}

.gallery-grid-card .gallery-thumb {
    aspect-ratio: 1 / 1;
}

.gallery-grid-card .gallery-body {
    padding: 12px 13px 14px;
}

.gallery-grid-card .gallery-body p {
    color: #687687;
    display: -webkit-box;
    font-size: .82rem;
    line-height: 1.45;
    margin: 0;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.media-highlight-card {
    overflow: hidden;
    padding: 0;
}

.media-highlight-image {
    height: 170px;
    overflow: hidden;
}

.media-highlight-image img {
    display: block;
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
    width: 100%;
}

.media-highlight-card:hover .media-highlight-image img {
    transform: scale(1.04);
}

.media-highlight-body {
    color: #697788;
    padding: 16px 18px 18px;
}

.media-highlight-body h3 {
    color: var(--dark);
}

.gallery-body{
    padding:20px 25px 25px;
}

.member-id-logo{
    width:58px;
    height:58px;
    object-fit:contain;
    background:#fff;
    border-radius:12px;
    padding:7px;
}

.flagship-event{
    min-height:390px;
    display:flex;
    align-items:stretch;
    border-radius:24px;
    overflow:hidden;
    background-color:#0b1f3a;
    position:relative;
    box-shadow:0 18px 45px rgba(8,27,51,.18);
}

.flagship-event-content{
    align-self:center;
    flex:1 1 58%;
    max-width:760px;
    padding:48px;
    color:#fff;
    position:relative;
    z-index:1;
}
.flagship-event-art{ align-items:center; display:flex; flex:0 1 42%; justify-content:center; min-width:300px; padding:28px 28px 28px 0; position:relative; z-index:1; }
.flagship-event-art img{ background:#f8fbfd; border:5px solid rgba(255,255,255,.86); border-radius:16px; box-shadow:0 18px 36px rgba(0,0,0,.24); height:100%; max-height:360px; max-width:100%; object-fit:contain; width:100%; }

.flagship-event h2{font-size:clamp(2rem,4vw,3.5rem);font-weight:800;margin:.7rem 0 1rem;}
.flagship-event p{color:#e5f6fb;max-width:660px;}
.flagship-kicker{font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#8fe8ff;}
.flagship-meta{display:flex;gap:1rem;flex-wrap:wrap;font-size:.95rem;color:#d7edf5;}
.flagship-meta span{ align-items:center; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.14); border-radius:99px; display:inline-flex; gap:.4rem; padding:.42rem .75rem; }
.flagship-event:after{ background:radial-gradient(circle,rgba(35,190,226,.22),transparent 66%); content:""; height:330px; pointer-events:none; position:absolute; right:-120px; top:-120px; width:330px; }
.flagship-event .btn-outline-light{ border-color:rgba(255,255,255,.65); }

.programme-card {
    display: flex;
    flex-direction: column;
    padding: 0;
}

.programme-card-poster {
    align-items: center;
    background: #edf3f8;
    display: flex;
    height: 175px;
    justify-content: center;
    padding: 10px;
}

.programme-card-poster img {
    height: 100%;
    max-width: 100%;
    object-fit: contain;
    width: 100%;
}

.programme-card-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 18px 20px 20px;
}

.programme-card-date,
.programme-card-location {
    color: #51647a;
    font-size: .88rem;
    margin-bottom: .35rem;
}

.programme-card-date i,
.programme-card-location i {
    color: var(--primary);
    margin-right: .25rem;
}

.programme-card-description {
    color: #64758a;
    display: -webkit-box;
    font-size: .92rem;
    line-height: 1.55;
    margin: .65rem 0 1rem;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.event-detail-hero {
    background: linear-gradient(125deg, #071b34, #0b4d86);
    color: #fff;
    padding: 92px 0 74px;
}

.event-back-link {
    color: #cceaff;
    font-size: .92rem;
    text-decoration: none;
}

.event-back-link:hover { color: #fff; }

.event-detail-poster {
    align-items: center;
    background: rgba(255,255,255,.11);
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 20px;
    display: flex;
    height: 370px;
    justify-content: center;
    overflow: hidden;
    padding: 15px;
}

.event-detail-poster img {
    height: 100%;
    object-fit: contain;
    width: 100%;
}

.event-detail-category {
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 99px;
    color: #dff4ff;
    font-size: .78rem;
    font-weight: 700;
    padding: .38rem .7rem;
}

.event-detail-hero h1 {
    color: #fff;
    font-size: clamp(2.25rem, 5vw, 4.1rem);
    font-weight: 800;
    line-height: 1.08;
}

.event-detail-lead {
    color: #dbeefa;
    font-size: 1.08rem;
    line-height: 1.75;
    margin: 1.1rem 0 0;
    max-width: 700px;
}

.event-detail-content,
.event-details-panel {
    background: #fff;
    border: 1px solid #e7eef6;
    border-radius: 18px;
    height: 100%;
    padding: 30px;
}

.event-details-panel { box-shadow: 0 14px 34px rgba(8,27,51,.08); }

.event-detail-fact {
    align-items: flex-start;
    border-top: 1px solid #edf1f5;
    display: flex;
    gap: .8rem;
    padding: .95rem 0;
}

.event-detail-fact i { color: var(--primary); font-size: 1.1rem; }
.event-detail-fact span { color: #718096; display: block; font-size: .78rem; font-weight: 700; text-transform: uppercase; }
.event-detail-fact strong { color: var(--dark); display: block; font-size: .94rem; }

@media(max-width:768px){
    .member-id-logo{
        width:50px;
        height:50px;
        border-radius:10px;
    }

    .flagship-event{min-height:420px;border-radius:18px;}
    .flagship-event-content{padding:30px 24px;}
    .flagship-event-art{ min-width:250px; padding:24px 24px 24px 0; }

    .pagination .page-link{
        min-width:42px;
        text-align:center;
    }

    .hero-carousel,
    .hero-carousel .carousel-item,
    .hero-slide{
        max-width:100vw;
    }

    .hero-indicators{ margin-bottom:1rem; }
    .hero-primary-action{ max-width:290px !important; width:100%; }
    .member-login-actions .btn{ width:100%; }
}

@media(max-width:576px){
    .flagship-event{ flex-direction:column; }
    .flagship-event-art{ min-height:280px; order:-1; padding:20px 20px 0; width:100%; }
    .flagship-event-art img{ max-height:310px; }
    .member-activity-panel{ padding:1rem; }
    .member-settings summary,.member-settings-body{ padding:1rem; }
    .member-quick-link{ padding:.9rem; }
    .member-quick-link small{ font-size:.72rem; }
}

button.gallery-card {
    cursor: pointer;
}

.article-body {
    color: #334155;
    font-size: 1.05rem;
    line-height: 1.9;
}

@media(max-width:768px){
    .hero-content {
        transform: translateY(-30px);
    }

    main,
    .hero-carousel,
    .home-stats-section,
    .campus-network-section,
    .partner-network-section,
    .expo-section {
        max-width: 100%;
        overflow-x: clip;
    }
}

@media(max-width:991px){
    .navbar.sticky-top{ position:sticky; top:0; z-index:1030; }
}

@media (max-height:520px) and (orientation:landscape){
    .hero,
    .hero-slide{
        min-height:calc(100svh - 76px);
        padding:28px 0 44px;
    }

    .hero-content{
        transform:translateY(-24px);
    }

    .hero h1{
        font-size:clamp(1.75rem, 4.5vw, 2.55rem);
    }

    .hero p{
        font-size:.92rem;
        line-height:1.55;
    }

    .hero .mt-5{
        margin-top:1.1rem !important;
    }
}
