/* =========================================================
   ADMISSION REQUIREMENTS PAGE
   ========================================================= */


/* ---------------------------------------------------------
   PAGE
   --------------------------------------------------------- */

.requirements-page {
    background: var(--white);
}


/* ---------------------------------------------------------
   HERO
   --------------------------------------------------------- */

.requirements-hero {
    position: relative;

    padding: 85px 0 95px;

    background:
        linear-gradient(
            100deg,
            var(--navy-dark) 0%,
            var(--navy) 65%,
            var(--navy-light) 100%
        );

    overflow: hidden;
}


.requirements-hero::after {
    content: "";

    position: absolute;

    width: 420px;
    height: 420px;

    right: -120px;
    top: -180px;

    border: 1px solid rgba(255,255,255,0.12);

    border-radius: 50%;
}


.requirements-hero::before {
    content: "";

    position: absolute;

    width: 280px;
    height: 280px;

    right: 100px;
    bottom: -210px;

    border: 1px solid rgba(217,154,0,0.35);

    border-radius: 50%;
}


.requirements-hero-content {
    position: relative;
    z-index: 2;

    max-width: 760px;
}


.requirements-hero .section-label {
    color: var(--gold-light);

    letter-spacing: 2.5px;

    font-size: 13px;

    font-weight: 700;
}


.requirements-hero h1 {
    color: var(--white);

    font-size: clamp(
        3rem,
        6vw,
        5.2rem
    );

    line-height: 1.05;

    margin: 18px 0 25px;
}


.requirements-hero p {
    max-width: 680px;

    color: #dce5f0;

    font-size: 17px;

    line-height: 1.7;
}


/* ---------------------------------------------------------
   MAIN REQUIREMENTS SECTION
   --------------------------------------------------------- */

.requirements-section {
    padding: 95px 0 110px;
}


.requirements-heading {
    max-width: 760px;

    margin-bottom: 70px;
}


.requirements-heading .section-label {
    color: var(--gold);

    font-size: 12px;

    font-weight: 700;

    letter-spacing: 2px;
}


.requirements-heading h2 {
    font-size: clamp(
        2.3rem,
        4vw,
        3.5rem
    );

    margin: 12px 0 15px;
}


.requirements-heading p {
    color: var(--gray-500);

    max-width: 680px;

    font-size: 16px;
}


/* ---------------------------------------------------------
   REQUIREMENT GROUP
   --------------------------------------------------------- */

.requirement-group {
    margin-bottom: 75px;
}


.requirement-group-header {
    display: flex;

    align-items: center;

    gap: 22px;

    margin-bottom: 28px;
}


.requirement-number {
    width: 54px;
    height: 54px;

    flex-shrink: 0;

    display: flex;

    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: var(--navy);

    color: var(--gold-light);

    font-family: "Playfair Display", serif;

    font-size: 17px;

    font-weight: 700;
}


.requirement-group-header span {
    display: block;

    color: var(--gold);

    font-size: 11px;

    font-weight: 700;

    letter-spacing: 2px;

    margin-bottom: 4px;
}


.requirement-group-header h3 {
    font-size: 30px;

    margin: 0;
}


/* ---------------------------------------------------------
   REQUIREMENT CARDS
   --------------------------------------------------------- */

.requirement-cards {
    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 25px;
}


.requirement-card {
    position: relative;

    padding: 32px;

    border: 1px solid var(--gray-300);

    border-radius: 14px;

    background: var(--white);

    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        border-color 0.25s ease;
}


.requirement-card:hover {
    transform: translateY(-4px);

    border-color: #d8b76a;

    box-shadow: var(--shadow-md);
}


.requirement-card-top {
    display: flex;

    align-items: center;

    gap: 18px;

    padding-bottom: 24px;

    margin-bottom: 22px;

    border-bottom: 1px solid var(--gray-200);
}


.requirement-icon {
    width: 58px;
    height: 58px;

    flex-shrink: 0;

    display: flex;

    align-items: center;
    justify-content: center;

    border-radius: 10px;

    background: var(--navy);

    color: var(--gold-light);

    font-family: "Playfair Display", serif;

    font-size: 21px;

    font-weight: 700;
}


.requirement-level {
    display: block;

    color: var(--gold);

    font-size: 10px;

    font-weight: 700;

    letter-spacing: 1.8px;

    margin-bottom: 3px;
}


.requirement-card h4 {
    font-size: 23px;

    margin: 0;
}


.requirement-card ul,
.requirement-single-content ul {
    list-style: none;

    padding: 0;

    margin: 0;
}


.requirement-card li,
.requirement-single-content li {
    position: relative;

    padding-left: 24px;

    margin-bottom: 15px;

    color: var(--gray-700);

    font-size: 14px;

    line-height: 1.6;
}


