
/* GlassQuote v355 — conversion hierarchy + production cleanup.
   Loaded last on every HTML page. Keeps estimator internals untouched. */

:root{
  --gq-v355-header-h:50px;
}

/* Global safety: never allow a content card, image, or long word to create sideways scroll. */
html,body{max-width:100%}
html{overflow-x:clip}
body{overflow-x:clip}
main,section,article,header,footer,nav,.wrap{min-width:0}
img,video,canvas,svg,iframe{max-width:100%}
p,h1,h2,h3,h4,a,button,summary,strong,small{overflow-wrap:anywhere}
body:not(.estimator-mode):not(.menu-open){
  overflow-y:auto!important;
  -webkit-overflow-scrolling:touch;
}
@supports not (overflow:clip){
  html,body{overflow-x:hidden}
}
:target{scroll-margin-top:90px}

/* One visual header size everywhere. */
body:not(.estimator-mode) .landing-top-controls.unified-header,
body.gq-header-standardized:not(.estimator-mode) .gq-standard-header.landing-top-controls.unified-header{
  width:min(920px,calc(100% - 16px))!important;
  min-height:50px!important;
  height:50px!important;
  padding:4px 5px 4px 9px!important;
  gap:5px!important;
  border-radius:16px!important;
  background:rgba(250,252,255,.93)!important;
  border:1px solid rgba(255,255,255,.66)!important;
  box-shadow:0 8px 24px rgba(4,24,44,.10),inset 0 1px 0 rgba(255,255,255,.95)!important;
}
body:not(.estimator-mode) .landing-top-controls.unified-header .landing-brand,
body.gq-header-standardized:not(.estimator-mode) .gq-standard-header .landing-brand{
  height:40px!important;
  min-height:40px!important;
  gap:7px!important;
}
body:not(.estimator-mode) .landing-top-controls.unified-header .gq-header-logo,
body.gq-header-standardized:not(.estimator-mode) .gq-standard-header .gq-header-logo{
  width:40px!important;
  height:40px!important;
  flex:0 0 40px!important;
  border-radius:10px!important;
}
body:not(.estimator-mode) .landing-top-controls.unified-header .gq-header-wordmark,
body.gq-header-standardized:not(.estimator-mode) .gq-standard-header .gq-header-wordmark{
  font-size:clamp(.72rem,3.25vw,.88rem)!important;
}
body:not(.estimator-mode) .landing-top-controls.unified-header .call-floater,
body:not(.estimator-mode) .landing-top-controls.unified-header .hot-menu-fab,
body.gq-header-standardized:not(.estimator-mode) .gq-standard-header .call-floater,
body.gq-header-standardized:not(.estimator-mode) .gq-standard-header .hot-menu-fab{
  min-height:36px!important;
  height:36px!important;
  padding:7px 9px!important;
  border-radius:11px!important;
  font-size:.70rem!important;
  gap:5px!important;
}
body:not(.estimator-mode) .landing-top-controls.unified-header .call-floater,
body.gq-header-standardized:not(.estimator-mode) .gq-standard-header .call-floater{
  background:linear-gradient(135deg,#ff9d08,#ffb827)!important;
  border-color:rgba(224,145,15,.34)!important;
  box-shadow:0 4px 12px rgba(255,151,0,.18)!important;
}
body:not(.estimator-mode) .landing-top-controls.unified-header .hot-menu-fab,
body.gq-header-standardized:not(.estimator-mode) .gq-standard-header .hot-menu-fab{
  background:#eef3f8!important;
  border-color:rgba(7,29,53,.09)!important;
}
body.gq-header-standardized{--gq-standard-header-space:calc(var(--gq-safe-top) + 64px)}

@media(max-width:390px){
  body:not(.estimator-mode) .landing-top-controls.unified-header,
  body.gq-header-standardized:not(.estimator-mode) .gq-standard-header.landing-top-controls.unified-header{
    width:calc(100% - 12px)!important;
    padding-left:6px!important;
    padding-right:4px!important;
    gap:4px!important;
  }
  body:not(.estimator-mode) .landing-top-controls.unified-header .landing-brand,
  body.gq-header-standardized:not(.estimator-mode) .gq-standard-header .landing-brand{
    height:38px!important;
    min-height:38px!important;
    gap:5px!important;
  }
  body:not(.estimator-mode) .landing-top-controls.unified-header .gq-header-logo,
  body.gq-header-standardized:not(.estimator-mode) .gq-standard-header .gq-header-logo{
    width:38px!important;height:38px!important;flex-basis:38px!important;
  }
  body:not(.estimator-mode) .landing-top-controls.unified-header .gq-header-wordmark,
  body.gq-header-standardized:not(.estimator-mode) .gq-standard-header .gq-header-wordmark{
    font-size:.72rem!important;
  }
  body:not(.estimator-mode) .landing-top-controls.unified-header .call-floater,
  body:not(.estimator-mode) .landing-top-controls.unified-header .hot-menu-fab,
  body.gq-header-standardized:not(.estimator-mode) .gq-standard-header .call-floater,
  body.gq-header-standardized:not(.estimator-mode) .gq-standard-header .hot-menu-fab{
    padding-inline:7px!important;
    font-size:.67rem!important;
  }
  body:not(.estimator-mode) .landing-top-controls.unified-header .call-floater>span[aria-hidden="true"],
  body.gq-header-standardized:not(.estimator-mode) .gq-standard-header .call-floater>span[aria-hidden="true"]{
    display:none!important;
  }
}

/* Homepage hero: one job — explain the instant quote and make the estimator dominant. */
body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero{
  background-position:center 48%!important;
}
body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero::before{
  background:
    linear-gradient(180deg,rgba(2,12,24,.14),rgba(2,12,24,.28)),
    radial-gradient(circle at 50% 37%,rgba(19,115,191,.12),transparent 24rem)!important;
}
body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero-inner{
  align-items:center!important;
  justify-content:center!important;
}
body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero-copy.hero-start-screen{
  width:min(760px,100%)!important;
  gap:14px!important;
}
body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero-title-block{
  margin:0!important;
  gap:11px!important;
}
body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero h1{
  max-width:720px!important;
  margin-inline:auto!important;
}
body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero-seo-lead{
  max-width:660px!important;
  margin:0 auto!important;
  font-size:clamp(.93rem,2.2vw,1.14rem)!important;
  line-height:1.48!important;
  color:rgba(245,250,255,.90)!important;
  text-shadow:0 2px 12px rgba(0,0,0,.54)!important;
}
body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero-glassline{
  margin:0 auto!important;
  font-size:clamp(.74rem,1.7vw,.9rem)!important;
  color:rgba(238,247,255,.88)!important;
}
body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) #heroStart{
  width:min(410px,92vw)!important;
  min-height:60px!important;
  margin:4px auto 0!important;
  padding:14px 18px!important;
  border-radius:17px!important;
  font-size:clamp(.98rem,4vw,1.12rem)!important;
  background:linear-gradient(135deg,#0b5d99 0%,#1591e5 100%)!important;
  border:1px solid rgba(144,213,255,.38)!important;
  box-shadow:0 16px 36px rgba(0,0,0,.29),0 0 30px rgba(31,153,237,.18)!important;
}
body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) #heroStart::after{
  color:#ffd070!important;
  margin-left:5px!important;
}
body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero-proof-card{
  width:auto!important;
  max-width:92vw!important;
  min-height:0!important;
  margin:5px auto 0!important;
  padding:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex-wrap:wrap!important;
  gap:4px 8px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  color:#fff!important;
}
body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero-proof-stars{
  color:#ffb52e!important;
  font-size:.78rem!important;
}
body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero-proof-card strong{
  color:#f7fbff!important;
  font-size:.70rem!important;
  white-space:normal!important;
}
body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero-proof-card small{
  flex-basis:100%!important;
  color:rgba(226,239,250,.78)!important;
  font-size:.56rem!important;
  text-align:center!important;
  white-space:normal!important;
}
body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero-callback-line{
  width:auto!important;
  margin:0 auto!important;
  font-size:.68rem!important;
}
body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .start-scroll-cue{
  display:inline-flex!important;
  opacity:.72!important;
  pointer-events:auto!important;
}
body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero .hero-guides-bullets{
  display:none!important; /* safeguard: guides should never re-enter hero */
}

