/* =========================================
CONTACT SECTION
========================================= */
.submission-toast{
    position:fixed;
    top:18px;
    left:50%;
    z-index:9999;
    width:min(calc(100% - 32px), 620px);
    padding:16px 20px;
    border-radius:12px;
    background:#0f766e;
    color:#ffffff;
    box-shadow:0 18px 42px rgba(15,118,110,0.25);
    font-size:16px;
    font-weight:800;
    line-height:1.45;
    text-align:center;
    opacity:0;
    pointer-events:none;
    transform:translate(-50%, -18px);
    transition:opacity 0.25s ease, transform 0.25s ease;
}

.submission-toast.show{
    opacity:1;
    transform:translate(-50%, 0);
}

.main-heading{
    background:linear-gradient(
        90deg,
        #123d7a
    );
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;

    padding:80px 0 20px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    font-size:25px;
}
.contact-container{

    width:92%;

    margin:70px auto 90px;
    padding:0;

    display:grid;

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

    gap:0;

    align-items:stretch;
}

.contact-info,
.contact-form-wrapper{

    width:95%;
    min-width:0;
    height:100%;
}

/* =========================================
LEFT SIDE
========================================= */

.contact-info{

    position:relative;

    padding:52px;

    border-radius:30px 30px 30px 30px;

    background:
    linear-gradient(
        135deg,
        rgba(255,255,255,0.95),
        rgba(240,248,255,0.95),
        rgba(225,240,255,0.95)
    );

    box-shadow:
        0 15px 40px rgba(0,0,0,0.08);

    overflow:hidden;
}

/* GLOW */

.contact-info::before{

    content:"";

    position:absolute;

    width:350px;

    height:350px;

    background:
    radial-gradient(
        circle,
        rgba(0,174,239,0.18),
        transparent 70%
    );

    top:-120px;

    right:-120px;

    border-radius:50%;
}

/* =========================================
HEADINGS
========================================= */

.contact-heading span{

    color:#807f7f;

    font-weight:800;

    letter-spacing:2px;

    font-size:21px;
}

.contact-heading h2{

    font-size:52px;

    margin:20px 0;

    line-height:1.15;

    color:#0f172a;
}

.contact-heading h2 span{

    background:
    linear-gradient(
        90deg,
        #00AEEF,
        #123d7a
    );

    -webkit-background-clip:text;

    -webkit-text-fill-color:transparent;
}

.contact-heading p{

    font-size:17px;

    line-height:1.8;

    color:#475569;

    margin-bottom:40px;
}

/* =========================================
CONTACT CARDS
========================================= */

.contact-cards{

    display:flex;

    flex-direction:column;

    gap:20px;
}

.contact-card{

    display:flex;

    align-items:center;

    gap:20px;

    padding:22px;

    border-radius:22px;

    background:rgba(255,255,255,0.7);

    border:1px solid rgba(0,174,239,0.12);

    transition:0.35s ease;

    backdrop-filter:blur(10px);
}

.contact-card:hover{

    transform:translateY(-6px);

    box-shadow:
        0 12px 30px rgba(0,174,239,0.15);
}

.contact-icon{

    width:65px;

    height:65px;

    border-radius:18px;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:30px;

    background:
    linear-gradient(
        135deg,
        #00AEEF,
        #123d7a
    );

    color:#ffffff;

    box-shadow:
        0 10px 25px rgba(0,174,239,0.3);
}

.contact-card h3{

    font-size:20px;

    margin-bottom:6px;

    color:#0f172a;
}

.contact-card p{

    color:#475569;

    font-size:15px;
}

/* =========================================
SOCIAL LINKS
========================================= */
.contact-socials{
    margin-top:40px;
    display:flex;
    gap:16px;
}

.contact-socials a{
    width:60px;
    height:60px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:50%;

    text-decoration:none;

    background:#ffffff;

    border:1px solid rgba(0,174,239,0.2);

    color:#0f172a;

    font-size:24px;

    transition:all 0.35s ease;
}

.contact-socials a i{
    color:currentColor;
    transition:color 0.35s ease;
}

.contact-socials a.LinkedIn{
    color:#0A66C2;
}

.contact-socials a.WhatsApp{
    color:#25D366;
}

.contact-socials a.Instagram{
    color:#dd2a7b;
}

