.gallery-button { margin-top: 22px; }
.experience-panel { display: grid; grid-template-columns: 180px 1fr; gap: 42px; align-items: center; background: var(--light); border-left: 6px solid var(--gold); padding: 34px; margin-bottom: 72px; }
.experience-number { color: var(--navy); font-size: clamp(4.5rem, 8vw, 7rem); font-weight: 900; line-height: 1; letter-spacing: -.08em; }
.experience-panel h2 { color: var(--navy); font-size: clamp(2rem, 3.4vw, 3.4rem); line-height: 1.08; margin: 12px 0; }
.experience-panel p:last-child { color: var(--muted); margin-bottom: 0; }
.form-status { display: none; margin: 8px 0 16px; padding: 13px 15px; border-left: 4px solid var(--gold); background: #f4f6f7; color: var(--navy); font-weight: 800; }
.form-status.visible { display: block; }
.form-status.success { border-color: #287a4b; background: #edf8f1; color: #175833; }
.form-status.error { border-color: #b74a3a; background: #fff0ed; color: #7f281d; }
.estimate-form [aria-invalid="true"] { border-color: #b74a3a; outline: 2px solid #b74a3a33; }
.privacy-link { font-size: .78rem !important; margin: 14px 0 0; }
.privacy-link a { color: var(--navy); text-decoration: underline; }
.form-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.gallery-filter { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 28px; }
.gallery-filter button { border: 1px solid var(--line); border-radius: 30px; background: #fff; color: var(--navy); padding: 10px 17px; font-weight: 900; cursor: pointer; }
.gallery-filter button.active { background: var(--navy); color: #fff; border-color: var(--navy); }
.gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.gallery-grid article { border: 1px solid var(--line); background: #fff; box-shadow: 0 10px 30px rgba(2,25,44,.08); }
.gallery-grid article[hidden] { display: none; }
.gallery-grid img { width: 100%; aspect-ratio: 1.35; object-fit: cover; }
.gallery-grid article div { padding: 20px; }
.gallery-grid span { color: #a87708; text-transform: uppercase; letter-spacing: .12em; font-size: .72rem; font-weight: 900; }
.gallery-grid h2 { color: var(--navy); font-size: 1.35rem; margin: 7px 0 0; }
.gallery-ready { background: var(--light); }
.gallery-ready h2 { color: var(--navy); font-size: clamp(2.2rem, 4vw, 3.8rem); max-width: 800px; line-height: 1.05; }
.gallery-subhero { position: relative; overflow: hidden; background: linear-gradient(100deg, rgba(3,23,39,.97), rgba(6,35,60,.82)), url('/assets/project-concrete-pour-truck.webp') center 48%/cover; }
.gallery-subhero .container { position: relative; z-index: 1; }
.gallery-subhero h1 { margin-bottom: 18px; }
.gallery-subhero p:last-child { max-width: 720px; font-size: 1.15rem; color: #e0e8ed; }
.gallery-grid article { overflow: hidden; }
.gallery-grid img { transition: transform .45s ease; }
.gallery-grid article:hover img { transform: scale(1.035); }
.project-slide { background-position: center; }
.slide-picture { position: absolute; inset: 0; display: block; }
.slide-media { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.section, .contact, footer { content-visibility: auto; contain-intrinsic-size: 800px; }
.hero-mountain-slab { background-position: center 58%; }
.project-video-section { margin-top: 64px; padding-top: 52px; border-top: 1px solid var(--line); }
.video-intro { max-width: 720px; margin-bottom: 28px; }
.video-intro h2 { color: var(--navy); font-size: clamp(2.2rem, 4vw, 3.7rem); line-height: 1.05; margin: 14px 0; }
.video-intro > p:last-child { color: var(--muted); font-size: 1.05rem; }
.project-video-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; align-items: stretch; }
.project-video-grid article { background: var(--navy2); color: #fff; overflow: hidden; box-shadow: 0 14px 36px rgba(2,25,44,.16); }
.project-video-grid video { display: block; width: 100%; height: 440px; object-fit: cover; background: #000; }
.project-video-grid .portrait-video video { object-fit: contain; }
.project-video-grid article div { padding: 20px 22px 24px; }
.project-video-grid span { color: var(--gold); text-transform: uppercase; letter-spacing: .12em; font-size: .72rem; font-weight: 900; }
.project-video-grid h3 { font-size: 1.35rem; margin: 7px 0 0; }
.project-video-section + .notice { margin-top: 34px; }
.payment-methods { grid-column: 1 / -1; border-top: 1px solid #ffffff2b; padding-top: 42px; margin-bottom: 4px; }
.payment-methods h2 { margin: 0 0 28px; color: var(--gold); font-size: clamp(1.35rem, 2.4vw, 2rem); text-transform: uppercase; letter-spacing: .12em; }
.payment-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.payment-card { min-height: 116px; padding: 24px 32px; border-radius: 24px; background: #fff; color: var(--navy2); display: flex; align-items: center; gap: 28px; box-shadow: 0 12px 28px rgba(0,0,0,.12); }
.payment-card strong { font-size: clamp(1.05rem, 2vw, 1.45rem); line-height: 1.15; }
.payment-card small { display: block; margin-top: 4px; color: #68727d; font-size: .92rem; font-weight: 700; }
.payment-mark { width: 82px; flex: 0 0 82px; display: inline-flex; align-items: center; justify-content: center; line-height: 1; }
.payment-logo { display: block; width: 82px; height: 58px; overflow: visible; }
.payment-logo.mastercard-logo { height: 66px; }
.payment-logo.discover-logo { width: 92px; }
.footer-tools { display: flex; flex-direction: column; gap: 7px; margin-top: 18px; padding-top: 16px; border-top: 1px solid #ffffff1f; }
.footer-tools a { color: #d4dee5; text-decoration: underline; text-underline-offset: 3px; }
.footer-tools .tools-main-link { color: var(--gold); font-weight: 900; text-decoration: none; margin-bottom: 3px; }
@media (max-width: 820px) { .experience-panel { grid-template-columns: 1fr; gap: 18px; } .gallery-grid { grid-template-columns: 1fr 1fr; } .project-video-grid { grid-template-columns: 1fr; } .project-video-grid video { height: min(65vw, 440px); } .project-video-grid .portrait-video video { height: min(110vw, 600px); } .payment-methods { order: -1; } }
@media (max-width: 560px) { .project-slide:first-child { background-position: 58% center; } .project-slide:first-child .slide-media { object-position: 58% center; } .experience-panel { padding: 25px; margin-bottom: 48px; } .gallery-grid { grid-template-columns: 1fr; } .project-video-section { margin-top: 48px; padding-top: 40px; } .payment-list { gap: 12px; } .payment-card { min-height: 102px; padding: 18px 14px; border-radius: 18px; gap: 12px; } .payment-mark { width: 58px; flex-basis: 58px; } .payment-logo { width: 58px; height: 44px; } .payment-logo.mastercard-logo { height: 50px; } .payment-logo.discover-logo { width: 64px; } .payment-card strong { font-size: 1rem; } .payment-card small { font-size: .78rem; } }

/* Pronounced concrete-gray palette preview. Navy remains in the hero, contact and key actions. */
:root {
  --concrete: #5d6266;
  --concrete-mid: #959a9e;
  --concrete-light: #d7dadc;
  --concrete-charcoal: #3f4448;
  --light: #e2e4e5;
  --line: #b7bcc0;
  --shadow: 0 18px 50px rgba(35, 39, 42, .20);
}
.hero-shade { background: linear-gradient(90deg, rgba(3,23,39,.82) 0%, rgba(3,23,39,.60) 38%, rgba(3,23,39,.20) 64%, rgba(3,23,39,.05) 82%); }
.trust-strip { background: #52585c; }
.scope-banner { background: #cdd1d3; border-color: #aeb3b6; box-shadow: 0 10px 28px rgba(44,49,53,.14); }
.scope-banner > b { background: var(--concrete); color: #fff; }
#services, .expectations, .faq { background: var(--light); }
.service-card { background: #f9f9f8; border-color: #aeb3b6; border-top: 5px solid var(--concrete-mid); }
.service-card:hover { border-top-color: var(--concrete); }
.card-copy small, .steps small, .gallery-grid span { color: #62666a; }
.work { background: var(--concrete-charcoal); }
.sector-grid article { background: linear-gradient(150deg, #555b5f, #303438); }
.sector-grid article:nth-child(2) { background: linear-gradient(150deg, #777c80, #44494d); }
.sector-grid article:nth-child(3) { background: linear-gradient(150deg, var(--blue), var(--navy2)); }
.process { background: #cdd1d3; }
.process-copy li { border-top-color: #a8aeb2; }
.process-copy li b { background: var(--concrete); color: #fff; }
.steps article { background: #d2d5d7; border-top-color: var(--concrete); }
.coverage { background: #4a5054; }
.coverage-card { background: #eceeef; border-top: 6px solid var(--concrete-mid); }
.city-grid span { background: #d5d8da; }
.experience-panel, .gallery-ready, .notice { background: var(--concrete-light); }
.gallery-grid article, .card { border-color: #adb2b5; }
.estimate-form { border-top: 6px solid var(--concrete-mid); }
.subhero { background: linear-gradient(110deg, #30363a, #60676c); }
footer { background: #292e32; }

/* Keep homepage project imagery balanced across desktop and mobile. */
.service-card:not(.featured) > img { height: 220px !important; aspect-ratio: auto; object-fit: cover; }
.service-card.featured > img { height: 100% !important; min-height: 440px; max-height: 520px; object-fit: cover; }
.work-grid img { height: 320px !important; aspect-ratio: auto; object-fit: cover; }

@media (max-width: 820px) {
  .service-card:not(.featured) > img { height: 210px !important; }
  .service-card.featured > img { min-height: 360px; max-height: 440px; }
  .work-grid img { height: 300px !important; }
}

@media (max-width: 560px) {
  .service-card:not(.featured) > img,
  .service-card.featured > img { height: 235px !important; min-height: 0; max-height: none; }
  .work-grid img { height: 245px !important; }
  .carousel-controls { left: 15px; right: 15px; justify-content: center; gap: 7px; padding: 10px 12px; }
  .dot { width: 10px; height: 10px; }
  .pause { font-size: .78rem; padding-left: 9px; }
}
