/* Contact / Request a Free Quote (class: contact-quote-section). Desktop is locked to the photo's proportions (2873x1080). */
.zcontact{--zk-ink:var(--zip-ink,#14263d);--zk-blue:var(--zip-blue,#0a6cc4);--zk-line:#dde5ee;--zk-ph:#8793a5;
position:relative;z-index:1;width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,37%);column-gap:3vw;align-items:center;padding:3vw 4% 3vw 5.6%;background:#dcecfb var(--zk-bg) center/cover no-repeat;overflow-x:clip;color:var(--zk-ink)}
.zcontact *,.zcontact *::before,.zcontact *::after{box-sizing:border-box}
:where(.zcontact ul,.zcontact li){margin:0;padding:0;list-style:none}

/* ---- left ---- */
.zcontact__left{position:relative;min-width:0;z-index:2}
.zcontact .zcontact__title{margin:0 0 1.4vw;font-size:var(--zip-h3-size);font-weight:700;line-height:1.14;letter-spacing:0;text-transform:uppercase;color:#0b1624}
.zcontact__line{display:block}
.zcontact__accent{color:var(--zk-blue)}
.zcontact .zcontact__desc{margin:0 0 2.4vw;font-size:clamp(13px,1.111vw,24px);font-weight:400;line-height:1.5;color:#0b1624}
.zcontact__list{display:flex;flex-direction:column;gap:1.15vw}
.zcontact__item{display:inline-flex;align-items:center;gap:1.1vw;color:#0b1624;text-decoration:none}
.zcontact__ico{display:flex;align-items:center;justify-content:center;flex:none;width:max(36px,3vw);height:max(36px,3vw);border-radius:.6vw;background:var(--zk-blue);color:#fff;transition:transform .25s,box-shadow .25s,filter .25s}
.zcontact__mask{display:block;width:52%;height:52%;background:currentColor;-webkit-mask:var(--i) center/contain no-repeat;mask:var(--i) center/contain no-repeat}
.zcontact__txt{font-size:clamp(13px,1.111vw,24px);font-weight:400;line-height:1.3;transition:color .25s}
a.zcontact__item:hover .zcontact__ico{transform:translateY(-3px);box-shadow:0 .6vw 1.2vw rgba(10,108,196,.35);filter:brightness(1.08)}
a.zcontact__item:hover .zcontact__txt{color:var(--zk-blue)}

/* ---- card ---- */
.zcontact__card{position:relative;min-width:0;z-index:3;padding:2.2vw;border-radius:.95vw;background:#fff;box-shadow:0 1vw 3vw rgba(20,38,61,.14)}
.zcontact .zcontact__card-title{margin:0 0 1.3vw;font-size:clamp(18px,1.55vw,30px);font-weight:700;line-height:1.3;letter-spacing:0;text-transform:none;color:#0b1624}

/* ---- quote form ---- */
.zcontact__form{display:flex;flex-direction:column;gap:max(12px,1vw);margin:0}
.zcontact__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.zcontact .zcontact__form .zcontact__card-title{margin:0}
.zcontact__group{margin:0;padding:0;border:0;min-width:0}
.zcontact__legend{display:block;margin:0 0 max(7px,.5vw);padding:0;font-size:max(13px,.95vw);font-weight:600;line-height:1.3;color:#0b1624}
.zcontact__legend span{color:var(--zk-blue)}
.zcontact__chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:max(8px,.6vw)}
.zcontact__group--timeline .zcontact__chips{grid-template-columns:repeat(3,minmax(0,1fr))}
.zcontact__chip{position:relative;display:block;min-width:0;cursor:pointer}
.zcontact__chip input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.zcontact__chip span{display:flex;align-items:center;gap:.6em;height:100%;min-height:max(40px,3vw);padding:max(8px,.55vw) max(10px,.85vw);border:1px solid var(--zk-line);border-radius:.6vw;background:#fff;font-size:max(13px,.95vw);font-weight:400;line-height:1.25;color:#0b1624;transition:border-color .2s,background-color .2s,box-shadow .2s}
.zcontact__chip span::before{content:"";flex:none;width:1em;height:1em;border:1.5px solid #b9c6d6;border-radius:50%;background:#fff;transition:border-color .2s,box-shadow .2s}
.zcontact__chip:hover span{border-color:#b9c6d6}
.zcontact__chip input:checked+span{border-color:var(--zk-blue);background:#f1f7fd}
.zcontact__chip input:checked+span::before{border-color:var(--zk-blue);box-shadow:inset 0 0 0 .22em #fff;background:var(--zk-blue)}
.zcontact__chip input:focus-visible+span{box-shadow:0 0 0 3px rgba(10,108,196,.22)}
.zcontact__group.is-invalid .zcontact__chip span{border-color:#e5a3a3}
.zcontact .zcontact__form .zcontact__subtitle{margin:max(4px,.3vw) 0 0;font-size:clamp(18px,1.55vw,30px);font-weight:700;line-height:1.3;letter-spacing:0;text-transform:none;color:#0b1624}
.zcontact__fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:max(10px,.8vw)}
.zcontact__field{display:block;min-width:0;margin:0}
.zcontact__field--full{grid-column:1/-1}
.zcontact__label{display:block;margin:0 0 max(5px,.35vw);font-size:max(13px,.95vw);font-weight:600;line-height:1.3;color:#0b1624}
.zcontact .zcontact__field input{display:block;width:100%;max-width:none;height:max(40px,3vw);margin:0;padding:0 max(12px,1vw);border:1px solid var(--zk-line);border-radius:.6vw;background:#fff;box-shadow:none;color:#0b1624;font-family:inherit;font-size:max(14px,1.05vw);font-weight:400;line-height:normal;transition:border-color .2s,box-shadow .2s}
.zcontact .zcontact__field input::placeholder{color:var(--zk-ph);opacity:1}
.zcontact .zcontact__field input:focus{outline:0;border-color:var(--zk-blue);box-shadow:0 0 0 3px rgba(10,108,196,.14)}
.zcontact .zcontact__field input.is-invalid{border-color:#e5a3a3}
.zcontact__msg{margin:0;font-size:max(13px,.95vw);line-height:1.4}
.zcontact__msg:empty{display:none}
.zcontact__msg[data-state=ok]{color:#1b7a3d}
.zcontact__msg[data-state=err]{color:#c62828}
/* submit: same look as the page's primary button, full width, arrow after the label */
.zcontact .zcontact__submit{display:flex;align-items:center;justify-content:center;gap:.6em;width:100%;height:max(44px,3.5vw);margin:0;padding:0 1em;border:0;border-radius:.6vw;background:var(--zk-blue);box-shadow:none;color:#fff;font-family:inherit;font-size:max(14px,1.1vw);font-weight:500;line-height:1;letter-spacing:0;text-transform:none;cursor:pointer;transition:filter .2s,opacity .2s}
.zcontact .zcontact__submit::after{content:"";width:1.1em;height:1.1em;background:currentColor;-webkit-mask:var(--zk-arrow) center/contain no-repeat;mask:var(--zk-arrow) center/contain no-repeat;transition:transform .2s}
.zcontact .zcontact__submit:hover{filter:brightness(.9)}
.zcontact .zcontact__submit:hover::after{transform:translateX(3px)}
.zcontact .zcontact__submit[disabled]{opacity:.6;cursor:wait}

.zcontact.zk-pre [data-zk]{opacity:0}

/* soft white haze on the left (behind the heading and contact items), fading out toward the card */
.zcontact::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 58% 62% at 6% 100%,rgba(255,255,255,calc(var(--zk-ov,.45)*1.9)) 0,rgba(255,255,255,calc(var(--zk-ov,.45)*1.1)) 45%,rgba(255,255,255,0) 100%),linear-gradient(90deg,rgba(255,255,255,calc(var(--zk-ov,.45)*2)) 0,rgba(255,255,255,calc(var(--zk-ov,.45)*1.7)) 20%,rgba(255,255,255,calc(var(--zk-ov,.45)*1.15)) 38%,rgba(255,255,255,calc(var(--zk-ov,.45)*.5)) 55%,rgba(255,255,255,0) 70%)}

/* tablet portrait + mobile: stacked, card below the text */
@media (max-width:1024px){
.zcontact{aspect-ratio:auto;background-position:28% center;padding:46px 20px 44px;display:flex;flex-direction:column;align-items:stretch}
.zcontact::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;-webkit-mask-image:none;mask-image:none;background:linear-gradient(180deg,rgba(255,255,255,calc(var(--zk-ov,.45)*1.7)) 0,rgba(255,255,255,calc(var(--zk-ov,.45)*1.25)) 38%,rgba(255,255,255,calc(var(--zk-ov,.45)*.65)) 68%,rgba(255,255,255,0) 94%)}
.zcontact__left,.zcontact__card{position:relative;inset:auto;left:auto;right:auto;top:auto;width:auto}
.zcontact .zcontact__title{font-size:var(--zip-h3-size);margin-bottom:12px}
.zcontact .zcontact__desc{font-size:16px;margin-bottom:22px}
.zcontact__list{gap:14px}
.zcontact__ico{width:40px;height:40px;border-radius:9px}
.zcontact__item{gap:14px}
.zcontact__txt{font-size:16px}
.zcontact__card{margin-top:30px;padding:24px;border-radius:14px;box-shadow:0 12px 34px rgba(20,38,61,.14)}
.zcontact .zcontact__card-title{font-size:18px;margin-bottom:0}
.zcontact__form{gap:14px}
.zcontact__chip span{min-height:44px;border-radius:9px;font-size:14px}
.zcontact__legend,.zcontact__label{font-size:14px}
.zcontact .zcontact__field input{height:46px;border-radius:9px;font-size:15px}
.zcontact .zcontact__submit{height:50px;font-size:15px;border-radius:9px}
}
@media (max-width:560px){
.zcontact{padding:38px 15px 36px}
.zcontact__card{padding:20px 16px}
.zcontact__fields,.zcontact__group--timeline .zcontact__chips{grid-template-columns:minmax(0,1fr)}
}
/* fixed background (desktop only: iOS and most touch browsers ignore it, so it scrolls normally at 1024px and below) */
@media (min-width:1025px){
.zcontact.is-bgfixed{background-attachment:fixed}
}
/* fixed background on tablet / mobile: iOS and many touch browsers ignore background-attachment:fixed, so the photo lives on a viewport-fixed layer that the section clips */
@media (max-width:1024px){
.zcontact.is-bgfixed{background-image:none;clip-path:inset(0);isolation:isolate}
.zcontact.is-bgfixed::after{content:"";position:fixed;inset:0;z-index:-1;background:var(--zk-bg) 28% center/cover no-repeat;pointer-events:none}
}