.contact-socials a.Twitter{
    color:#000000;
}

/* LinkedIn */
.contact-socials a.LinkedIn:hover,
.contact-socials a.LinkedIn:focus-visible,
.contact-socials a.LinkedIn:active{
    background:#0A66C2 !important;
    color:#ffffff !important;
    border-color:#0A66C2 !important;
    transform:translateY(-5px) scale(1.08);
    box-shadow:0 10px 25px rgba(10,102,194,0.4);
}

/* WhatsApp */
.contact-socials a.WhatsApp:hover,
.contact-socials a.WhatsApp:focus-visible,
.contact-socials a.WhatsApp:active{
    background:#25D366 !important;
    color:#ffffff !important;
    border-color:#25D366 !important;
    transform:translateY(-5px) scale(1.08);
    box-shadow:0 10px 25px rgba(37,211,102,0.4);
}

/* Instagram */
.contact-socials a.Instagram:hover,
.contact-socials a.Instagram:focus-visible,
.contact-socials a.Instagram:active{
    background:linear-gradient(
        135deg,
        #f58529,
        #dd2a7b,
        #8134af,
        #515bd4
    );
    color:#ffffff !important;
    border-color:#dd2a7b !important;
    transform:translateY(-5px) scale(1.08);
    box-shadow:0 10px 25px rgba(221,42,123,0.4);
}

/* Twitter */
.contact-socials a.Twitter:hover,
.contact-socials a.Twitter:focus-visible,
.contact-socials a.Twitter:active{

    background:#000000 !important;

    color:#ffffff !important;

    border-color:#000000 !important;

    transform:translateY(-5px) scale(1.08);

    box-shadow:
        0 10px 25px rgba(0,0,0,0.35);
}

.contact-socials a:hover i,
.contact-socials a:focus-visible i,
.contact-socials a:active i{
    color:#ffffff !important;
}

/* =========================================
FORM
========================================= */

.contact-form-wrapper{

    padding:52px;

    border-radius:30px 30px 30px 30px;

    background:
    linear-gradient(
        135deg,
        rgba(255,255,255,0.95),
        rgba(240,248,255,0.95),
        rgba(225,240,255,0.95)
    );

    box-shadow:
        0 15px 40px rgba(0,0,0,0.08);

    position:relative;

    overflow:hidden;
}

/* =========================================
INPUTS
========================================= */

.contact-form{

    display:flex;

    flex-direction:column;

    gap:28px;
    height:100%;
}

.input-group{

    position:relative;
}

.input-group input,
.input-group textarea{

    width:100%;

    padding:20px;

    border-radius:18px;

    border:1px solid rgba(0,174,239,0.18);

    background:rgba(255,255,255,0.85);

    font-size:16px;

    outline:none;

    transition:0.3s ease;
}

.input-group textarea{

    min-height:180px;

    resize:none;
}

/* FOCUS */

.input-group input:focus,
.input-group textarea:focus{

    border-color:#00AEEF;

    box-shadow:
        0 0 0 4px rgba(0,174,239,0.12);
}

/* FLOAT LABEL */

.input-group label{

    position:absolute;

    left:20px;

    top:18px;

    color:#64748b;

    pointer-events:none;

    transition:0.3s ease;

    background:#ffffff;

    padding:0 8px;
}

.input-group input:focus + label,
.input-group input:valid + label,
.input-group textarea:focus + label,
.input-group textarea:valid + label{

    top:-10px;

    left:14px;

    font-size:13px;

    color:#00AEEF;
}

/* =========================================
BUTTON
========================================= */

.contact-btn{

    padding:18px;

    border:none;

    border-radius:18px;

    font-size:18px;

    font-weight:800;

    cursor:pointer;

    color:#ffffff;

    background:
    linear-gradient(
        135deg,
        #00AEEF,
        #123d7a
    );

    transition:0.35s ease;

    box-shadow:
        0 10px 25px rgba(0,174,239,0.28);
}

.contact-btn:hover{

    transform:translateY(-5px);

    box-shadow:
        0 18px 35px rgba(0,174,239,0.35);
}

.form-status{
    min-height:28px;
    margin:0;
    color:#28445f;
    font-size:16px;
    font-weight:800;
    line-height:1.5;
}

