/* =========================================================
   SLG GOLD - CONTACT US PAGE RESPONSIVE STYLES
========================================================= */

/* Large Screens & Standard Desktop adjustments (1200px - 1400px) */
@media screen and (max-width: 1400px) {
    .contact-hero-container,
    .contact-locations-container,
    .contact-form-container,
    .contact-golden-cta-container {
        width: min(calc(100% - 60px), 1200px);
    }
    
    .contact-hero-left {
        max-width: 520px;
    }
    
    .contact-hero-title {
        font-size: 46px;
        line-height: 52px;
    }

    .contact-hero-script-callout {
        left: 53%;
        top: 13%;
    }

    .locations-main-title,
    .form-heading-title,
    .golden-cta-title {
        font-size: 44px;
        line-height: 50px;
    }

    .locations-shop-visual {
        max-width: 500px;
    }

    .contact-form-grid {
        gap: 30px;
    }

    .golden-cta-grid {
        grid-template-columns: 1.15fr 0.9fr 130px;
        gap: 20px;
    }

    .golden-cta-img {
        max-width: 420px;
    }
}

/* Medium Desktop & Tablet Landscape (992px - 1199px) */
@media screen and (max-width: 1199px) {
    .contact-hero-section {
        min-height: 580px;
    }

    .contact-hero-container,
    .contact-locations-container,
    .contact-form-container,
    .contact-golden-cta-container {
        width: min(calc(100% - 40px), 960px);
    }

    .contact-hero-container {
        padding: 50px 0;
    }

    .contact-hero-left {
        max-width: 480px;
    }

    .contact-hero-title {
        font-size: 40px;
        line-height: 46px;
    }

    .contact-hero-subtitle {
        font-size: 20px;
        line-height: 28px;
    }

    .contact-hero-desc {
        font-size: 15px;
        line-height: 24px;
        margin-bottom: 24px;
    }

    .contact-hero-script-callout {
        display: none;
    }

    .contact-hero-right-badges {
        right: 15px;
        gap: 24px;
    }

    /* Section 2: Locations */
    .contact-locations-section {
        padding: 70px 0 45px 0;
    }

    .locations-main-title {
        font-size: 38px;
        line-height: 44px;
    }

    .locations-cards-grid {
        gap: 18px;
    }

    .location-card {
        padding: 34px 18px 24px 18px;
    }

    .phone-link {
        font-size: 19px;
    }

    /* Section 3: Contact Form */
    .contact-form-section {
        padding: 70px 0 60px 0;
    }

    .form-heading-title {
        font-size: 38px;
        line-height: 44px;
    }

    .contact-form-grid {
        gap: 28px;
    }

    .contact-form-card {
        padding: 32px 28px;
    }

    /* Section 4: Golden CTA */
    .contact-golden-cta-section {
        padding: 70px 0 60px 0;
    }

    .golden-cta-title {
        font-size: 38px;
        line-height: 44px;
    }

    .golden-cta-grid {
        grid-template-columns: 1fr 1fr;
        gap: 25px;
    }

    .golden-cta-stepper-col {
        display: none;
    }

    .golden-cta-img {
        max-width: 380px;
    }
}

