/* =============================================================
   New Construction page styles
   Loaded AFTER css/modern.css + css/residential.css.
   All `.nc-*` classes are scoped to new-construction.html.
   ============================================================= */

/* ─── Shared utilities (defined here because they're missing from
   modern.css + residential.css — should be promoted to modern.css
   in a future refactor). ─── */
.m-skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 9999;
  background: var(--m-primary);
  color: #fff;
  font-family: var(--m-font-body);
  font-weight: 600;
  font-size: 14px;
  padding: 12px 20px;
  border-radius: 0 0 var(--m-radius-md) 0;
}
.m-skip-link:focus { left: 0; }

.m-section--bg-soft { background: var(--m-bg-alt); }

.m-section__header--center {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}
.m-section__header--center .m-cta-form__lede {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  max-width: 640px;
}

.m-system-rule {
  width: 44px;
  height: 2px;
  background: var(--m-accent);
  border: 0;
  margin: 0;
}


/* ─── Hero ─── */
/* No card overrides — uses the default .m-hero__card from modern.css
   (white, 480px max-width, 48px padding, 6px radius, soft shadow).
   Matches home / residential / metal / commercial. */


/* ─── Service split pin vertical centering ─── */
.nc-services-intro .r-split,
.nc-residential .r-split,
.nc-commercial .r-split,
.nc-why-us .r-split { align-items: center; }


/* ─── Materials (1×3 grid, borderless cards with brass seam-rule) ─── */
/* Three equally-valid roofing systems for new construction. Same
   borderless convention as commercial systems (no borders, no hover
   lift — content does the work). Image fills card height so the body
   text controls the row height. */
.nc-materials-section { padding-top: 0; }
.nc-materials-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
.nc-material-card {
  display: grid;
  grid-template-rows: 240px auto;
  border: 0;
  overflow: hidden;
  background: var(--m-bg);
}
.nc-material-card__media {
  overflow: hidden;
}
.nc-material-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--m-radius-md);
}
.nc-material-card__body {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 28px 4px 0;
}
.nc-material-card__title {
  font-family: var(--m-font-heading);
  font-weight: 900;
  font-size: 20px;
  letter-spacing: -0.3px;
  line-height: 1.2;
  color: var(--m-text);
  margin: 0;
}
.nc-material-card__desc {
  font-size: 14px;
  line-height: 1.55;
  color: var(--m-text-muted);
  margin: 0;
}

.nc-materials-section .m-section__header--center {
  margin-bottom: 56px;
}


/* ─── Why-us: heading + split, no CTA ─── */
/* Title sits in m-section__header (default left-aligned), then
   r-split carries text + image. The why-us section ends at the
   split — the conversion CTA lives in the dark CTA + form section
   below ("Partner with us"). Keeps the section focused on
   credibility content without competing CTAs. */
.nc-why-us .m-section__header { margin-bottom: 48px; }


/* Gallery: uses base .m-gallery (4-col) from modern.css, matching home/residential. */


/* ─── Responsive ─── */
@media (max-width: 900px) {
  .nc-materials-grid { grid-template-columns: 1fr; }
  .nc-material-card { grid-template-rows: 220px auto; }
  .nc-material-card__body { padding: 24px 0 0; }
}