/* =========================================================
   SATOMEN — CONTACT
========================================================= */

.contact-page{
    background:#fff;
    color:var(--ink);
}

.contact-wrap{
    width:100%;
    padding-left:var(--pad);
    padding-right:var(--pad);
}

.contact-label{
    display:block;
    color:var(--orange);
    font-size:9px;
    font-weight:700;
    line-height:1;
    letter-spacing:.15em;
}


/* =========================================================
   HERO
========================================================= */

.contact-hero{
    position:relative;
    height:92svh;
    min-height:720px;
    overflow:hidden;
    background:var(--deep);
    color:#fff;
}

.contact-hero-bg,
.contact-hero-overlay{
    position:absolute;
    inset:0;
}

.contact-hero-bg img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.contact-hero-overlay{
    background:
        linear-gradient(
            90deg,
            rgba(1,28,44,.97) 0%,
            rgba(1,28,44,.82) 43%,
            rgba(1,28,44,.28) 100%
        ),
        linear-gradient(
            0deg,
            rgba(1,28,44,.75),
            transparent 55%
        );
}

.contact-hero-content{
    position:relative;
    z-index:2;
    height:100%;
    padding:120px var(--pad) 28px;
    display:flex;
    flex-direction:column;
}

.contact-hero-meta{
    display:flex;
    justify-content:space-between;
    padding-bottom:19px;
    border-bottom:1px solid rgba(255,255,255,.25);
    color:rgba(255,255,255,.55);
    font-size:9px;
    font-weight:700;
    letter-spacing:.14em;
}

.contact-hero-meta span:first-child{
    color:var(--orange);
}

.contact-hero-main{
    flex:1;
    display:grid;
    grid-template-columns:1.35fr .45fr;
    gap:8vw;
    align-items:center;
}

.contact-hero-main h1{
    margin:0;
    font-size:clamp(75px,9vw,145px);
    line-height:.78;
    font-weight:400;
    letter-spacing:-.07em;
}

.contact-hero-main h1 span{
    color:var(--orange);
}

.contact-hero-main p{
    max-width:400px;
    margin:0;
    color:rgba(255,255,255,.7);
    font-size:16px;
    line-height:1.75;
}

.contact-hero-bottom{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    padding-top:20px;
    border-top:1px solid rgba(255,255,255,.25);
    color:rgba(255,255,255,.55);
    font-size:8px;
    font-weight:700;
    letter-spacing:.14em;
}

.contact-hero-bottom span:nth-child(2),
.contact-hero-bottom span:nth-child(3){
    text-align:center;
}

.contact-hero-bottom span:last-child{
    text-align:right;
}


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

.contact-form-section{
    padding:140px 0;
    background:#fff;
}

.contact-form-layout{
    display:grid;
    grid-template-columns:.72fr 1.28fr;
    gap:10vw;
}


/* INTRO */

.contact-form-intro h2{
    margin:35px 0 30px;
    color:var(--ink);
    font-size:clamp(58px,6vw,96px);
    line-height:.86;
    font-weight:400;
    letter-spacing:-.06em;
}

.contact-form-intro h2 span{
    color:var(--sea);
}

.contact-form-intro p{
    max-width:390px;
    margin:0;
    color:var(--muted);
    font-size:15px;
    line-height:1.8;
}


/* FORM */

.contact-form{
    padding-top:5px;
    border-top:1px solid var(--ink);
}

.contact-form-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:40px;
}

.contact-field{
    padding:27px 0 25px;
    border-bottom:1px solid var(--line);
}

.contact-field label{
    display:block;
    margin-bottom:14px;
    color:#78848a;
    font-size:8px;
    font-weight:700;
    letter-spacing:.14em;
}

.contact-field input,
.contact-field select,
.contact-field textarea{
    width:100%;
    padding:4px 0;
    border:0;
    outline:0;
    border-radius:0;
    background:transparent;
    color:var(--ink);
    font:inherit;
    font-size:17px;
}

.contact-field input::placeholder,
.contact-field textarea::placeholder{
    color:#b2b9bc;
}

.contact-field select{
    cursor:pointer;
}

