/* =========================================================
   CONTACT RESPONSIVE CSS
   Mera Shathi Service Pvt. Ltd.
   ---------------------------------------------------------
   Purpose:
   - Responsive overrides for contact.css
   - Keeps desktop design intact
   - Prevents overflow on tablet/mobile
   - Preserves existing component structure
   - Works with the existing contact.css
   ---------------------------------------------------------
   Load order:
   1. style.css
   2. responsive.css
   3. contact.css
   4. contact-responsive.css
   ========================================================= */


/* =========================================================
   LARGE TABLET / SMALL DESKTOP
   <= 1199px
   ========================================================= */

@media (max-width: 1199px) {

    /* ---------- HERO ---------- */

    .contact-hero-wrapper {
        grid-template-columns:
            minmax(0, 1fr) 360px;

        gap: 45px;

        min-height: 420px;
    }

    .contact-hero-content {
        max-width: 620px;
    }

    .contact-hero h1 {
        font-size: clamp(40px, 5vw, 60px);
    }

    .contact-hero-visual {
        min-height: 420px;
    }

    .contact-hero-image {
        width: 330px;
        height: 330px;
    }


    /* ---------- CONTACT INFORMATION ---------- */

    .contact-wrapper {
        grid-template-columns:
            340px minmax(0, 1fr);

        gap: 30px;
    }

    .contact-card {
        gap: 15px;
        padding: 20px;
    }

    .contact-card > i {
        flex-basis: 54px;
        width: 54px;
        height: 54px;
    }

    .contact-form {
        padding: 34px;
    }


    /* ---------- SUPPORT ---------- */

    .contact-support-grid {
        gap: 20px;
    }

    .support-card {
        padding: 30px 22px;
    }


    /* ---------- LOCATION ---------- */

    .contact-location-wrapper {
        gap: 35px;
    }


    /* ---------- FAQ ---------- */

    .contact-faq-list {
        width: min(820px, 100%);
    }


    /* ---------- CTA ---------- */

    .contact-cta-content {
        max-width: 720px;
    }
}


/* =========================================================
   TABLET
   <= 991px
   ========================================================= */

@media (max-width: 991px) {

    /* ---------- HERO ---------- */

    .contact-hero {
        padding: 75px 0;
    }

    .contact-hero-wrapper {
        grid-template-columns: 1fr;

        gap: 35px;

        min-height: auto;

        text-align: center;
    }

    .contact-hero-content {
        max-width: 720px;

        margin: 0 auto;
    }

    .contact-hero-badge {
        margin-bottom: 18px;
    }

    .contact-hero h1 {
        margin-bottom: 18px;

        font-size: clamp(38px, 6vw, 54px);
    }

    .contact-hero-content > p {
        max-width: 650px;

        margin-left: auto;
        margin-right: auto;

        font-size: 16px;
    }

    .contact-hero-buttons {
        justify-content: center;
    }

    .contact-hero-visual {
        min-height: 350px;

        margin-top: 0;
    }

    .contact-hero-image {
        width: 330px;
        height: 330px;
    }

    .contact-hero-visual::before {
        width: 310px;
        height: 310px;
    }

    .contact-hero-visual::after {
        width: 270px;
        height: 270px;
    }


    /* ---------- CONTACT INFORMATION ---------- */

    .contact {
        padding: 85px 0;
    }

    .contact .section-heading {
        margin-bottom: 45px;
    }

    .contact-wrapper {
        grid-template-columns: 1fr;

        gap: 30px;
    }

    .contact-info {
        display: grid;

        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 16px;
    }

    .contact-card {
        min-width: 0;
    }

    .contact-form-wrapper {
        width: 100%;
    }

    .contact-form {
        padding: 34px;
    }


    /* ---------- CUSTOMER / DRIVER SUPPORT ---------- */

    .contact-support {
        padding: 85px 0;
    }

    .contact-support .section-heading {
        margin-bottom: 42px;
    }

    .contact-support-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 20px;
    }


    /* ---------- OFFICE LOCATION ---------- */

    .contact-location {
        padding: 85px 0;
    }

    .contact-location-wrapper {
        grid-template-columns: 1fr;

        gap: 35px;
    }

    .contact-location-content {
        padding: 0;

        max-width: 700px;
    }

    .contact-location-content > p {
        max-width: 650px;
    }

    .contact-location-content address {
        max-width: 650px;
    }

    .contact-map {
        width: 100%;

        min-height: 380px;
    }

    .contact-map iframe {
        min-height: 380px;
    }


    /* ---------- FAQ ---------- */

    .contact-faq {
        padding: 85px 0;
    }

    .contact-faq .section-heading {
        margin-bottom: 42px;
    }

    .contact-faq-list {
        width: 100%;
    }

    .contact-faq .faq-question {
        padding: 22px 24px;

        gap: 16px;

        font-size: 17px;
    }

    .contact-faq .faq-answer p {
        padding:
            0 24px 24px;

        font-size: 14px;

        line-height: 1.8;
    }


    /* ---------- CTA ---------- */

    .contact-cta {
        padding: 75px 0;
    }

    .contact-cta-content {
        max-width: 680px;
    }

    .contact-cta-content > p {
        max-width: 600px;
    }
}


