/* Cross-platform layer: phones, tablets, desktops and accessibility */
:root{--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px)}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:24px}
body{min-width:320px;overflow-x:hidden;overflow-x:clip}
main,section,article,aside,header,footer,nav,div{min-width:0}
img,video,canvas,svg,iframe{max-width:100%;height:auto}
button,input,select,textarea{font:inherit}
button,a,summary,input,select,textarea{-webkit-tap-highlight-color:transparent}
button,a,summary{touch-action:manipulation}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #6d3af2;outline-offset:3px}
[hidden]{display:none!important}
.mobile-bottom-bar{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.mobile-menu nav,.site-mobile-menu nav{max-height:calc(100vh - 90px);max-height:calc(100dvh - 90px);overflow-y:auto;overscroll-behavior:contain}
.coverage-table{max-width:100%}
table{max-width:100%}
@supports not (backdrop-filter:blur(1px)){.mobile-bottom-bar{background:#fff}}
@media (hover:none),(pointer:coarse){
  .button,.btn-main,.btn-alt,.cta,.header-cta,.mobile-menu summary,.site-mobile-menu summary{min-height:44px}
  .mobile-menu nav a,.site-mobile-menu nav a{min-height:44px;display:flex;align-items:center}
  .project-card:hover,.portfolio-card:hover,.topic-card:hover,.related-link:hover,.service-card:hover{transform:none}
}
@media (min-width:621px) and (max-width:1100px){
  .wrap{width:min(1180px,calc(100% - 40px))}
  .section-pad{width:min(1380px,calc(100% - 40px))}
}
@media (max-width:760px){
  input,select,textarea{font-size:16px!important}
  .wrap{width:min(1180px,calc(100% - 26px))}
  .site-header,.hero,.section-pad{width:min(1380px,calc(100% - 26px))}
  h1,h2,h3,p,a,li,blockquote{overflow-wrap:anywhere}
  .hero-actions{align-items:stretch}
  .hero-actions .button,.hero-actions .btn-main,.hero-actions .btn-alt{justify-content:center;text-align:center}
  .footer-links{row-gap:10px}
  .mobile-bottom-bar{left:max(10px,var(--safe-left));right:max(10px,var(--safe-right));bottom:max(10px,var(--safe-bottom))}
  .calc-form,.calc-summary,.testimonial-card,.testimonial-shell{max-width:100%}
}
@media (max-width:390px){
  .wrap{width:min(1180px,calc(100% - 20px))}
  .site-header,.hero,.section-pad{width:min(1380px,calc(100% - 20px))}
  .hero h1,.page-hero h1,.case-hero h1{hyphens:auto}
  .cta-band,.card,.calc-form,.calc-summary{padding-left:20px;padding-right:20px}
  .mobile-bottom-bar{grid-template-columns:.8fr 1fr 1fr}
  .mobile-bottom-bar a{font-size:11px;padding-inline:4px}
}
@media (orientation:landscape) and (max-width:960px) and (max-height:560px){
  .hero{min-height:auto}
  .hero-visual{min-height:360px}
  .mobile-menu nav,.site-mobile-menu nav{max-height:calc(100dvh - 70px)}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
}
@media (prefers-contrast:more){
  .card,.service-card,.project-card,.portfolio-card,.testimonial-card,.calc-form,.case-result{border-width:2px}
}
@media (forced-colors:active){
  .button,.btn-main,.btn-alt,.cta,.header-cta,.mobile-bottom-bar a{border:1px solid ButtonText}
}
@media print{
  .site-header,.header,.mobile-menu,.site-mobile-menu,.mobile-bottom-bar,.hero-actions,.contact,.cta-band{display:none!important}
  body{background:#fff!important;color:#000!important;padding:0!important}
  .wrap,.section-pad,.hero{width:100%!important;max-width:none!important}
  a{color:#000!important;text-decoration:underline}
  img{break-inside:avoid}
}

/* Compact conversion form used on commercial and city landing pages */
.quick-lead{width:min(720px,100%);margin-top:24px;padding:16px;border:1px solid rgba(23,21,29,.12);border-radius:20px;background:rgba(255,255,255,.88);box-shadow:0 14px 34px rgba(23,21,29,.07)}
.quick-lead-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:11px}
.quick-lead-heading strong{font-size:15px}
.quick-lead-heading span{font-size:12px;color:#716c77}
.quick-lead-fields{display:grid;grid-template-columns:1fr 1fr auto;gap:9px;align-items:end}
.quick-lead label{display:grid;gap:5px}
.quick-lead label span{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#716c77}
.quick-lead input{width:100%;min-height:48px;border:1px solid rgba(23,21,29,.14);border-radius:13px;padding:11px 13px;background:#fff;color:#17151d;outline:none}
.quick-lead input:focus{border-color:#6d3af2;box-shadow:0 0 0 3px rgba(109,58,242,.11)}
.quick-lead button{min-height:48px;border:0;cursor:pointer;white-space:nowrap}
.quick-lead .btn-main{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#6d3af2;color:#fff;font-weight:800;padding:0 18px;text-decoration:none}
.quick-lead>small{display:block;margin-top:9px;color:#716c77;font-size:10px;line-height:1.4}
.quick-lead-status{min-height:0;margin-top:4px;color:#6d3af2;font-size:11px;font-weight:700}
@media(max-width:620px){.quick-lead{padding:14px;border-radius:17px}.quick-lead-heading{align-items:flex-start;flex-direction:column;gap:2px}.quick-lead-fields{grid-template-columns:1fr}.quick-lead button{width:100%}}

/* QDigital multilingual v8 */
.lang-switches{display:inline-flex;align-items:center;gap:3px;margin-left:8px;padding:3px;border:1px solid rgba(23,21,29,.15);border-radius:999px;background:rgba(255,255,255,.7);vertical-align:middle}.lang-switches a{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:29px;padding:0 7px;border-radius:999px;font-size:11px;font-weight:850;letter-spacing:.04em;text-decoration:none}.lang-switches a[aria-current="page"]{background:#17151d;color:#fff}.site-mobile-menu .lang-switches,.mobile-menu .lang-switches{margin:8px 0 0;align-self:flex-start}@media(max-width:900px){.desktop-nav .lang-switches,.nav .lang-switches{display:none}}
