/* ==========================================================
   ABOUT PAGE SPECIFIC STYLES (NO GLOBAL OVERRIDES)
   ========================================================== */

/* ==========================================================
   1. UNIQUE SPLIT-SCREEN HERO CAROUSEL
   ========================================================== */
.about-split-carousel {
    position: relative;
    width: 100%;
    height: 75vh;
    min-height: 550px;
    background-color: var(--primary);
    overflow: hidden;
    display: flex;
}

.about-carousel-inner {
    position: relative;
    width: 100%;
    height: 100%;
}

.about-slide {
    position: absolute;
    inset: 0;
    display: flex;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.8s ease, visibility 0.8s ease;
}

    .about-slide.active {
        opacity: 1;
        visibility: visible;
        z-index: 2;
    }

/* Left Text Column */
.about-slide-text {
    flex: 0 0 50%;
    background-color: var(--primary);
    display: flex;
    align-items: center;
    padding-left: 10%;
    padding-right: 5%;
    position: relative;
    z-index: 3;
}

    /* THE DESKTOP FIX: Massive slanted block that guarantees no white gaps */
    .about-slide-text::after {
        content: '';
        position: absolute;
        top: -10vh;
        bottom: -10vh;
        right: -150px; /* Sticks out into the image area */
        width: 400px; /* Massive width ensures the straight edge is fully buried */
        background-color: var(--primary);
        transform: skewX(-12deg);
        border-right: 5px solid var(--secondary);
        z-index: 1; /* Covers the straight right edge of the text block */
        pointer-events: none;
    }

/* Hide the old HTML overlay so it doesn't interfere */
.image-angled-overlay {
    display: none !important;
}

.slide-content-wrapper {
    max-width: 600px;
    transform: translateY(40px);
    opacity: 0;
    transition: all 0.8s cubic-bezier(0.25, 0.8, 0.25, 1) 0.3s;
    position: relative;
    z-index: 2; /* Ensures text stays above the slant */
}

.about-slide.active .slide-content-wrapper {
    transform: translateY(0);
    opacity: 1;
}

.slide-number {
    display: block;
    font-size: 1.2rem;
    color: var(--secondary);
    font-weight: 700;
    margin-bottom: 15px;
    letter-spacing: 2px;
}

.slide-total {
    color: rgba(255,255,255,0.4);
    font-size: 0.9rem;
    font-weight: 400;
}

.slide-content-wrapper h1 {
    font-size: 3.5rem;
    color: var(--white);
    line-height: 1.1;
    margin-bottom: 20px;
}

.slide-content-wrapper p {
    font-size: 1.15rem;
    color: rgba(255,255,255,0.85);
    margin-bottom: 35px;
    line-height: 1.7;
}

/* Right Image Column */
.about-slide-image {
    flex: 0 0 50%;
    position: relative;
    overflow: hidden;
    z-index: 1;
}

    .about-slide-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transform: scale(1.15);
        transition: transform 6s ease-out; /* Premium slow Ken Burns zoom */
    }

.about-slide.active .about-slide-image img {
    transform: scale(1);
}

/* ==========================================================
   PREMIUM NAVIGATION ARROWS
   ========================================================== */
.about-carousel-controls {
    position: absolute;
    bottom: 0;
    /* Anchors the buttons exactly at the 50% split mark on desktop */
    left: 50%;
    transform: translateX(-100%);
    display: flex;
    z-index: 10;
    background-color: rgba(26, 54, 93, 0.95); /* Matches primary color */
}

