/* GLOW DETAIL v5.45 – authoritative responsive layout.
   Loaded last, replacing the conflicting earlier hero viewport overrides.
   Keeps all pricing and booking behavior untouched. */
:root{--gd45-bg:#111214}
html{max-width:100%;}
body{max-width:100%;}
body.gd40-home .gd40-hero{
  position:relative!important;
  display:block!important;
  isolation:isolate!important;
  width:100%!important;
  min-height:clamp(470px,33.333vw,1050px)!important;
  height:auto!important;
  overflow:hidden!important;
  background:var(--gd45-bg)!important;
}
body.gd40-home .gd40-hero-photo{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  max-height:none!important;
  max-width:none!important;
  min-height:0!important;
  overflow:hidden!important;
  z-index:0!important;
  margin:0!important;
  transform:none!important;
  aspect-ratio:auto!important;
}
body.gd40-home .gd40-hero-photo picture{
  display:block!important;
  width:100%!important;
  height:100%!important;
}
body.gd40-home .gd40-hero-photo img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:cover!important;
  object-position:center center!important;
  filter:none!important;
  transform:none!important;
  border:0!important;
  -webkit-mask-image:none!important;
  mask-image:none!important;
}
body.gd40-home .gd40-hero-shade{
  display:block!important;
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  background:linear-gradient(90deg,rgba(13,14,16,.85) 0%,rgba(13,14,16,.64) 19%,rgba(13,14,16,.24) 37%,rgba(13,14,16,.05) 53%,transparent 69%),linear-gradient(0deg,rgba(13,14,16,.24),transparent 19%)!important;
  pointer-events:none!important;
}
body.gd40-home .gd40-hero-content{
  position:relative!important;
  z-index:2!important;
  width:min(84%,1200px)!important;
  max-width:1200px!important;
  min-height:clamp(470px,33.333vw,1050px)!important;
  height:auto!important;
  margin:0 auto!important;
  padding:42px 0!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:flex-start!important;
  text-align:left!important;
}
body.gd40-home .gd40-hero h1{
  max-width:min(100%,600px)!important;
  font-size:clamp(70px,7.3vw,110px)!important;
  line-height:.89!important;
  margin:0 0 21px!important;
}
body.gd40-home .gd40-hero-desc{
  max-width:min(100%,455px)!important;
  font-size:clamp(16px,1.12vw,20px)!important;
  line-height:1.43!important;
  margin-bottom:24px!important;
}
body.gd40-home .gd40-hero-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:12px!important;
  max-width:100%!important;
}
body.gd40-home .gd40-hero-meta{max-width:100%!important;}
/* Header/navigation should not squash the logo or run into the booking CTA. */
.site-header .header-inner{width:min(calc(100% - 44px),1360px);max-width:1360px;gap:12px;}
.site-header .gd30-header-logo{flex-shrink:0;}
.site-header .header-right{flex-shrink:0;}
@media(min-width:801px) and (max-width:1199px){
 body.gd40-home .gd40-hero-content{width:min(calc(100% - 112px),1020px)!important;}
 body.gd40-home .gd40-hero h1{font-size:clamp(68px,7vw,91px)!important;}
 body.gd40-home .gd40-hero-desc{max-width:415px!important;}
 .site-header .header-inner{width:calc(100% - 36px);}
}
/* Mobile and tablets: photo and copy are separate in the natural document flow.
   No zooming of the car when the viewport narrows. */
