/* =====================================================
   BIT ITI BALLARPUR
   DARK PROFESSIONAL CONTACT PAGE
===================================================== */


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

.contact-hero,
.contact-section,
.admission-section,
.location-section {

    position: relative;

    overflow: hidden;

}


.contact-section {

    background:
        #21252b;

}


.contact-section::before {

    content: "";

    position: absolute;

    width: 500px;

    height: 500px;

    top: 100px;

    left: -300px;

    border-radius: 50%;

    background:
        rgba(0,174,239,.055);

    filter:
        blur(80px);

    pointer-events: none;

}


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

.contact-hero {

    min-height: 5px;

    display: flex;

    align-items: center;

    background:

        linear-gradient(
            110deg,
            rgba(2,8,15,.98),
            rgba(3,25,40,.96)
        ),

        url("images/campus.jpg")
        center / cover no-repeat;

}


.contact-hero::after {

    content: "";

    position: absolute;

    inset: 0;

    background:

        linear-gradient(
            90deg,
            transparent,
            rgba(0,174,239,.04),
            transparent
        );

}


.hero-glow {

    position: absolute;

    border-radius: 50%;

    filter:
        blur(70px);

}


.glow-one {

    width: 350px;

    height: 350px;

    right: 5%;

    top: -150px;

    background:
        rgba(0,178,255,.12);

}


.glow-two {

    width: 250px;

    height: 250px;

    right: 30%;

    bottom: -150px;

    background:
        rgba(0,107,255,.09);

}


.contact-hero-content {

    position: relative;

    z-index: 3;

    max-width: 780px;

    padding:
        5px 0;

}


.hero-badge {

    display: inline-flex;

    align-items: center;

    gap: 9px;

    padding:
        8px 15px;

    margin-bottom: 10px;

    border:
        1px solid
        rgba(35,196,255,.22);

    border-radius: 50px;

    background:
        rgba(0,174,239,.06);

    color:
        #42d1ff;

    font-size: 9px;

    font-weight: 900;

    letter-spacing: 2px;

}


.badge-dot {

    width: 7px;

    height: 7px;

    border-radius: 50%;

    background:
        #29c7ff;

    box-shadow:
        0 0 12px
        #29c7ff;

}


.contact-hero h1 {

    margin: 0;

    color: #ffffff;

    font-size:
        clamp(48px, 7vw, 78px);

    line-height: 1;

    font-weight: 900;

    letter-spacing: -3px;

}


.contact-hero h1 span {

    color:
        #25c6ff;

    text-shadow:
        0 0 30px
        rgba(37,198,255,.22);

}


.contact-hero p {

    max-width: 650px;

    margin:
        22px 0 27px;

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

    font-size: 14px;

    line-height: 1.9;

}


.hero-buttons {

    display: flex;

    gap: 10px;

    flex-wrap: wrap;

}


.hero-btn {

    display: inline-flex;

    align-items: center;

    gap: 8px;

    padding:
        12px 19px;

    border:
        1px solid
        rgba(255,255,255,.13);

    border-radius: 9px;

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

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

    font-size: 11px;

    font-weight: 800;

    text-decoration: none;

    backdrop-filter:
        blur(10px);

    transition:
        all .3s ease;

}


.hero-btn:hover {

    color: white;

    border-color:
        rgba(37,198,255,.4);

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

    transform:
        translateY(-3px);

}


.hero-btn.primary {

    color: #03121c;

    border-color:
        #28c8ff;

    background:
        #28c8ff;

    box-shadow:
        0 8px 25px
        rgba(37,198,255,.18);

}


.hero-btn.primary:hover {

    color: #03121c;

    background:
        #61d8ff;

}



/* =====================================================
   SECTION HEADING
===================================================== */

.section-heading {

    position: relative;

    z-index: 2;

    max-width: 700px;

    margin:
        0 auto 50px;

    padding-top: 10px;

    text-align: center;

}


.heading-line {

    width: 45px;

    height: 3px;

    margin:
        0 auto 14px;

    border-radius: 20px;

    background:
        #25c6ff;

    box-shadow:
        0 0 15px
        rgba(37,198,255,.45);

}


