/*
 * Custom New Homes typography map.
 *
 * This page inherits several historic New Builds and Granny Flat layers. Keep
 * the shared shell frozen and resolve the page-body type hierarchy here, after
 * those layers have loaded.
 */

html body.custom-home-page.new-builds-family main {
  font-family: "Manrope", "Noto Sans SC", Arial, sans-serif;
}

/* Final Custom New Homes Hero contract. This file loads after the shared
   Kitchen-parity layer, so the page can retain the shared 763px frame while
   using its approved clear-image composition and page-specific copy rhythm. */
html:root:root:root:root:root body.custom-home-page.new-builds-family[data-business="new-builds"] main > .custom-home-hero .custom-home-hero__media::after {
  background: linear-gradient(90deg, rgba(0, 0, 0, .58) 0%, rgba(0, 0, 0, .42) 38%, rgba(0, 0, 0, .12) 62%, rgba(0, 0, 0, 0) 78%) !important;
  filter: none !important;
  backdrop-filter: none !important;
}

html body.custom-home-page.new-builds-family[data-business="new-builds"] #custom-home-page-main > .custom-home-hero .custom-home-hero__media > img {
  filter: none !important;
  object-position: 68% 50% !important;
}

html:root:root:root:root:root body.custom-home-page.new-builds-family[data-business="new-builds"] #custom-home-page-main > .custom-home-hero p.custom-home-eyebrow {
  margin: 0 0 18px !important;
  color: #5f97bb !important;
  font-family: "Manrope", "Noto Sans SC", Arial, sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
}

html:root:root:root:root:root body.custom-home-page.new-builds-family[data-business="new-builds"] main > .custom-home-hero .custom-home-hero__supporting {
  width: 100% !important;
  max-width: 620px !important;
  margin: 24px 0 0 !important;
  margin-inline: 0 !important;
  color: rgba(255, 255, 255, .94) !important;
  font-size: 18px !important;
  font-weight: 500 !important;
  line-height: 1.65 !important;
  text-shadow: 0 2px 12px rgba(4, 20, 31, .58);
}

html body.custom-home-page.new-builds-family main > .custom-home-hero .custom-home-secondary-action {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 0 20px;
  border: 1px solid rgba(95, 151, 187, .72);
  border-radius: 2px;
  background: #eef6fb;
  color: #123047 !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  text-decoration: none !important;
  box-shadow: none;
  transition: border-color 180ms ease, background-color 180ms ease, color 180ms ease;
}

html body.custom-home-page.new-builds-family main > .custom-home-hero .custom-home-secondary-action:hover,
html body.custom-home-page.new-builds-family main > .custom-home-hero .custom-home-secondary-action:focus-visible {
  border-color: #5f97bb;
  background: #dfeef7;
  color: #0d2b42 !important;
}

@media (min-width: 1280px) {
  html:root:root:root:root:root body.custom-home-page.new-builds-family[data-business="new-builds"] main > .custom-home-hero .custom-home-hero__grid {
    width: min(1240px, calc(100% - 88px)) !important;
    grid-template-columns: minmax(0, 650px) minmax(350px, 390px) !important;
    column-gap: clamp(120px, 10vw, 200px) !important;
    justify-content: space-between !important;
  }

  html:root:root:root:root:root body.custom-home-page.new-builds-family[data-business="new-builds"] main > .custom-home-hero .custom-home-hero__copy {
    grid-column: 1 !important;
    width: 650px !important;
    max-width: 650px !important;
  }

  html:root:root:root:root:root body.custom-home-page.new-builds-family[data-business="new-builds"] main > .custom-home-hero .custom-home-hero__form-panel {
    grid-column: 2 !important;
    justify-self: end !important;
  }
}

@media (min-width: 769px) {
  html body.custom-home-page.new-builds-family[data-business="new-builds"] #custom-home-page-main > .custom-home-hero .custom-home-hero__copy {
    color: #fff !important;
  }

  html body.custom-home-page.new-builds-family[data-business="new-builds"] #custom-home-page-main > .custom-home-hero #custom-home-title {
    color: #fff !important;
    text-shadow: 0 3px 18px rgba(4, 20, 31, .58);
  }

  html body.custom-home-page.new-builds-family[data-business="new-builds"] #custom-home-page-main > .custom-home-hero #custom-home-title span:last-child {
    color: #9edcff !important;
  }

  html body.custom-home-page.new-builds-family[data-business="new-builds"] #custom-home-page-main > .custom-home-hero .custom-home-eyebrow {
    color: #b9e6ff !important;
    text-shadow: 0 2px 12px rgba(4, 20, 31, .5);
  }

  html body.custom-home-page.new-builds-family[data-business="new-builds"] #custom-home-page-main > .custom-home-hero .custom-home-hero__supporting {
    color: rgba(255, 255, 255, .94) !important;
  }

  html body.custom-home-page.new-builds-family main > .custom-home-hero .custom-home-hero__actions {
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    gap: 14px !important;
    margin-top: 30px !important;
  }
}

