
/* Production photography contract. Photo slots follow docs/V0-PHOTO-UX-SYSTEM.md. */
body[data-brand-imagery="lowes-brand-imagery-v1-2026-09-05"] .lv-hero{
  background-color:#071f38!important;
  background-size:cover!important;
  background-position:70% center!important;
  background-repeat:no-repeat!important;
}
@media (max-width:640px){body[data-brand-imagery="lowes-brand-imagery-v1-2026-09-05"] .lv-hero{background-image:image-set(url('/assets/photos/home-hero-moving-truck-mobile.avif') type('image/avif'), url('/assets/photos/home-hero-moving-truck-mobile.webp') type('image/webp')), url('/assets/lowes-moving-fleet-hero-v2.svg')!important;background-position:50% center!important}}
@media (min-width:640.02px) and (max-width:1000px){body[data-brand-imagery="lowes-brand-imagery-v1-2026-09-05"] .lv-hero{background-image:image-set(url('/assets/photos/home-hero-moving-truck-1000.avif') type('image/avif'), url('/assets/photos/home-hero-moving-truck-1000.webp') type('image/webp')), url('/assets/lowes-moving-fleet-hero-v2.svg')!important}}
@media (min-width:1000.02px){body[data-brand-imagery="lowes-brand-imagery-v1-2026-09-05"] .lv-hero{background-image:image-set(url('/assets/photos/home-hero-moving-truck.avif') type('image/avif'), url('/assets/photos/home-hero-moving-truck.webp') type('image/webp')), url('/assets/lowes-moving-fleet-hero-v2.svg')!important}}
body[data-brand-photo="residential-movers-home"] .sl-hero{
  background-size:cover!important;
  background-position:center,72% center!important;
  background-repeat:no-repeat!important;
}
@media (max-width:520px){body[data-brand-photo="residential-movers-home"] .sl-hero{background-image:linear-gradient(105deg,rgba(4,20,35,.97),rgba(4,20,35,.83) 55%,rgba(4,20,35,.4)),image-set(url('/assets/photos/residential-movers-home-520.avif') type('image/avif'), url('/assets/photos/residential-movers-home-520.webp') type('image/webp')), url('/assets/lowes-moving-fleet-hero-v2.svg')!important}}
@media (min-width:520.02px) and (max-width:800px){body[data-brand-photo="residential-movers-home"] .sl-hero{background-image:linear-gradient(105deg,rgba(4,20,35,.97),rgba(4,20,35,.83) 55%,rgba(4,20,35,.4)),image-set(url('/assets/photos/residential-movers-home-800.avif') type('image/avif'), url('/assets/photos/residential-movers-home-800.webp') type('image/webp')), url('/assets/lowes-moving-fleet-hero-v2.svg')!important}}
@media (min-width:800.02px){body[data-brand-photo="residential-movers-home"] .sl-hero{background-image:linear-gradient(105deg,rgba(4,20,35,.97),rgba(4,20,35,.83) 55%,rgba(4,20,35,.4)),image-set(url('/assets/photos/residential-movers-home.avif') type('image/avif'), url('/assets/photos/residential-movers-home.webp') type('image/webp')), url('/assets/lowes-moving-fleet-hero-v2.svg')!important}}
body[data-brand-photo="commercial-office-move"] .sl-hero{
  background-size:cover!important;
  background-position:center,72% center!important;
  background-repeat:no-repeat!important;
}
@media (max-width:520px){body[data-brand-photo="commercial-office-move"] .sl-hero{background-image:linear-gradient(105deg,rgba(4,20,35,.97),rgba(4,20,35,.83) 55%,rgba(4,20,35,.4)),image-set(url('/assets/photos/commercial-office-move-520.avif') type('image/avif'), url('/assets/photos/commercial-office-move-520.webp') type('image/webp')), url('/assets/lowes-moving-fleet-hero-v2.svg')!important}}
@media (min-width:520.02px) and (max-width:800px){body[data-brand-photo="commercial-office-move"] .sl-hero{background-image:linear-gradient(105deg,rgba(4,20,35,.97),rgba(4,20,35,.83) 55%,rgba(4,20,35,.4)),image-set(url('/assets/photos/commercial-office-move-800.avif') type('image/avif'), url('/assets/photos/commercial-office-move-800.webp') type('image/webp')), url('/assets/lowes-moving-fleet-hero-v2.svg')!important}}
@media (min-width:800.02px){body[data-brand-photo="commercial-office-move"] .sl-hero{background-image:linear-gradient(105deg,rgba(4,20,35,.97),rgba(4,20,35,.83) 55%,rgba(4,20,35,.4)),image-set(url('/assets/photos/commercial-office-move.avif') type('image/avif'), url('/assets/photos/commercial-office-move.webp') type('image/webp')), url('/assets/lowes-moving-fleet-hero-v2.svg')!important}}
body[data-brand-photo="packing-service"] .sl-hero{
  background-size:cover!important;
  background-position:center,72% center!important;
  background-repeat:no-repeat!important;
}
@media (max-width:520px){body[data-brand-photo="packing-service"] .sl-hero{background-image:linear-gradient(105deg,rgba(4,20,35,.97),rgba(4,20,35,.83) 55%,rgba(4,20,35,.4)),image-set(url('/assets/photos/packing-service-520.avif') type('image/avif'), url('/assets/photos/packing-service-520.webp') type('image/webp')), url('/assets/lowes-moving-fleet-hero-v2.svg')!important}}
@media (min-width:520.02px) and (max-width:800px){body[data-brand-photo="packing-service"] .sl-hero{background-image:linear-gradient(105deg,rgba(4,20,35,.97),rgba(4,20,35,.83) 55%,rgba(4,20,35,.4)),image-set(url('/assets/photos/packing-service-800.avif') type('image/avif'), url('/assets/photos/packing-service-800.webp') type('image/webp')), url('/assets/lowes-moving-fleet-hero-v2.svg')!important}}
@media (min-width:800.02px){body[data-brand-photo="packing-service"] .sl-hero{background-image:linear-gradient(105deg,rgba(4,20,35,.97),rgba(4,20,35,.83) 55%,rgba(4,20,35,.4)),image-set(url('/assets/photos/packing-service.avif') type('image/avif'), url('/assets/photos/packing-service.webp') type('image/webp')), url('/assets/lowes-moving-fleet-hero-v2.svg')!important}}
body[data-brand-photo="lowes-team"] .sl-hero{
  background-size:cover!important;
  background-position:center,72% center!important;
  background-repeat:no-repeat!important;
}
@media (max-width:640px){body[data-brand-photo="lowes-team"] .sl-hero{background-image:linear-gradient(105deg,rgba(4,20,35,.97),rgba(4,20,35,.83) 55%,rgba(4,20,35,.4)),image-set(url('/assets/photos/lowes-team-640.avif') type('image/avif'), url('/assets/photos/lowes-team-640.webp') type('image/webp')), url('/assets/lowes-moving-fleet-hero-v2.svg')!important}}
@media (min-width:640.02px) and (max-width:1000px){body[data-brand-photo="lowes-team"] .sl-hero{background-image:linear-gradient(105deg,rgba(4,20,35,.97),rgba(4,20,35,.83) 55%,rgba(4,20,35,.4)),image-set(url('/assets/photos/lowes-team-1000.avif') type('image/avif'), url('/assets/photos/lowes-team-1000.webp') type('image/webp')), url('/assets/lowes-moving-fleet-hero-v2.svg')!important}}
@media (min-width:1000.02px){body[data-brand-photo="lowes-team"] .sl-hero{background-image:linear-gradient(105deg,rgba(4,20,35,.97),rgba(4,20,35,.83) 55%,rgba(4,20,35,.4)),image-set(url('/assets/photos/lowes-team.avif') type('image/avif'), url('/assets/photos/lowes-team.webp') type('image/webp')), url('/assets/lowes-moving-fleet-hero-v2.svg')!important}}
body[data-brand-photo="long-distance-highway"] .sl-hero{
  background-size:cover!important;
  background-position:center,72% center!important;
  background-repeat:no-repeat!important;
}
@media (max-width:640px){body[data-brand-photo="long-distance-highway"] .sl-hero{background-image:linear-gradient(105deg,rgba(4,20,35,.97),rgba(4,20,35,.83) 55%,rgba(4,20,35,.4)),image-set(url('/assets/photos/long-distance-highway-640.avif') type('image/avif'), url('/assets/photos/long-distance-highway-640.webp') type('image/webp')), url('/assets/lowes-moving-fleet-hero-v2.svg')!important}}
@media (min-width:640.02px) and (max-width:1000px){body[data-brand-photo="long-distance-highway"] .sl-hero{background-image:linear-gradient(105deg,rgba(4,20,35,.97),rgba(4,20,35,.83) 55%,rgba(4,20,35,.4)),image-set(url('/assets/photos/long-distance-highway-1000.avif') type('image/avif'), url('/assets/photos/long-distance-highway-1000.webp') type('image/webp')), url('/assets/lowes-moving-fleet-hero-v2.svg')!important}}
@media (min-width:1000.02px){body[data-brand-photo="long-distance-highway"] .sl-hero{background-image:linear-gradient(105deg,rgba(4,20,35,.97),rgba(4,20,35,.83) 55%,rgba(4,20,35,.4)),image-set(url('/assets/photos/long-distance-highway.avif') type('image/avif'), url('/assets/photos/long-distance-highway.webp') type('image/webp')), url('/assets/lowes-moving-fleet-hero-v2.svg')!important}}
/* ui-rescue.css sets body[data-ui-system] h1{color:var(--ui-ink)} which matches the
   hero heading directly and so beats the inherited white on .lv-hero. Over a dark
   photographic hero that renders navy-on-navy: measured 2.33:1, below the 3.0:1
   WCAG AA floor for large text. Restore the inverse treatment the hero was designed for. */