/* =========================================================
   MOBILE
   <= 767px
   ========================================================= */

@media (max-width: 767px) {

    /* ---------- HERO ---------- */

    .contact-hero {
        padding: 65px 0;
    }

    .contact-hero-wrapper {
        gap: 25px;
    }

    .contact-hero-badge {
        padding: 7px 14px;

        font-size: 12px;
    }

    .contact-hero h1 {
        margin-bottom: 16px;

        font-size: clamp(34px, 9vw, 46px);

        letter-spacing: -1px;
    }

    .contact-hero h1 span::after {
        bottom: -4px;

        height: 2px;
    }

    .contact-hero-content > p {
        margin-bottom: 25px;

        font-size: 15px;

        line-height: 1.7;
    }

    .contact-hero-buttons {
        width: 100%;

        flex-direction: column;

        gap: 10px;
    }

    .contact-hero-btn {
        width: min(100%, 320px);

        min-width: 0;
    }

    .contact-hero-visual {
        min-height: 300px;
    }

    .contact-hero-image {
        width: 280px;
        height: 280px;
    }

    .contact-hero-visual::before {
        width: 270px;
        height: 270px;
    }

    .contact-hero-visual::after {
        width: 225px;
        height: 225px;
    }


    /* ---------- CONTACT INFORMATION ---------- */

    .contact {
        padding: 75px 0;
    }

    .contact .section-heading {
        margin-bottom: 35px;
    }

    .contact .section-heading h2 {
        font-size: clamp(28px, 8vw, 38px);

        letter-spacing: -0.5px;
    }

    .contact .section-heading p {
        font-size: 14px;

        line-height: 1.7;
    }

    .contact-info {
        grid-template-columns: 1fr;

        gap: 14px;
    }

    .contact-card {
        gap: 15px;

        padding: 18px;

        border-radius: 17px;
    }

    .contact-card > i {
        flex-basis: 52px;

        width: 52px;
        height: 52px;

        border-radius: 14px;

        font-size: 19px;
    }

    .contact-card h3 {
        font-size: 16px;
    }

    .contact-card a,
    .contact-card address,
    .contact-card p {
        font-size: 13px;

        line-height: 1.55;
    }

    .contact-form {
        padding: 26px 20px;

        border-radius: 20px;
    }

    .contact-form-header {
        margin-bottom: 23px;
    }

    .contact-form-header h2 {
        font-size: 26px;
    }

    .contact-form-header p {
        font-size: 13px;
    }

    .form-group {
        margin-bottom: 16px;
    }

    .form-group label {
        font-size: 12px;
    }

    .contact-form input,
    .contact-form textarea {
        padding: 13px 14px;

        font-size: 13px;

        border-radius: 10px;
    }

    .contact-form input {
        min-height: 48px;
    }

    .contact-form textarea {
        min-height: 130px;
    }

    .contact-btn {
        min-height: 51px;

        font-size: 13px;
    }

    .contact-form-note {
        font-size: 11px;
    }


    /* ---------- CUSTOMER / DRIVER SUPPORT ---------- */

    .contact-support {
        padding: 75px 0;
    }

    .contact-support .section-heading {
        margin-bottom: 35px;
    }

    .contact-support .section-heading h2 {
        font-size: clamp(28px, 8vw, 38px);
    }

    .contact-support .section-heading p {
        font-size: 14px;

        line-height: 1.7;
    }

    .contact-support-grid {
        grid-template-columns: 1fr;

        gap: 15px;
    }

    .support-card {
        padding: 28px 20px;

        border-radius: 18px;
    }

    .support-card > i {
        width: 62px;
        height: 62px;

        margin-bottom: 17px;

        border-radius: 16px;

        font-size: 23px;
    }

    .support-card h3 {
        font-size: 18px;
    }

    .support-card p {
        font-size: 13px;

        line-height: 1.7;
    }


    /* ---------- OFFICE LOCATION ---------- */

    .contact-location {
        padding: 75px 0;
    }

    .contact-location-wrapper {
        gap: 28px;
    }

    .contact-location-content .section-tag {
        font-size: 12px;
    }

    .contact-location-content h2 {
        font-size: clamp(30px, 8vw, 40px);

        letter-spacing: -0.5px;
    }

    .contact-location-content > p {
        font-size: 14px;

        line-height: 1.7;

        margin-bottom: 20px;
    }

    .contact-location-content address {
        gap: 10px;

        max-width: 100%;

        margin-bottom: 20px;

        padding: 14px;

        border-radius: 14px;

        font-size: 13px;

        line-height: 1.65;
    }

    .contact-location-content address i {
        width: 38px;
        height: 38px;

        margin-top: 1px;

        border-radius: 9px;

        flex-shrink: 0;
    }

    .location-btn {
        width: 100%;

        max-width: 320px;

        padding: 12px 18px;

        font-size: 12px;
    }

    .contact-map {
        min-height: 320px;

        border-radius: 20px;
    }

    .contact-map iframe {
        min-height: 320px;
    }

    .contact-map::after {
        width: 50px;
        height: 50px;

        font-size: 19px;
    }

    .contact-map::before {
        width: 85px;
        height: 85px;
    }


    /* ---------- FAQ ---------- */

    .contact-faq {
        padding: 75px 0;
    }

    .contact-faq .section-heading {
        margin-bottom: 35px;
    }

    .contact-faq .section-heading h2 {
        font-size: clamp(28px, 8vw, 38px);
    }

    .contact-faq .section-heading p {
        font-size: 14px;

        line-height: 1.7;
    }

    .contact-faq .faq-item {
        margin-bottom: 12px;

        border-radius: 15px;
    }

    .contact-faq .faq-question {
        padding: 18px 17px;

        gap: 12px;

        font-size: 15px;

        line-height: 1.45;
    }

    .contact-faq .faq-question i {
        width: 38px;
        height: 38px;

        font-size: 12px;
    }

    .contact-faq .faq-answer p {
        padding:
            0 17px 20px;

        font-size: 13px;

        line-height: 1.75;
    }

    .contact-faq .faq-item.active .faq-answer {
        max-height: 500px;
    }


    /* ---------- CTA ---------- */

    .contact-cta {
        padding: 65px 0;
    }

    .contact-cta-content {
        max-width: 100%;
    }

    .contact-cta-content h2 {
        font-size: clamp(28px, 8vw, 38px);

        letter-spacing: -0.4px;
    }

    .contact-cta-content > p {
        margin-bottom: 23px;

        font-size: 14px;

        line-height: 1.7;
    }

    .contact-cta-actions {
        width: 100%;

        flex-direction: column;

        gap: 10px;
    }

    .contact-cta-actions a {
        width: min(100%, 320px);

        min-width: 0;

        padding: 12px 18px;

        font-size: 12px;
    }

    .contact-cta::before {
        width: 260px;
        height: 260px;

        right: -130px;
        top: -150px;
    }

    .contact-cta::after {
        width: 190px;
        height: 190px;

        left: -80px;
        bottom: -120px;
    }
}