/* =========================================
REQUEST QUOTE
========================================= */

.quote-section{
    width:92%;
    margin:80px auto 100px;
    padding:0;
    display:grid;
    grid-template-columns:minmax(280px, 0.78fr) minmax(0, 1.22fr);
    gap:34px;
    align-items:stretch;
}

.quote-intro,
.quote-form{
    position:relative;
    overflow:hidden;
    border:1px solid rgba(0,174,239,0.14);
    border-radius:30px;
    background:
        linear-gradient(135deg, rgba(255,255,255,0.97), rgba(239,249,255,0.95)),
        linear-gradient(90deg, rgba(0,174,239,0.06) 1px, transparent 1px),
        linear-gradient(0deg, rgba(0,174,239,0.06) 1px, transparent 1px);
    background-size:auto, 42px 42px, 42px 42px;
    box-shadow:0 18px 44px rgba(0,27,68,0.12);
}

.quote-intro{
    padding:46px;
}

.quote-intro::before{
    content:"";
    position:absolute;
    width:260px;
    height:260px;
    right:-95px;
    top:-95px;
    border-radius:50%;
    background:radial-gradient(circle, rgba(0,174,239,0.18), transparent 70%);
}

.quote-intro > *{
    position:relative;
    z-index:1;
}

.quote-intro > span{
    display:inline-flex;
    margin-bottom:18px;
    padding:8px 14px;
    border-radius:999px;
    color:#006c98;
    background:rgba(0,174,239,0.1);
    border:1px solid rgba(0,174,239,0.18);
    font-size:22px;
    font-weight:900;
    letter-spacing:2px;
}

.quote-intro h2{
    margin:0 0 18px;
    color:#001b44;
    font-size:52px;
    font-weight:900;
    line-height:1.1;
}

.quote-intro > p{
    margin:0 0 28px;
    color:#28445f;
    font-size:22px;
    line-height:1.75;
    font-weight:800;
}

.quote-highlights{
    display:grid;
    gap:16px;
}

.quote-highlights article{
    display:grid;
    grid-template-columns:52px 1fr;
    gap:12px 16px;
    padding:18px;
    border-radius:20px;
    background:rgba(255,255,255,0.72);
    border:1px solid rgba(0,174,239,0.12);
}

.quote-highlights i{
    grid-row:span 2;
    width:52px;
    height:52px;
    display:grid;
    place-items:center;
    border-radius:16px;
    color:#ffffff;
    background:linear-gradient(135deg, #001b44, #00aeef);
    font-size:22px;
}

.quote-highlights strong{
    color:#001b44;
    font-size:22px;
    font-weight:900;
}

.quote-highlights p{
    margin:0;
    color:#28445f;
    font-size:20px;
    line-height:1.55;
    font-weight:700;
}

.quote-form{
    padding:40px;
    display:flex;
    flex-direction:column;
    gap:24px;
}

.quote-form-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:20px;
}

.quote-form label{
    display:flex;
    flex-direction:column;
    gap:9px;
    color:#001b44;
    font-size:22px;
    font-weight:900;
}

.quote-form input,
.quote-form select,
.quote-form textarea{
    width:100%;
    min-height:56px;
    padding:15px 16px;
    border:1px solid rgba(0,174,239,0.2);
    border-radius:16px;
    color:#102d49;
    background:rgba(255,255,255,0.9);
    font-size:22px;
    font-weight:800;
    outline:none;
    transition:border-color 0.28s ease, box-shadow 0.28s ease, background 0.28s ease;
}

.quote-form select:required:invalid{
    color:#102d49;
}

.quote-form select option{
    color:#102d49;
    font-weight:800;
}

.quote-form textarea{
    min-height:150px;
    resize:vertical;
    line-height:1.6;
}

.quote-form input:focus,
.quote-form select:focus,
.quote-form textarea:focus{
    border-color:#00aeef;
    background:#ffffff;
    box-shadow:0 0 0 4px rgba(0,174,239,0.12);
}