.section-heading > span {

    color:
        #31caff;

    font-size: 9px;

    font-weight: 900;

    letter-spacing: 2px;

}


.section-heading h2 {

    margin:
        9px 0 12px;

    color: #ffffff;

    font-size:
        clamp(30px, 4vw, 45px);

    font-weight: 900;

    letter-spacing: -1px;

}


.section-heading h2 strong {

    color:
        #26c8ff;

}


.section-heading p {

    margin: 0;

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

    font-size: 12px;

    line-height: 1.9;

}



/* =====================================================
   CONTACT GRID
===================================================== */

.contact-grid {

    position: relative;

    z-index: 2;

    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 20px;

    padding-bottom: 85px;

}



/* =====================================================
   CONTACT CARD
===================================================== */

.contact-card {

    position: relative;

    min-height: 270px;

    padding: 25px;

    overflow: hidden;

    border:
        1px solid
        rgba(255,255,255,.065);

    border-radius: 17px;

    background:

        linear-gradient(
            145deg,
            rgba(255,255,255,.055),
            rgba(255,255,255,.018)
        );

    box-shadow:
        0 15px 50px
        rgba(0,0,0,.25);

    backdrop-filter:
        blur(12px);

    transition:
        transform .4s ease,
        border-color .4s ease,
        box-shadow .4s ease;

}


.contact-card::before {

    content: "";

    position: absolute;

    width: 130px;

    height: 130px;

    right: -65px;

    bottom: -65px;

    border-radius: 50%;

    background:
        rgba(0,190,255,.055);

    transition:
        transform .4s ease;

}


.contact-card:hover {

    transform:
        translateY(-8px);

    border-color:
        rgba(37,198,255,.23);

    box-shadow:
        0 25px 65px
        rgba(0,0,0,.38),
        0 0 30px
        rgba(0,174,239,.045);

}


.contact-card:hover::before {

    transform:
        scale(1.7);

}



/* =====================================================
   CARD TOP
===================================================== */

.card-top {

    display: flex;

    align-items: center;

    justify-content: space-between;

    margin-bottom: 24px;

}


.contact-icon {

    width: 50px;

    height: 50px;

    display: flex;

    align-items: center;

    justify-content: center;

    border:
        1px solid
        rgba(37,198,255,.20);

    border-radius: 13px;

    color:
        #2dcbff;

    background:
        rgba(37,198,255,.065);

    box-shadow:
        inset 0 0 20px
        rgba(37,198,255,.025);

    font-size: 19px;

    transition:
        all .3s ease;

}


.contact-card:hover
.contact-icon {

    color: #06131b;

    background:
        #2ac8ff;

    box-shadow:
        0 0 25px
        rgba(42,200,255,.25);

}


.card-number {

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

    font-size: 25px;

    font-weight: 900;

}



/* =====================================================
   CARD CONTENT
===================================================== */

.card-label {

    color:
        #28c8ff;

    font-size: 8px;

    font-weight: 900;

    letter-spacing: 1.7px;

}


.contact-card h3 {

    margin:
        7px 0 12px;

    color:
        #ffffff;

    font-size: 19px;

    font-weight: 850;

}


.contact-card p {

    position: relative;

    z-index: 2;

    margin: 0;

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

    font-size: 11px;

    line-height: 1.9;

    overflow-wrap:
        anywhere;

}


.contact-card p strong {

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

}


.card-link {

    position: relative;

    z-index: 3;

    display: inline-flex;

    align-items: center;

    gap: 7px;

    margin-top: 18px;

    color:
        #36caff;

    font-size: 10px;

    font-weight: 850;

    text-decoration: none;

    transition:
        gap .3s ease;

}


.card-link:hover {

    color: #7de1ff;

    gap: 12px;

}



/* =====================================================
   PRINCIPAL CARD
===================================================== */

.principal-card {

    border-color:
        rgba(37,198,255,.14);

    background:

        linear-gradient(
            145deg,
            rgba(0,135,190,.13),
            rgba(255,255,255,.025)
        );

}


