/*
 * ============================================================
 * M.H College
 * File: 93-responsive-contact.css
 * Purpose:
 * Responsive Contact page layouts and components
 * ============================================================
 */

/*
 * ============================================================
 * Medium desktop and tablet landscape
 * Maximum width: 1050px
 * ============================================================
 */

@media (max-width: 1050px) {
    /*
     * Contact options
     */

    .contact-options-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .contact-option-card {
        min-height: 340px;
    }

    .contact-option-card:nth-child(3) {
        grid-column: 1 / -1;

        width: min(100%, 540px);

        justify-self: center;
    }

    /*
     * Contact process
     */

    .contact-process-grid {
        gap: 15px;
    }

    .contact-process-card {
        padding: 23px;
    }

    /*
     * Course-specific inquiries
     */

    .contact-course-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .contact-course-card:nth-child(3) {
        grid-column: 1 / -1;

        width: min(100%, 540px);

        justify-self: center;
    }

    /*
     * Contact FAQ
     */

    .contact-faq-layout {
        grid-template-columns:
            minmax(270px, .9fr)
            minmax(0, 1.1fr);

        gap: 42px;
    }

    /*
     * Contact location
     */

    .contact-location-header {
        gap: 30px;
    }
}

/*
 * ============================================================
 * Tablet and mobile
 * Maximum width: 820px
 * ============================================================
 */

@media (max-width: 820px) {
    /*
     * Contact section spacing
     */

    .contact-options-section,
    .contact-process-section,
    .contact-courses-section,
    .contact-faq-section,
    .contact-location-section {
        padding-top: 60px;
        padding-bottom: 56px;
    }

    .contact-options-section .section-heading,
    .contact-process-section .section-heading,
    .contact-courses-section .section-heading {
        max-width: 720px;
    }

    .contact-options-section .section-heading p:last-child,
    .contact-process-section .section-heading p:last-child,
    .contact-courses-section .section-heading p:last-child {
        max-width: 640px;
    }

    /*
     * Contact options
     */

    .contact-options-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 15px;
    }

    .contact-option-card {
        min-height: 330px;

        padding: 24px;

        border-radius: 20px;
    }

    .contact-option-card:nth-child(3) {
        grid-column: 1 / -1;

        width: min(100%, 520px);

        justify-self: center;
    }

    .contact-option-card .icon-box {
        margin-bottom: 19px;
    }

    .contact-option-card h3 {
        font-size: 1.25rem;
    }

    .contact-option-card > p:not(.eyebrow) {
        font-size: .92rem;
        line-height: 1.8;
    }

    /*
     * Phone strip
     */

    .contact-phone-strip {
        flex-direction: column;
        align-items: flex-start;

        gap: 14px;

        padding: 21px 23px;
    }

    .contact-phone-strip > p {
        max-width: 680px;
    }

    /*
     * Contact process
     */

    .contact-process-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 15px;
    }

    .contact-process-card {
        min-height: 225px;

        padding: 23px;

        border-radius: 20px;
    }

    .contact-process-card:nth-child(3) {
        grid-column: 1 / -1;

        width: min(100%, 520px);

        justify-self: center;
    }

    .contact-process-top {
        margin-bottom: 19px;
    }

    .contact-process-icon {
        width: 49px;
        height: 49px;

        flex-basis: 49px;

        border-radius: 15px;
    }

    .contact-process-icon .icon {
        width: 25px;
        height: 25px;
    }

    /*
     * Course-specific inquiries
     */

    .contact-course-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 15px;
    }

    .contact-course-card {
        min-height: 315px;

        padding: 24px;

        border-radius: 20px;
    }

    .contact-course-card:nth-child(3) {
        grid-column: 1 / -1;

        width: min(100%, 520px);

        justify-self: center;
    }

    .contact-course-number {
        width: 48px;
        height: 48px;

        margin-bottom: 18px;
    }

    /*
     * Contact FAQ
     */

    .contact-faq-layout {
        grid-template-columns: 1fr;

        gap: 32px;
    }

    .contact-faq-heading {
        position: static;

        width: 100%;
        max-width: 720px;

        margin-inline: auto;

        text-align: center;
    }

    .contact-faq-heading h2,
    .contact-faq-heading > p:not(.eyebrow) {
        margin-inline: auto;
    }

    .contact-faq-heading h2 {
        font-size: clamp(
            2rem,
            6vw,
            3rem
        );
    }

    .contact-faq-heading .button {
        min-height: 50px;
    }

    .contact-faq-list {
        width: 100%;
        max-width: 760px;

        margin-inline: auto;
    }

    /*
     * Contact location and map
     */

    .contact-location-header {
        flex-direction: column;
        align-items: flex-start;

        gap: 22px;
    }

    .contact-location-header > div {
        max-width: 720px;
    }

    .contact-location-header h2 {
        font-size: clamp(
            2rem,
            6vw,
            3rem
        );
    }

    .contact-location-header .button {
        white-space: normal;
    }

    .map-shell {
        min-height: clamp(
            360px,
            52vw,
            420px
        );

        margin-top: 24px;

        border-radius: 24px;
    }

    .map-shell iframe {
        height: clamp(
            360px,
            52vw,
            420px
        );
    }
}

