/* Gritmoor visual refinements — 2026-10-27 */

/* Keep the official logo artwork as the home button on every page. */
.brand-logo-image{
  display:block;
  width:clamp(190px,12.5vw,250px);
  height:auto;
  object-fit:contain;
  object-position:left center;
}

/* Review carousel: arrows belong to the review card row, not the total carousel height. */
.testimonial-carousel{
  display:grid;
  grid-template-columns:56px minmax(0,1fr) 56px;
  column-gap:12px;
  grid-template-rows:auto auto;
  align-items:center;
  max-width:1080px;
  margin:0 auto;
}
.testimonial-viewport{grid-column:2;grid-row:1;width:100%;min-width:0;overflow:hidden}
.testimonial-arrow{
  position:static!important;
  top:auto!important;
  transform:none!important;
  grid-row:1;
  align-self:center;
  justify-self:center;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0!important;
}
.testimonial-arrow.prev{grid-column:1}
.testimonial-arrow.next{grid-column:3}
.testimonial-dots{grid-column:1/-1;grid-row:2;margin-top:22px}

/* Full-bleed hero shared by service, location, and about pages. */
.feature-hero{
  position:relative;
  min-height:clamp(430px,34vw,590px);
  overflow:hidden;
  background:#171817;
  color:#fff;
  isolation:isolate;
}
.feature-hero-media{position:absolute;inset:0;z-index:0;margin:0}
.feature-hero-media img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.feature-hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(12,13,12,.98) 0%,rgba(12,13,12,.96) 44%,rgba(12,13,12,.90) 58%,rgba(12,13,12,.46) 74%,rgba(12,13,12,.08) 92%,rgba(12,13,12,.02) 100%);
}
.feature-hero-copy{
  position:relative;
  z-index:2;
  width:min(650px,52%);
  min-height:clamp(430px,34vw,590px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(54px,6vw,92px) clamp(30px,5vw,82px);
}
.feature-hero .hero-kicker{
  margin:0 0 12px;
  color:var(--gold);
  font-size:12px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.feature-hero h1{
  margin:0;
  color:#fff;
  font-size:clamp(44px,4.4vw,72px);
  line-height:.98;
  letter-spacing:-.035em;
  text-transform:uppercase;
}
.feature-hero .hero-lead{
  margin:20px 0 0;
  max-width:590px;
  color:#f2efdf;
  font-size:clamp(16px,1.15vw,20px);
  line-height:1.55;
}
.feature-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.feature-hero-actions .button{min-height:44px}
.feature-hero-actions .button-outline{border-color:#f3edd1;color:#fff;background:rgba(0,0,0,.22)}
.feature-hero-actions .button-outline:hover{background:#fff;color:#171817}

/* Generated location imagery keeps its strongest landscape framing. */
.feature-hero--locations .feature-hero-media img{object-position:center center}
.feature-hero--utah .feature-hero-media img{object-position:center center}
.feature-hero--slc .feature-hero-media img{object-position:center center}

/* About: image spans the full viewport and uses the same premium hero language as Rentals. */
.about-hero.feature-hero{min-height:clamp(430px,30vw,520px)}
.about-hero.feature-hero::after{background:linear-gradient(90deg,rgba(12,13,12,.94) 0%,rgba(12,13,12,.86) 28%,rgba(12,13,12,.45) 50%,rgba(12,13,12,.08) 74%,rgba(12,13,12,.02) 100%)}
.about-hero .feature-hero-copy{min-height:clamp(430px,30vw,520px);width:min(600px,44%)}
.about-hero .feature-hero-media img{object-position:center 50%}
.about-intro{background:var(--cream)}
.about-intro .about-copy{max-width:1040px;margin:0 auto;padding:clamp(52px,5vw,78px) 32px clamp(64px,6vw,94px);background:transparent}
.about-intro .about-copy h2{font-size:clamp(30px,2.5vw,42px);margin:0 0 24px}

@media(max-width:900px){
  .testimonial-carousel{display:block;max-width:980px}
  .testimonial-arrow{display:none!important}
  .testimonial-dots{display:flex}
  .feature-hero{min-height:0;padding-top:290px}
  .feature-hero-media{height:290px}
  .feature-hero::after{background:linear-gradient(180deg,rgba(0,0,0,.06) 0%,rgba(0,0,0,.22) 44%,#171817 100%)}
  .feature-hero-copy{width:100%;min-height:0;padding:36px 24px 42px;background:#171817}
  .feature-hero h1{font-size:clamp(38px,10vw,52px)}
  .about-hero.feature-hero{min-height:0;padding-top:310px}
  .about-hero .feature-hero-media{height:310px}
  .about-hero .feature-hero-copy{width:100%;min-height:0}
}

@media(max-width:520px){
  .brand-logo-image{width:150px}
  .feature-hero{padding-top:245px}
  .feature-hero-media{height:245px}
  .feature-hero-actions{display:grid;grid-template-columns:1fr}
  .feature-hero-actions .button{width:100%}
  .about-hero.feature-hero{padding-top:260px}
  .about-hero .feature-hero-media{height:260px}
}

/* Gritmoor 2026-10-28: clearer service hero photos, premium framing, and restrained overlay. */
.feature-hero--service{min-height:clamp(440px,31vw,550px);background:#242823}
.feature-hero--service .feature-hero-copy{min-height:clamp(440px,31vw,550px);width:min(720px,55%);padding-left:clamp(28px,5vw,82px)}
.feature-hero--service .feature-hero-media img{object-fit:cover;object-position:60% 50%;filter:saturate(1.075) contrast(1.035);transform:none}
.feature-hero--service::after{background:linear-gradient(90deg,rgba(12,16,13,.84) 0%,rgba(12,16,13,.70) 25%,rgba(12,16,13,.40) 46%,rgba(12,16,13,.13) 67%,rgba(12,16,13,.025) 100%)}
.feature-hero--service .hero-lead{text-shadow:0 1px 5px rgba(0,0,0,.38)}
.feature-hero--service h1{text-shadow:0 2px 10px rgba(0,0,0,.35)}
/* Wide source imagery stays sharp and unzoomed; authentic vertical photographs favor their main subject. */
@media(min-width:901px){
 .feature-hero--service:has(img[src*="junk-removal-yard-debris"]) .feature-hero-media img{object-position:center 48%}
 .feature-hero--service:has(img[src*="hero-parking-strip-real-project"]) .feature-hero-media img{object-position:center 55%}
}
/* Service cards: keep original photograph details visible, avoid excessive zoom and compression. */
.render-service-card img{object-fit:cover;object-position:center center;image-rendering:auto}
@media(max-width:900px){
 .feature-hero--service{min-height:0;padding-top:clamp(250px,44vw,350px)}
 .feature-hero--service .feature-hero-media{height:clamp(250px,44vw,350px)}
 .feature-hero--service::after{background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.08) 58%,rgba(23,24,23,.9) 100%)}
 .feature-hero--service .feature-hero-copy{width:100%;min-height:0;background:#171817;padding:30px 24px 42px}
}
@media(max-width:520px){
 .feature-hero--service{padding-top:255px}
 .feature-hero--service .feature-hero-media{height:255px}
}

/* Location hero refresh 2026-10-28: clear vistas and reduced dark gradient */
.feature-hero--locations,.feature-hero--utah,.feature-hero--slc{min-height:clamp(390px,30vw,490px)}
.feature-hero--locations .feature-hero-copy,.feature-hero--utah .feature-hero-copy,.feature-hero--slc .feature-hero-copy{min-height:clamp(390px,30vw,490px)}
.feature-hero--locations::after,.feature-hero--utah::after,.feature-hero--slc::after{background:linear-gradient(90deg,rgba(12,16,18,.72) 0%,rgba(12,16,18,.56) 25%,rgba(12,16,18,.25) 49%,rgba(12,16,18,.06) 75%,rgba(12,16,18,0) 100%)!important}
.feature-hero--locations .feature-hero-media img,.feature-hero--utah .feature-hero-media img,.feature-hero--slc .feature-hero-media img{object-fit:cover;object-position:62% 50%;filter:none}
@media(max-width:700px){.feature-hero--locations::after,.feature-hero--utah::after,.feature-hero--slc::after{background:linear-gradient(90deg,rgba(12,16,18,.80),rgba(12,16,18,.43) 75%,rgba(12,16,18,.23))!important}.feature-hero--locations .feature-hero-media img,.feature-hero--utah .feature-hero-media img,.feature-hero--slc .feature-hero-media img{object-position:70% center}}

/* Premium panoramic hero QA pass, 2026-10-28. Deliberately short to prevent image over-zoom. */
@media(min-width:901px){
 .feature-hero--service,.feature-hero--locations,.feature-hero--utah,.feature-hero--slc{min-height:clamp(330px,27vw,405px)!important}
 .feature-hero--service .feature-hero-copy,.feature-hero--locations .feature-hero-copy,.feature-hero--utah .feature-hero-copy,.feature-hero--slc .feature-hero-copy{min-height:clamp(330px,27vw,405px)!important}
 .feature-hero--service .feature-hero-media img{object-position:center 52%;filter:saturate(1.07) contrast(1.025);transform:none}
 .feature-hero--utah .feature-hero-media img{object-position:65% center!important;transform:none}
 .feature-hero--slc .feature-hero-media img{object-position:86% center!important;transform:none}
 .feature-hero--locations .feature-hero-media img{object-position:72% center!important;transform:none}
}
.feature-hero--service::after{background:linear-gradient(90deg,rgba(10,15,18,.74) 0%,rgba(10,15,18,.54) 28%,rgba(10,15,18,.20) 53%,rgba(10,15,18,.02) 78%)!important}
.feature-hero--locations::after,.feature-hero--utah::after,.feature-hero--slc::after{background:linear-gradient(90deg,rgba(10,15,18,.70) 0%,rgba(10,15,18,.47) 28%,rgba(10,15,18,.17) 53%,rgba(10,15,18,0) 80%)!important}
@media(max-width:900px){
 .feature-hero--service .feature-hero-media img,.feature-hero--locations .feature-hero-media img,.feature-hero--utah .feature-hero-media img,.feature-hero--slc .feature-hero-media img{transform:none;filter:none}
 .feature-hero--slc .feature-hero-media img{object-position:88% center!important}
 .feature-hero--utah .feature-hero-media img{object-position:67% center!important}
}

/* Hero image correction: genuine rockscaped parking strip and restrained panoramic framing. */
@media(min-width:901px){
 .feature-hero--service:has(img[src*="hero-parking-strip-authentic"]) .feature-hero-media img{object-position:50% 56%!important;filter:none!important;transform:none!important}
 .feature-hero--utah,.feature-hero--slc,.feature-hero--locations{min-height:clamp(300px,23vw,365px)!important}
 .feature-hero--utah .feature-hero-copy,.feature-hero--slc .feature-hero-copy,.feature-hero--locations .feature-hero-copy{min-height:clamp(300px,23vw,365px)!important}
 .feature-hero--utah .feature-hero-media img{object-position:55% 52%!important;filter:none!important;transform:none!important}
 .feature-hero--slc .feature-hero-media img{object-position:63% 50%!important;filter:none!important;transform:none!important}
 .feature-hero--locations .feature-hero-media img{object-position:66% 52%!important;filter:none!important;transform:none!important}
}
.feature-hero--locations::after,.feature-hero--utah::after,.feature-hero--slc::after{background:linear-gradient(90deg,rgba(10,15,18,.67) 0%,rgba(10,15,18,.43) 27%,rgba(10,15,18,.12) 52%,rgba(10,15,18,0) 76%)!important}
@media(max-width:900px){
 .feature-hero--service:has(img[src*="hero-parking-strip-authentic"]) .feature-hero-media img{object-position:48% 55%!important;filter:none!important}
 .feature-hero--utah .feature-hero-media img,.feature-hero--slc .feature-hero-media img,.feature-hero--locations .feature-hero-media img{object-position:68% center!important;filter:none!important}
}


/* Location hero height and clarity update, 2026-10-29.
   Preserve original full-resolution WebP files: no resampling, blur or zoom filters. */
@media (min-width:901px) {
  .feature-hero--locations,.feature-hero--utah,.feature-hero--slc {
    min-height:400px!important;
  }
  .feature-hero--locations .feature-hero-copy,.feature-hero--utah .feature-hero-copy,.feature-hero--slc .feature-hero-copy {
    min-height:400px!important;
  }
}
@media (min-width:521px) and (max-width:900px) {
  .feature-hero--locations,.feature-hero--utah,.feature-hero--slc {
    min-height:0!important;
    padding-top:380px!important;
  }
  .feature-hero--locations .feature-hero-media,.feature-hero--utah .feature-hero-media,.feature-hero--slc .feature-hero-media {
    height:380px!important;
  }
  .feature-hero--locations .feature-hero-copy,.feature-hero--utah .feature-hero-copy,.feature-hero--slc .feature-hero-copy {
    min-height:0!important;
  }
}
@media (max-width:520px) {
  .feature-hero--locations,.feature-hero--utah,.feature-hero--slc {
    min-height:0!important;
    padding-top:350px!important;
  }
  .feature-hero--locations .feature-hero-media,.feature-hero--utah .feature-hero-media,.feature-hero--slc .feature-hero-media {
    height:350px!important;
  }
  .feature-hero--locations .feature-hero-copy,.feature-hero--utah .feature-hero-copy,.feature-hero--slc .feature-hero-copy {
    min-height:0!important;
  }
}
.feature-hero--locations .feature-hero-media img,.feature-hero--utah .feature-hero-media img,.feature-hero--slc .feature-hero-media img {
  width:100%;height:100%;object-fit:cover;
  image-rendering:auto;
  filter:none!important;
  transform:none!important;
}


/* 2026-10-29 review balance: enlarge short testimonials to fill equal-height cards.
   Arrows stay centered on the card row, not the pagination dots. */
.home-page .testimonial-card--micro,
.home-page .testimonial-card--short,
.home-page .testimonial-card--medium {
  text-align:center;
  align-items:center;
}
.home-page .testimonial-card--micro footer,
.home-page .testimonial-card--short footer,
.home-page .testimonial-card--medium footer {justify-content:center;}
.home-page .testimonial-card--micro blockquote,
.home-page .testimonial-card--short blockquote,
.home-page .testimonial-card--medium blockquote {
  margin-inline:auto;
}
.home-page .testimonial-card--micro blockquote {
  max-width:18ch;
  font-family:'Wix Madefor Display','Inter Display',Arial,sans-serif;
  font-size:clamp(35px,3.15vw,50px);
  font-weight:700;
  letter-spacing:-.03em;
  line-height:1.24;
}
.home-page .testimonial-card--short blockquote {
  max-width:29ch;
  font-size:clamp(29px,2.35vw,37px);
  font-weight:600;
  letter-spacing:-.012em;
  line-height:1.42;
}
.home-page .testimonial-card--medium blockquote {
  max-width:35ch;
  font-size:clamp(24px,1.95vw,31px);
  line-height:1.52;
}
.home-page .testimonial-card--long blockquote {
  font-size:clamp(17px,1.25vw,22px);
  line-height:1.65;
}
@media(max-width:900px){
  .home-page .testimonial-card--micro blockquote{font-size:clamp(30px,5.2vw,41px)}
  .home-page .testimonial-card--short blockquote{font-size:clamp(24px,3.7vw,31px)}
  .home-page .testimonial-card--medium blockquote{font-size:clamp(21px,3vw,25px)}
}
@media(max-width:520px){
  .home-page .testimonial-card--micro blockquote{font-size:clamp(27px,6vw,35px)}
  .home-page .testimonial-card--short blockquote{font-size:clamp(22px,4.6vw,27px)}
  .home-page .testimonial-card--medium blockquote{font-size:21px}
}


/* Final verified high-resolution location and parking-strip heroes, Oct 29 2026.
   Use each unchanged 2400/2800px WebP, do not blur, animate, or upscale a thumbnail. */
.feature-hero--locations .feature-hero-media img,
.feature-hero--utah .feature-hero-media img,
.feature-hero--slc .feature-hero-media img,
.feature-hero--service:has(img[src*="hero-parking-strip-rock-forward-"]) .feature-hero-media img {
  width:100%; height:100%; object-fit:cover; filter:none!important;
  transform:none!important; image-rendering:auto;
}
@media(min-width:901px){
  .feature-hero--locations .feature-hero-media img {object-position:67% center!important;}
  .feature-hero--utah .feature-hero-media img {object-position:57% center!important;}
  .feature-hero--slc .feature-hero-media img {object-position:63% center!important;}
  .feature-hero--service:has(img[src*="hero-parking-strip-rock-forward-"]) .feature-hero-media img {object-position:center 63%!important;}
}
@media(max-width:900px){
  .feature-hero--service:has(img[src*="hero-parking-strip-rock-forward-"]) .feature-hero-media img {object-position:55% 52%!important;}
}


/* 2026-10-29 | Gritmoor service overview treatment. A framed bridge from hero to article. */
.service-detail .text-page > .service-intro-panel {
  box-sizing:border-box;
  position:relative;
  z-index:2;
  width:100%;
  max-width:100%;
  margin:12px auto 46px;
  padding:clamp(24px,3vw,38px) clamp(22px,4.1vw,48px) clamp(21px,2.7vw,32px);
  border:1px solid #d7cfad;
  border-left:5px solid #ca982d;
  border-radius:16px;
  background:linear-gradient(135deg,#fffdf3 0%,#f8f3e4 100%);
  box-shadow:0 16px 44px rgba(37,41,29,.085);
}
.service-detail .service-intro-kicker {
  display:flex;align-items:center;gap:12px;
  color:#786028;
  font-size:12px;line-height:1.3;letter-spacing:.16em;
  font-weight:800;text-transform:uppercase;
  margin-bottom:16px;
}
.service-detail .service-intro-rule {
  display:inline-block;height:2px;width:32px;flex:none;background:#ce9e30;
}
.service-detail .service-intro-panel .location-lede {
  max-width:850px;
  margin:0;
  color:#32382e;
  font-size:clamp(17px,1.35vw,19px);
  line-height:1.78;
  font-weight:450;
  text-wrap:pretty;
}
.service-detail .service-intro-panel .location-actions {
  display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px;
  border-top:1px solid rgba(119,109,81,.20);
  padding-top:20px;margin:25px 0 0;
}
.service-detail .service-intro-panel .location-actions a:not(.button) {
  font-weight:700;
  color:#385a44;
}
@media (max-width:700px) {
  .service-detail .text-page > .service-intro-panel {
    margin:12px 0 32px;
    padding:23px 20px 24px;
    border-radius:12px;
  }
  .service-detail .service-intro-panel .location-actions{align-items:stretch;gap:10px;margin-top:20px;padding-top:18px}
  .service-detail .service-intro-panel .location-actions .button{justify-content:center;width:100%}
}
