/* Scoped fidelity corrections for standard, gallery, and contact pages. */

.about-page > .page-hero {
  height: 780px;
  min-height: 0;
}

.about-page > .page-hero .page-hero-content {
  transform: translateY(-35px);
}

.about-page > .page-section {
  min-height: 0 !important;
}

.about-page > .page-section:nth-of-type(2) { height: 707px; padding-top: 135px; }
.about-page > .page-section:nth-of-type(3) { height: 678px; padding-top: 230px; }
.about-page > .page-section:nth-of-type(4) { height: 893px; padding-top: 10px; }
.about-page > .page-section:nth-of-type(5) { height: 667px; padding-top: 144px; }
.about-page > .page-section:nth-of-type(6) { height: 709px; padding-top: 10px; }
.about-page > .page-section:nth-of-type(7) { height: 731px; padding-top: 125px; }
.about-page > .page-section:nth-of-type(8) { height: 648px; padding-top: 135px; }

.about-page > .consult-section {
  height: 521px;
  min-height: 0;
}

.about-page > .consult-section > .shell-width {
  transform: translateY(-34px);
}

.gallery-page:not(.fine-details-gallery) .gallery-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: flex-start;
  --gallery-row: 300px;
}

.gallery-page:not(.fine-details-gallery) .gallery-tile {
  flex: var(--tile-ratio, 1.5) 1 calc(var(--tile-ratio, 1.5) * var(--gallery-row));
}

.gallery-page:not(.fine-details-gallery) .gallery-tile img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: initial;
}

.contact-page .page-hero-content {
  transform: translateY(-43px);
}

.contact-page .page-hero {
  background-position: center bottom;
}

.contact-page .page-hero::before {
  background: rgb(0 0 0 / 50%);
}

.contact-page .page-hero .hero-shade {
  display: none;
}

.contact-page .contact-info {
  padding-top: 125px;
}

.contact-page .consultation-section {
  padding-top: 122px;
}

.contact-page .consultation-section form {
  max-width: 880px;
}

.contact-page .pricing-grid {
  gap: 160px 55px;
}

.contact-page .form-intro {
  margin-bottom: 100px !important;
}

.contact-page .consultation-section input[type="text"],
.contact-page .consultation-section input[type="email"],
.contact-page .consultation-section input[type="tel"],
.contact-page .consultation-section textarea {
  width: calc(100% - 16px);
  min-height: 50px;
}

.contact-page .consultation-section textarea {
  min-height: 160px;
}

.contact-page .consultation-section .compact-options {
  margin: 18px 0 24px;
}

.contact-page .consultation-section .tract-note {
  margin: 12px 0 24px;
  font-size: 13px;
  line-height: 1.5;
}

.contact-page .consultation-section form > .button {
  min-width: 159px;
  min-height: 57px;
}

.contact-map {
  display: none;
}

@media (max-width: 900px) {
  .gallery-page:not(.fine-details-gallery) {
    margin-top: -60px;
  }

  .gallery-page:not(.fine-details-gallery) .gallery-heading {
    padding-top: 75px;
  }

  .gallery-page:not(.fine-details-gallery) .gallery-divider {
    margin-block: 24px;
  }

  .gallery-page:not(.fine-details-gallery) .gallery-wrap {
    width: calc(100% - 30px);
  }

  .gallery-page:not(.fine-details-gallery) .gallery-grid {
    --gallery-row: 159px;
  }
}

@media (max-width: 600px) {
  .gallery-page:not(.fine-details-gallery) {
    margin-top: 0;
  }

  .gallery-page:not(.fine-details-gallery) .gallery-grid {
    gap: 10px;
    --gallery-row: 116px;
  }
}

/* Source-complete standard page compositions. */
.source-complete-page .source-section {
  position: relative;
  padding: 82px 0;
  overflow: hidden;
}

.source-complete-page .source-section > .shell-width {
  position: relative;
  z-index: 1;
}

.source-complete-page .source-columns {
  display: grid;
  gap: 54px;
  align-items: center;
}

.source-complete-page .source-columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.source-complete-page .source-columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.source-complete-page .source-columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.source-complete-page .source-column > * + * { margin-top: 22px; }

.source-complete-page .source-column h2,
.source-complete-page .source-column h3,
.source-complete-page .source-column h4 {
  margin-bottom: 22px;
}

.source-complete-page .source-column img {
  display: block;
  width: 100%;
  max-height: 570px;
  object-fit: cover;
}