/* Tablet Portrait (769px - 991px) */
@media screen and (max-width: 991px) {
    .contact-hero-section {
        min-height: auto;
        padding: 40px 0 0 0;
        position: relative;
    }

    .contact-hero-bg {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        z-index: 1;
    }

    .contact-hero-bg-img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center right;
        display: block;
        opacity: 0.35;
    }

    .contact-hero-overlay {
        position: absolute;
        inset: 0;
        background: linear-gradient(180deg, rgba(250, 247, 237, 0.90) 0%, rgba(250, 247, 237, 0.96) 100%);
        z-index: 2;
    }

    .contact-hero-container {
        width: calc(100% - 40px);
        flex-direction: column;
        align-items: flex-start;
        padding: 30px 0;
    }

    .contact-hero-left {
        max-width: 100%;
    }

    .contact-hero-right-badges {
        position: static;
        transform: none;
        flex-direction: row;
        flex-wrap: wrap;
        gap: 20px;
        margin-top: 30px;
        padding-top: 20px;
        border-top: 1px solid rgba(212, 175, 55, 0.25);
    }

    .contact-badge-timeline-line {
        display: none;
    }

    /* Section 2: Locations */
    .contact-locations-container {
        width: calc(100% - 40px);
    }

    .locations-top-grid {
        grid-template-columns: 1fr;
        gap: 35px;
        margin-bottom: 40px;
    }

    .locations-shop-visual {
        max-width: 100%;
    }

    .locations-cards-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 32px 20px;
    }

    .location-card:last-child {
        grid-column: span 2;
    }

    /* Section 3: Contact Form */
    .contact-form-decor,
    .form-top-right-curve {
        display: none !important;
    }

    .contact-form-container {
        width: calc(100% - 40px);
    }

    .contact-form-grid {
        grid-template-columns: 1fr;
        gap: 45px;
    }

    .contact-form-left-col {
        padding-bottom: 0;
    }

    .form-left-visual-wrap {
        display: none !important;
    }

    .contact-form-card {
        max-width: 100%;
    }

    /* Section 4: Golden CTA */
    .contact-golden-cta-container {
        width: calc(100% - 40px);
    }

    .golden-cta-grid {
        grid-template-columns: 1fr;
        gap: 35px;
        text-align: center;
    }

    .golden-cta-left-col {
        align-items: center;
        text-align: center;
    }

    .golden-cta-stepper-col {
        display: flex;
        flex-direction: row;
        justify-content: center;
        align-items: center;
        gap: 20px;
        margin-top: 20px;
        padding-top: 20px;
        border-top: 1px solid rgba(212, 175, 55, 0.25);
    }

    .cta-step-item {
        align-items: center;
    }

    .cta-step-divider {
        display: none;
    }

    .golden-cta-img {
        max-width: 440px;
        margin: 0 auto;
    }
}