.about-nav-btn {
    width: 80px;
    height: 80px;
    background: transparent;
    border: none;
    border-top: 1px solid rgba(255,255,255,0.1);
    color: var(--white);
    font-size: 1.4rem;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

    .about-nav-btn:first-child {
        border-right: 1px solid rgba(255,255,255,0.1);
        border-left: 1px solid rgba(255,255,255,0.1);
    }

    /* Color sweep animation on hover */
    .about-nav-btn::before {
        content: '';
        position: absolute;
        inset: 0;
        background-color: var(--secondary);
        transform: translateY(100%);
        transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
        z-index: 1;
    }

    .about-nav-btn:hover::before {
        transform: translateY(0);
    }

    /* Arrow icon push animation on hover */
    .about-nav-btn i {
        position: relative;
        z-index: 2;
        transition: transform 0.3s ease;
    }

    .about-nav-btn.prev:hover i {
        transform: translateX(-6px);
    }

    .about-nav-btn.next:hover i {
        transform: translateX(6px);
    }

/* ==========================================================
   CAROUSEL RESPONSIVE BREAKPOINTS
   ========================================================== */
@media (max-width: 1200px) {
    .slide-content-wrapper h1 {
        font-size: 2.8rem;
    }
}

@media (max-width: 992px) {
    .about-slide-text {
        flex: 0 0 60%;
        padding-left: 5%;
    }

    .about-slide-image {
        flex: 0 0 40%;
    }

    .slide-content-wrapper h1 {
        font-size: 2.4rem;
    }

    .about-carousel-controls {
        left: 60%;
    }

    .about-nav-btn {
        width: 70px;
        height: 70px;
    }
    /* Adjust desktop slant for tablet */
    .about-slide-text::after {
        right: -100px;
        width: 300px;
        transform: skewX(-10deg);
    }
}

@media (max-width: 768px) {
    .about-split-carousel {
        height: auto;
        min-height: 80vh;
        flex-direction: column;
    }

    .about-carousel-inner {
        display: flex;
        flex-direction: column;
    }

    .about-slide {
        flex-direction: column;
        position: static;
        display: none;
    }

        .about-slide.active {
            display: flex;
        }

    .about-slide-image {
        flex: none;
        height: 45vh;
        min-height: 300px;
        width: 100%;
        order: 1;
        z-index: 1;
    }

    .about-slide-text {
        flex: none;
        order: 2;
        width: 100%;
        position: relative;
        z-index: 3; /* Must be above image */
        margin-top: -35px; /* Pulls the entire text block UP to overlap the image */
        padding: 50px 20px 80px 20px;
        background-color: var(--primary);
    }

        /* THE MOBILE FIX: The horizontal roof drawn perfectly at the top boundary */
        .about-slide-text::after {
            top: -30px; /* Sticks out exactly over the image */
            bottom: auto; /* Erases desktop bottom value */
            left: -10vw; /* Stretch wider than screen to prevent edge gaps */
            right: -10vw;
            width: 120vw;
            height: 120px; /* Massive height totally buries the straight top edge */
            transform-origin: top center;
            transform: skewY(-4deg); /* Right side slopes UP */
            border-right: none; /* Removes desktop border */
            border-top: 5px solid var(--secondary); /* Add mobile yellow line */
        }

    /* Controls dock cleanly to bottom right corner */
    .about-carousel-controls {
        left: auto;
        right: 0;
        bottom: 0;
        transform: none;
    }

    .about-nav-btn {
        width: 65px;
        height: 65px;
        font-size: 1.2rem;
        border-top: none;
        border-left: 1px solid rgba(255,255,255,0.1);
    }

        .about-nav-btn:first-child {
            border-right: none;
            border-left: none;
        }
}

@media (max-width: 480px) {
    .slide-content-wrapper h1 {
        font-size: 2rem;
    }

    .slide-content-wrapper p {
        font-size: 1rem;
    }

    .about-slide-image {
        height: 40vh;
    }
}

@media (max-width: 360px) {
    .slide-content-wrapper h1 {
        font-size: 1.5rem;
    }
}

/* ==========================================================
   2. HISTORY SECTION
   ========================================================== */
.history-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 50px;
    align-items: center;
}

.history-text {
    order: 1;
    padding-right: 10px;
}

    .history-text p {
        margin-bottom: 20px;
        color: var(--text-light);
        line-height: 1.65;
    }

.history-image {
    order: 2;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: var(--shadow);
    height: 380px;
    display: flex;
    align-items: center;
    justify-content: center;
}

    .history-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        transition: var(--transition);
    }

    .history-image:hover img {
        transform: scale(1.05);
    }

.history-content.long-text {
    grid-template-columns: 1fr;
}

    .history-content.long-text .history-text {
        padding-bottom: 10px;
    }


/* ==========================================================
   3. VISION & MISSION SECTION
   ========================================================== */
.vision-mission-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 40px;
    margin-top: 50px;
}

.vision-mission-card {
    background: var(--white);
    padding: 40px;
    border-radius: 10px;
    box-shadow: var(--shadow);
    text-align: center;
    transition: var(--transition);
    border-top: 4px solid var(--secondary);
}

    .vision-mission-card:hover {
        transform: translateY(-10px);
    }

    .vision-mission-card h3 {
        color: var(--secondary);
        margin-bottom: 20px;
        font-size: 1.5rem;
    }

.values-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 30px;
    margin-top: 40px;
}

.value-item {
    text-align: center;
    padding: 30px 20px;
    background: var(--white);
    border-radius: 8px;
    box-shadow: var(--shadow);
    transition: var(--transition);
}

    .value-item:hover {
        transform: translateY(-5px);
    }

    .value-item i {
        font-size: 2.5rem;
        color: var(--secondary);
        margin-bottom: 20px;
    }


/* ==========================================================
   4. LEADERSHIP SECTION
   ========================================================== */
.leadership-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 30px;
    margin-top: 50px;
}

.leadership-card {
    background: var(--white);
    border-radius: 10px;
    overflow: hidden;
    box-shadow: var(--shadow);
    transition: var(--transition);
}

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

.leader-photo {
    height: 300px;
    overflow: hidden;
}

    .leader-photo img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: var(--transition);
    }

.leadership-card:hover .leader-photo img {
    transform: scale(1.1);
}