@media(max-width:430px){
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero{
    background-position:center center!important;
  }
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero-copy.hero-start-screen{
    gap:12px!important;
  }
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero h1{
    font-size:clamp(2.35rem,11.2vw,3.2rem)!important;
    line-height:.94!important;
  }
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero-seo-lead{
    max-width:345px!important;
    font-size:.91rem!important;
    line-height:1.46!important;
  }
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) #heroStart{
    min-height:58px!important;
    width:min(370px,94vw)!important;
  }
}
@media(max-height:700px) and (max-width:500px){
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero-copy.hero-start-screen{
    gap:9px!important;
  }
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero h1{
    font-size:clamp(2.05rem,10vw,2.7rem)!important;
  }
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero-seo-lead{
    font-size:.84rem!important;
  }
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) #heroStart{
    min-height:54px!important;
  }
}

/* Fast visual explanation immediately after the hero. */
.home-quick-process{
  padding:22px 0 24px;
  background:#f6faff;
  border-bottom:1px solid #dfeaf4;
}
.home-quick-process h2{
  margin:0 0 12px;
  color:#071d35;
  font-family:Inter,ui-sans-serif,system-ui,sans-serif;
  font-size:.72rem;
  font-weight:950;
  letter-spacing:.10em;
  text-transform:uppercase;
  text-align:center;
}
.home-quick-process-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.home-quick-step{
  min-width:0;
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  gap:10px;
  align-items:start;
  padding:14px;
  border:1px solid #dbe8f3;
  border-radius:15px;
  background:#fff;
  box-shadow:0 7px 18px rgba(7,29,53,.045);
}
.home-quick-step-number{
  width:34px;height:34px;display:grid;place-items:center;
  border-radius:11px;background:#e9f5ff;color:#0b67a8;font-weight:950;font-size:.78rem;
}
.home-quick-step strong{display:block;color:#071d35;font-size:.86rem;line-height:1.2}
.home-quick-step p{margin:4px 0 0;color:#64758a;font-size:.72rem;font-weight:650;line-height:1.35}
@media(max-width:650px){
  .home-quick-process{padding:18px 0}
  .home-quick-process-grid{grid-template-columns:1fr;gap:7px}
  .home-quick-step{padding:11px 12px;grid-template-columns:31px minmax(0,1fr);gap:9px}
  .home-quick-step-number{width:31px;height:31px;border-radius:10px}
  .home-quick-step p{font-size:.69rem}
}

/* Dedicated resource area — guides now support the estimate instead of competing with it. */
.home-resources{
  padding:34px 0 38px!important;
  background:linear-gradient(180deg,#f8fbff 0%,#edf6fc 100%);
  border-top:1px solid #e3edf5;
  border-bottom:1px solid #dce9f3;
}
.home-section-head{
  max-width:760px;
  margin:0 auto 18px;
  text-align:center;
}
.home-section-eyebrow{
  display:block;
  margin-bottom:5px;
  color:#1473b8;
  font-size:.66rem;
  font-weight:950;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.home-section-head h2{
  margin:0;
  color:#071d35;
  font-family:Fraunces,Georgia,serif;
  font-size:clamp(1.55rem,4vw,2.3rem);
  line-height:1.05;
  letter-spacing:-.035em;
}
.home-section-head p{
  max-width:650px;
  margin:9px auto 0;
  color:#617388;
  font-size:.82rem;
  font-weight:620;
  line-height:1.48;
}
.home-resources .home-resource-grid{
  width:min(860px,100%)!important;
  margin:0 auto!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
}
.home-resources .hero-guide-pill{
  position:relative!important;
  display:grid!important;
  grid-template-columns:58px minmax(0,1fr) auto auto!important;
  min-height:64px!important;
  height:auto!important;
  width:100%!important;
  align-items:center!important;
  overflow:hidden!important;
  border:1px solid #d4e3ef!important;
  border-radius:15px!important;
  background:#fff!important;
  color:#071d35!important;
  box-shadow:0 8px 22px rgba(7,29,53,.055)!important;
  text-decoration:none!important;
}
.home-resources .hero-guide-pill:last-child:nth-child(odd){
  grid-column:1/-1!important;
  width:calc(50% - 5px)!important;
  justify-self:center!important;
}
.home-resources .hero-guide-pill-thumb{
  width:58px!important;height:64px!important;object-fit:cover!important;object-position:center!important;
}
.home-resources .hero-guide-pill-title{
  padding:0 9px!important;
  color:#071d35!important;
  font-size:.78rem!important;
  font-weight:850!important;
  line-height:1.18!important;
  white-space:normal!important;
}
.home-resources .hero-guide-pill-title b{color:#1373bf!important}
.home-resources .hero-guide-pdf-badge{
  min-width:33px!important;height:22px!important;
  border:1px solid #c8dff1!important;
  background:#eef7ff!important;color:#0b67a8!important;
  font-size:.50rem!important;
}
.home-resources .hero-guide-open-icon{
  width:27px!important;color:#2986c8!important;
}
.home-resources .hero-guide-pill:hover,
.home-resources .hero-guide-pill:focus-visible,
.home-resources .hero-guide-pill:active{
  background:#fff!important;
  border-color:#8cc8ef!important;
  box-shadow:0 11px 26px rgba(7,29,53,.09)!important;
}
@media(max-width:650px){
  .home-resources{padding:28px 0 31px!important}
  .home-section-head{text-align:left;margin-bottom:15px}
  .home-section-head p{margin-left:0}
  .home-resources .home-resource-grid{
    grid-template-columns:1fr!important;
    gap:7px!important;
  }
  .home-resources .hero-guide-pill:last-child:nth-child(odd){
    grid-column:auto!important;width:100%!important;
  }
  .home-resources .hero-guide-pill{
    min-height:58px!important;
    grid-template-columns:52px minmax(0,1fr) auto auto!important;
    border-radius:13px!important;
  }
  .home-resources .hero-guide-pill-thumb{width:52px!important;height:58px!important}
  .home-resources .hero-guide-pill-title{font-size:.75rem!important}
}

/* Compact service-area block for location relevance without keyword stuffing. */
.home-area-strip{
  padding:31px 0 34px!important;
  background:#fff;
}
.home-area-chips{
  display:flex;flex-wrap:wrap;justify-content:center;gap:7px;
  max-width:850px;margin:0 auto;
}
.home-area-chips span{
  display:inline-flex;align-items:center;min-height:34px;padding:7px 11px;
  border:1px solid #dae7f1;border-radius:999px;background:#f7fbfe;
  color:#24415e;font-size:.68rem;font-weight:820;
}
.home-area-link{
  width:max-content;max-width:100%;display:block;margin:14px auto 0;
  color:#0b67a8;font-size:.75rem;font-weight:900;text-decoration:none;
}
@media(max-width:650px){
  .home-area-strip .home-section-head{text-align:left}
  .home-area-chips{justify-content:flex-start}
  .home-area-link{margin-left:0}
}

/* Normalize spacing across large homepage sections after hierarchy changes. */
body.site-browse-mode:not(.estimator-mode) .gq-popular-paths{margin-top:0!important}
body.site-browse-mode:not(.estimator-mode) #services,
body.site-browse-mode:not(.estimator-mode) #how,
body.site-browse-mode:not(.estimator-mode) #faq{
  scroll-margin-top:88px!important;
}

/* Sticky footer actions must never obscure the final line of normal pages. */
@media(max-width:700px){
  body:not(.estimator-mode) footer{padding-bottom:calc(74px + env(safe-area-inset-bottom,0px))}
}

/* The estimator has its own carefully hardened scroll model — do not override it. */
body.estimator-mode:not(.site-browse-mode),
body.estimator-mode:not(.site-browse-mode) #estimator,
body.estimator-mode:not(.site-browse-mode) #quote{
  overflow-x:hidden!important;
}

/* v357 mobile polish + reliable estimator controls */
body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .start-scroll-cue{
  min-width:138px!important;
  width:auto!important;
  max-width:none!important;
  padding:7px 12px!important;
  white-space:nowrap!important;
  line-height:1!important;
  flex-wrap:nowrap!important;
  justify-content:center!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
}
body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .start-scroll-cue span{
  display:block!important;
  white-space:nowrap!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
}
body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) #heroStart .hero-start-label{
  white-space:nowrap!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
}
body.estimator-mode:not(.site-browse-mode) .gq-estimator-back,
body.estimator-mode:not(.site-browse-mode) .gq-estimator-menu-button{
  position:relative!important;
  z-index:1600!important;
  pointer-events:auto!important;
  touch-action:manipulation!important;
  -webkit-tap-highlight-color:transparent!important;
}
@media(max-width:430px){
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero-copy.hero-start-screen{
    gap:10px!important;
  }
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero-proof-card{
    margin-top:2px!important;
  }
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero-callback-line{
    margin-top:-2px!important;
  }
}
@media(max-width:375px){
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) #heroStart{
    width:calc(100vw - 28px)!important;
    padding-inline:13px!important;
    font-size:.94rem!important;
  }
}