.requirement-card li::before,
.requirement-single-content li::before {
    content: "";

    position: absolute;

    left: 2px;
    top: 9px;

    width: 7px;
    height: 7px;

    border-radius: 50%;

    background: var(--gold);
}


.requirement-card li:last-child,
.requirement-single-content li:last-child {
    margin-bottom: 0;
}


/* ---------------------------------------------------------
   SINGLE REQUIREMENT CARD
   --------------------------------------------------------- */

.requirement-single-card {
    display: grid;

    grid-template-columns: 90px 1fr;

    gap: 30px;

    padding: 38px;

    border-radius: 15px;

    background: var(--light-blue);

    border: 1px solid #d9e5f3;
}


.requirement-single-icon {
    width: 70px;
    height: 70px;

    display: flex;

    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: var(--navy);

    color: var(--gold-light);

    font-family: "Playfair Display", serif;

    font-size: 27px;

    font-weight: 700;
}


.requirement-single-content h4 {
    font-size: 25px;

    margin-bottom: 22px;
}


.requirement-note {
    margin-top: 28px;

    padding: 20px 22px;

    border-left: 3px solid var(--gold);

    background: rgba(255,255,255,0.75);
}


.requirement-note strong {
    display: block;

    color: var(--navy);

    font-size: 13px;

    text-transform: uppercase;

    letter-spacing: 1px;

    margin-bottom: 6px;
}


.requirement-note p {
    color: var(--gray-700);

    font-size: 13px;

    line-height: 1.6;

    margin: 0;
}


/* ---------------------------------------------------------
   REMINDER
   --------------------------------------------------------- */

.requirements-reminder {
    display: grid;

    grid-template-columns: 65px 1fr;

    gap: 22px;

    align-items: center;

    padding: 30px 35px;

    margin-top: 10px;

    margin-bottom: 80px;

    background: var(--navy);

    border-radius: 14px;
}


.reminder-mark {
    width: 50px;
    height: 50px;

    display: flex;

    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: var(--gold);

    color: var(--white);

    font-size: 22px;

    font-weight: 700;
}


.requirements-reminder > div:last-child span {
    color: var(--gold-light);

    font-size: 10px;

    font-weight: 700;

    letter-spacing: 2px;
}


.requirements-reminder h3 {
    color: var(--white);

    font-family: "DM Sans", sans-serif;

    font-size: 18px;

    margin: 5px 0 5px;
}


.requirements-reminder p {
    color: #d9e2ec;

    font-size: 13px;

    margin: 0;

    max-width: 800px;
}


/* ---------------------------------------------------------
   CTA
   --------------------------------------------------------- */

.requirements-cta {
    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 40px;

    padding: 50px 55px;

    background: var(--cream);

    border: 1px solid #eadfce;

    border-radius: 18px;
}


.requirements-cta .section-label {
    color: var(--gold);

    font-size: 11px;

    font-weight: 700;

    letter-spacing: 2px;
}


.requirements-cta h2 {
    font-size: 30px;

    margin: 8px 0;
}


.requirements-cta p {
    color: var(--gray-500);

    font-size: 14px;

    margin: 0;
}


.requirements-cta .btn-primary {
    flex-shrink: 0;

    padding: 15px 24px;
}


/* ---------------------------------------------------------
   RESPONSIVE
   --------------------------------------------------------- */

@media (max-width: 900px) {

    .requirements-hero {
        padding: 70px 0 75px;
    }


    .requirements-section {
        padding: 70px 0 80px;
    }


    .requirement-cards {
        grid-template-columns: 1fr;
    }


    .requirements-cta {
        flex-direction: column;

        align-items: flex-start;
    }

}


@media (max-width: 600px) {

    .requirements-hero h1 {
        font-size: 3rem;
    }


    .requirements-hero p {
        font-size: 15px;
    }


    .requirements-heading {
        margin-bottom: 50px;
    }


    .requirement-group {
        margin-bottom: 55px;
    }


    .requirement-group-header {
        align-items: flex-start;

        gap: 15px;
    }


    .requirement-number {
        width: 45px;
        height: 45px;

        font-size: 14px;
    }


    .requirement-group-header h3 {
        font-size: 24px;
    }


    .requirement-card {
        padding: 25px;
    }


    .requirement-single-card {
        grid-template-columns: 1fr;

        padding: 25px;
    }


    .requirement-single-icon {
        width: 58px;
        height: 58px;
    }


    .requirements-reminder {
        grid-template-columns: 1fr;

        padding: 25px;
    }


    .requirements-cta {
        padding: 35px 25px;
    }


    .requirements-cta h2 {
        font-size: 25px;
    }

}
