/* ================================================================
   ACTIVE HYDRAULICS — HOMEPAGE-ONLY STYLES
   Loaded after styles/global.css on index.html only.
   Do not upload this as a replacement for global.css.
   ================================================================ */

/* ------------------------------
   HERO
   ------------------------------ */
.hero {
  position: relative;
  padding: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  overflow: hidden;
  background: var(--navy);
}

.hero:before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(90deg,
      rgba(3,20,32,.97) 0%,
      rgba(3,20,32,.86) 30%,
      rgba(3,20,32,.40) 58%,
      rgba(3,20,32,.08) 100%),
    url('../assets/home-hero-short.png') center 50% / cover no-repeat;
}

.hero-content {
  position: relative;
  z-index: 1;
  min-height: 0 !important;
  justify-content: flex-start !important;
  padding: 28px 0 34px !important;
}

.hero h1 {
  max-width: 820px;
  margin: 0 0 18px;
  font-size: clamp(50px, 5.1vw, 78px);
  line-height: .98;
  letter-spacing: -.055em;
}

.hero-copy {
  max-width: 690px;
  margin-bottom: 24px;
  font-size: 18px;
  line-height: 1.45;
}

.hero-copy br {
  display: none;
}

.hero-copy strong {
  display: block;
  margin-bottom: 5px;
}

.actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.hero-stat {
  top: 28px !important;
  right: max(40px, calc((100vw - 1600px) / 2 + 70px)) !important;
  width: 190px;
  padding: 23px;
}

.hero-stat strong {
  font-size: 42px;
}

/* ------------------------------
   HOMEPAGE SECTION SPACING
   ------------------------------ */
@media (min-width: 1001px) {
  .trust { padding: 0; }
  .trust-grid { min-height: 120px; }
  .trust-item { padding: 22px 28px; }

  .problem { padding-top: 62px; padding-bottom: 68px; }
  .services-home { padding-top: 68px; padding-bottom: 72px; }
  .case-studies { padding-top: 64px; padding-bottom: 68px; }
  .process-section { padding-top: 68px; padding-bottom: 68px; }
  .testimonials { padding-top: 58px; padding-bottom: 68px; }
  .location { padding-top: 68px; padding-bottom: 68px; }
  .quote-section { padding-top: 72px; padding-bottom: 72px; }

  .service-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-top: 36px;
  }

  .service-card,
  .service-card:nth-child(1),
  .service-card:nth-child(2) {
    grid-column: auto;
    min-height: 350px;
  }

  .case-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 30px;
  }

  .case-card { min-height: 185px; }

  .process-grid { margin-top: 34px; gap: 14px; }
  .process-card { min-height: 225px; padding: 26px; }
  .testimonial-grid { margin-top: 30px !important; gap: 28px; }
  .cta { padding: 0 0 68px; }
  .form { gap: 15px; padding: 28px; }
  .form label { line-height: 1.3; }
}

/* Keep the hero compact at common laptop/desktop widths without
   allowing the content to be clipped. */
@media (max-width: 1400px) and (min-width: 1001px) {
  .hero-content { padding-top: 28px !important; padding-bottom: 34px !important; min-height: 0 !important; justify-content: flex-start !important; }
  .hero h1 { font-size: clamp(48px, 5vw, 70px); }
  .hero-copy { font-size: 17px; max-width: 650px; }
  .hero-stat { top: 28px !important; right: 5% !important; }
}

/* Tablet */
@media (max-width: 1000px) {
  .hero {
    min-height: 0 !important;
    height: auto !important;
  }

  .hero-content {
    padding: 42px 0 40px !important;
  }

  .hero h1 {
    font-size: clamp(46px, 7vw, 64px);
  }
}

/* Mobile */
@media (max-width: 650px) {
  .hero-content {
    padding: 38px 0 36px !important;
  }

  .hero h1 {
    font-size: 48px;
  }

  .hero-copy {
    font-size: 17px;
  }

  .hero:before {
    background-position: 58% 50%;
  }
}