.principal-buttons {

    position: relative;

    z-index: 3;

    display: flex;

    gap: 8px;

    margin-top: 15px;

}


.principal-buttons a {

    display: inline-flex;

    align-items: center;

    gap: 6px;

    padding:
        8px 12px;

    border:
        1px solid
        rgba(37,198,255,.18);

    border-radius: 7px;

    color:
        #40ceff;

    background:
        rgba(37,198,255,.06);

    font-size: 9px;

    font-weight: 800;

    text-decoration: none;

    transition:
        all .3s ease;

}


.principal-buttons a:hover {

    color: #04121a;

    background:
        #2bc9ff;

}



/* =====================================================
   ADMISSION SECTION
===================================================== */

.admission-section {

    padding:
        0 0 85px;

    background:
        #050b12;

}


.admission-box {

    position: relative;

    display: flex;

    align-items: center;

    gap: 25px;

    padding:
        35px;

    overflow: hidden;

    border:
        1px solid
        rgba(37,198,255,.16);

    border-radius: 20px;

    background:

        linear-gradient(
            115deg,
            #071b29,
            #06121d
        );

    box-shadow:
        0 25px 70px
        rgba(0,0,0,.35);

}


.admission-box::before {

    content: "";

    position: absolute;

    width: 450px;

    height: 450px;

    right: -250px;

    top: -250px;

    border-radius: 50%;

    background:
        rgba(0,174,239,.08);

    filter:
        blur(20px);

}


.admission-pattern {

    position: absolute;

    inset: 0;

    opacity: .25;

    background-image:

        linear-gradient(
            rgba(255,255,255,.025) 1px,
            transparent 1px
        ),

        linear-gradient(
            90deg,
            rgba(255,255,255,.025) 1px,
            transparent 1px
        );

    background-size:
        35px 35px;

}


.principal-icon {

    position: relative;

    z-index: 2;

    flex: 0 0 65px;

    width: 65px;

    height: 65px;

    display: flex;

    align-items: center;

    justify-content: center;

    border:
        1px solid
        rgba(37,198,255,.2);

    border-radius: 16px;

    color:
        #35cbff;

    background:
        rgba(37,198,255,.07);

    font-size: 25px;

}


.admission-content {

    position: relative;

    z-index: 2;

    flex: 1;

}


.admission-content > span {

    color:
        #2ccaff;

    font-size: 8px;

    font-weight: 900;

    letter-spacing: 1.7px;

}


.admission-content h2 {

    margin:
        7px 0 7px;

    color: #ffffff;

    font-size: 23px;

    font-weight: 850;

}


.admission-content h2 strong {

    color:
        #29c9ff;

}


.admission-content p {

    max-width: 550px;

    margin: 0;

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

    font-size: 10px;

    line-height: 1.8;

}


.admission-contact {

    position: relative;

    z-index: 2;

    min-width: 230px;

}


.principal-name {

    display: flex;

    flex-direction: column;

    margin-bottom: 10px;

}


.principal-name strong {

    color: white;

    font-size: 13px;

}


.principal-name span {

    margin-top: 2px;

    color:
        #2bc9ff;

    font-size: 9px;

}


.admission-buttons {

    display: flex;

    flex-direction: column;

    gap: 7px;

}


.admission-call {

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 8px;

    padding:
        10px 14px;

    border-radius: 8px;

    color:
        #03131d;

    background:
        #2ac9ff;

    font-size: 10px;

    font-weight: 850;

    text-decoration: none;

    transition:
        all .3s ease;

}


.admission-call:hover {

    color:
        #03131d;

    background:
        #72dcff;

    transform:
        translateY(-2px);

}


.admission-call.second {

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

    border:
        1px solid
        rgba(37,198,255,.2);

    background:
        rgba(37,198,255,.06);

}



/* =====================================================
   LOCATION
===================================================== */

.location-section {

    padding:
        0 0 90px;

    background:
        #03080e;

}


.location-heading {

    padding-top: 10px;

    margin:
        0 auto 40px;

    text-align: center;

}