.quote-btn{
    min-height:60px;
    border:0;
    border-radius:18px;
    color:#ffffff;
    background:linear-gradient(135deg, #001b44, #0077b6 52%, #00aeef);
    box-shadow:0 14px 30px rgba(0,118,182,0.28);
    cursor:pointer;
    font-size:22px;
    font-weight:900;
    transition:transform 0.28s ease, box-shadow 0.28s ease;
}

.quote-btn:hover{
    transform:translateY(-4px);
    box-shadow:0 20px 38px rgba(0,118,182,0.34);
}

.quote-btn:disabled{
    cursor:not-allowed;
    opacity:0.72;
    transform:none;
}

/* =========================================
MAP SECTION
========================================= */

.map-section{

    width:92%;

    height:clamp(480px, 50vw, 680px);

    margin: 80px auto 100px;
    padding:0;

    border-radius:32px;

    overflow:hidden;

    position:relative;

    box-shadow:
        0 20px 40px rgba(0,0,0,0.12);
}

.map-section iframe{

    display:block;

    width:100%;

    height:100%;

    border:none;

    filter:grayscale(10%) contrast(1.05);
}

/* OVERLAY */

.map-overlay{

    position:absolute;

    top:40px;

    left:15px;

    right:auto;

    z-index:10;

    padding:28px 3px 28px 35px;

    border-radius:22px;

    background:
    rgba(255,255,255,0.78);

    backdrop-filter:blur(14px);

    max-width:450px;

    box-shadow:
        0 12px 30px rgba(0,0,0,0.12);
}

.map-overlay h2{

    font-size:36px;

    margin-bottom:12px;

    color:#0f172a;
}

.map-overlay p{

    line-height:1.7;
    font-size: larger;

    color:#475569;
}

/* =========================================
RESPONSIVE
========================================= */

@media(max-width:992px){

    .main-heading{
        padding:60px 20px 10px;
        text-align:center;
        font-size:22px;
    }

    .contact-container{

        grid-template-columns:1fr;
        max-width:760px;
        width:90%;
        gap:35px;
    }

    .quote-section{
        width:90%;
        max-width:820px;
        grid-template-columns:1fr;
        gap:28px;
    }

    .quote-intro,
    .quote-form{
        padding:34px;
        border-radius:26px;
    }

    .quote-intro h2{
        font-size:36px;
    }

    .quote-intro > span,
    .quote-intro > p,
    .quote-highlights strong,
    .quote-form label,
    .quote-form input,
    .quote-form select,
    .quote-form textarea,
    .quote-btn{
        font-size:20px;
    }

    .quote-highlights p{
        font-size:18px;
    }

    .contact-info,
    .contact-form-wrapper{

        border-radius:30px;
    }

    .contact-heading h2{

        font-size:40px;
    }

    .map-section{
        width:90%;
        height:520px;
        margin:60px auto 80px;
    }

    .map-overlay{
        max-width:390px;
    }

    .contact-socials{
        flex-wrap:wrap;
    }

    .contact-socials a{
        width:56px;
        height:56px;
        font-size:23px;
    }
}

@media(max-width:768px){

    .main-heading{
        padding:42px 16px 0;
        font-size:18px;
        line-height:1.35;
    }

    .contact-container{

        width:92%;
        margin:36px auto 54px;
        gap:24px;
    }

    .quote-section{
        width:92%;
        margin:44px auto 58px;
        gap:22px;
    }

    .quote-intro,
    .quote-form{
        padding:24px 20px;
        border-radius:22px;
    }

    .quote-intro h2{
        font-size:28px;
    }

    .quote-intro > span,
    .quote-intro > p,
    .quote-highlights strong,
    .quote-form label,
    .quote-form input,
    .quote-form select,
    .quote-form textarea,
    .quote-btn{
        font-size:18px;
    }

    .quote-highlights p{
        font-size:16px;
    }

    .quote-form-grid{
        grid-template-columns:1fr;
        gap:16px;
    }

    .quote-highlights article{
        grid-template-columns:44px 1fr;
        padding:16px;
    }

    .quote-highlights i{
        width:44px;
        height:44px;
        font-size:18px;
    }

    .contact-info,
    .contact-form-wrapper{

        width:100%;
        padding:24px 20px;
        border-radius:24px;
    }

    .contact-heading span{
        font-size:16px;
        letter-spacing:1.3px;
    }

    .contact-heading h2{

        font-size:30px;
        line-height:1.2;
        margin:14px 0;
    }

    .contact-heading p{
        font-size:15px;
        line-height:1.7;
        margin-bottom:28px;
    }

    .contact-card{
        align-items:flex-start;
        gap:14px;
        padding:18px;
        border-radius:18px;
    }

    .contact-icon{
        width:46px;
        height:46px;
        min-width:46px;
        font-size:18px;
    }

    .input-group input,
    .input-group textarea{
        padding:16px;
        border-radius:15px;
        font-size:15px;
    }

    .contact-btn{
        padding:16px;
        border-radius:15px;
        font-size:16px;
    }

    .contact-socials{
        justify-content:center;
        gap:14px;
        margin-top:30px;
    }

    .contact-socials a{
        width:52px;
        height:52px;
        font-size:22px;
    }

    .map-section{

        width:92%;

        height:460px;
        margin:44px auto 58px;
        border-radius:22px;
    }

    .map-overlay{

        left:15px;
        right:15px;

        top:15px;

        padding:20px;

        max-width:none;
    }

    .map-overlay h2{

        font-size:24px;
    }

    .map-overlay p{
        font-size:15px;
        line-height:1.6;
    }
}

/* Content-only typography boost. Headings stay unchanged. */
.contact-heading p,
.contact-card p,
.input-group input,
.input-group textarea,
.input-group label,
.contact-btn,
.map-overlay p{
    font-size:22px !important;
    font-weight:800 !important;
}

.map-overlay p{
    font-size:24px !important;
    font-weight:900 !important;
}

.contact-heading > span{
    font-size:22px !important;
    font-weight:900 !important;
}

@media(max-width:992px){
    .contact-heading p,
    .contact-card p,
    .input-group input,
    .input-group textarea,
    .input-group label,
    .contact-btn,
    .map-overlay p,
    .contact-heading > span{
        font-size:20px !important;
    }

    .map-overlay p{
        font-size:21px !important;
        font-weight:900 !important;
    }
}

@media(max-width:768px){
    .contact-heading p,
    .contact-card p,
    .input-group input,
    .input-group textarea,
    .input-group label,
    .contact-btn,
    .map-overlay p,
    .contact-heading > span{
        font-size:18px !important;
        font-weight:800 !important;
    }

    .map-overlay p{
        font-size:18px !important;
        font-weight:900 !important;
    }
}

/* Content-only color tuning. Headings stay unchanged. */
.contact-heading p,
.contact-card p,
.map-overlay p{
    color:#28445f !important;
}

.contact-heading > span{
    color:#006c98 !important;
}

.input-group input,
.input-group textarea{
    color:#102d49 !important;
}

.input-group label{
    color:#506982 !important;
}

.input-group input:focus + label,
.input-group input:valid + label,
.input-group textarea:focus + label,
.input-group textarea:valid + label{
    color:#0077a8 !important;
}

.contact-btn{
    color:#ffffff !important;
}

/* Responsive refinement: preserve desktop, improve tablet/mobile spacing and text scale. */
@media(min-width:900px) and (max-width:1024px){
    .contact-container{
        width:94%;
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:22px;
        margin:52px auto 70px;
    }

    .contact-info,
    .contact-form-wrapper{
        width:100%;
        padding:32px 26px;
        border-radius:24px;
    }

    .contact-heading h2{
        font-size:34px;
    }

    .contact-card{
        gap:14px;
        padding:16px;
    }

    .contact-icon{
        width:48px;
        height:48px;
        min-width:48px;
        font-size:20px;
    }

    .quote-section{
        width:94%;
        grid-template-columns:minmax(260px, 0.82fr) minmax(0, 1.18fr);
        gap:22px;
    }

    .quote-intro,
    .quote-form{
        padding:28px 24px;
    }

    .quote-form-grid{
        gap:16px;
    }

    .map-section{
        width:94%;
        height:430px;
        margin:42px auto 58px;
        border-radius:22px;
    }

    .map-overlay{
        top:36px;
        left:42px;
        max-width:320px;
        padding:20px 22px;
        border-radius:16px;
    }

    .map-overlay h2{
        font-size:28px;
        line-height:1.12;
        margin-bottom:10px;
    }

    .map-overlay p{
        font-size:15px !important;
        line-height:1.48;
        font-weight:800 !important;
    }
}

@media(max-width:899px){
    .contact-container,
    .quote-section{
        max-width:760px;
    }

    .contact-info,
    .contact-form-wrapper,
    .quote-intro,
    .quote-form{
        width:100%;
    }
}

@media(max-width:768px){
    .map-overlay{
        top:54px;
        padding:18px 3px 18px 18px;
    }
}

@media(min-width:641px) and (max-width:768px){
    .map-overlay{
        top:24px;
        left:4px;
        right:auto;
        max-width:315px;
        padding:18px 10px 18px 20px;
        border-radius:16px;
    }

    .map-overlay h2{
        font-size:22px;
        line-height:1.15;
        margin-bottom:8px;
    }

    .map-overlay p{
        font-size:14px !important;
        line-height:1.45;
    }
}

@media(max-width:640px){
    .main-heading h1{
        font-size:22px;
        line-height:1.25;
        text-align:center;
    }

    .contact-container,
    .quote-section,
    .map-section{
        width:94%;
    }

    .contact-container{
        margin:26px auto 34px;
        gap:14px;
    }

    .contact-info,
    .contact-form-wrapper,
    .quote-intro,
    .quote-form{
        padding:16px 13px;
        border-radius:14px;
    }

    .contact-heading h2{
        font-size:22px;
        line-height:1.18;
    }

    .contact-cards{
        gap:9px;
    }

    .contact-card{
        padding:10px;
        gap:9px;
        border-radius:11px;
    }

    .contact-card h3{
        font-size:14px;
        margin-bottom:3px;
    }

    .contact-icon{
        width:34px;
        height:34px;
        min-width:34px;
        border-radius:10px;
        font-size:14px;
    }

    .contact-form{
        gap:14px;
    }

    .input-group input,
    .input-group textarea{
        padding:11px 12px;
        border-radius:10px;
    }

    .input-group textarea{
        min-height:112px;
    }

    .input-group label{
        top:11px;
        left:12px;
        padding:0 5px;
    }

    .contact-heading p,
    .contact-card p,
    .input-group input,
    .input-group textarea,
    .input-group label,
    .contact-btn,
    .quote-intro > p,
    .quote-highlights p,
    .quote-form label,
    .quote-form input,
    .quote-form select,
    .quote-form textarea,
    .quote-btn{
        font-size:12px !important;
        line-height:1.38;
        font-weight:700 !important;
    }

    .contact-btn{
        padding:12px;
        border-radius:10px;
        font-size:13px !important;
    }

    .quote-section{
        margin:32px auto 40px;
        gap:14px;
    }

    .quote-intro h2{
        font-size:22px;
        line-height:1.16;
        margin-bottom:10px;
    }

    .quote-intro > span{
        font-size:12px;
        letter-spacing:1px;
        padding:6px 9px;
        margin-bottom:10px;
    }

    .quote-intro > p{
        margin-bottom:14px;
    }

    .quote-highlights{
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:8px;
    }

    .quote-highlights article{
        grid-template-columns:1fr;
        gap:7px;
        padding:10px;
        border-radius:11px;
    }

    .quote-highlights i{
        width:32px;
        height:32px;
        border-radius:9px;
        font-size:13px;
        grid-row:auto;
    }

    .quote-highlights strong{
        font-size:13px;
        line-height:1.18;
    }

    .quote-highlights p{
        font-size:11px !important;
        line-height:1.35;
    }

    .quote-form{
        gap:13px;
    }

    .quote-form-grid{
        grid-template-columns:1fr;
        gap:10px;
    }

    .quote-form label{
        gap:6px;
    }

    .quote-form input,
    .quote-form select,
    .quote-form textarea{
        min-height:40px;
        padding:10px 11px;
        border-radius:10px;
    }

    .quote-form textarea{
        min-height:104px;
    }

    .quote-btn{
        min-height:42px;
        border-radius:10px;
        font-size:13px !important;
    }

    .map-section{
        height:360px;
        margin:30px auto 42px;
        border-radius:14px;
    }

    .map-overlay{
        top:32px;
        left:4px;
        right:10px;
        max-width:220px;
        padding:12px 3px 12px 12px;
        border-radius:12px;
    }

    .map-overlay h2{
        font-size:17px;
        line-height:1.12;
        margin-bottom:6px;
    }

    .map-overlay p{
        font-size:10.5px !important;
        line-height:1.35;
    }
}

@media(max-width:360px){
    .quote-highlights{
        grid-template-columns:1fr;
    }

    .contact-info,
    .contact-form-wrapper,
    .quote-intro,
    .quote-form{
        padding:14px 11px;
    }

    .map-overlay{
        top:32px;
        left:3px;
        max-width:190px;
    }
}

/* Final visibility pass for desktop contact and request-quote sections. */
@media(min-width:1025px){
    .main-heading{
        padding:42px 0 10px;
        font-size:20px;
    }

    .contact-container{
        width:min(92%, 1240px);
        margin:42px auto 58px;
        gap:24px;
    }

    .contact-info,
    .contact-form-wrapper{
        width:100%;
        padding:30px 28px;
        border-radius:20px;
    }

    .contact-heading span,
    .contact-heading > span{
        font-size:16px !important;
        letter-spacing:1.2px;
    }

    .contact-heading h2{
        font-size:36px;
        line-height:1.16;
        margin:14px 0;
    }

    .contact-heading p,
    .contact-card p,
    .input-group input,
    .input-group textarea,
    .input-group label,
    .contact-btn,
    .map-overlay p{
        font-size:15px !important;
        line-height:1.48 !important;
    }

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

    .contact-icon{
        width:44px;
        height:44px;
        min-width:44px;
        border-radius:12px;
        font-size:18px;
    }

    .contact-card h3{
        font-size:17px;
    }

    .contact-form{
        gap:18px;
    }

    .input-group input,
    .input-group textarea{
        padding:14px 15px;
        border-radius:12px;
    }

    .input-group textarea{
        min-height:132px;
    }

    .input-group label{
        top:14px;
        left:15px;
    }

    .contact-btn{
        padding:14px 16px;
        border-radius:12px;
    }

    .quote-section{
        width:min(92%, 1240px);
        margin:34px auto 58px;
        grid-template-columns:minmax(260px, 0.75fr) minmax(0, 1.25fr);
        gap:24px;
    }

    .quote-intro,
    .quote-form{
        padding:28px 30px;
        border-radius:20px;
    }

    .quote-intro > span{
        margin-bottom:14px;
        padding:7px 12px;
        font-size:15px;
        letter-spacing:1.5px;
    }

    .quote-intro h2{
        margin-bottom:14px;
        font-size:38px;
        line-height:1.1;
    }

    .quote-intro > p,
    .quote-highlights p,
    .quote-form label,
    .quote-form input,
    .quote-form select,
    .quote-form textarea,
    .quote-btn{
        font-size:16px !important;
        line-height:1.45 !important;
    }

    .quote-highlights{
        gap:12px;
    }

    .quote-highlights article{
        grid-template-columns:42px 1fr;
        gap:8px 12px;
        padding:12px;
        border-radius:14px;
    }

    .quote-highlights i{
        width:42px;
        height:42px;
        border-radius:12px;
        font-size:17px;
    }

    .quote-highlights strong{
        font-size:17px;
        line-height:1.18;
    }

    .quote-form{
        gap:18px;
    }

    .quote-form-grid{
        gap:16px;
    }

    .quote-form label{
        gap:7px;
    }

    .quote-form input,
    .quote-form select,
    .quote-form textarea{
        min-height:46px;
        padding:12px 14px;
        border-radius:12px;
    }

    .quote-form textarea{
        min-height:118px;
    }

    .quote-btn{
        min-height:48px;
        border-radius:13px;
    }

    .map-section{
        width:min(92%, 1240px);
        height:420px;
        margin:42px auto 58px;
        border-radius:20px;
    }

    .map-overlay{
        top:28px;
        left:28px;
        max-width:330px;
        padding:20px 24px;
        border-radius:16px;
    }

    .map-overlay h2{
        font-size:28px;
    }
}

@media(min-width:1025px) and (max-width:1400px){
    .quote-section{
        width:91%;
        gap:20px;
    }

    .quote-intro,
    .quote-form{
        padding:24px 26px;
    }

    .quote-intro h2{
        font-size:34px;
    }

    .quote-intro > p,
    .quote-highlights p,
    .quote-form label,
    .quote-form input,
    .quote-form select,
    .quote-form textarea,
    .quote-btn{
        font-size:15px !important;
    }

    .quote-highlights strong{
        font-size:16px;
    }
}