.contact-message textarea{
    min-height:130px;
    resize:vertical;
}

.contact-submit{
    width:210px;
    height:58px;
    margin-top:35px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:0 20px;
    border:0;
    background:var(--deep);
    color:#fff;
    cursor:pointer;
    font-size:9px;
    font-weight:700;
    letter-spacing:.13em;
    transition:background .25s ease;
}

.contact-submit span:last-child{
    color:var(--orange);
    font-size:17px;
}

.contact-submit:hover{
    background:var(--sea);
}


/* =========================================================
   CONTACT DETAILS
========================================================= */

.contact-details-section{
    padding:130px 0;
    background:#f4f4f1;
}

.contact-details-heading{
    display:grid;
    grid-template-columns:1fr 330px;
    gap:70px;
    align-items:end;
    margin-bottom:80px;
}

.contact-details-heading h2{
    margin:35px 0 0;
    color:var(--ink);
    font-size:clamp(58px,6.5vw,100px);
    line-height:.85;
    font-weight:400;
    letter-spacing:-.06em;
}

.contact-details-heading h2 span{
    color:var(--sea);
}

.contact-details-heading > p{
    margin:0;
    color:var(--muted);
    font-size:14px;
    line-height:1.75;
}


/* DETAILS */

.contact-details-grid{
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    border-top:1px solid var(--ink);
}

.contact-detail{
    min-height:220px;
    padding:28px 35px 20px 0;
    border-right:1px solid var(--line);
}

.contact-detail + .contact-detail{
    padding-left:35px;
}

.contact-detail:last-child{
    padding-right:0;
    border-right:0;
}

.contact-detail-label{
    display:block;
    margin-bottom:55px;
    color:var(--orange);
    font-size:8px;
    font-weight:700;
    letter-spacing:.14em;
}

.contact-detail > a,
.contact-phone-numbers a{
    color:var(--ink);
    font-size:clamp(20px,2vw,29px);
    line-height:1.35;
    font-weight:400;
    letter-spacing:-.025em;
}

.contact-detail > a:hover,
.contact-phone-numbers a:hover{
    color:var(--sea);
}

.contact-phone-numbers{
    display:flex;
    flex-direction:column;
    gap:8px;
}

.contact-address address{
    color:var(--ink);
    font-size:17px;
    line-height:1.65;
    font-style:normal;
}


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

.contact-map-section{
    background:#fff;
}

.contact-map-header{
    padding:110px 0 75px;
}

.contact-map-header-inner{
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:60px;
}

.contact-map-header h2{
    margin:32px 0 0;
    color:var(--ink);
    font-size:clamp(55px,6vw,90px);
    line-height:.85;
    font-weight:400;
    letter-spacing:-.06em;
}

.contact-map-header h2 span{
    color:var(--sea);
}

.contact-map-link{
    width:260px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:15px 0;
    border-top:1px solid var(--ink);
    border-bottom:1px solid var(--ink);
    color:var(--ink);
    font-size:8px;
    font-weight:700;
    letter-spacing:.13em;
}

.contact-map-link span{
    color:var(--orange);
    font-size:17px;
}


/* ACTUAL MAP */

.contact-map{
    width:100%;
    height:620px;
    overflow:hidden;
    background:#eee;
}