.location-heading > span {

    color:
        #2ac9ff;

    font-size: 9px;

    font-weight: 900;

    letter-spacing: 2px;

}


.location-heading h2 {

    margin:
        8px 0;

    color:
        #ffffff;

    font-size:
        clamp(28px, 4vw, 40px);

    font-weight: 900;

}


.location-heading h2 strong {

    color:
        #2ac9ff;

}


.location-heading p {

    max-width: 650px;

    margin:
        auto;

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

    font-size: 11px;

    line-height: 1.8;

}



/* =====================================================
   LOCATION GRID
===================================================== */

.location-grid {

    display: grid;

    grid-template-columns:
        1.6fr 1fr;

    gap: 20px;

}



/* =====================================================
   MAP
===================================================== */
/* =====================================================
   GOOGLE MAP - NORMAL COLOUR
===================================================== */

.map-container {
    min-height: 440px;
    overflow: hidden;

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

    background: #ffffff;

    box-shadow:
        0 20px 60px rgba(0, 0, 0, 0.35);
}

.map-container iframe {
    width: 100%;
    height: 100%;
    min-height: 440px;

    display: block;

    border: 0;

    /* IMPORTANT:
       Keep Google Map in original colours
    */
    filter: none;
}

/* =====================================================
   LOCATION CARD
===================================================== */

.location-card {

    padding:
        28px;

    border:
        1px solid
        rgba(255,255,255,.07);

    border-radius: 18px;

    background:

        linear-gradient(
            145deg,
            rgba(255,255,255,.045),
            rgba(255,255,255,.015)
        );

    box-shadow:
        0 20px 60px
        rgba(0,0,0,.3);

}


.location-card-header {

    display: flex;

    align-items: center;

    gap: 13px;

    padding-bottom:
        20px;

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

}


.location-symbol {

    width: 47px;

    height: 47px;

    display: flex;

    align-items: center;

    justify-content: center;

    border:
        1px solid
        rgba(37,198,255,.18);

    border-radius: 12px;

    color:
        #2ac9ff;

    background:
        rgba(37,198,255,.06);

    font-size: 18px;

}


.location-card-header span {

    color:
        #2ac9ff;

    font-size: 8px;

    font-weight: 900;

    letter-spacing: 1.5px;

}


.location-card-header h3 {

    margin:
        4px 0 0;

    color:
        white;

    font-size: 18px;

    font-weight: 850;

}


.location-detail {

    display: flex;

    gap: 13px;

    padding:
        17px 0;

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

}


.location-detail i {

    flex: 0 0 32px;

    width: 32px;

    height: 32px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 8px;

    color:
        #2ac9ff;

    background:
        rgba(37,198,255,.055);

    font-size: 13px;

}


.location-detail p {

    margin: 0;

    align-self: center;

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

    font-size: 10px;

    line-height: 1.7;

    overflow-wrap:
        anywhere;

}


.map-button {

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 8px;

    margin-top: 20px;

    padding:
        12px;

    border:
        1px solid
        rgba(37,198,255,.2);

    border-radius: 8px;

    color:
        #2ac9ff;

    background:
        rgba(37,198,255,.055);

    font-size: 10px;

    font-weight: 850;

    text-decoration: none;

    transition:
        all .3s ease;

}


.map-button:hover {

    color:
        #03131d;

    background:
        #2ac9ff;

    box-shadow:
        0 0 25px
        rgba(37,198,255,.18);

}



/* =====================================================
   TABLET
===================================================== */

@media (max-width: 1000px) {


    .contact-grid {

        grid-template-columns:
            repeat(2, 1fr);

    }


    .admission-box {

        flex-wrap: wrap;

    }


    .admission-contact {

        width: 100%;

        min-width: 0;

    }


    .admission-buttons {

        flex-direction: row;

    }


    .admission-call {

        flex: 1;

    }


    .location-grid {

        grid-template-columns:
            1fr;

    }

}



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

