/* ScrapePlaces theme for Bootstrap 5.3. Loaded after bootstrap.min.css and before community.css.
   Compiled Bootstrap hard-codes its component colors, so the brand blue is applied to the components we use below. */
:root,[data-bs-theme=light]{
  --bs-body-font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  --bs-body-line-height:1.45;
  --bs-body-color:#0d1b35;
  --bs-body-color-rgb:13,27,53;
  --bs-heading-color:#0f172a;
  --bs-secondary-color:#526079;
  --bs-tertiary-bg:#f7f9fc;
  --bs-primary:#0b63e5;
  --bs-primary-rgb:11,99,229;
  --bs-link-color:#0b63e5;
  --bs-link-color-rgb:11,99,229;
  --bs-link-hover-color:#0754c7;
  --bs-link-hover-color-rgb:7,84,199;
  --bs-border-color:#dbe4f0;
  --bs-border-radius:.5rem;
  --bs-border-radius-lg:.75rem;
  --bs-border-radius-xl:1rem;
}

body{-webkit-font-smoothing:antialiased;}

/* Buttons */
.btn{--bs-btn-font-weight:700;}
.btn-primary{--bs-btn-bg:#0b63e5;--bs-btn-border-color:#0b63e5;--bs-btn-hover-bg:#0754c7;--bs-btn-hover-border-color:#0754c7;--bs-btn-active-bg:#0648a8;--bs-btn-active-border-color:#0648a8;--bs-btn-disabled-bg:#0b63e5;--bs-btn-disabled-border-color:#0b63e5;--bs-btn-focus-shadow-rgb:11,99,229;}
.btn-outline-primary{--bs-btn-color:#0b63e5;--bs-btn-border-color:#0b63e5;--bs-btn-hover-bg:#0b63e5;--bs-btn-hover-border-color:#0b63e5;--bs-btn-active-bg:#0754c7;--bs-btn-active-border-color:#0754c7;--bs-btn-disabled-color:#0b63e5;--bs-btn-disabled-border-color:#0b63e5;--bs-btn-focus-shadow-rgb:11,99,229;}
.btn-light{--bs-btn-color:#0b49b5;}
.btn-lg{--bs-btn-padding-y:.75rem;--bs-btn-padding-x:1.5rem;--bs-btn-font-size:1rem;}
/* A button that sits in a row of .form-control-lg / .form-select-lg fields: same height */
.btn-field{--bs-btn-padding-y:.625rem;--bs-btn-font-size:.9375rem;--bs-btn-font-weight:700;}

/* Forms */
.form-label{margin-bottom:.35rem;color:#6b7280;font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;}
.form-control,.form-select{border-color:#d9e1ec;}
.form-control:focus,.form-select:focus{border-color:#4d92ee;box-shadow:0 0 0 .25rem rgba(11,99,229,.2);}
.form-control-lg,.form-select-lg{min-height:calc(1.5em + 1.25rem + 2px);font-size:.9375rem;}

/* Accordion */
.accordion{--bs-accordion-active-bg:#eef5ff;--bs-accordion-active-color:#0b49b5;--bs-accordion-btn-focus-border-color:#4d92ee;--bs-accordion-btn-focus-box-shadow:0 0 0 .25rem rgba(11,99,229,.2);--bs-accordion-border-color:var(--bs-border-color);--bs-accordion-border-radius:var(--bs-border-radius-lg);--bs-accordion-inner-border-radius:calc(var(--bs-border-radius-lg) - 1px);}
.accordion-button{font-weight:700;}
.accordion-button:not(.collapsed){box-shadow:none;}

/* Navbar */
.spc-navbar{--bs-navbar-padding-y:0;min-height:64px;background:#020c1d;border-bottom:1px solid rgba(79,145,227,.18);}
.spc-brand-img{display:block;width:auto;height:40px;}
.spc-brand-text{display:inline-flex;align-items:baseline;color:#fff;font-size:1.375rem;font-weight:900;line-height:1;letter-spacing:-.5px;}
.spc-brand-text strong{color:#1f73ff;font-weight:900;}
.spc-navbar .nav-link{display:flex;align-items:center;gap:.65rem;position:relative;color:#c4d2ea;font-size:1rem;font-weight:700;white-space:nowrap;}
.spc-navbar .nav-link:hover,.spc-navbar .nav-link:focus-visible{color:#fff;}
.spc-navbar .nav-link.active{color:#fff;font-weight:800;}
.spc-navbar .nav-link svg{width:20px;height:20px;flex:0 0 auto;stroke-width:1.9;}
.spc-avatar{width:44px;height:44px;padding:0;overflow:hidden;border:1px solid rgba(13,27,53,.12);border-radius:50%;background:#fff;color:#0d1b35;font-weight:800;line-height:42px;}
.spc-avatar:hover,.spc-avatar:focus-visible,.spc-avatar.show{background:#fff;border-color:rgba(88,164,255,.7);}
.spc-avatar::after{display:none;}
.spc-avatar img{display:block;width:100%;height:100%;object-fit:cover;}
@media (min-width:992px){
  .spc-navbar .navbar-nav{height:64px;}
  .spc-navbar .nav-item{display:flex;}
  .spc-navbar .nav-link{flex-direction:column;justify-content:center;gap:3px;padding:0 .8rem;font-size:.78rem;}
  .spc-navbar .nav-link.active::after{content:"";position:absolute;left:10px;right:10px;bottom:0;height:3px;border-radius:3px 3px 0 0;background:#58a4ff;}
  .spc-auth{margin-left:.5rem;padding-left:1.25rem;border-left:1px solid rgba(255,255,255,.16);}
}
@media (max-width:991.98px){
  .spc-navbar .offcanvas{--bs-offcanvas-width:min(86vw,340px);background:#061124;}
  .spc-navbar .nav-link{padding:.85rem 1rem;border-radius:.75rem;}
  .spc-navbar .nav-link:hover,.spc-navbar .nav-link.active{background:rgba(255,255,255,.08);color:#58a4ff;}
  .spc-navbar .nav-link svg{width:16px;height:16px;}
}
@media (max-width:575.98px){
  .spc-navbar{min-height:60px;}
}
/* Footer */
.site-footer{margin-top:80px;border-top:1px solid var(--bs-border-color);}
.site-footer h2{font-size:.9375rem;font-weight:800;}
.site-footer a{color:var(--bs-secondary-color);font-size:.9375rem;font-weight:600;overflow-wrap:anywhere;text-decoration:none;}
.site-footer a:hover{color:#003db8;}
.site-footer .spc-brand-img{height:40px;}
@media (max-width:619.98px){.site-footer{margin-top:48px;}}

/* Keeps the chat launcher clear of a mobile sticky call to action */
@media (max-width:991.98px){
  body.has-sticky-cta #spChatWidget{bottom:86px;}
}

/* Sign in button on the dark navbar: the brand blue is too dark here */
.spc-signin{--bs-btn-color:#8cc0ff;--bs-btn-border-color:#58a4ff;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:rgba(88,164,255,.14);--bs-btn-hover-border-color:#8cc0ff;--bs-btn-active-color:#fff;--bs-btn-active-bg:rgba(88,164,255,.24);--bs-btn-active-border-color:#8cc0ff;}

/* Extensions of Bootstrap's scales (Sass would add these to $spacers, $font-weights and $theme-colors) */
.py-6{padding-top:4.5rem!important;padding-bottom:4.5rem!important;}
.pt-6{padding-top:4.5rem!important;}
.pb-6{padding-bottom:4.5rem!important;}
.my-6{margin-top:4.5rem!important;margin-bottom:4.5rem!important;}
.fw-black{font-weight:900!important;}
.bg-navy{background-color:#061124!important;}
.min-w-0{min-width:0!important;}

/* Navbar logo: the image contains the wordmark, so only the icon part is shown next to the live text */
.spc-brand-mark{display:block;flex:0 0 auto;width:40px;height:40px;overflow:hidden;}
.spc-brand-mark img{display:block;width:auto;max-width:none;height:40px;object-fit:contain;object-position:left center;}

/* Headings follow the surrounding text color on dark bands, and go back to normal inside cards */
.text-white,.text-bg-dark,.bg-navy{--bs-heading-color:#fff;}
.card{--bs-heading-color:#0f172a;}
/* A dark card (card + bg-navy / text-white) keeps white headings: the rule above would otherwise win and print navy on navy */
.card.text-white,.card.text-bg-dark,.card.bg-navy{--bs-heading-color:#fff;}

/* The chat launcher goes behind an open menu or dialog instead of covering their buttons */
body:has(.offcanvas.show) #spChatWidget,
body:has(.modal.show) #spChatWidget{z-index:1030;}

/* Light page header band: photo background with a white wash so the text stays readable */
.hero-light{position:relative;overflow:hidden;background:#f3f7fc url('../images/page-hero-light.webp') right center/cover no-repeat;border-bottom:1px solid var(--bs-border-color);}
.hero-light::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.9) 0%,rgba(255,255,255,.62) 50%,rgba(255,255,255,.2) 100%);pointer-events:none;}
.hero-light>*{position:relative;z-index:1;}
@media (max-width:719.98px){.hero-light::before{background:rgba(255,255,255,.82);}}

/* Long-form text (legal pages, articles): Bootstrap has no typography component, so headings and paragraphs get spacing here */
.prose h2{margin:2.25rem 0 .65rem;font-size:1.5rem;font-weight:800;}
.prose h2:first-child{margin-top:0;}
.prose p{color:var(--bs-secondary-color);line-height:1.75;}

/* ASP.NET renders an empty validation summary; keep it hidden until there is something to show */
.validation-summary-valid{display:none;}

/* Dark hero with the globe photo (landing page, Google Maps scraper) */
.hero-globe{--bs-heading-color:#fff;position:relative;overflow:hidden;background:#020a18 url('../images/globe-map-hero.webp') 100% 0/cover no-repeat;color:#fff;}
.hero-globe::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,8,21,.78) 0%,rgba(2,8,21,.42) 55%,rgba(2,8,21,.6) 100%);pointer-events:none;}
.hero-globe>.container-xxl{position:relative;z-index:1;}
.hero-lead{max-width:34rem;color:#e1ecff;}
.kicker-pill{border:1px solid rgba(47,140,255,.4);background:rgba(14,80,168,.22);color:#7db8ff;font-size:.6875rem;letter-spacing:.13em;padding:.5rem .8rem;}

/* Photo hero (lead pages): the image comes from the page via --hero-image, with a dark wash for contrast */
.hero-photo{--bs-heading-color:#fff;position:relative;overflow:hidden;color:#fff;background:#0b1d3a var(--hero-image) center/cover no-repeat;}
.hero-photo::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,8,21,.82) 0%,rgba(2,8,21,.55) 55%,rgba(2,8,21,.45) 100%);pointer-events:none;}
.hero-photo>.container-xxl{position:relative;z-index:1;}
.hero-photo .card{color:var(--bs-body-color);}
.breadcrumb-light{--bs-breadcrumb-divider-color:rgba(255,255,255,.55);--bs-breadcrumb-item-active-color:rgba(255,255,255,.8);}
.breadcrumb-light a{color:#fff;}

/* Community: initial-letter avatars and pill navigation in the brand blue */
.avatar{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:2.5rem;height:2.5rem;border-radius:50%;background:var(--bs-secondary-bg);color:var(--bs-secondary-color);font-weight:700;}
.avatar-lg{width:3.25rem;height:3.25rem;font-size:1.25rem;}
.nav-pills{--bs-nav-link-color:var(--bs-body-color);--bs-nav-pills-link-active-bg:#0b63e5;--bs-nav-link-hover-color:#0b49b5;}

/* The search form card overlaps the bottom of the hero (landing page, estimate page) */
.form-overlap{position:relative;z-index:3;margin-top:-4rem;}

/* Keyword suggestions (markup is built by auto-complete.js, so these class names are fixed) */
.quick-keyword-wrap{position:relative;}
.quick-keyword-wrap .form-control{padding-right:2.4rem;}
.quick-keyword-icon{position:absolute;right:.9rem;top:50%;transform:translateY(-50%);color:var(--bs-secondary-color);pointer-events:none;}
.quick-keyword-menu{display:none;position:absolute;top:calc(100% + .35rem);left:0;right:0;z-index:1050;max-height:18rem;overflow-y:auto;padding:.35rem;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius-lg);background:var(--bs-body-bg);box-shadow:var(--bs-box-shadow);}
.quick-keyword-wrap.is-open .quick-keyword-menu{display:block;}
.quick-keyword-option{width:100%;padding:.6rem .85rem;border:0;border-radius:var(--bs-border-radius);background:transparent;color:var(--bs-body-color);font:inherit;text-align:left;cursor:pointer;}
.quick-keyword-option:hover,.quick-keyword-option.is-active{background:var(--bs-tertiary-bg);}
.quick-keyword-empty{padding:.6rem;color:var(--bs-secondary-color);font-size:.8125rem;}