.contact-map iframe{
    display:block;
    width:100%;
    height:100%;
}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:1000px){

    .contact-hero-main{
        grid-template-columns:1fr;
        align-content:center;
        gap:40px;
    }

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

    .contact-details-heading{
        grid-template-columns:1fr;
        gap:35px;
    }

    .contact-details-heading > p{
        max-width:450px;
    }

    .contact-details-grid{
        grid-template-columns:1fr;
    }

    .contact-detail,
    .contact-detail + .contact-detail{
        min-height:auto;
        padding:35px 0;
        border-right:0;
        border-bottom:1px solid var(--line);
    }

    .contact-detail-label{
        margin-bottom:25px;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:650px){

    /* HERO */

    .contact-hero{
        height:auto;
        min-height:750px;
    }

    .contact-hero-content{
        min-height:750px;
        padding-top:105px;
    }

    .contact-hero-main h1{
        font-size:clamp(58px,17vw,84px);
    }

    .contact-hero-meta span:last-child{
        display:none;
    }

    .contact-hero-bottom{
        grid-template-columns:1fr 1fr;
        gap:12px;
    }

    .contact-hero-bottom span{
        text-align:left !important;
    }


    /* FORM */

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

    .contact-form-intro h2{
        font-size:clamp(50px,15vw,70px);
    }

    .contact-form-row{
        grid-template-columns:1fr;
        gap:0;
    }

    .contact-submit{
        width:100%;
    }


    /* DETAILS */

    .contact-details-section{
        padding:90px 0;
    }

    .contact-details-heading{
        margin-bottom:55px;
    }

    .contact-details-heading h2{
        font-size:clamp(50px,15vw,70px);
    }

    .contact-detail > a,
    .contact-phone-numbers a{
        font-size:22px;
    }


    /* MAP */

    .contact-map-header{
        padding:80px 0 60px;
    }

    .contact-map-header-inner{
        flex-direction:column;
        align-items:stretch;
        gap:50px;
    }

    .contact-map-header h2{
        font-size:clamp(50px,15vw,70px);
    }

    .contact-map-link{
        width:100%;
    }

    .contact-map{
        height:480px;
    }

}



/* request_quote */

/* =========================================================
   SATOMEN — REQUEST A QUOTE
========================================================= */

.quote-page{
    background:#fff;
    color:var(--ink);
}

.quote-wrap{
    width:100%;
    padding-left:var(--pad);
    padding-right:var(--pad);
}

.quote-label{
    display:block;
    color:var(--orange);
    font-size:13px;
    line-height:1.2;
    font-weight:700;
    letter-spacing:.1em;
}


/* =========================================================
   HERO
========================================================= */

.quote-hero{
    position:relative;
    height:92svh;
    min-height:720px;
    overflow:hidden;
    background:var(--deep);
    color:#fff;
}

.quote-hero-bg,
.quote-hero-overlay{
    position:absolute;
    inset:0;
}

.quote-hero-bg img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.quote-hero-overlay{
    background:
        linear-gradient(
            90deg,
            rgba(1,28,44,.97) 0%,
            rgba(1,28,44,.82) 45%,
            rgba(1,28,44,.28) 100%
        ),
        linear-gradient(
            0deg,
            rgba(1,28,44,.7),
            transparent 55%
        );
}

.quote-hero-content{
    position:relative;
    z-index:2;
    height:100%;
    padding:120px var(--pad) 28px;
    display:flex;
    flex-direction:column;
}

.quote-hero-meta{
    display:flex;
    justify-content:space-between;
    padding-bottom:20px;
    border-bottom:1px solid rgba(255,255,255,.25);
    color:rgba(255,255,255,.65);
    font-size:12px;
    font-weight:700;
    letter-spacing:.1em;
}

.quote-hero-meta span:first-child{
    color:var(--orange);
}

.quote-hero-main{
    flex:1;
    display:grid;
    grid-template-columns:1.4fr .5fr;
    gap:7vw;
    align-items:center;
}

.quote-hero-main h1{
    max-width:1100px;
    margin:0;
    font-size:clamp(70px,8.2vw,132px);
    line-height:.82;
    font-weight:400;
    letter-spacing:-.065em;
}

.quote-hero-main h1 span{
    color:var(--orange);
}

.quote-hero-main p{
    max-width:430px;
    margin:0;
    color:rgba(255,255,255,.78);
    font-size:18px;
    line-height:1.7;
}

.quote-hero-bottom{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    padding-top:20px;
    border-top:1px solid rgba(255,255,255,.25);
    color:rgba(255,255,255,.65);
    font-size:12px;
    font-weight:700;
    letter-spacing:.1em;
}

.quote-hero-bottom span:nth-child(2),
.quote-hero-bottom span:nth-child(3){
    text-align:center;
}

.quote-hero-bottom span:last-child{
    text-align:right;
}


/* =========================================================
   QUOTE SECTION
========================================================= */

.quote-section{
    padding:140px 0 150px;
    background:#fff;
}


/* =========================================================
   INTRO
========================================================= */

.quote-intro{
    display:grid;
    grid-template-columns:1fr 420px;
    gap:80px;
    align-items:end;
    padding-bottom:85px;
}

.quote-intro h2{
    margin:35px 0 0;
    color:var(--ink);
    font-size:clamp(60px,6.5vw,100px);
    line-height:.85;
    font-weight:400;
    letter-spacing:-.06em;
}

.quote-intro h2 span{
    color:var(--sea);
}

.quote-intro > p{
    margin:0;
    color:var(--muted);
    font-size:17px;
    line-height:1.75;
}


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

.quote-form{
    border-top:1px solid var(--ink);
}


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

.quote-form-section{
    display:grid;
    grid-template-columns:340px 1fr;
    gap:80px;
    padding:70px 0;
    border-bottom:1px solid var(--line);
}

.quote-form-heading > span{
    display:block;
    margin-bottom:25px;
    color:var(--orange);
    font-size:12px;
    line-height:1.2;
    font-weight:700;
    letter-spacing:.1em;
}

.quote-form-heading h3{
    max-width:300px;
    margin:0;
    color:var(--ink);
    font-size:34px;
    line-height:1.08;
    font-weight:400;
    letter-spacing:-.035em;
}


/* =========================================================
   FIELDS
========================================================= */

.quote-fields{
    min-width:0;
}

.quote-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:45px;
}

