*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  min-width:320px;
  font-family:Arial,Helvetica,sans-serif;
  background:#8bd1ff url('assets/clouds_only.jpg') center center / cover no-repeat fixed;
  color:#0c438e;
}
body.modal-open{overflow:hidden}
.site-shell{width:100%;min-height:100vh;display:flex;justify-content:center;background:url('assets/clouds_only.jpg') center center / cover no-repeat fixed}
.mockup-wrap{
  position:relative;
  width:min(100%,1120px);
  aspect-ratio:941/1672;
  flex:0 0 auto;
  margin:0 auto;
}
.mockup-image{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:fill;user-select:none;-webkit-user-drag:none}
.anchor{position:absolute;left:0;width:2px;height:2px;pointer-events:none}
.anchor-home{top:0}
.anchor-services{top:32.5%}
.anchor-why{top:58%}
.anchor-quote{top:68.5%}
.anchor-contact{top:88.5%}

.hotspot{
  position:absolute;
  z-index:5;
  display:block;
  border:0;
  padding:0;
  margin:0;
  background:rgba(0,0,0,0);
  cursor:pointer;
  touch-action:manipulation;
  -webkit-tap-highlight-color:rgba(255,196,0,.22);
}
.hotspot:focus-visible{outline:3px solid #ffbd16;outline-offset:2px;border-radius:12px}

/* Corrected coordinates measured against the 941 × 1672 master image. */
.hs-logo{left:3%;top:3.5%;width:22%;height:8.2%}
.hs-nav-home{left:31.5%;top:5.1%;width:6%;height:4%}
.hs-nav-services{left:37.8%;top:5.1%;width:7.6%;height:4%}
.hs-nav-why{left:45.5%;top:5.1%;width:7.3%;height:4%}
.hs-nav-reviews{left:52.8%;top:5.1%;width:7.5%;height:4%}
.hs-nav-contact{left:60.2%;top:5.1%;width:7.5%;height:4%}
.hs-phone-top{left:66.2%;top:4.2%;width:16.3%;height:5.6%;border-radius:999px}
.hs-top-quote{left:81.5%;top:4.2%;width:17%;height:5.6%;border-radius:999px}

.hs-hero-quote{left:3.3%;top:27.4%;width:26%;height:4.5%;border-radius:999px}
.hs-see-work{left:30%;top:27.1%;width:17.5%;height:5.1%;border-radius:999px}

.hs-service-1{left:3.8%;top:37.1%;width:15.4%;height:11.9%;border-radius:14px}
.hs-service-2{left:19.9%;top:37.1%;width:15.3%;height:11.9%;border-radius:14px}
.hs-service-3{left:36.1%;top:37.1%;width:15.3%;height:11.9%;border-radius:14px}
.hs-service-4{left:52.3%;top:37.1%;width:15.3%;height:11.9%;border-radius:14px}
.hs-service-5{left:68.5%;top:37.1%;width:15.3%;height:11.9%;border-radius:14px}
.hs-service-6{left:84.7%;top:37.1%;width:12.2%;height:11.9%;border-radius:14px}

.hs-form-name{left:47.5%;top:70.7%;width:20.7%;height:3.1%;border-radius:8px}
.hs-form-phone{left:68.3%;top:70.7%;width:23.5%;height:3.1%;border-radius:8px}
.hs-form-email{left:47.5%;top:74.4%;width:20.7%;height:3.2%;border-radius:8px}
.hs-form-submit{left:68.3%;top:74.0%;width:23.5%;height:4%;border-radius:999px}

.hs-phone-footer{left:17.5%;top:90.4%;width:12%;height:4.2%}
.hs-email-footer{left:32.3%;top:90.4%;width:14%;height:4.2%}
.hs-web-footer{left:49.3%;top:90.4%;width:13%;height:4.2%}
.hs-location-footer{left:64.2%;top:90.4%;width:18.5%;height:4.2%}
.hs-privacy{left:62.5%;top:96.1%;width:8.7%;height:2.4%}
.hs-terms{left:72.2%;top:96.1%;width:10.5%;height:2.4%}

.modal{position:fixed;inset:0;z-index:50;display:none;align-items:center;justify-content:center;padding:18px}
.modal.open{display:flex}
.modal-backdrop{position:absolute;inset:0;background:rgba(5,41,83,.65);backdrop-filter:blur(4px)}
.modal-card{
  position:relative;
  z-index:2;
  width:min(680px,100%);
  max-height:92vh;
  overflow:auto;
  padding:28px;
  border-radius:24px;
  background:linear-gradient(155deg,rgba(255,255,255,.98),rgba(239,249,255,.98));
  box-shadow:0 28px 90px rgba(0,38,84,.32);
  border:2px solid rgba(24,140,211,.28);
}
.modal-close{position:absolute;right:14px;top:10px;width:42px;height:42px;border-radius:50%;border:0;background:#eaf6ff;color:#0a438c;font-size:30px;line-height:1;cursor:pointer}
.modal-kicker{margin:0 0 6px;color:#1389cb;font-size:12px;font-weight:900;letter-spacing:3px}
.modal-card h2{margin:0;color:#0b438b;font:700 40px/1 Georgia,serif}
.modal-copy{margin:12px 0 22px;line-height:1.45;color:#3a5878}
#quoteForm{display:grid;grid-template-columns:1fr 1fr;gap:14px}
#quoteForm label{display:grid;gap:6px;color:#0d438b;font-size:13px;font-weight:800}
#quoteForm input,#quoteForm select,#quoteForm textarea{width:100%;padding:13px 14px;border:1px solid #b9d2e4;border-radius:10px;background:#fff;color:#183e68;font:inherit;outline:none}
#quoteForm input:focus,#quoteForm select:focus,#quoteForm textarea:focus{border-color:#1293d6;box-shadow:0 0 0 3px rgba(18,147,214,.13)}
.full-row{grid-column:1/-1}
.modal-submit{grid-column:1/-1;padding:15px 18px;border:0;border-radius:999px;background:linear-gradient(#ffd665,#efad10);color:#103e80;font-weight:900;font-size:15px;cursor:pointer}

.toast{position:fixed;z-index:80;left:50%;bottom:20px;transform:translate(-50%,120px);opacity:0;background:#073f83;color:#fff;padding:11px 17px;border-radius:999px;box-shadow:0 10px 34px rgba(0,0,0,.22);font-size:14px;text-align:center;max-width:90vw;transition:.22s ease}
.toast.show{transform:translate(-50%,0);opacity:1}

@media(max-width:720px){
  .modal-card{padding:24px 18px;border-radius:20px}
  .modal-card h2{font-size:32px}
  #quoteForm{grid-template-columns:1fr}
  .full-row,.modal-submit{grid-column:1}
  /* Slightly enlarge the mobile hit areas without changing the image. */
  .hs-nav-home,.hs-nav-services,.hs-nav-why,.hs-nav-reviews,.hs-nav-contact{top:4.7%;height:4.8%}
  .hs-phone-top,.hs-top-quote{top:3.9%;height:6.2%}
  .hs-hero-quote,.hs-see-work{height:5.3%}
}

@media(max-width:720px){body,.site-shell{background-image:url('assets/clouds_only.jpg');background-size:cover;background-position:center center;background-repeat:no-repeat;background-attachment:fixed;}}

/* V21: gallery popup only. The V20 homepage layout/image remains unchanged. */
.gallery-card{width:min(980px,100%)}
.gallery-card h2{margin-bottom:18px}
.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.gallery-item{margin:0;padding:10px;border-radius:16px;background:#fff;border:1px solid #cfe4f4;box-shadow:0 8px 24px rgba(0,56,112,.08)}
.gallery-item img{display:block;width:100%;height:auto;border-radius:12px}
.gallery-item figcaption{padding:10px 4px 3px;text-align:center;color:#0b438b;font-weight:900;font-size:16px}
@media(max-width:720px){.gallery-grid{grid-template-columns:1fr}.gallery-card{padding:22px 14px}}

/* V22: true submission form state */
.hp-field{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.form-status{min-height:22px;margin-top:2px;font-size:14px;font-weight:800;text-align:center;color:#0b438b}
.form-status.success{padding:12px 14px;border-radius:12px;background:#eaf9f0;color:#146c3b;border:1px solid #bfe7cd}
.form-status.error{padding:12px 14px;border-radius:12px;background:#fff0f0;color:#9b2525;border:1px solid #f2c6c6}
.modal-submit[disabled]{opacity:.7;cursor:wait}

/* V25: readable privacy policy popup. */
.policy-card{width:min(760px,100%);color:#294a6c;line-height:1.55}
.policy-card h2{padding-right:44px}
.policy-card h3{margin:22px 0 6px;color:#0b438b;font-size:18px}
.policy-card p{margin:0 0 12px}
.policy-card a{color:#087ac1;font-weight:800}
.policy-date{margin-top:8px!important;color:#647d97;font-size:14px;font-weight:700}