@media (max-width: 1279px) and (min-width: 769px) {
  html:root:root:root:root:root body.custom-home-page.new-builds-family[data-business="new-builds"] main > .custom-home-hero .custom-home-hero__grid {
    grid-template-columns: minmax(0, 1fr) minmax(350px, 390px) !important;
    column-gap: clamp(44px, 6vw, 76px) !important;
  }

  html:root:root:root:root:root body.custom-home-page.new-builds-family[data-business="new-builds"] main > .custom-home-hero .custom-home-hero__form-panel {
    grid-column: 2 !important;
  }
}

@media (max-width: 768px) {
  html:root:root:root:root:root body.custom-home-page.new-builds-family[data-business="new-builds"] main > .custom-home-hero .custom-home-eyebrow {
    color: #b8d7e7 !important;
  }

  html body.custom-home-page.new-builds-family main > .custom-home-hero .custom-home-secondary-action {
    width: 100%;
  }
}

html:root:root:root:root:root:root:root:root body.custom-home-page.new-builds-family[data-business="new-builds"] main > .custom-home-hero #custom-home-title {
  max-width: 650px !important;
  font-family: "Cormorant Garamond", Georgia, serif !important;
  font-size: 64px !important;
  font-weight: 500 !important;
  line-height: 1.02 !important;
  letter-spacing: -.025em !important;
}

html:root:root:root:root:root:root:root:root body.custom-home-page.new-builds-family[data-business="new-builds"] main > section.custom-home-hero #custom-home-title span {
  display: block !important;
}

/* Keep the page-owned image-overlay Hero legible when the later shared service
   Hero layer applies its light-card treatment to this longer Custom Home copy. */
@media (min-width: 769px) {
  html:root:root:root:root:root:root:root:root:root:root body.custom-home-page.new-builds-family[data-business="new-builds"] main > .custom-home-hero .custom-home-hero__copy {
    width: 100% !important;
    max-width: 650px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }
}

html:root:root:root:root body.custom-home-page.new-builds-family main > section:not(.custom-home-hero):not(.custom-home-final-cta) h2 {
  font-family: "Manrope", "Noto Sans SC", Arial, sans-serif !important;
  font-size: clamp(38px, 3.3vw, 48px) !important;
  font-weight: 700 !important;
  line-height: 1.14 !important;
  letter-spacing: -.025em !important;
}

html:root:root:root:root body.custom-home-page.new-builds-family main > section:not(.custom-home-final-cta) h3 {
  font-family: "Manrope", "Noto Sans SC", Arial, sans-serif !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  line-height: 1.28 !important;
  letter-spacing: -.015em !important;
}

/* Editorial display titles remain serif, but now share the Hero family. */
html:root:root:root:root body.custom-home-page.new-builds-family main #custom-home-gallery h2#custom-home-gallery-title,
html:root:root:root:root body.custom-home-page.new-builds-family main #custom-home-journey .custom-home-journey__heading h2 {
  font-family: "Cormorant Garamond", Georgia, serif !important;
  font-size: 54px !important;
  font-weight: 600 !important;
  line-height: 1.08 !important;
  letter-spacing: -.025em !important;
}

/* Functional choices and controls use the body/UI family. */
html body.custom-home-page main .custom-home-start__option-copy strong,
html body.custom-home-page main .custom-home-study-tabs__list strong,
html:root:root:root:root body.custom-home-page.new-builds-family main .custom-home-gallery__cta h3 {
  font-family: "Manrope", "Noto Sans SC", Arial, sans-serif !important;
  font-weight: 700 !important;
}

html body.custom-home-page main .custom-home-start__option-copy strong,
html body.custom-home-page main .custom-home-study-tabs__list strong {
  font-size: 20px !important;
  line-height: 1.3 !important;
}

html:root:root:root:root body.custom-home-page.new-builds-family main .custom-home-gallery__cta h3 {
  font-size: 24px !important;
  line-height: 1.25 !important;
}

html:root:root:root:root body.custom-home-page.new-builds-family main .custom-home-gallery__dialog-copy h3 {
  font-family: "Cormorant Garamond", Georgia, serif !important;
  font-weight: 600 !important;
}

/* The connected Custom Home Collection is an editorial design catalogue, not
   a compact service-card grid. Keep its display title, summaries and repeated
   detail action on the approved DK type roles. */
html:root:root:root:root body.custom-home-page.new-builds-family main #custom-home-design-collection-title {
  font-family: "Cormorant Garamond", Georgia, serif !important;
  font-size: 48px !important;
  font-weight: 600 !important;
  line-height: 1.08 !important;
  letter-spacing: -.025em !important;
}