@media (max-width: 20px) {


    .contact-hero {

        min-height:
            20px;

    }


    .contact-hero-content {

        padding:
            15px 15px;

    }


    .contact-hero h1 {

        font-size:
            50px;

        letter-spacing:
            -2px;

    }


    .contact-hero p {

        font-size:
            12px;

    }


    .contact-section {

        padding:
            0 15px;

    }


    .section-heading {

        padding-top:
            60px;

        margin-bottom:
            35px;

    }


    .contact-grid {

        grid-template-columns:
            1fr;

        gap: 15px;

        padding-bottom:
            60px;

    }


    .contact-card {

        min-height:
            auto;

        padding:
            22px;

    }


    .admission-section {

        padding:
            0 15px 60px;

    }


    .admission-box {

        align-items:
            flex-start;

        padding:
            24px 20px;

        gap:
            15px;

    }


    .principal-icon {

        flex-basis:
            50px;

        width:
            50px;

        height:
            50px;

        font-size:
            20px;

    }


    .admission-content {

        width:
            calc(100% - 65px);

    }


    .admission-content h2 {

        font-size:
            19px;

    }


    .admission-contact {

        padding-top:
            5px;

    }


    .admission-buttons {

        flex-direction:
            column;

    }


    .admission-call {

        width:
            100%;

    }


    .location-section {

        padding:
            0 15px 60px;

    }


    .location-heading {

        padding-top:
            0;

        margin-bottom:
            30px;

    }


    .map-container,
    .map-container iframe {

        min-height:
            300px;

    }


    .location-card {

        padding:
            22px 18px;

    }

}



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

@media (max-width: 400px) {


    .contact-hero h1 {

        font-size:
            43px;

    }


    .hero-buttons {

        flex-direction:
            column;

    }


    .hero-btn {

        justify-content:
            center;

    }


    .contact-card h3 {

        font-size:
            17px;

    }


    .contact-card p {

        font-size:
            10px;

    }

}
/* =====================================================
   IMPROVED TEXT READABILITY
===================================================== */

/* Hero paragraph */
.contact-hero p {
    color: #ffffff;
    font-size: 16px;
    line-height: 1.8;
}


/* Section description */
.section-heading p {
    color: #ffffff;
    font-size: 14px;
    line-height: 1.9;
}


/* Contact card description */
.contact-card p {
    color: #ffffff;
    font-size: 14px;
    line-height: 1.9;
}


/* Card labels */
.card-label {
    color: #35caff;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1.5px;
}


/* Card title */
.contact-card h3 {
    color: #ffffff;
    font-size: 21px;
    font-weight: 800;
}


/* Contact links */
.card-link {
    color: #35caff;
    font-size: 12px;
    font-weight: 800;
}


/* Admission section text */
.admission-content p {
    color: #ffffff;
    font-size: 13px;
    line-height: 1.8;
}


/* Admission label */
.admission-content > span {
    color: #35caff;
    font-size: 11px;
    font-weight: 800;
}


/* Principal name */
.principal-name strong {
    color: #ffffff;
    font-size: 15px;
}


/* Principal designation */
.principal-name span {
    color: #35caff;
    font-size: 11px;
}


/* Location section description */
.location-heading p {
    color: #ffffff;
    font-size: 14px;
    line-height: 1.8;
}


/* Location card text */
.location-detail p {
    color: #ffffff;
    font-size: 13px;
    line-height: 1.8;
}


/* Location card heading */
.location-card-header h3 {
    color: #ffffff;
    font-size: 20px;
}


/* Location card small heading */
.location-card-header span {
    color: #35caff;
    font-size: 10px;
}


/* Mobile readability */
@media (max-width: 650px) {

    .contact-hero p {
        color: #ffffff;
        font-size: 14px;
    }

    .section-heading p {
        color: #ffffff;
        font-size: 13px;
    }

    .contact-card p {
        color: #ffffff;
        font-size: 13px;
    }

    .admission-content p {
        color: #ffffff;
        font-size: 12px;
    }

    .location-heading p {
        color: #ffffff;
        font-size: 13px;
    }

    .location-detail p {
        color: #ffffff;
        font-size: 12px;
    }
}