/* v522 homepage hero layout: base mobile geometry, no extra stylesheet */
@media(max-width:700px){
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero-inner{
    justify-content:flex-start!important;
    padding-top:calc(76px + env(safe-area-inset-top,0px))!important;
    padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))!important;
  }
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero-copy.hero-start-screen{
    width:100%!important;
    max-width:none!important;
    justify-content:flex-start!important;
    gap:10px!important;
    padding-left:12px!important;
    padding-right:12px!important;
  }
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) #heroStart{
    position:relative!important;
    width:100%!important;
    max-width:none!important;
    min-height:76px!important;
    margin:8px 0 0!important;
    padding:18px 58px!important;
    align-self:stretch!important;
    justify-content:center!important;
    text-align:center!important;
    font-size:clamp(1.02rem,4.25vw,1.14rem)!important;
    line-height:1.08!important;
    box-sizing:border-box!important;
  }
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) #heroStart .hero-start-label{
    display:block!important;
    width:100%!important;
    text-align:center!important;
  }
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) #heroStart .hero-start-bolt{
    position:absolute!important;
    left:20px!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    margin:0!important;
  }
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) #heroStart::after{
    position:absolute!important;
    right:20px!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    margin:0!important;
  }
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .gq-saved-quote-card{
    margin-top:18px!important;
  }
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero-proof-card{
    margin-top:12px!important;
  }
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero-callback-line{
    margin-top:4px!important;
  }
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .start-scroll-cue{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    bottom:auto!important;
    transform:none!important;
    align-self:center!important;
    margin:14px auto 0!important;
    min-height:40px!important;
    z-index:1!important;
  }
}
@media(max-width:430px){
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero-inner{
    padding-top:calc(68px + env(safe-area-inset-top,0px))!important;
  }
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) #heroStart{
    min-height:78px!important;
    padding:18px 54px!important;
    font-size:1.04rem!important;
  }
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .gq-saved-quote-card{
    margin-top:16px!important;
  }
}
@media(max-width:375px){
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) .hero-inner{
    padding-top:calc(60px + env(safe-area-inset-top,0px))!important;
  }
  body.site-browse-mode:not(.estimator-mode):not(.about-mode):not(.career-mode) #heroStart{
    min-height:74px!important;
    padding:17px 50px!important;
    font-size:.98rem!important;
  }
}
