/* SA Designs Contact v11.2 — client-accurate, full-width redesign */
body.sa-contact-v112-active,
body.sa-contact-v112-active #page,
body.sa-contact-v112-active .site,
body.sa-contact-v112-active .elementor-location-single,
body.sa-contact-v112-active .elementor {
    overflow-x:clip !important;
}
.sa-contact-v112-page{
    --navy:#0f3246;
    --deep:#092638;
    --blue:#407e9f;
    --blue2:#5e9dbc;
    --mist:#eef5f8;
    --paper:#f7f8f5;
    --line:#d8e2e7;
    --sand:#b6a486;
    --copy:#556b78;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    overflow:hidden !important;
    background:#fff;
}
.sa-contact-v112-page *, .sa-contact-v112-page *:before, .sa-contact-v112-page *:after{box-sizing:border-box;}
.sa-v112-shell{
    --width:min(1360px, calc(100% - 80px)) !important;
    width:min(1360px, calc(100% - 80px)) !important;
    max-width:1360px !important;
    min-width:0 !important;
    margin-inline:auto !important;
    padding:0 !important;
}
.sa-v112-contact-section{
    position:relative;
    isolation:isolate;
    background:#fff;
    padding:108px 0 122px !important;
    overflow:hidden;
}
.sa-v112-contact-section:before{
    content:"";
    position:absolute;
    z-index:-1;
    top:0; right:0;
    width:min(47vw,760px); height:100%;
    background:
      linear-gradient(rgba(64,126,159,.055) 1px,transparent 1px),
      linear-gradient(90deg,rgba(64,126,159,.055) 1px,transparent 1px),
      linear-gradient(135deg,rgba(238,245,248,.85),rgba(255,255,255,0) 68%);
    background-size:44px 44px,44px 44px,100% 100%;
    mask-image:linear-gradient(90deg,transparent,#000 26%);
    pointer-events:none;
}
.sa-v112-contact-grid{
    display:grid !important;
    grid-template-columns:minmax(360px,.82fr) minmax(560px,1.18fr) !important;
    gap:clamp(64px,7vw,112px) !important;
    align-items:start !important;
    min-width:0 !important;
}
.sa-v112-contact-grid > *{min-width:0 !important;width:100% !important;}
.sa-v112-contact-copy{padding-top:12px !important;}
.sa-v112-eyebrow .elementor-heading-title{
    display:flex;align-items:center;gap:14px;
    margin:0 0 26px !important;
    font-size:10px !important;line-height:1 !important;font-weight:700 !important;
    letter-spacing:.18em !important;text-transform:uppercase !important;color:var(--blue) !important;
}
.sa-v112-eyebrow .elementor-heading-title:before{content:"";width:34px;height:1px;background:currentColor;flex:0 0 34px;}
.sa-v112-title .elementor-heading-title{
    max-width:650px;margin:0 0 30px !important;color:var(--navy) !important;
    font-size:clamp(54px,5.3vw,82px) !important;line-height:.94 !important;letter-spacing:-.055em !important;font-weight:700 !important;
}
.sa-v112-lead,.sa-v112-lead p,.sa-v112-form-intro,.sa-v112-form-intro p,.sa-v112-work-copy,.sa-v112-work-copy p{
    color:var(--copy) !important;font-size:16px !important;line-height:1.78 !important;margin:0 !important;
}
.sa-v112-lead{max-width:590px;}
.sa-v112-details{margin-top:54px !important;border-top:1px solid var(--line);}
.sa-v112-detail-row{
    position:relative;display:grid !important;grid-template-columns:42px 100px minmax(0,1fr) !important;
    gap:18px !important;align-items:center !important;padding:22px 12px 22px 0 !important;
    border-bottom:1px solid var(--line);overflow:hidden;transition:padding .3s ease,border-color .3s ease,transform .3s ease !important;
}
.sa-v112-detail-row:before{
    content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,rgba(64,126,159,.09),rgba(64,126,159,0));
    transform:translateX(-102%);transition:transform .42s cubic-bezier(.2,.7,.2,1);pointer-events:none;
}
.sa-v112-detail-row:after{
    content:"↗";position:absolute;right:5px;top:50%;transform:translateY(-50%) translateX(-8px);opacity:0;color:var(--blue);font-size:16px;
    transition:opacity .3s ease,transform .3s ease;
}
.sa-v112-detail-row:hover{padding-left:14px !important;border-color:#bdd0db;transform:translateX(3px);}
.sa-v112-detail-row:hover:before{transform:translateX(0);}
.sa-v112-detail-row:hover:after{opacity:1;transform:translateY(-50%) translateX(0);}
.sa-v112-detail-row > *{position:relative;z-index:1;}
.sa-v112-detail-number .elementor-heading-title{margin:0 !important;color:#92a5b0 !important;font-size:10px !important;letter-spacing:.12em !important;}
.sa-v112-detail-label .elementor-heading-title{margin:0 !important;color:var(--navy) !important;font-size:10px !important;letter-spacing:.14em !important;font-weight:700 !important;}
.sa-v112-detail-value,.sa-v112-detail-value p{margin:0 !important;}
.sa-v112-detail-value a{color:var(--navy) !important;text-decoration:none !important;font-size:16px !important;font-weight:600;line-height:1.45;transition:color .25s ease !important;}
.sa-v112-detail-row:hover .sa-v112-detail-value a{color:var(--blue) !important;}

.sa-v112-form-card{
    --mx:50%;--my:20%;
    position:relative !important;isolation:isolate;overflow:hidden;
    width:100% !important;min-width:0 !important;padding:54px 54px 52px !important;
    background:linear-gradient(145deg,#edf5f8 0%,#f6f9fa 100%) !important;
    border:1px solid #dce7ec;box-shadow:0 26px 76px rgba(15,50,70,.11);
    transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s ease,border-color .4s ease !important;
}
.sa-v112-form-card:before{
    content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
    background:radial-gradient(480px circle at var(--mx) var(--my),rgba(64,126,159,.16),transparent 45%);
    opacity:.68;transition:opacity .35s ease;
}
.sa-v112-form-card:after{content:"";position:absolute;left:0;top:0;width:100%;height:4px;background:linear-gradient(90deg,var(--navy),var(--blue2) 58%,var(--sand));}
.sa-v112-form-card:hover{transform:translateY(-5px);border-color:#c9dce5;box-shadow:0 34px 92px rgba(15,50,70,.16);}
.sa-v112-form-title .elementor-heading-title{margin:0 0 12px !important;color:var(--navy) !important;font-size:clamp(30px,2.7vw,42px) !important;line-height:1.05 !important;letter-spacing:-.025em !important;}
.sa-v112-form-intro{max-width:620px;margin-bottom:35px !important;}
.sa-v112-form .elementor-form-fields-wrapper{row-gap:20px !important;column-gap:0 !important;}
.sa-v112-form .elementor-field-group{margin-bottom:0 !important;}
.sa-v112-form .elementor-field-label{margin:0 0 8px !important;color:var(--navy) !important;font-size:9px !important;line-height:1 !important;font-weight:700 !important;letter-spacing:.13em !important;text-transform:uppercase !important;}
.sa-v112-form input.elementor-field,.sa-v112-form select.elementor-field,.sa-v112-form textarea.elementor-field{
    width:100% !important;background:#fff !important;color:var(--navy) !important;border:1px solid #cfdce3 !important;border-radius:0 !important;
    min-height:56px;padding:15px 16px !important;box-shadow:none !important;
    transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease,background .25s ease !important;
}
.sa-v112-form textarea.elementor-field{min-height:164px !important;resize:vertical;}
.sa-v112-form input.elementor-field:hover,.sa-v112-form select.elementor-field:hover,.sa-v112-form textarea.elementor-field:hover{border-color:#9fbac9 !important;background:#fcfeff !important;}
.sa-v112-form input.elementor-field:focus,.sa-v112-form select.elementor-field:focus,.sa-v112-form textarea.elementor-field:focus{outline:none !important;border-color:var(--blue) !important;box-shadow:0 0 0 4px rgba(64,126,159,.10) !important;transform:translateY(-1px);}
.sa-v112-form .elementor-button{
    position:relative;overflow:hidden;width:100% !important;min-height:60px !important;margin-top:3px;
    border:1px solid var(--navy) !important;border-radius:0 !important;background:var(--navy) !important;color:#fff !important;
    font-size:11px !important;font-weight:700 !important;letter-spacing:.11em !important;text-transform:uppercase !important;
    transition:transform .3s ease,box-shadow .3s ease,background .3s ease,border-color .3s ease !important;
}
.sa-v112-form .elementor-button:after{content:"→";display:inline-block;margin-left:14px;transition:transform .28s ease;}
.sa-v112-form .elementor-button:hover{background:var(--blue) !important;border-color:var(--blue) !important;color:#fff !important;transform:translateY(-2px);box-shadow:0 14px 32px rgba(15,50,70,.22);}
.sa-v112-form .elementor-button:hover:after{transform:translateX(6px);}

.sa-v112-work-section{position:relative;background:var(--paper);padding:110px 0 118px !important;border-top:1px solid #e2e7e5;overflow:hidden;}
.sa-v112-work-section:after{content:"";position:absolute;width:430px;height:430px;left:-170px;bottom:-220px;border:1px solid rgba(64,126,159,.15);transform:rotate(45deg);pointer-events:none;}
.sa-v112-work-grid{
    display:grid !important;grid-template-columns:minmax(360px,.74fr) minmax(600px,1.26fr) !important;
    gap:clamp(60px,7vw,110px) !important;align-items:center !important;min-width:0 !important;
}
.sa-v112-work-grid > *{min-width:0 !important;width:100% !important;}
.sa-v112-work-title .elementor-heading-title{margin:0 0 24px !important;color:var(--navy) !important;font-size:clamp(50px,4.8vw,72px) !important;line-height:.96 !important;letter-spacing:-.05em !important;}
.sa-v112-work-copy{max-width:560px;}
.sa-v112-location-chips{display:flex !important;flex-direction:row !important;flex-wrap:wrap !important;gap:8px !important;margin-top:34px !important;}
.sa-v112-location-chip{width:auto !important;}
.sa-v112-location-chip .elementor-heading-title{
    margin:0 !important;display:inline-flex !important;align-items:center;min-height:35px;padding:0 13px !important;
    border:1px solid #ced9de;background:rgba(255,255,255,.74);color:#5c7280 !important;font-size:9px !important;font-weight:700 !important;letter-spacing:.10em !important;text-transform:uppercase !important;
    transition:transform .27s ease,border-color .27s ease,background .27s ease,color .27s ease,box-shadow .27s ease !important;
}
.sa-v112-location-chip .elementor-heading-title:hover{transform:translateY(-3px);background:#fff;border-color:var(--blue);color:var(--navy) !important;box-shadow:0 8px 24px rgba(15,50,70,.10);}
.sa-v112-map-card{
    --mx:50%;--my:50%;position:relative !important;isolation:isolate;min-height:590px;overflow:hidden;background:#dfe7ea;
    border:1px solid #d4dee3;box-shadow:0 28px 78px rgba(15,50,70,.12);transition:transform .4s ease,box-shadow .4s ease !important;
}
.sa-v112-map-card:hover{transform:translateY(-5px);box-shadow:0 36px 96px rgba(15,50,70,.17);}
.sa-v112-map-card:after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(460px circle at var(--mx) var(--my),rgba(255,255,255,.13),transparent 55%);}
.sa-v112-map-meta{position:absolute !important;z-index:4 !important;left:24px;top:24px;width:auto !important;max-width:calc(100% - 48px);padding:16px 18px !important;background:rgba(9,38,56,.92) !important;backdrop-filter:blur(10px);box-shadow:0 12px 34px rgba(0,0,0,.14);}
.sa-v112-map-kicker .elementor-heading-title{margin:0 0 5px !important;color:#a7c8d9 !important;font-size:8px !important;font-weight:700 !important;letter-spacing:.16em !important;}
.sa-v112-map-address,.sa-v112-map-address p{margin:0 !important;color:#fff !important;font-size:12px !important;line-height:1.45 !important;}
.sa-v112-map-card iframe{position:relative;z-index:1;width:100% !important;min-height:590px !important;filter:grayscale(1) contrast(.92) saturate(.3);transform:scale(1.01);transition:filter .6s ease,transform .8s cubic-bezier(.2,.7,.2,1) !important;}
.sa-v112-map-card:hover iframe{filter:grayscale(.55) contrast(.98) saturate(.75);transform:scale(1.035);}

.sa-v112-reveal{opacity:1;transform:none;}
html.sa-v112-js .sa-v112-reveal{opacity:0;transform:translateY(30px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1);}
html.sa-v112-js .sa-v112-reveal.sa-v112-in{opacity:1;transform:none;}

@media(max-width:1180px){
    .sa-v112-shell{--width:min(100% - 48px,1360px) !important;width:min(100% - 48px,1360px) !important;}
    .sa-v112-contact-grid,.sa-v112-work-grid{grid-template-columns:1fr !important;gap:56px !important;}
    .sa-v112-contact-copy{max-width:760px;}
    .sa-v112-form-card{max-width:860px;}
    .sa-v112-map-card,.sa-v112-map-card iframe{min-height:520px !important;}
}
@media(max-width:767px){
    .sa-v112-shell{--width:calc(100% - 28px) !important;width:calc(100% - 28px) !important;}
    .sa-v112-contact-section,.sa-v112-work-section{padding:70px 0 76px !important;}
    .sa-v112-contact-section:before{width:100%;opacity:.45;}
    .sa-v112-title .elementor-heading-title{font-size:48px !important;}
    .sa-v112-work-title .elementor-heading-title{font-size:46px !important;}
    .sa-v112-form-card{padding:34px 20px 30px !important;}
    .sa-v112-detail-row{grid-template-columns:28px 74px minmax(0,1fr) !important;gap:10px !important;padding-right:4px !important;}
    .sa-v112-detail-row:after{display:none;}
    .sa-v112-detail-value a{font-size:14px !important;}
    .sa-v112-form .elementor-field-group{width:100% !important;}
    .sa-v112-map-card,.sa-v112-map-card iframe{min-height:430px !important;}
    .sa-v112-map-meta{left:14px;top:14px;max-width:calc(100% - 28px);}
}
@media(prefers-reduced-motion:reduce){
    html.sa-v112-js .sa-v112-reveal,.sa-v112-reveal{opacity:1 !important;transform:none !important;transition:none !important;}
    .sa-v112-form-card,.sa-v112-detail-row,.sa-v112-map-card,.sa-v112-map-card iframe,.sa-v112-location-chip .elementor-heading-title,.sa-v112-form .elementor-button{transition:none !important;}
}