.leader-info {
    padding: 25px;
}

    .leader-info h4 {
        color: var(--primary);
        margin-bottom: 5px;
        font-family: 'Playfair Display', serif;
    }

.leader-position {
    color: var(--secondary);
    font-weight: 600;
    margin-bottom: 10px;
}

.leader-qualification {
    color: var(--text-light);
    font-size: 0.9rem;
    margin-bottom: 15px;
    font-style: italic;
}

.leader-bio {
    color: var(--text-light);
    margin-bottom: 20px;
    font-size: 0.95rem;
}


/* ==========================================================
   5. FACILITIES SECTION
   ========================================================== */
.facilities-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px;
    margin-top: 50px;
}

.facility-card {
    background: var(--white);
    border-radius: 10px;
    overflow: hidden;
    box-shadow: var(--shadow);
    transition: var(--transition);
    border-top: 3px solid var(--secondary);
    display: flex;
    flex-direction: column;
    height: 100%;
}

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

.facility-icon {
    font-size: 3rem;
    color: var(--secondary);
    margin-bottom: 20px;
    padding: 20px 20px 0 20px;
}

.facility-card h4 {
    color: var(--primary);
    margin-bottom: 15px;
    font-family: 'Playfair Display', serif;
    padding: 0 20px;
}

.facility-card p {
    color: var(--text-light);
    margin-bottom: 20px;
    padding: 0 20px;
    flex-grow: 1;
}

.facility-image {
    margin-top: auto;
    height: 200px;
    overflow: hidden;
}

    .facility-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        transition: var(--transition);
    }

.facility-card:hover .facility-image img {
    transform: scale(1.05);
}


/* ==========================================================
   6. ACCREDITATIONS SECTION
   ========================================================== */
.accreditations-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 40px;
    margin-top: 50px;
    align-items: center;
}

.accreditation-item {
    text-align: center;
    padding: 20px;
    background: var(--white);
    border-radius: 10px;
    box-shadow: var(--shadow);
    transition: var(--transition);
}

    .accreditation-item:hover {
        transform: translateY(-5px);
    }

.accreditation-logo {
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
}

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

.accreditation-item h5 {
    color: var(--primary);
    margin-bottom: 10px;
    font-family: 'Playfair Display', serif;
}


/* ==========================================================
   7. RESPONSIVE BREAKPOINTS (FOR ALL OTHER SECTIONS)
   ========================================================== */

/* Very Large Screens */
@media (min-width: 1600px) {
    .slide-content-wrapper {
        max-width: 800px;
    }
}

/* Desktops/Laptops */
@media (max-width: 1200px) {
    .history-image {
        height: 340px;
    }
}

/* Tablets Landscape */
@media (max-width: 992px) {
    .history-content {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .history-text {
        order: 1;
        padding-right: 0;
    }

    .history-image {
        order: 2;
        height: 320px;
    }
}

/* Tablets Portrait & Mobile */
@media (max-width: 768px) {
    .history-content {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .history-image {
        order: 1;
        height: 260px;
    }

    .history-text {
        order: 2;
    }
}

/* Small Mobile Devices */
@media (max-width: 480px) {
    .history-image {
        height: 200px;
    }

    .history-text p {
        font-size: 0.95rem;
    }
}

/* Extra Small Devices */
@media (max-width: 360px) {
    .history-image {
        height: 180px;
    }

    .history-text p {
        font-size: 0.88rem;
        line-height: 1.5;
    }
}
/* ==========================================================
   CAMPUS MAP SECTION (ABOUT PAGE)
   ========================================================== */
.campus-map-section {
    padding: 60px 0 100px;
    background-color: #f8fafc; /* Matches the soft background */
}

.campus-map-container {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
    text-align: center;
}

    .campus-map-container h2 {
        font-size: 2.5rem;
        color: var(--primary);
        margin-bottom: 15px;
        font-family: 'Playfair Display', serif;
    }

    .campus-map-container p {
        color: #64748b;
        margin-bottom: 40px;
        font-size: 1.15rem;
        max-width: 600px;
        margin-left: auto;
        margin-right: auto;
    }

/* Premium Map Container */
.mapouter {
    position: relative;
    width: 100%;
    height: 450px;
    border-radius: 24px; /* Soft modern corners */
    overflow: hidden;
    box-shadow: 0 20px 40px -10px rgba(18, 52, 83, 0.15); /* Deep, soft shadow */
    border: 1px solid rgba(0, 0, 0, 0.05);
    transform: translateZ(0); /* Forces hardware acceleration for smooth corners */
}

.gmap_canvas {
    overflow: hidden;
    background: none !important;
    width: 100%;
    height: 100%;
}

.gmap_iframe {
    width: 100% !important;
    height: 100% !important;
    border: none;
}

/* Mobile Responsiveness for Map */
@media (max-width: 768px) {
    .campus-map-container h2 {
        font-size: 2rem;
    }

    .mapouter {
        height: 350px;
        border-radius: 16px;
    }
}