.quote-field{
    margin-bottom:38px;
    padding-bottom:28px;
    border-bottom:1px solid var(--line);
}

.quote-field label{
    display:block;
    margin-bottom:17px;
    color:#66767d;
    font-size:12px;
    line-height:1.3;
    font-weight:700;
    letter-spacing:.09em;
}

.quote-field input,
.quote-field select,
.quote-field textarea{
    display:block;
    width:100%;
    padding:5px 0;
    border:0;
    outline:0;
    border-radius:0;
    background:transparent;
    color:var(--ink);
    font:inherit;
    font-size:18px;
    line-height:1.5;
}

.quote-field input::placeholder,
.quote-field textarea::placeholder{
    color:#a6afb3;
    opacity:1;
}

.quote-field select{
    cursor:pointer;
}

.quote-field select option,
.quote-field select optgroup{
    color:var(--ink);
    background:#fff;
}

.quote-field select optgroup{
    font-weight:700;
}

.quote-field:focus-within{
    border-bottom-color:var(--sea);
}

.quote-message{
    margin-bottom:0;
}

.quote-message textarea{
    min-height:150px;
    resize:vertical;
}


/* =========================================================
   SUBMIT
========================================================= */

.quote-submit{
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:50px;
    padding-top:42px;
}

.quote-submit p{
    max-width:320px;
    margin:0;
    color:var(--muted);
    font-size:14px;
    line-height:1.65;
    text-align:right;
}

.quote-submit button{
    width:290px;
    height:66px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 22px;
    border:0;
    background:var(--deep);
    color:#fff;
    cursor:pointer;
    font-size:12px;
    font-weight:700;
    letter-spacing:.08em;
    transition:background .25s ease;
}

.quote-submit button span:last-child{
    color:var(--orange);
    font-size:21px;
    font-weight:400;
}

.quote-submit button:hover{
    background:var(--sea);
}

.quote-submit button:hover span:last-child{
    color:#fff;
}


/* =========================================================
   DIRECT CONTACT
========================================================= */

.quote-contact{
    padding:125px 0;
    background:#f3f3ef;
}

.quote-contact-inner{
    display:grid;
    grid-template-columns:1fr 480px;
    gap:90px;
    align-items:end;
}

.quote-contact-heading h2{
    margin:35px 0 0;
    color:var(--ink);
    font-size:clamp(58px,6vw,92px);
    line-height:.86;
    font-weight:400;
    letter-spacing:-.06em;
}

.quote-contact-heading h2 span{
    color:var(--sea);
}

.quote-contact-details > p{
    max-width:430px;
    margin:0 0 40px;
    color:var(--muted);
    font-size:17px;
    line-height:1.75;
}