/* =========================================================
   SMALL MOBILE
   <= 480px
   ========================================================= */

@media (max-width: 480px) {

    /* ---------- GLOBAL CONTACT SAFETY ---------- */

    .contact-hero,
    .contact,
    .contact-support,
    .contact-location,
    .contact-faq,
    .contact-cta {
        overflow: hidden;
    }


    /* ---------- HERO ---------- */

    .contact-hero {
        padding: 55px 0 60px;
    }

    .contact-hero-wrapper {
        gap: 20px;
    }

    .contact-hero h1 {
        font-size: clamp(31px, 10vw, 40px);
    }

    .contact-hero-content > p {
        font-size: 14px;
    }

    .contact-hero-btn {
        width: 100%;

        min-height: 50px;

        padding: 12px 18px;
    }

    .contact-hero-visual {
        min-height: 270px;
    }

    .contact-hero-image {
        width: 245px;
        height: 245px;
    }

    .contact-hero-visual::before {
        width: 235px;
        height: 235px;
    }

    .contact-hero-visual::after {
        width: 195px;
        height: 195px;
    }


    /* ---------- CONTACT INFORMATION ---------- */

    .contact {
        padding: 65px 0;
    }

    .contact-card {
        padding: 16px;

        gap: 12px;
    }

    .contact-card > i {
        flex-basis: 48px;

        width: 48px;
        height: 48px;

        border-radius: 12px;

        font-size: 18px;
    }

    .contact-card h3 {
        margin-bottom: 4px;

        font-size: 15px;
    }

    .contact-card a,
    .contact-card address,
    .contact-card p {
        font-size: 12px;
    }

    .contact-form {
        padding: 22px 16px;

        border-radius: 18px;
    }

    .contact-form-header h2 {
        font-size: 24px;
    }

    .contact-form-header p {
        font-size: 12px;
    }

    .contact-form input,
    .contact-form textarea {
        font-size: 12px;
    }

    .contact-form textarea {
        min-height: 120px;
    }

    .contact-form-note {
        font-size: 10px;
    }


    /* ---------- SUPPORT ---------- */

    .contact-support {
        padding: 65px 0;
    }

    .support-card {
        padding: 24px 17px;
    }

    .support-card > i {
        width: 58px;
        height: 58px;

        font-size: 21px;
    }

    .support-card h3 {
        font-size: 17px;
    }

    .support-card p {
        font-size: 12px;
    }


    /* ---------- LOCATION ---------- */

    .contact-location {
        padding: 65px 0;
    }

    .contact-location-content h2 {
        font-size: clamp(28px, 9vw, 36px);
    }

    .contact-location-content > p {
        font-size: 13px;
    }

    .contact-location-content address {
        font-size: 12px;

        padding: 13px;
    }

    .contact-location-content address i {
        width: 36px;
        height: 36px;
    }

    .location-btn {
        width: 100%;

        max-width: none;
    }

    .contact-map {
        min-height: 280px;

        border-radius: 17px;
    }

    .contact-map iframe {
        min-height: 280px;
    }

    .contact-map::after {
        width: 46px;
        height: 46px;

        font-size: 17px;
    }


    /* ---------- FAQ ---------- */

    .contact-faq {
        padding: 65px 0;
    }

    .contact-faq .faq-question {
        padding: 16px 14px;

        font-size: 14px;
    }

    .contact-faq .faq-question i {
        width: 35px;
        height: 35px;

        font-size: 11px;
    }

    .contact-faq .faq-answer p {
        padding:
            0 14px 18px;

        font-size: 12px;
    }


    /* ---------- CTA ---------- */

    .contact-cta {
        padding: 58px 0;
    }

    .contact-cta-content h2 {
        font-size: clamp(27px, 9vw, 35px);
    }

    .contact-cta-content > p {
        font-size: 13px;
    }

    .contact-cta-actions a {
        width: 100%;

        min-height: 48px;
    }
}