.source-complete-page .source-column .button {
  display: inline-flex;
  width: max-content;
}

.source-complete-page .source-hero {
  min-height: 780px;
  padding: 110px 0 85px;
  color: #fff;
  background: #111 var(--source-image) center / cover no-repeat;
}

.source-complete-page .source-hero::before,
.source-complete-page .source-image-band::before {
  position: absolute;
  inset: 0;
  content: "";
  background: rgba(0, 0, 0, .55);
}

.source-complete-page .source-hero > .shell-width,
.source-complete-page .source-hero .source-columns {
  min-height: 585px;
}

.source-complete-page .source-hero h1 {
  max-width: 780px;
  color: #fff;
  font-size: clamp(58px, 6vw, 88px);
  line-height: .98;
}

.source-complete-page .source-hero p {
  max-width: 640px;
  color: #fff;
  font-size: 18px;
}

.source-complete-page .source-hero .source-columns-1 { text-align: center; }
.source-complete-page .source-hero .source-columns-1 .source-column { display: grid; justify-items: center; }

.source-complete-page .source-image-band {
  min-height: 420px;
  color: #fff;
  background: #151515 var(--source-image) center / cover no-repeat;
}

.source-complete-page .source-image-band h2,
.source-complete-page .source-image-band h3,
.source-complete-page .source-image-band p { color: #fff; }

.source-complete-page .source-cta {
  min-height: 520px;
  display: grid;
  place-items: center;
  text-align: center;
  background-image: var(--source-image, url('/assets/img/2019/05/Spartan-Team-Banner-1400w.jpg'));
  background-position: center;
  background-size: cover;
}

.source-complete-page .source-cta::before {
  position: absolute;
  inset: 0;
  content: "";
  background: rgba(0, 0, 0, .68);
}

.source-complete-page .source-cta h2,
.source-complete-page .source-cta p { color: #fff; }

.source-complete-page .source-gallery-section .source-columns-1 .source-column {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.source-complete-page .source-gallery-section .source-columns-1 .source-column > :not(img) {
  grid-column: 1 / -1;
}

.source-complete-page .source-table { overflow-x: auto; }
.source-complete-page .source-table table { width: 100%; border-collapse: collapse; }
.source-complete-page .source-table td { padding: 12px; border: 1px solid #ddd; }

.source-complete-page > .source-section {
  box-sizing: border-box;
}

.source-complete-page > .source-section > .shell-width,
.source-complete-page > .source-section .source-columns {
  height: 100%;
}

.source-complete-page > .source-section .source-columns {
  align-content: center;
}

.about-page > .source-section:nth-child(1) { height: 780px; }
.about-page > .source-section:nth-child(2) { height: 390px; background: #fdf9f2; }
.about-page > .source-section:nth-child(3) { height: 317px; background: #fdf9f2; }
.about-page > .source-section:nth-child(4) { height: 678px; background: #fff; }
.about-page > .source-section:nth-child(5) { height: 121px; padding: 28px 0; background: #fff; }
.about-page > .source-section:nth-child(6) { height: 344px; background: #fff; }
.about-page > .source-section:nth-child(7) { height: 449px; background: #fff; }
.about-page > .source-section:nth-child(8) { height: 667px; background: #fff; }
.about-page > .source-section:nth-child(9) { height: 650px; background: #fff; }
.about-page > .source-section:nth-child(10) { height: 732px; background: #fdf9f2; }
.about-page > .source-section:nth-child(11) { height: 679px; background: #fff; }
.about-page > .source-section:nth-child(12) { height: 521px; }
.about-page > .source-section:nth-child(6) img,
.about-page > .source-section:nth-child(7) img,
.about-page > .source-section:nth-child(8) img,
.about-page > .source-section:nth-child(9) img { max-height: 410px; object-fit: contain; }
.about-page > .source-section:nth-child(n+7):nth-child(-n+9) img[src*="Eric-starting-early"] { visibility: hidden; }

.kitchen-remodeling-page > .source-section:nth-child(1) { height: 738px; }
.kitchen-remodeling-page > .source-section:nth-child(2) { height: 866px; background: #fff; }
.kitchen-remodeling-page > .source-section:nth-child(3) { height: 303px; background: #fdf9f2; }
.kitchen-remodeling-page > .source-section:nth-child(4) { height: 661px; padding: 60px 0; background: #fdf9f2; }
.kitchen-remodeling-page > .source-section:nth-child(5) { height: 260px; background: #fff; }
.kitchen-remodeling-page > .source-section:nth-child(6) { height: 300px; background: #fff; }
.kitchen-remodeling-page > .source-section:nth-child(7) { height: 378px; }
.kitchen-remodeling-page > .source-section:nth-child(8) { height: 322px; background: #fdf9f2; }
.kitchen-remodeling-page > .source-section:nth-child(9) { height: 809px; background: #fdf9f2; }
.kitchen-remodeling-page > .source-section:nth-child(10) { height: 342px; background: #fff; }
.kitchen-remodeling-page > .source-section:nth-child(11) { height: 521px; padding: 55px 0; background: #fff; }
.kitchen-remodeling-page > .source-section:nth-child(12) { height: 648px; background: #fdf9f2; }
.kitchen-remodeling-page > .source-section:nth-child(13) { height: 338px; background: #fdf9f2; }
.kitchen-remodeling-page > .source-section:nth-child(2) img,
.kitchen-remodeling-page > .source-section:nth-child(4) img,
.kitchen-remodeling-page > .source-section:nth-child(6) img,
.kitchen-remodeling-page > .source-section:nth-child(11) img,
.kitchen-remodeling-page > .source-section:nth-child(12) img { height: 100%; max-height: 390px; }

.why-hire-spartan-page > .source-section:nth-child(1) { height: 780px; }
.why-hire-spartan-page > .source-section:nth-child(2) { height: 436px; background: #fff; }
.why-hire-spartan-page > .source-section:nth-child(3) { height: 233px; padding: 35px 0; background: #fff; }
.why-hire-spartan-page > .source-section:nth-child(4) { height: 554px; background: #fdf9f2; }
.why-hire-spartan-page > .source-section:nth-child(5) { height: 565px; background: #fdf9f2; }
.why-hire-spartan-page > .source-section:nth-child(6) { height: 562px; background: #fff; }
.why-hire-spartan-page > .source-section:nth-child(7) { height: 692px; background: #fff; }
.why-hire-spartan-page > .source-section:nth-child(8) { height: 260px; background: #fdf9f2; }
.why-hire-spartan-page > .source-section:nth-child(9) { height: 533px; background: #fff; }
.why-hire-spartan-page > .source-section:nth-child(10) { height: 900px; }
.why-hire-spartan-page > .source-section:nth-child(11) { height: 626px; background: #fff; }
.why-hire-spartan-page > .source-section:nth-child(12) { height: 755px; background: #fff; }
.why-hire-spartan-page > .source-section:nth-child(13) { height: 716px; background: #fdf9f2; }
.why-hire-spartan-page > .source-section:nth-child(14) { height: 521px; }
.why-hire-spartan-page img[alt*="icon" i] { width: 150px; height: 150px; margin-inline: auto; object-fit: contain; }

.ngbs-promise-page > .source-section:nth-child(1) { height: 780px; }
.ngbs-promise-page > .source-section:nth-child(2) { height: 1006px; background: #fff; }
.ngbs-promise-page > .source-section:nth-child(3) { height: 751px; background: #fdf9f2; }
.ngbs-promise-page > .source-section:nth-child(4) { height: 812px; background: #fff; }
.ngbs-promise-page > .source-section:nth-child(5) { height: 780px; background: #fdf9f2; }
.ngbs-promise-page > .source-section:nth-child(6) { height: 521px; }
.ngbs-promise-page > .source-section:nth-child(4) img { object-fit: contain; }

.legal-page,
.legal-page .page-section {
  min-height: 1782px;
}

.legal-page .page-section {
  padding: 0 15px 80px;
  font-size: 13px;
  line-height: 1.5;
}

.legal-page .page-section > .shell-width {
  width: 100%;
  max-width: none;
}

.legal-page h2,
.legal-page .legal-date {
  display: none;
}


@media (max-width: 900px) {
  .source-complete-page .source-section { padding: 60px 0; }
  .source-complete-page .source-columns-2,
  .source-complete-page .source-columns-3,
  .source-complete-page .source-columns-4 { grid-template-columns: 1fr; }
  .source-complete-page .source-reverse-mobile .source-column:first-child { order: 2; }
  .source-complete-page .source-hero,
  .source-complete-page .source-hero > .shell-width,
  .source-complete-page .source-hero .source-columns { min-height: 620px; }
}

@media (max-width: 600px) {
  .source-complete-page .source-hero h1 { font-size: 48px; }
  .source-complete-page .source-gallery-section .source-column { grid-template-columns: 1fr; }
}