/*
 * ============================================================
 * Small mobile
 * Maximum width: 560px
 * ============================================================
 */

@media (max-width: 560px) {
    /*
     * Contact section spacing
     */

    .contact-options-section,
    .contact-process-section,
    .contact-courses-section,
    .contact-faq-section,
    .contact-location-section {
        padding-top: 50px;
        padding-bottom: 46px;
    }

    /*
     * Contact options
     */

    .contact-options-grid {
        grid-template-columns: 1fr;

        gap: 13px;
    }

    .contact-option-card,
    .contact-option-card:nth-child(3) {
        grid-column: auto;

        width: 100%;
        min-height: 0;

        padding: 22px;

        border-radius: 18px;
    }

    .contact-option-card .icon-box {
        margin-bottom: 17px;
    }

    .contact-option-card h3 {
        font-size: 1.18rem;
        line-height: 1.52;
    }

    .contact-option-card > p:not(.eyebrow) {
        margin: 10px 0 21px;

        font-size: .9rem;
        line-height: 1.78;
    }

    .contact-option-card .button {
        min-height: 50px;

        font-size: .88rem;
    }

    /*
     * Phone strip
     */

    .contact-phone-strip {
        gap: 13px;

        margin-top: 17px;
        padding: 19px;

        border-radius: 16px;
    }

    .contact-phone-content {
        gap: 12px;
    }

    .contact-phone-icon {
        width: 44px;
        height: 44px;

        flex-basis: 44px;

        border-radius: 13px;
    }

    .contact-phone-icon .icon {
        width: 23px;
        height: 23px;
    }

    .contact-phone-content a {
        font-size: 1.08rem;
    }

    .contact-phone-strip > p {
        font-size: .87rem;
        line-height: 1.7;
    }

    /*
     * Contact process
     */

    .contact-process-grid {
        grid-template-columns: 1fr;

        gap: 13px;
    }

    .contact-process-card,
    .contact-process-card:nth-child(3) {
        grid-column: auto;

        width: 100%;
        min-height: 0;

        padding: 22px;

        border-radius: 18px;
    }

    .contact-process-top {
        margin-bottom: 17px;
    }

    .contact-process-number {
        font-size: .82rem;
    }

    .contact-process-icon {
        width: 46px;
        height: 46px;

        flex-basis: 46px;

        border-radius: 14px;
    }

    .contact-process-icon .icon {
        width: 24px;
        height: 24px;
    }

    .contact-process-card h3 {
        font-size: 1.16rem;
        line-height: 1.52;
    }

    .contact-process-card p {
        margin-top: 9px;

        font-size: .9rem;
        line-height: 1.76;
    }

    /*
     * Course-specific inquiries
     */

    .contact-course-grid {
        grid-template-columns: 1fr;

        gap: 13px;
    }

    .contact-course-card,
    .contact-course-card:nth-child(3) {
        grid-column: auto;

        width: 100%;
        min-height: 0;

        padding: 22px;

        border-radius: 18px;
    }

    .contact-course-number {
        width: 46px;
        height: 46px;

        margin-bottom: 17px;

        font-size: .82rem;
    }

    .contact-course-card h3 {
        font-size: 1.18rem;
        line-height: 1.52;
    }

    .contact-course-card > p {
        margin: 10px 0 21px;

        font-size: .9rem;
        line-height: 1.76;
    }

    .contact-course-actions .button {
        min-height: 50px;

        font-size: .86rem;
    }

    /*
     * Contact FAQ
     */

    .contact-faq-layout {
        gap: 27px;
    }

    .contact-faq-heading h2 {
        font-size: clamp(
            1.82rem,
            8vw,
            2.42rem
        );

        line-height: 1.3;
    }

    .contact-faq-heading > p:not(.eyebrow) {
        margin-top: 13px;

        font-size: .93rem;
        line-height: 1.78;
    }

    .contact-faq-heading .button {
        width: 100%;
        min-height: 50px;

        justify-content: center;

        margin-top: 20px;
    }

    .contact-faq-list {
        gap: 10px;
    }

    .contact-faq-item {
        border-radius: 15px;
    }

    .contact-faq-item summary {
        gap: 14px;

        min-height: 60px;

        padding: 16px;

        font-size: .94rem;
        line-height: 1.58;
    }

    .contact-faq-toggle {
        width: 26px;
        height: 26px;

        flex-basis: 26px;

        border-radius: 8px;
    }

    .contact-faq-answer {
        padding: 0 16px 17px;
    }

    .contact-faq-answer p {
        font-size: .89rem;
        line-height: 1.76;
    }

    /*
     * Contact location and map
     */

    .contact-location-header {
        gap: 19px;
    }

    .contact-location-header h2 {
        font-size: clamp(
            1.82rem,
            8vw,
            2.42rem
        );

        line-height: 1.3;
    }

    .contact-location-header > div > p:last-child {
        margin-top: 11px;

        font-size: .93rem;
        line-height: 1.78;
    }

    .contact-location-header .button {
        width: 100%;
        min-height: 50px;

        justify-content: center;
    }

    .map-shell {
        min-height: 330px;

        margin-top: 20px;

        border-radius: 20px;
    }

    .map-shell iframe {
        height: 330px;
    }
}

/*
 * ============================================================
 * Extra-small phones
 * Maximum width: 380px
 * ============================================================
 */

@media (max-width: 380px) {
    /*
     * Contact cards
     */

    .contact-option-card,
    .contact-option-card:nth-child(3),
    .contact-process-card,
    .contact-process-card:nth-child(3),
    .contact-course-card,
    .contact-course-card:nth-child(3) {
        padding: 19px;
    }

    .contact-option-card .button,
    .contact-course-actions .button {
        padding-inline: 12px;

        font-size: .82rem;
    }

    /*
     * Phone strip
     */

    .contact-phone-strip {
        padding: 17px;
    }

    .contact-phone-content {
        align-items: flex-start;
    }

    .contact-phone-content a {
        font-size: 1rem;

        overflow-wrap: anywhere;
    }

    /*
     * FAQ and location
     */

    .contact-faq-heading h2,
    .contact-location-header h2 {
        font-size: clamp(
            1.7rem,
            9vw,
            2.08rem
        );
    }

    .contact-faq-item summary {
        padding: 14px;

        font-size: .9rem;
    }

    .contact-faq-answer {
        padding: 0 14px 15px;
    }

    .contact-location-header .button {
        padding-inline: 14px;

        font-size: .88rem;
    }
}