/* =========================================================
   VERY SMALL DEVICES
   <= 360px
   ========================================================= */

@media (max-width: 360px) {

    .contact-hero-image {
        width: 220px;
        height: 220px;
    }

    .contact-hero-visual {
        min-height: 245px;
    }

    .contact-hero-visual::before {
        width: 210px;
        height: 210px;
    }

    .contact-hero-visual::after {
        width: 175px;
        height: 175px;
    }

    .contact-hero h1 {
        font-size: 30px;
    }

    .contact-card > i {
        flex-basis: 44px;

        width: 44px;
        height: 44px;

        font-size: 16px;
    }

    .contact-card {
        gap: 10px;
    }

    .contact-card h3 {
        font-size: 14px;
    }

    .contact-card a,
    .contact-card address,
    .contact-card p {
        font-size: 11px;
    }

    .contact-form {
        padding: 20px 13px;
    }

    .contact-faq .faq-question {
        padding: 15px 12px;

        font-size: 13px;
    }

    .contact-faq .faq-question i {
        width: 33px;
        height: 33px;
    }

    .contact-faq .faq-answer p {
        padding-left: 12px;
        padding-right: 12px;

        font-size: 11px;
    }
}


/* =========================================================
   LANDSCAPE MOBILE
   ========================================================= */