/* Mobile Devices (<= 768px) - Strict Mobile Typography */
@media screen and (max-width: 768px) {
    /* Global Mobile Typography Enforcement */
    h1 {
        font-size: 32px !important;
        line-height: 1.3 !important;
        font-weight: 700 !important;
    }

    h2 {
        font-size: 26px !important;
        line-height: 1.32 !important;
        font-weight: 600 !important;
    }

    h3 {
        font-size: 22px !important;
        line-height: 1.35 !important;
        font-weight: 500 !important;
    }

    p {
        font-size: 16px !important;
        line-height: 1.35 !important;
    }

    ul, ol, li {
        font-size: 16px !important;
        line-height: 1.35 !important;
    }

    /* Section 1: Hero */
    .contact-hero-section {
        min-height: auto;
        padding: 30px 0 0 0;
        position: relative;
    }

    .contact-hero-bg {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        z-index: 1;
    }

    .contact-hero-bg-img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
        display: block;
        opacity: 0.28;
    }

    .contact-hero-overlay {
        position: absolute;
        inset: 0;
        background: linear-gradient(180deg, rgba(250, 247, 237, 0.92) 0%, rgba(250, 247, 237, 0.98) 100%);
        z-index: 2;
    }

    .contact-hero-container {
        width: calc(100% - 32px);
        padding: 24px 0 36px 0;
    }

    .contact-brand-badge {
        margin-bottom: 8px;
    }

    .contact-brand-name {
        font-size: 19px;
    }

    .contact-brand-tagline {
        font-size: 8.5px;
    }

    .contact-brand-line {
        margin: 10px 0 14px 0;
    }

    .contact-hero-title {
        font-size: 32px !important;
        line-height: 1.3 !important;
        margin-bottom: 8px;
    }

    .contact-hero-subtitle {
        font-size: 18px;
        line-height: 1.35;
        margin-bottom: 12px;
    }

    .contact-hero-desc {
        font-size: 15px;
        line-height: 1.45;
        margin-bottom: 24px;
    }

    /* Pillars Row: Mobile Stack */
    .contact-pillars-row {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
        width: 100%;
        background: rgba(255, 255, 255, 0.7);
        border: 1px solid rgba(212, 175, 55, 0.3);
        border-radius: 14px;
        padding: 16px;
    }

    .contact-pillar-item {
        width: 100%;
    }

    .contact-v-divider {
        display: none;
    }

    .contact-pillar-icon-box {
        width: 38px;
        height: 38px;
    }

    .contact-pillar-title {
        font-size: 11px;
    }

    .contact-hero-right-badges {
        position: static;
        transform: none;
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
        margin-top: 24px;
        width: 100%;
        padding-top: 18px;
        border-top: 1px solid rgba(212, 175, 55, 0.25);
    }

    .contact-badge-timeline-line {
        display: none;
    }

    .contact-right-badge-icon-box {
        width: 36px;
        height: 36px;
    }

    .contact-right-badge-text {
        font-size: 10.5px;
    }

    /* Section 2: Locations Mobile Styles */
    .contact-locations-section {
        padding: 55px 0 35px 0;
    }

    .contact-locations-container {
        width: calc(100% - 32px);
    }

    .locations-top-grid {
        grid-template-columns: 1fr;
        gap: 28px;
        margin-bottom: 40px;
    }

    .locations-main-title {
        font-size: 26px !important;
        line-height: 1.32 !important;
        margin-bottom: 12px;
    }

    .locations-main-desc {
        font-size: 15px;
        line-height: 1.45;
    }

    .locations-script-callout {
        top: -15px;
        left: 10px;
    }

    .locations-script-text {
        font-size: 26px;
    }

    .locations-shop-visual {
        max-width: 100%;
    }

    /* 3-Cards Grid on Mobile */
    .locations-cards-grid {
        grid-template-columns: 1fr;
        gap: 36px;
        margin-bottom: 35px;
    }

    .location-card:last-child {
        grid-column: span 1;
    }

    .location-card {
        padding: 34px 20px 22px 20px;
    }

    .card-floating-icon {
        top: -20px;
        left: 20px;
        width: 42px;
        height: 42px;
    }

    .card-floating-icon svg {
        width: 19px;
        height: 19px;
    }

    .card-title-gold,
    .card-title-white {
        font-size: 20px;
        line-height: 1.35;
    }

    .phone-link {
        font-size: 20px;
    }

    .locations-corner-wave {
        width: 180px;
        height: 180px;
        opacity: 0.5;
    }

    .locations-tagline-text {
        font-size: 10px;
        letter-spacing: 0.14em;
        flex-direction: column;
        gap: 4px;
        text-align: center;
    }

    .locations-tagline-text span.tagline-sep {
        display: none;
    }

    /* Section 3: Contact Form Mobile Styles */
    .contact-form-decor,
    .form-top-right-curve {
        display: none !important;
    }

    .contact-form-section {
        padding: 55px 0 45px 0;
    }

    .contact-form-container {
        width: calc(100% - 32px);
    }

    .form-heading-title {
        font-size: 26px !important;
        line-height: 1.32 !important;
        margin-bottom: 12px;
    }

    .form-intro-desc {
        font-size: 15px;
        line-height: 1.45;
        margin-bottom: 22px;
    }

    .form-features-row {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
        width: 100%;
        background: rgba(255, 255, 255, 0.7);
        border: 1px solid rgba(212, 175, 55, 0.3);
        border-radius: 14px;
        padding: 16px;
        margin-bottom: 25px;
    }

    .form-feature-item {
        width: 100%;
    }

    .form-v-divider {
        display: none;
    }

    .form-feature-icon-box {
        width: 38px;
        height: 38px;
    }

    .form-feature-text {
        font-size: 11px;
    }

    .contact-form-left-col {
        padding-bottom: 0;
    }

    .form-left-visual-wrap {
        display: none !important;
    }

    .contact-form-card {
        padding: 28px 20px;
        border-radius: 20px;
    }

    .form-card-icon-badge {
        width: 44px;
        height: 44px;
    }

    .form-card-icon-badge svg {
        width: 20px;
        height: 20px;
    }

    .form-card-title {
        font-size: 19px;
    }

    .form-input-control {
        padding: 12px 14px 12px 40px;
        font-size: 14px;
    }

    .form-submit-btn {
        padding: 14px 20px;
        font-size: 15px;
    }

    /* Section 4: Golden CTA Mobile Styles */
    .contact-golden-cta-section {
        padding: 55px 0 45px 0;
    }

    .contact-golden-cta-container {
        width: calc(100% - 32px);
    }

    .golden-cta-grid {
        grid-template-columns: 1fr;
        gap: 30px;
        text-align: center;
    }

    .golden-cta-left-col {
        align-items: center;
        text-align: center;
    }

    .golden-cta-title {
        font-size: 26px !important;
        line-height: 1.32 !important;
        margin-bottom: 12px;
    }

    .golden-cta-desc {
        font-size: 15px;
        line-height: 1.45;
        margin-bottom: 24px;
    }

    .golden-cta-features-row {
        display: flex;
        flex-direction: row;
        justify-content: center;
        flex-wrap: wrap;
        gap: 16px;
        width: 100%;
    }

    .golden-cta-v-divider {
        display: none;
    }

    .golden-cta-feature-item {
        flex: 1;
        min-width: 90px;
    }

    .golden-cta-img {
        max-width: 320px;
        margin: 0 auto;
    }

    .golden-cta-stepper-col {
        display: flex;
        flex-direction: row;
        justify-content: center;
        align-items: center;
        flex-wrap: wrap;
        gap: 14px;
        margin-top: 15px;
        padding-top: 15px;
        border-top: 1px solid rgba(212, 175, 55, 0.25);
    }

    .cta-step-item {
        align-items: center;
    }

    .cta-step-divider {
        display: none;
    }

    .cta-step-text {
        font-size: 10.5px;
    }

    .contact-map-section {
        padding: 10px 0 50px 0;
    }

    .contact-map-container {
        width: calc(100% - 32px);
    }

    .contact-map-title {
        font-size: 28px;
        line-height: 36px;
    }

    .contact-map-title-white {
        font-size: 20px;
    }

    .contact-map-card {
        border-radius: 18px;
    }

    .contact-map-frame-wrapper {
        height: 340px;
    }

    .contact-map-info-bar {
        padding: 18px 20px;
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }

    .contact-map-info-divider {
        display: none;
    }

    .contact-map-info-action {
        width: 100%;
        margin-left: 0;
        margin-top: 4px;
    }

    .contact-map-directions-btn {
        width: 100%;
        justify-content: center;
        padding: 12px 20px;
    }
}