/* =========================================================
   CONTACT LINKS
========================================================= */

.quote-contact-links{
    border-top:1px solid var(--ink);
}

.quote-contact-links a{
    display:grid;
    grid-template-columns:115px 1fr;
    gap:25px;
    align-items:center;
    padding:23px 0;
    border-bottom:1px solid var(--line);
}

.quote-contact-links small{
    color:var(--orange);
    font-size:11px;
    font-weight:700;
    letter-spacing:.09em;
}

.quote-contact-links span{
    overflow-wrap:anywhere;
    color:var(--ink);
    font-size:18px;
    line-height:1.4;
    transition:color .2s ease;
}

.quote-contact-links a:hover span{
    color:var(--sea);
}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:1000px){

    .quote-hero-main{
        grid-template-columns:1fr;
        align-content:center;
        gap:40px;
    }

    .quote-hero-main p{
        max-width:520px;
    }

    .quote-intro{
        grid-template-columns:1fr;
        gap:40px;
    }

    .quote-intro > p{
        max-width:560px;
    }

    .quote-form-section{
        grid-template-columns:230px 1fr;
        gap:50px;
    }

    .quote-contact-inner{
        grid-template-columns:1fr;
        gap:55px;
    }

    .quote-contact-details{
        max-width:600px;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:650px){

    /* HERO */

    .quote-hero{
        height:auto;
        min-height:760px;
    }

    .quote-hero-content{
        min-height:760px;
        padding-top:105px;
    }

    .quote-hero-main{
        gap:35px;
    }

    .quote-hero-main h1{
        font-size:clamp(54px,15vw,76px);
    }

    .quote-hero-main p{
        max-width:100%;
        font-size:16px;
    }

    .quote-hero-meta{
        font-size:10px;
    }

    .quote-hero-meta span:last-child{
        display:none;
    }

    .quote-hero-bottom{
        grid-template-columns:1fr 1fr;
        gap:14px;
        font-size:10px;
    }

    .quote-hero-bottom span{
        text-align:left !important;
    }


    /* QUOTE */

    .quote-section{
        padding:90px 0;
    }

    .quote-label{
        font-size:11px;
    }

    .quote-intro{
        gap:30px;
        padding-bottom:60px;
    }

    .quote-intro h2{
        margin-top:28px;
        font-size:clamp(50px,15vw,70px);
    }

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


    /* FORM */

    .quote-form-section{
        grid-template-columns:1fr;
        gap:45px;
        padding:50px 0;
    }

    .quote-form-heading > span{
        margin-bottom:18px;
        font-size:11px;
    }

    .quote-form-heading h3{
        max-width:100%;
        font-size:29px;
    }

    .quote-row{
        grid-template-columns:1fr;
        gap:0;
    }

    .quote-field{
        margin-bottom:30px;
        padding-bottom:24px;
    }

    .quote-field label{
        margin-bottom:14px;
        font-size:11px;
    }

    .quote-field input,
    .quote-field select,
    .quote-field textarea{
        font-size:17px;
    }

    .quote-message textarea{
        min-height:140px;
    }


    /* SUBMIT */

    .quote-submit{
        flex-direction:column;
        align-items:stretch;
        gap:25px;
        padding-top:35px;
    }

    .quote-submit p{
        max-width:100%;
        font-size:14px;
        text-align:left;
    }

    .quote-submit button{
        width:100%;
        height:64px;
        font-size:11px;
    }


    /* CONTACT */

    .quote-contact{
        padding:90px 0;
    }

    .quote-contact-inner{
        gap:45px;
    }

    .quote-contact-heading h2{
        margin-top:28px;
        font-size:clamp(50px,15vw,70px);
    }

    .quote-contact-details > p{
        font-size:16px;
    }

    .quote-contact-links a{
        grid-template-columns:1fr;
        gap:8px;
        padding:20px 0;
    }

    .quote-contact-links small{
        font-size:10px;
    }

    .quote-contact-links span{
        font-size:16px;
    }

}

/* =========================================================
   CONTACT + REQUEST QUOTE — FINAL RESPONSIVE UNIFORMITY PATCH
   Responsive only. Desktop remains unchanged.
   Matches Home / About / HSEQ mobile system.
========================================================= */

@media (max-width: 768px){

    /* ---------- SHARED MOBILE GUTTERS ---------- */
    .contact-wrap,
    .quote-wrap,
    .contact-hero-content,
    .quote-hero-content{
        padding-left:var(--pad) !important;
        padding-right:var(--pad) !important;
    }

    /* ---------- CONTACT HERO ---------- */
    .contact-hero{
        height:auto !important;
        min-height:100svh !important;
    }

    .contact-hero-content{
        min-height:100svh !important;
        padding-top:105px !important;
        padding-bottom:28px !important;
    }

    .contact-hero-main{
        grid-template-columns:1fr !important;
        align-content:center !important;
        gap:34px !important;
    }

    .contact-hero-main h1{
        max-width:100% !important;
        font-size:clamp(48px,13vw,64px) !important;
        line-height:.87 !important;
        word-break:normal !important;
        overflow-wrap:normal !important;
    }

    .contact-hero-main p{
        max-width:430px !important;
        font-size:15px !important;
        line-height:1.65 !important;
    }

    .contact-hero-bottom{
        grid-template-columns:1fr 1fr !important;
        gap:12px 20px !important;
        font-size:10px !important;
        line-height:1.35 !important;
    }

    .contact-hero-bottom span{
        text-align:left !important;
    }

    /* ---------- CONTACT FORM ---------- */
    .contact-form-section,
    .contact-details-section{
        padding:90px 0 !important;
    }

    .contact-form-layout{
        grid-template-columns:1fr !important;
        gap:55px !important;
    }

    .contact-label{
        font-size:10px !important;
        line-height:1.35 !important;
    }

    .contact-form-intro h2,
    .contact-details-heading h2,
    .contact-map-header h2{
        max-width:100% !important;
        font-size:clamp(42px,11.5vw,56px) !important;
        line-height:.9 !important;
        word-break:normal !important;
        overflow-wrap:normal !important;
    }

    .contact-form-intro h2{
        margin-top:30px !important;
    }

    .contact-form-intro p,
    .contact-details-heading > p{
        font-size:15px !important;
        line-height:1.65 !important;
    }

    .contact-form-row{
        grid-template-columns:1fr !important;
        gap:0 !important;
    }

    .contact-field{
        padding:24px 0 22px !important;
    }

    .contact-field label{
        font-size:10px !important;
        line-height:1.35 !important;
    }

    .contact-field input,
    .contact-field select,
    .contact-field textarea{
        font-size:16px !important;
        line-height:1.5 !important;
    }

    .contact-submit{
        width:100% !important;
        height:60px !important;
        font-size:10px !important;
    }

    /* ---------- CONTACT DETAILS ---------- */
    .contact-details-heading{
        grid-template-columns:1fr !important;
        gap:30px !important;
        margin-bottom:55px !important;
    }

    .contact-details-grid{
        grid-template-columns:1fr !important;
    }

    .contact-detail,
    .contact-detail + .contact-detail{
        min-height:0 !important;
        padding:30px 0 !important;
        border-right:0 !important;
        border-bottom:1px solid var(--line) !important;
    }

    .contact-detail-label{
        margin-bottom:22px !important;
        font-size:10px !important;
    }

    .contact-detail > a,
    .contact-phone-numbers a{
        font-size:20px !important;
        overflow-wrap:anywhere !important;
    }

    .contact-address address{
        font-size:16px !important;
        line-height:1.6 !important;
    }

    /* ---------- MAP ---------- */
    .contact-map-header{
        padding:80px 0 60px !important;
    }

    .contact-map-header-inner{
        flex-direction:column !important;
        align-items:stretch !important;
        gap:40px !important;
    }

    .contact-map-link{
        width:100% !important;
        font-size:10px !important;
    }

    .contact-map{
        height:430px !important;
    }


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

    .quote-hero{
        height:auto !important;
        min-height:100svh !important;
    }

    .quote-hero-content{
        min-height:100svh !important;
        padding-top:105px !important;
        padding-bottom:28px !important;
    }

    .quote-hero-main{
        grid-template-columns:1fr !important;
        align-content:center !important;
        gap:34px !important;
    }

    .quote-hero-main h1{
        max-width:100% !important;
        font-size:clamp(44px,11.5vw,58px) !important;
        line-height:.88 !important;
        word-break:normal !important;
        overflow-wrap:normal !important;
    }

    .quote-hero-main p{
        max-width:430px !important;
        font-size:15px !important;
        line-height:1.65 !important;
    }

    .quote-hero-meta,
    .quote-hero-bottom{
        font-size:10px !important;
        line-height:1.35 !important;
    }

    .quote-hero-bottom{
        grid-template-columns:1fr 1fr !important;
        gap:12px 20px !important;
    }

    .quote-hero-bottom span{
        text-align:left !important;
    }

    /* ---------- QUOTE INTRO ---------- */
    .quote-section{
        padding:90px 0 !important;
    }

    .quote-label{
        font-size:10px !important;
        line-height:1.35 !important;
    }

    .quote-intro{
        grid-template-columns:1fr !important;
        gap:30px !important;
        padding-bottom:60px !important;
    }

    .quote-intro h2,
    .quote-contact-heading h2{
        max-width:100% !important;
        margin-top:30px !important;
        font-size:clamp(42px,11.5vw,56px) !important;
        line-height:.9 !important;
        word-break:normal !important;
        overflow-wrap:normal !important;
    }

    .quote-intro > p,
    .quote-contact-details > p{
        max-width:100% !important;
        font-size:15px !important;
        line-height:1.65 !important;
    }

    /* ---------- QUOTE FORM ---------- */
    .quote-form-section{
        grid-template-columns:1fr !important;
        gap:40px !important;
        padding:50px 0 !important;
    }

    .quote-form-heading > span{
        margin-bottom:17px !important;
        font-size:10px !important;
        line-height:1.35 !important;
    }

    .quote-form-heading h3{
        max-width:100% !important;
        font-size:28px !important;
        line-height:1.1 !important;
    }

    .quote-row{
        grid-template-columns:1fr !important;
        gap:0 !important;
    }

    .quote-field{
        margin-bottom:28px !important;
        padding-bottom:22px !important;
    }

    .quote-field label{
        margin-bottom:13px !important;
        font-size:10px !important;
        line-height:1.35 !important;
    }

    .quote-field input,
    .quote-field select,
    .quote-field textarea{
        font-size:16px !important;
        line-height:1.5 !important;
    }

    .quote-message textarea{
        min-height:140px !important;
    }

    .quote-submit{
        flex-direction:column !important;
        align-items:stretch !important;
        gap:24px !important;
        padding-top:35px !important;
    }

    .quote-submit p{
        max-width:100% !important;
        font-size:14px !important;
        line-height:1.6 !important;
        text-align:left !important;
    }

    .quote-submit button{
        width:100% !important;
        height:62px !important;
        font-size:10px !important;
    }

    /* ---------- DIRECT CONTACT ---------- */
    .quote-contact{
        padding:90px 0 !important;
    }

    .quote-contact-inner{
        grid-template-columns:1fr !important;
        gap:42px !important;
    }

    .quote-contact-details{
        max-width:100% !important;
    }

    .quote-contact-links a{
        grid-template-columns:1fr !important;
        gap:8px !important;
        padding:20px 0 !important;
    }

    .quote-contact-links small{
        font-size:10px !important;
    }

    .quote-contact-links span{
        font-size:16px !important;
        overflow-wrap:anywhere !important;
    }
}


/* iPhone SE / narrow phones */
@media (max-width:480px){

    .contact-hero-main h1{
        font-size:clamp(45px,12.5vw,55px) !important;
    }

    .quote-hero-main h1{
        font-size:clamp(40px,10.7vw,49px) !important;
        line-height:.9 !important;
    }

    .contact-form-intro h2,
    .contact-details-heading h2,
    .contact-map-header h2,
    .quote-intro h2,
    .quote-contact-heading h2{
        font-size:clamp(39px,10.8vw,50px) !important;
    }

    .contact-map{
        height:390px !important;
    }
}