@media (max-width: 767px) and (orientation: landscape) {

    .contact-hero {
        padding: 50px 0;
    }

    .contact-hero-wrapper {
        grid-template-columns:
            minmax(0, 1fr) 280px;

        align-items: center;

        gap: 25px;

        text-align: left;
    }

    .contact-hero-content {
        margin: 0;

        max-width: 100%;
    }

    .contact-hero-content > p {
        margin-left: 0;
        margin-right: 0;
    }

    .contact-hero-buttons {
        justify-content: flex-start;

        flex-direction: row;
    }

    .contact-hero-btn {
        width: auto;
    }

    .contact-hero-visual {
        min-height: 280px;
    }

    .contact-hero-image {
        width: 260px;
        height: 260px;
    }

    .contact-info {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .contact-support-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}


/* =========================================================
   TOUCH DEVICES
   Remove large hover movement on touch screens
   ========================================================= */

@media (hover: none) and (pointer: coarse) {

    .contact-hero-image:hover {
        transform: none;
    }

    .contact-hero-image:hover img {
        transform: none;
    }

    .contact-card:hover,
    .support-card:hover,
    .contact-map:hover,
    .contact-location-content address:hover {
        transform: none;
    }

    .contact-card:hover > i,
    .support-card:hover > i,
    .contact-location-content address:hover i {
        transform: none;
    }

    .contact-hero-btn:hover,
    .contact-btn:hover,
    .location-btn:hover,
    .contact-cta-actions a:hover {
        transform: none;
    }
}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

    .contact-hero-visual::before,
    .contact-hero-visual::after,
    .contact-cta::before,
    .contact-cta::after {
        animation: none;
    }

    .contact-hero-image,
    .contact-hero-image img,
    .contact-card,
    .contact-card > i,
    .contact-form,
    .contact-form input,
    .contact-form textarea,
    .contact-btn,
    .support-card,
    .support-card > i,
    .location-btn,
    .contact-map,
    .contact-map iframe,
    .contact-map::after,
    .contact-faq .faq-item,
    .contact-faq .faq-question,
    .contact-faq .faq-question i,
    .contact-faq .faq-answer,
    .contact-cta-actions a,
    .contact-cta-actions a i {
        transition: none;
    }
}