html body.custom-home-page.new-builds-family main #custom-home-designs .custom-home-design-collection__heading > p:last-child {
  color: #536978 !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  line-height: 1.65 !important;
}

html:root:root:root:root body.custom-home-page.new-builds-family main .custom-home-design-card__meta {
  color: #4d819f !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1.45 !important;
}

html:root:root:root:root body.custom-home-page.new-builds-family main .custom-home-design-card h4 {
  font-family: "Cormorant Garamond", Georgia, serif !important;
  font-size: 24px !important;
  font-weight: 600 !important;
  line-height: 1.18 !important;
  letter-spacing: -.015em !important;
}

html:root:root:root:root body.custom-home-page.new-builds-family main .custom-home-design-card__summary {
  color: #354e5e !important;
  font-family: "Manrope", "Noto Sans SC", Arial, sans-serif !important;
  font-size: 15.5px !important;
  font-weight: 500 !important;
  line-height: 1.6 !important;
}

html:root:root:root:root body.custom-home-page.new-builds-family main .custom-home-design-card__cta {
  color: #247faf !important;
  font-family: "Manrope", "Noto Sans SC", Arial, sans-serif !important;
  font-size: 13.5px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
}

html body.custom-home-page main .custom-home-start__option-copy small {
  color: #536978 !important;
  font-size: 15.5px !important;
  font-weight: 500 !important;
  line-height: 1.55 !important;
}

html body.custom-home-page main .custom-home-start__option-state {
  font-size: 12px !important;
  font-weight: 700 !important;
}

/* Readability roles: normal copy, dense card copy and utility labels stay
   distinct so the page does not drift between inherited historic scales. */
html body.custom-home-page.new-builds-family main .custom-home-section-label {
  font-family: "Manrope", "Noto Sans SC", Arial, sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  letter-spacing: .12em !important;
}

html body.custom-home-page.new-builds-family main .custom-home-intro__copy > p:not(.custom-home-section-label),
html body.custom-home-page.new-builds-family main .custom-home-start__response dd {
  color: #354e5e !important;
  font-family: "Manrope", "Noto Sans SC", Arial, sans-serif !important;
  font-size: 16.5px !important;
  font-weight: 500 !important;
  line-height: 1.65 !important;
}

html:root:root:root:root body.custom-home-page.new-builds-family main #custom-home-gallery p.custom-home-gallery__filter-label {
  color: #2f91c7 !important;
  font-family: "Manrope", "Noto Sans SC", Arial, sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  letter-spacing: .12em !important;
}

html:root:root:root:root body.custom-home-page.new-builds-family main #custom-home-journey .custom-home-process__panel > p {
  color: #354e5e !important;
  font-family: "Manrope", "Noto Sans SC", Arial, sans-serif !important;
  font-size: 15.5px !important;
  font-weight: 500 !important;
  line-height: 1.65 !important;
}

html body.custom-home-page.new-builds-family main .custom-home-gallery__cta > div > p,
html body.custom-home-page.new-builds-family main .custom-home-process__summary,
html body.custom-home-page.new-builds-family main .custom-home-cost-clarity__steps p,
html body.custom-home-page.new-builds-family main .custom-home-why__grid p {
  font-family: "Manrope", "Noto Sans SC", Arial, sans-serif !important;
  font-size: 15.5px !important;
  font-weight: 500 !important;
  line-height: 1.6 !important;
}

/* Supporting copy is deliberately stronger than ordinary body copy. */
body.custom-home-page #custom-home-page-main .custom-home-study-heading > div:last-child > p:first-child,
body.custom-home-page #custom-home-page-main .custom-home-gallery__introduction > p:first-child,
body.custom-home-page #custom-home-page-main .custom-home-budget-framework .custom-home-section-header > p:last-child,
body.custom-home-page #custom-home-page-main .custom-home-journey__heading > p:last-child,
body.custom-home-page #custom-home-page-main .custom-home-why-dark .custom-home-section-header > p:last-child {
  font-family: "Manrope", "Noto Sans SC", Arial, sans-serif !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  line-height: 1.65 !important;
  letter-spacing: 0 !important;
}

