/* Final approved visual system: full-width Hero bands and restrained imagery. */
.hero-image,
.page-hero-image {
  inset: 0;
  background-size: cover;
  background-repeat: no-repeat;
}

/* Keep headings composed and avoid isolated last words in body copy. */
h1,
h2,
h3 {
  text-wrap: balance;
}

p,
li,
.lead,
.sub,
.contact-link {
  text-wrap: pretty;
}

.hero::after,
.page-hero::after {
  background: linear-gradient(
    90deg,
    rgba(251, 251, 248, .975) 0%,
    rgba(251, 251, 248, .94) 28%,
    rgba(251, 251, 248, .79) 45%,
    rgba(251, 251, 248, .43) 62%,
    rgba(251, 251, 248, .14) 79%,
    rgba(251, 251, 248, .02) 100%
  );
}

.home-page .hero-image {
  background-position: center 52%;
  filter: saturate(.72) contrast(.92) brightness(1.03);
  opacity: .78;
}

.permit-page .page-hero-image {
  background-position: center 52%;
  filter: saturate(.78) contrast(.93) brightness(1.04);
  opacity: .74;
}

.reporting-page .page-hero-image,
.reporting-final .page-hero-image {
  background-position: center 50%;
  filter: saturate(.70) contrast(.92) brightness(1.04);
  opacity: .72;
}

.report7-page .page-hero-image {
  background-image: url('assets/hero-7gr.jpg');
  background-size: cover;
  background-position: center 48%;
  filter: saturate(.76) contrast(.93) brightness(1.03);
  opacity: .86;
}

.report7-page .page-hero::after {
  background: linear-gradient(
    90deg,
    rgba(251, 251, 248, .98) 0%,
    rgba(251, 251, 248, .94) 30%,
    rgba(251, 251, 248, .78) 48%,
    rgba(251, 251, 248, .39) 65%,
    rgba(251, 251, 248, .10) 82%,
    rgba(251, 251, 248, .01) 100%
  );
}

.emissions-page .page-hero-image {
  background-image: url('assets/hero-emissions-final.jpg');
  background-size: cover;
  background-position: center 43%;
  filter: saturate(.82) contrast(.94) brightness(1.03);
  opacity: .88;
}

.ovd-page .page-hero-image {
  background-image: url('assets/hero-ovd-final.jpg');
  background-size: cover;
  background-position: center 44%;
  filter: saturate(.82) contrast(.94) brightness(1.02);
  opacity: .88;
}

/* Botanical accents stay in the lower-right contact zone. */
.landing-cta::after {
  right: 12px;
  bottom: -4px;
  width: 180px;
  height: 215px;
  opacity: .76;
}

.report7-page .landing-cta::after {
  background-image: url('assets/botanical-7gr-final.png');
  width: 150px;
  height: 172px;
  opacity: .68;
}

.emissions-page .landing-cta::after {
  background-image: url('assets/botanical-emissions-final.png');
  width: 142px;
  height: 184px;
  opacity: .64;
}

.ovd-page .landing-cta::after {
  background-image: url('assets/botanical-ovd-final.png');
  width: 205px;
  height: 142px;
  opacity: .64;
}

/* The two data-check sections need a denser, vertically balanced composition. */
.permit-page .check-grid,
.emissions-page .emissions-check-section .check-grid {
  align-items: center;
}

.permit-page .check-grid {
  grid-template-columns: minmax(0, .46fr) minmax(0, .54fr);
  gap: 44px;
}

.permit-page .check-grid h2 {
  max-width: 13ch;
  font-size: clamp(38px, 3.35vw, 54px);
  line-height: 1.06;
}

.permit-page .check-list > div,
.emissions-page .emissions-check-list > div {
  display: flex;
  min-height: 88px;
  align-items: center;
  padding: 18px 22px;
}

.emissions-page .emissions-check-section .check-grid {
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 52px;
}

.emissions-page .emissions-check-section h2 {
  max-width: 15ch;
  font-size: clamp(36px, 2.75vw, 48px);
  line-height: 1.07;
}

.emissions-page .emissions-check-copy {
  max-width: 52ch;
}

/* Contact bands use one rhythm on every service page. */
.landing-cta-inner {
  grid-template-columns: minmax(0, 1.35fr) minmax(250px, .55fr);
  gap: 48px;
  padding-right: 190px;
}

.landing-cta-inner > div:first-child {
  min-width: 0;
}

.landing-cta-inner > div:first-child > p:last-child {
  max-width: 64ch;
}

.cta-actions {
  min-width: 250px;
}

@media (max-width: 760px) {
  .hero-image,
  .page-hero-image {
    inset: 0;
    height: auto;
    background-size: cover !important;
    background-position: center !important;
    filter: saturate(.72) contrast(.92) brightness(1.03) !important;
    opacity: .60 !important;
  }

  .emissions-page .page-hero-image,
  .ovd-page .page-hero-image {
    background-position: 64% center !important;
  }

  .hero::after,
  .page-hero::after,
  .report7-page .page-hero::after {
    background: linear-gradient(
      180deg,
      rgba(251, 251, 248, .99) 0%,
      rgba(251, 251, 248, .96) 48%,
      rgba(251, 251, 248, .66) 73%,
      rgba(251, 251, 248, .20) 100%
    );
  }

  .hero-copy,
  .page-hero-copy {
    width: 100%;
    padding: 48px 0 64px;
  }

  .landing-cta::after {
    width: 92px;
    height: 138px;
    opacity: .64;
  }

  .report7-page .landing-cta::after,
  .emissions-page .landing-cta::after {
    width: 78px;
    height: 112px;
  }

  .ovd-page .landing-cta::after {
    width: 118px;
    height: 82px;
  }

  .permit-page .check-grid,
  .emissions-page .emissions-check-section .check-grid,
  .landing-cta-inner {
    grid-template-columns: 1fr;
  }

  .landing-cta-inner {
    gap: 30px;
    padding-right: 76px;
  }

  .cta-actions {
    min-width: 0;
  }
}

@media (min-width: 761px) and (max-width: 1040px) {
  .permit-page .check-grid,
  .emissions-page .emissions-check-section .check-grid {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .landing-cta-inner {
    grid-template-columns: minmax(0, 1fr) minmax(230px, .52fr);
    padding-right: 150px;
  }
}

/* Unified reporting cards and stable deadline placement */
.reporting-forms-grid {
  align-items: stretch;
}

.reporting-form-card,
.reporting-form-card > div:not(.form-mark) {
  display: flex;
  flex-direction: column;
}

.reporting-form-card > div:not(.form-mark) {
  flex: 1;
}

.reporting-form-card .deadline-line {
  margin-top: auto;
  text-wrap: pretty;
}

.reporting-form-card .text-link {
  margin-bottom: 18px;
}

/* Annual emissions report: one full-width reporting card and a linked permit-page note. */
.reporting-form-card-wide {
  grid-column: 1 / -1;
}

.reporting-form-card-wide h2 {
  max-width: 30ch;
}

.reporting-form-card-wide > div {
  max-width: 920px;
}

.emissions-after-permit-section {
  border-top: 1px solid var(--line);
}

.emissions-after-permit-section h2 {
  max-width: 18ch;
}

.emissions-report-deadline strong {
  color: var(--green);
}

.emissions-report-deadline p {
  margin-bottom: 0;
}

@media (max-width: 760px) {
  .reporting-form-card-wide {
    grid-column: auto;
  }
}