/* Google review secondary action */
.review-link{display:inline-block;margin:10px 0 0 12px;font-size:12px;font-weight:700;color:#149fe3;text-decoration:none}
.review-link:hover{text-decoration:underline}
@media (max-width:720px){.review-link{display:block;margin:10px 0 0}}



/* Services heading/action */
.services-head{display:flex;justify-content:space-between;align-items:end;gap:30px}
.services-head>div{max-width:780px}
.services-head-link{flex:0 0 auto;margin-bottom:4px}
@media (max-width:720px){.services-head{display:block}.services-head-link{margin-top:20px}}

/* ================================================================
   HOMEPAGE IMAGE FIX — real IMG elements for reliable card imagery
   ================================================================ */
.services-home .service-card,
.case-studies .case-card {
  isolation: isolate !important;
}
.services-home .service-card::before,
.case-studies .case-card::before {
  display: none !important;
}
.services-home .service-card .card-image,
.case-studies .case-card .card-image {
  display: block !important;
  position: absolute !important;
  z-index: 1 !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 155px !important;
  object-fit: cover !important;
  object-position: center !important;
  background: #dfe5e8 !important;
}
.case-studies .case-card .card-image {
  height: 178px !important;
}
.services-home .service-copy,
.case-studies .case-copy {
  z-index: 3 !important;
}
@media (max-width: 1000px) {
  .services-home .service-card .card-image { height: 155px !important; }
  .case-studies .case-card .card-image { height: 178px !important; }
}
@media (max-width: 650px) {
  .services-home .service-card .card-image { height: 150px !important; }
  .case-studies .case-card .card-image { height: 165px !important; }
}

/* ================================================================
   FINAL HOMEPAGE POLISH — APPROVED CORRECTIONS
   ================================================================ */

/* Services heading: keep the navigation CTA aligned with the heading block. */
@media (min-width: 1001px) {
  .services-head {
    align-items: flex-end;
  }
  .services-head-link {
    align-self: flex-end;
    margin-bottom: 0;
  }
}

/* Case-study cards: restore the larger, more visual presentation from the approved mock-up. */
.case-studies .case-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 32px;
}
.case-studies .case-card {
  min-height: 305px !important;
  background: #fff !important;
  border: 1px solid #d8e3e9;
  border-radius: 9px;
  box-shadow: 0 8px 22px rgba(6,29,43,.07);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}
.case-studies .case-card::before { display:none !important; }
.case-studies .case-card .card-image {
  position: relative !important;
  inset: auto !important;
  z-index: 1 !important;
  width: 100% !important;
  height: 185px !important;
  flex: 0 0 185px;
  object-fit: cover !important;
  object-position: center !important;
}
.case-studies .case-copy {
  position: relative !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  z-index: 2 !important;
  flex: 1 1 auto;
  padding: 17px 18px 18px !important;
  background: #fff;
  color: var(--ink) !important;
}
.case-studies .case-copy small {
  display: block;
  color: var(--blue) !important;
  font-size: 10px;
  line-height: 1.25;
  letter-spacing: .07em;
}
.case-studies .case-copy strong {
  display: block;
  margin-top: 7px;
  color: var(--ink) !important;
  font-size: 15px;
  line-height: 1.25;
}
.case-studies .case-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(6,29,43,.11);
}

/* Process cards: restore the icon-led progression from the approved mock-up. */
.process-grid { position: relative; }
.process-card {
  position: relative;
  min-height: 235px !important;
  padding: 24px 24px 25px !important;
}
.process-icon {
  width: 48px;
  height: 48px;
  margin-bottom: 14px;
  border: 2px solid #31b9f2;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #31b9f2;
  font-size: 27px;
  line-height: 1;
  font-weight: 800;
}
.process-card h3 { margin-top: 10px; }
@media (min-width: 1001px) {
  .process-card:not(:last-child)::after {
    content: '→';
    position: absolute;
    top: 43px;
    right: -19px;
    z-index: 4;
    color: #27b7ee;
    font-size: 25px;
    font-weight: 800;
  }
}