/* Small Mobile Screens (<= 480px) */
@media screen and (max-width: 480px) {
    .contact-hero-container,
    .contact-locations-container,
    .contact-form-container,
    .contact-golden-cta-container,
    .contact-map-container {
        width: calc(100% - 24px);
    }

    .contact-map-section {
        padding: 0 0 40px 0;
    }

    .contact-map-title {
        font-size: 24px !important;
        line-height: 30px !important;
    }

    .contact-map-title-white {
        font-size: 17px !important;
    }

    .contact-map-desc {
        font-size: 13.5px;
        line-height: 20px;
    }

    .contact-map-card {
        border-radius: 14px;
    }

    .contact-map-frame-wrapper {
        height: 270px;
    }

    .contact-map-info-bar {
        padding: 14px 16px;
        gap: 12px;
    }

    .contact-map-info-val {
        font-size: 13px;
    }

    .contact-hero-title {
        font-size: 28px !important;
        line-height: 1.25 !important;
    }

    .contact-hero-subtitle {
        font-size: 16.5px;
    }

    .contact-hero-desc {
        font-size: 14px;
        line-height: 1.4;
    }

    .locations-main-title,
    .form-heading-title,
    .golden-cta-title {
        font-size: 24px !important;
        line-height: 1.25 !important;
    }

    .locations-script-text {
        font-size: 22px;
    }

    .phone-link {
        font-size: 18px;
    }
}