@media (max-width: 1024px) {
  html:root:root:root:root:root:root:root:root body.custom-home-page.new-builds-family[data-business="new-builds"] main > .custom-home-hero #custom-home-title {
    font-size: 54px !important;
  }

  html:root:root:root:root body.custom-home-page.new-builds-family main > section:not(.custom-home-hero):not(.custom-home-final-cta) h2 {
    font-size: 36px !important;
  }

  html:root:root:root:root body.custom-home-page.new-builds-family main > section:not(.custom-home-final-cta) h3 {
    font-size: 21px !important;
  }

  html:root:root:root:root body.custom-home-page.new-builds-family main #custom-home-gallery h2#custom-home-gallery-title,
  html:root:root:root:root body.custom-home-page.new-builds-family main #custom-home-journey .custom-home-journey__heading h2 {
    font-size: 44px !important;
  }

  body.custom-home-page #custom-home-page-main .custom-home-study-heading > div:last-child > p:first-child,
  body.custom-home-page #custom-home-page-main .custom-home-gallery__introduction > p:first-child,
  body.custom-home-page #custom-home-page-main .custom-home-budget-framework .custom-home-section-header > p:last-child,
  body.custom-home-page #custom-home-page-main .custom-home-journey__heading > p:last-child,
  body.custom-home-page #custom-home-page-main .custom-home-why-dark .custom-home-section-header > p:last-child {
    font-size: 17px !important;
  }

  html:root:root:root:root body.custom-home-page.new-builds-family main #custom-home-design-collection-title {
    font-size: 40px !important;
  }

  html body.custom-home-page.new-builds-family main #custom-home-designs .custom-home-design-collection__heading > p:last-child {
    font-size: 17px !important;
  }
}

@media (max-width: 768px) {
  html:root:root:root:root:root:root:root:root body.custom-home-page.new-builds-family[data-business="new-builds"] main > .custom-home-hero #custom-home-title {
    font-size: 46px !important;
  }
}

@media (max-width: 640px) {
  html:root:root:root:root:root:root:root:root body.custom-home-page.new-builds-family[data-business="new-builds"] main > .custom-home-hero #custom-home-title {
    font-size: 43px !important;
  }

  html:root:root:root:root body.custom-home-page.new-builds-family main > section:not(.custom-home-hero):not(.custom-home-final-cta) h2 {
    font-size: 31px !important;
  }

  html:root:root:root:root body.custom-home-page.new-builds-family main > section:not(.custom-home-final-cta) h3 {
    font-size: 20px !important;
  }

  html:root:root:root:root body.custom-home-page.new-builds-family main #custom-home-gallery h2#custom-home-gallery-title,
  html:root:root:root:root body.custom-home-page.new-builds-family main #custom-home-journey .custom-home-journey__heading h2 {
    font-size: 36px !important;
  }

  body.custom-home-page #custom-home-page-main .custom-home-study-heading > div:last-child > p:first-child,
  body.custom-home-page #custom-home-page-main .custom-home-gallery__introduction > p:first-child,
  body.custom-home-page #custom-home-page-main .custom-home-budget-framework .custom-home-section-header > p:last-child,
  body.custom-home-page #custom-home-page-main .custom-home-journey__heading > p:last-child,
  body.custom-home-page #custom-home-page-main .custom-home-why-dark .custom-home-section-header > p:last-child {
    font-size: 16px !important;
  }

  html:root:root:root:root body.custom-home-page.new-builds-family main #custom-home-design-collection-title {
    font-size: 34px !important;
  }

  html body.custom-home-page.new-builds-family main #custom-home-designs .custom-home-design-collection__heading > p:last-child {
    font-size: 16px !important;
  }

  html:root:root:root:root body.custom-home-page.new-builds-family main .custom-home-design-card h4 {
    font-size: 23px !important;
  }

  html:root:root:root:root body.custom-home-page.new-builds-family main .custom-home-design-card__summary {
    font-size: 15px !important;
  }

  html:root:root:root:root body.custom-home-page.new-builds-family main .custom-home-design-card__cta {
    font-size: 13px !important;
  }

  html:root:root:root:root:root body.custom-home-page.new-builds-family[data-business="new-builds"] #custom-home-page-main > .custom-home-hero p.custom-home-eyebrow,
  html body.custom-home-page.new-builds-family main .custom-home-section-label,
  html:root:root:root:root body.custom-home-page.new-builds-family main #custom-home-gallery p.custom-home-gallery__filter-label {
    font-size: 12px !important;
  }

  html body.custom-home-page.new-builds-family main .custom-home-intro__copy > p:not(.custom-home-section-label),
  html body.custom-home-page.new-builds-family main .custom-home-start__response dd {
    font-size: 16px !important;
  }

  html:root:root:root:root body.custom-home-page.new-builds-family main #custom-home-journey .custom-home-process__panel > p,
  html body.custom-home-page.new-builds-family main .custom-home-gallery__cta > div > p,
  html body.custom-home-page.new-builds-family main .custom-home-process__summary,
  html body.custom-home-page.new-builds-family main .custom-home-cost-clarity__steps p,
  html body.custom-home-page.new-builds-family main .custom-home-why__grid p {
    font-size: 15px !important;
  }
}