/* Google Reviews: make the review proof clearer without inventing review totals. */
.google-review-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 14px;
}
.google-g {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 27px;
  font-weight: 900;
  color: #4285f4;
}
.google-review-head .stars { font-size: 17px; line-height: 1; letter-spacing: 2px; }
.google-review-head h3 { margin: 4px 0 2px !important; font-size: 25px !important; }
.review-score { color: #9edcff; font-size: 13px; }

/* Local contact CTA: white text for proper contrast. */
.address-card .address-cta,
.address-card .address-cta:hover {
  color: #fff !important;
}

@media (max-width: 1000px) {
  .case-studies .case-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 650px) {
  .case-studies .case-grid { grid-template-columns: 1fr; }
  .case-studies .case-card { min-height: 290px !important; }
  .case-studies .case-card .card-image { height: 175px !important; flex-basis: 175px; }
}


/* ================================================================
   SEO / UX REFINEMENT PASS — 2026-10-05
   ================================================================ */
@media (min-width:1001px){
  .services-head{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:start;
    gap:40px;
  }
  .services-head-link{
    align-self:start;
    margin-top:42px;
    margin-bottom:0;
  }
}

.capability-section{
  padding:72px 0 76px;
  background:#f2f6f8;
}
.capability-head{max-width:820px}
.capability-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
  margin-top:34px;
}
.capability-card{
  background:#fff;
  border:1px solid #dbe4e9;
  border-radius:8px;
  padding:26px;
  box-shadow:0 8px 24px rgba(6,29,43,.06);
}
.capability-card h3{margin:0 0 12px;font-size:21px;line-height:1.05}
.capability-card p{margin:0 0 18px;color:#526673;line-height:1.55;font-size:15px}
.capability-card a{font-weight:800;color:#0b91d1;text-decoration:none}
.capability-card a:hover{text-decoration:underline}
.testimonial-grid-single{grid-template-columns:minmax(0,1fr)!important}
@media (max-width:1000px){
  .capability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:720px){
  .services-head{display:block}
  .services-head-link{margin-top:20px}
  .capability-section{padding:58px 0 62px}
  .capability-grid{grid-template-columns:1fr;gap:12px}
  .capability-card{padding:22px}
}

/* ================================================================
   GOOGLE REVIEWS CAROUSEL — genuine customer feedback
   ================================================================ */
.review-layout{grid-template-columns:minmax(280px,.78fr) minmax(0,1.55fr);align-items:stretch;gap:18px}
.google-summary-card{display:flex;flex-direction:column;justify-content:center}
.google-summary-card .btn{align-self:flex-start;margin-top:4px}
.review-carousel{position:relative;min-height:300px;background:#fff;border-radius:8px;border:1px solid #dbe4e9;box-shadow:0 8px 24px rgba(6,29,43,.06);overflow:hidden;padding:34px 36px 66px}
.review-slide{display:none;height:100%;animation:reviewFade .35s ease}
.review-slide.is-active{display:flex;flex-direction:column;justify-content:center}
.review-slide-meta{display:flex;align-items:center;gap:14px;margin-bottom:18px;color:#657783;font-size:13px;font-weight:700}
.review-stars{color:#f6b400;letter-spacing:2px;font-size:17px}
.review-slide blockquote{margin:0;color:#092438;font-size:clamp(20px,2.1vw,29px);line-height:1.25;font-weight:700;max-width:780px}
.review-author{margin:22px 0 0;color:#183b4d;font-size:14px;font-weight:800}
.review-author span{font-weight:600;color:#748691}
.review-controls{position:absolute;left:36px;right:36px;bottom:18px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.review-controls button{width:38px;height:38px;border:1px solid #cbd8df;border-radius:50%;background:#fff;color:#0a2940;font-size:18px;font-weight:800;cursor:pointer}
.review-controls button:hover{background:#eef6fa}
.review-dots{display:flex;align-items:center;justify-content:center;gap:7px;flex:1}
.review-dot{width:7px;height:7px;border:0;border-radius:50%;padding:0;background:#bdcbd3;cursor:pointer}
.review-dot.is-active{width:22px;border-radius:8px;background:#149fe3}
@keyframes reviewFade{from{opacity:.25;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:1000px){.review-layout{grid-template-columns:1fr}.review-carousel{min-height:280px}}
@media(max-width:650px){.review-carousel{padding:28px 22px 64px;min-height:310px}.review-controls{left:22px;right:22px}.review-slide blockquote{font-size:22px}.review-slide-meta{align-items:flex-start;flex-direction:column;gap:7px}}


/* ================================================================
   HOMEPAGE SERVICE CARD ALIGNMENT FIX
   Ensure all service-card labels start below the image area,
   even when the service title wraps to two lines.
   ================================================================ */
.services-home .service-card {
  display: block !important;
}
.services-home .service-copy {
  position: absolute !important;
  top: 155px !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  padding: 18px 24px 24px !important;
  display: flex !important;
  flex-direction: column !important;
}
.services-home .service-copy span:last-child {
  margin-top: auto;
}
@media (max-width: 650px) {
  .services-home .service-copy {
    top: 150px !important;
  }
}
