/* Homepage composition only. Identity, controls and navigation stay shared. */
.home-hero { min-height: clamp(560px, 71svh, 660px); }
.home-hero .hero-copy { max-width: 560px; }
.home-hero h1 { max-width: none; }
.home-hero .hero-lead { max-width: 490px; text-wrap: balance; }
.home-hero .hero-content { padding-block: var(--space-9); }
.home-hero .hero-actions { margin-top: var(--space-6); }
.home-hero::before { background: linear-gradient(90deg, rgb(var(--hero-overlay-rgb) / .94) 0%, rgb(var(--hero-overlay-rgb) / .86) 36%, rgb(var(--hero-overlay-rgb) / .65) 54%, rgb(var(--hero-overlay-rgb) / .2) 76%, rgb(var(--hero-overlay-rgb) / .08) 100%); }

.home-section-heading { margin-bottom: var(--space-7); text-align: center; }
.home-section-heading h2 { max-width: none; }
.service-directory { max-width: 1040px; margin-inline: auto; }
.service-directory ul { list-style: none; margin: 0; padding: 0; }
.service-directory li { border-top: var(--border); }
.service-directory li:last-child { border-bottom: var(--border); }
.service-entry { display: grid; grid-template-columns: minmax(230px, .8fr) minmax(0, 1.6fr) var(--icon-size); align-items: center; gap: var(--space-6); min-height: 100px; padding: var(--space-5) var(--space-3); text-decoration: none; }
.service-entry h3 { font-size: 1.25rem; text-wrap: wrap; }
.service-entry p { color: var(--text-secondary); }
.service-entry .icon { color: var(--accent-text); }
.service-entry:hover { background: var(--surface-alt); }
.service-entry:hover h3, .service-entry:focus-visible h3 { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.whole-list-note { max-width: 760px; margin: var(--space-6) auto 0; color: var(--text-secondary); text-align: center; text-wrap: balance; }
.whole-list-note strong { color: var(--green); font-weight: 600; }

.home-process .process-grid { max-width: 1040px; margin-inline: auto; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; }
.home-process .steps { margin-top: 0; }
.home-process .steps li { margin-top: var(--space-6); }
.home-process .steps li:first-child { margin-top: 0; }
.home-process .steps h3 { font-size: 1.25rem; text-wrap: wrap; }
.home-process .price-panel { padding: var(--space-6); }
.home-process .price-panel h3 { font-size: 1.125rem; }
.home-process .price { margin-top: var(--space-3); }
.home-process .price strong { font-size: 3.5rem; }
.home-process .price-explanation, .home-process .price-quote p { font-size: var(--type-body-small); }
.home-price-terms { margin-top: var(--space-4); font-size: var(--type-body); color: var(--inverse-muted); }

.about-story { max-width: 700px; }
.about-story h2 { text-align: center; margin-bottom: var(--space-6); }
.about-story p { color: var(--text-secondary); }
.about-story p + p { margin-top: var(--space-5); }

/* Approved customer words, with one heading and no invented rating/imagery. */
.customer-proof { padding-top: 0; }
.customer-proof .customer-reviews { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.closing-copy { text-wrap: balance; }

@media (max-width: 1000px) {
  .home-hero .hero-copy { max-width: 520px; }
  .home-hero::before { background: linear-gradient(90deg, rgb(var(--hero-overlay-rgb) / .93) 0%, rgb(var(--hero-overlay-rgb) / .84) 48%, rgb(var(--hero-overlay-rgb) / .38) 100%); }
  .service-entry { grid-template-columns: minmax(210px, .85fr) minmax(0, 1.6fr) var(--icon-size); gap: var(--space-5); }
}
@media (max-width: 800px) {
  .home-process .process-grid { grid-template-columns: minmax(0, 1fr); max-width: 620px; gap: var(--space-7); }
  .customer-proof .customer-reviews { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 720px) {
  .home-hero { min-height: 0; }
  .home-hero .hero-content { padding-block: var(--space-8); }
  .home-hero .hero-copy { max-width: 520px; }
  .home-hero .hero-lead { max-width: 440px; }
  .home-hero::before { background: linear-gradient(90deg, rgb(var(--hero-overlay-rgb) / .91) 0%, rgb(var(--hero-overlay-rgb) / .8) 60%, rgb(var(--hero-overlay-rgb) / .65) 100%); }
  .home-section-heading { margin-bottom: var(--space-6); }
  .service-entry { grid-template-columns: minmax(0, 1fr) var(--icon-size); gap: var(--space-2) var(--space-5); padding: var(--space-5) 0; }
  .service-entry h3 { grid-column: 1; grid-row: 1; }
  .service-entry p { grid-column: 1; grid-row: 2; }
  .service-entry .icon { grid-column: 2; grid-row: 1; }
  .whole-list-note { text-align: left; }
  .home-process .price-panel { padding: var(--space-5); }
  .about-story { max-width: 620px; }
}