body[data-brand-imagery="lowes-brand-imagery-v1-2026-09-05"] .lv-hero :is(h1,h2,.lv-hero-kicker){color:#fff}
body[data-brand-imagery="lowes-brand-imagery-v1-2026-09-05"] .lv-hero :is(.lv-hero-services,.lv-hero-tagline){color:rgba(255,255,255,.94)}
/* Hold the headline column dark enough for white text to clear AA wherever the
   photograph is bright behind it.

   These MUST be emitted per breakpoint. brand-refresh.css and layout-system-v4.css
   both redefine .lv-hero-shade inside their own media queries -- switching to a
   VERTICAL gradient below 640px, because on a phone the copy spans the full width
   and a horizontal fade leaves its right-hand end over bare photograph. A single
   unscoped rule with !important outranks a non-!important rule inside a media
   query, so one base rule silently killed every responsive variant. Measured on
   the painted pixels behind the glyphs, that put the home headline at 1.38:1 on
   mobile and 2.94:1 on tablet, against a 3.0:1 floor for large text. */
body[data-brand-imagery="lowes-brand-imagery-v1-2026-09-05"] .lv-hero-shade{
  background:linear-gradient(90deg,rgba(4,20,35,.97) 0%,rgba(4,20,35,.93) 38%,rgba(4,20,35,.74) 56%,rgba(4,20,35,.24) 78%,rgba(4,20,35,.10) 100%)!important;
}
/* Weighted to the copy, which occupies roughly the top 45% of the hero box at these
   widths: dark where the glyphs are, then opening up so the photograph is still a
   photograph. Tuned against measured worst-pixel contrast, not by eye. */
@media(max-width:920px){
  body[data-brand-imagery="lowes-brand-imagery-v1-2026-09-05"] .lv-hero-shade{
    background:linear-gradient(160deg,rgba(4,20,35,.95) 0%,rgba(4,20,35,.90) 44%,rgba(4,20,35,.70) 72%,rgba(4,20,35,.46) 100%)!important;
  }
}
@media(max-width:640px){
  body[data-brand-imagery="lowes-brand-imagery-v1-2026-09-05"] .lv-hero-shade{
    background:linear-gradient(180deg,rgba(4,20,35,.95) 0%,rgba(4,20,35,.91) 44%,rgba(4,20,35,.68) 72%,rgba(4,20,35,.40) 100%)!important;
  }
}
body[data-brand-imagery="lowes-brand-imagery-v1-2026-09-05"] .lv-photo-band{padding-block:clamp(28px,5vw,56px)}
body[data-brand-imagery="lowes-brand-imagery-v1-2026-09-05"] .lv-photo{margin:0}
body[data-brand-imagery="lowes-brand-imagery-v1-2026-09-05"] .lv-photo picture{display:block}
body[data-brand-imagery="lowes-brand-imagery-v1-2026-09-05"] .lv-photo img{
  display:block;
  width:100%;
  height:auto;
  max-width:100%;
  border-radius:20px;
  background-color:#0b2033;
  box-shadow:0 18px 40px rgba(8,27,51,.18);
  object-fit:cover;
}
body[data-brand-imagery="lowes-brand-imagery-v1-2026-09-05"] .lv-photo figcaption{
  margin-top:12px;
  font-size:14px;
  line-height:1.5;
  color:#41586e;
}
@media(max-width:640px){
  body[data-brand-imagery="lowes-brand-imagery-v1-2026-09-05"] .lv-photo img{border-radius:14px}
}
/* No narrow-viewport background-position override here: it would come after the
   breakpoint rules above and, at equal specificity and !important, silently beat
   the portrait crop's own focal point. Each step owns its position. */
@media(prefers-reduced-motion:reduce){
  body[data-brand-imagery="lowes-brand-imagery-v1-2026-09-05"] .lv-photo img{transition:none}
}
@media(forced-colors:active){
  body[data-brand-imagery="lowes-brand-imagery-v1-2026-09-05"] .lv-hero,
  body[data-brand-photo] .sl-hero{background-image:none!important}
  body[data-brand-imagery="lowes-brand-imagery-v1-2026-09-05"] .lv-photo img{box-shadow:none}
}
