#hero-cta {
  font-size: inherit;
  line-height: inherit;
}

body {
  position: relative;
  isolation: isolate;
  background: transparent;
}

body::before,
body::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
}

body::before {
  z-index: -2;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  transform: scale(1.015);
  transition: background-image .35s ease;
}

body[data-season="summer"]::before {
  background-image: url('/assets/landscape-hero.png');
}

body[data-season="winter"]::before {
  background-image: url('/assets/winter-hero.png');
}

body::after {
  z-index: -1;
  background: linear-gradient(180deg, rgba(8, 31, 22, .12), rgba(8, 31, 22, .36));
}

body[data-season="winter"]::after {
  background: linear-gradient(180deg, rgba(9, 30, 43, .12), rgba(9, 30, 43, .42));
}

.announcement,
.header,
.area-strip {
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.announcement {
  background: rgba(16, 46, 36, .92);
}

body[data-season="winter"] .announcement {
  background: rgba(16, 44, 61, .92);
}

.header {
  background: rgba(247, 248, 243, .86);
}

body[data-season="winter"] .header {
  background: rgba(243, 248, 251, .86);
}

.hero {
  display: block;
  min-height: 760px;
  padding: 70px 6%;
}

.hero-copy {
  width: min(760px, 100%);
  padding: 58px;
  background: rgba(247, 248, 243, .84);
  border: 1px solid rgba(255, 255, 255, .55);
  box-shadow: 0 30px 80px rgba(5, 25, 17, .22);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

body[data-season="winter"] .hero-copy {
  background: rgba(243, 248, 251, .86);
  box-shadow: 0 30px 80px rgba(6, 27, 41, .25);
}

.hero-visual {
  display: none;
}

.area-strip {
  background: rgba(247, 248, 243, .88);
}

body[data-season="winter"] .area-strip {
  background: rgba(243, 248, 251, .9);
}

.services,
.approach,
.faq {
  background: rgba(247, 248, 243, .9);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

body[data-season="winter"] .services,
body[data-season="winter"] .approach,
body[data-season="winter"] .faq {
  background: rgba(243, 248, 251, .91);
}

.service-card {
  min-height: 590px;
  background: rgba(247, 248, 243, .82);
  overflow: hidden;
}

body[data-season="winter"] .service-card {
  background: rgba(243, 248, 251, .84);
}

.service-card.featured,
body[data-season="winter"] .service-card.featured {
  background: rgba(16, 46, 36, .96);
}

body[data-season="winter"] .service-card.featured {
  background: rgba(16, 44, 61, .96);
}

.service-photo {
  aspect-ratio: 4 / 3;
  margin: -15px -15px 24px;
  overflow: hidden;
  background: var(--line);
}

.service-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .45s cubic-bezier(.2, .8, .2, 1), opacity .2s ease;
}

.service-card:hover .service-photo img {
  transform: scale(1.045);
}

.service-card .card-top {
  margin-bottom: 26px;
}

.seasonal {
  background: rgba(16, 46, 36, .94);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

body[data-season="winter"] .seasonal {
  background: rgba(16, 44, 61, .94);
}

.areas {
  background: rgba(232, 237, 223, .91);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

body[data-season="winter"] .areas {
  background: rgba(227, 238, 244, .92);
}

.estimate {
  background: rgba(218, 250, 148, .93);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

body[data-season="winter"] .estimate {
  background: rgba(216, 241, 255, .94);
}

footer {
  background: rgba(16, 46, 36, .97);
}

body[data-season="winter"] footer {
  background: rgba(16, 44, 61, .97);
}

@media (max-width: 1100px) {
  .hero {
    min-height: 700px;
    padding: 52px 5%;
  }

  .hero-copy {
    padding: 46px;
  }

  .service-card {
    min-height: 555px;
  }
}

@media (max-width: 760px) {
  body::before {
    background-position: 60% center;
  }

  body[data-season="winter"]::before {
    background-position: 55% center;
  }

  .hero {
    min-height: 690px;
    padding: 38px 5%;
  }

  .hero-copy {
    padding: 31px 26px;
  }

  .service-card {
    min-height: 520px;
  }

  .service-photo {
    margin: -10px -10px 21px;
  }
}

@media (max-width: 430px) {
  .hero {
    min-height: 650px;
  }

  .hero-copy {
    padding: 27px 21px;
  }

  .service-card {
    min-height: 520px;
  }
}