@media(max-width:800px){
 body.gd40-home .gd40-hero{
   display:flex!important;
   flex-direction:column!important;
   width:100%!important;
   min-height:0!important;
   height:auto!important;
   background:var(--gd45-bg)!important;
   overflow:hidden!important;
 }
 body.gd40-home .gd40-hero-photo{
   position:relative!important;
   inset:auto!important;
   width:100%!important;
   height:auto!important;
   min-height:0!important;
   max-height:none!important;
   aspect-ratio:1020/630!important;
   flex:none!important;
   order:0!important;
   overflow:hidden!important;
 }
 body.gd40-home .gd40-hero-photo picture{height:100%!important;width:100%!important;}
 body.gd40-home .gd40-hero-photo img{
   width:100%!important;
   height:100%!important;
   object-fit:cover!important;
   object-position:center center!important;
   filter:none!important;
 }
 body.gd40-home .gd40-hero-photo::after{
   content:"";position:absolute;z-index:1;inset:auto 0 0 0;height:14%;
   pointer-events:none;background:linear-gradient(180deg,transparent,#11121455);
 }
 body.gd40-home .gd40-hero-shade{display:none!important;}
 body.gd40-home .gd40-hero-content{
   position:relative!important;
   width:min(calc(100% - 48px),700px)!important;
   min-height:0!important;
   height:auto!important;
   max-width:none!important;
   padding:26px 0 38px!important;
   margin:0 auto!important;
   display:flex!important;
   flex-direction:column!important;
   align-items:flex-start!important;
   justify-content:flex-start!important;
   text-align:left!important;
   gap:0!important;
   order:1!important;
 }
 body.gd40-home .gd40-kicker{
   font-size:10px!important;
   letter-spacing:.19em!important;
   gap:7px!important;
   max-width:100%!important;
   margin-bottom:17px!important;
 }
 body.gd40-home .gd40-hero h1{
   font-size:clamp(62px,10vw,92px)!important;
   line-height:.87!important;
   margin-bottom:17px!important;
   max-width:100%!important;
 }
 body.gd40-home .gd40-hero-desc{
   font-size:clamp(15px,2.4vw,19px)!important;
   max-width:min(100%,480px)!important;
   margin:0 0 22px!important;
   line-height:1.43!important;
 }
 body.gd40-home .gd40-hero-actions{gap:10px!important;}
 body.gd40-home .gd40-btn{min-height:44px!important;}
 body.gd40-home .gd40-hero-meta{margin-top:19px!important;font-size:11px!important;}
 .site-header .header-inner{width:calc(100% - 36px);}
}
@media(max-width:480px){
 body.gd40-home .gd40-hero-content{width:calc(100% - 38px)!important;padding:22px 0 30px!important;}
 body.gd40-home .gd40-kicker{font-size:9px!important;letter-spacing:.14em!important;gap:6px!important;margin-bottom:15px!important;}
 body.gd40-home .gd40-hero h1{font-size:clamp(56px,15.3vw,71px)!important;margin-bottom:16px!important;}
 body.gd40-home .gd40-hero-desc{font-size:15px!important;line-height:1.43!important;margin-bottom:20px!important;}
 body.gd40-home .gd40-hero-actions{gap:9px!important;}
 body.gd40-home .gd40-btn{font-size:12px!important;padding:0 16px!important;min-height:44px!important;}
 body.gd40-home .gd40-hero-meta{gap:9px!important;}
 .site-header .header-inner{width:calc(100% - 30px);}
}
@media(max-width:359px){
 body.gd40-home .gd40-hero h1{font-size:55px!important;}
 body.gd40-home .gd40-btn{font-size:11px!important;padding:0 12px!important;}
 body.gd40-home .gd40-hero-meta{font-size:10px!important;}
}
/* Keep site sections from creating accidental horizontal scroll on narrow devices. */
@media(max-width:800px){
 .wrap{max-width:100%;}
 body.gd40-home .gd40-direction-grid{grid-template-columns:1fr!important;}
 body.gd40-home .gd40-services-rail{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
 body.gd40-home .gd40-finder-panel{grid-template-columns:minmax(0,1fr)!important;}
 body.gd40-home .gd40-finder-intro{border-right:0!important;border-bottom:1px solid rgba(235,232,229,.19)!important;padding:0 0 16px!important;}
}
@media(min-width:801px) and (max-width:1080px){
 body.gd40-home .gd40-services-rail{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
}
@media (prefers-reduced-motion:reduce){
 body.gd40-home .gd40-hero-photo img{transition:none!important;animation:none!important;}
}

/* 801–1279px: prevent the wide photo being zoomed/cropped so far that the
   BMW's rear wheel disappears on laptops and medium-width windows. */
@media(min-width:801px) and (max-width:1279px){
 body.gd40-home .gd40-hero{
   display:flex!important;flex-direction:column!important;
   min-height:0!important;height:auto!important;
 }
 body.gd40-home .gd40-hero-photo{
   position:relative!important;inset:auto!important;
   order:0!important;flex:none!important;
   width:100%!important;height:auto!important;
   aspect-ratio:3/1!important;
   max-height:none!important;
 }
 body.gd40-home .gd40-hero-photo img{
   width:100%!important;height:100%!important;
   object-fit:cover!important;object-position:center center!important;
 }
 body.gd40-home .gd40-hero-photo::after{
   content:"";position:absolute;inset:auto 0 0;height:15%;
   background:linear-gradient(180deg,transparent,#11121455);pointer-events:none;
 }
 body.gd40-home .gd40-hero-shade{display:none!important;}
 body.gd40-home .gd40-hero-content{
   order:1!important;min-height:0!important;height:auto!important;
   width:min(calc(100% - 96px),1000px)!important;
   max-width:1000px!important;
   padding:31px 0 39px!important;
   margin:0 auto!important;
   align-items:flex-start!important;justify-content:flex-start!important;
 }
 body.gd40-home .gd40-hero h1{font-size:clamp(65px,8vw,92px)!important;}
 body.gd40-home .gd40-hero-desc{max-width:590px!important;font-size:18px!important;}
 body.gd40-home .gd40-kicker{max-width:100%!important;}
}
@media(min-width:1280px){
 body.gd40-home .gd40-hero-photo img{object-position:right center!important;}
 body.gd40-home .gd40-hero-content{
   max-width:clamp(1200px,62.5vw,1800px)!important;
   width:min(84%,clamp(1200px,62.5vw,1800px))!important;
 }
}
