/*
 * City Home Global Typography v1.0.0
 * Deliberately loaded late to act as the final typography authority.
 *
 * IMPORTANT:
 * - Does NOT change widths, heights, spacing, grid, colour or component structure.
 * - It normalises font sizes and line heights only.
 * - Selector coverage is scoped to the City Home classes built across the site.
 */

:root{
  --chb-type-display-desktop:72px;
  --chb-type-display-mobile:42px;
  --chb-type-section-desktop:54px;
  --chb-type-section-mobile:34px;
  --chb-type-card-desktop:26px;
  --chb-type-card-mobile:18px;
  --chb-type-featured-desktop:42px;
  --chb-type-featured-mobile:26px;
  --chb-type-body-desktop:15px;
  --chb-type-body-mobile:12px;
  --chb-type-small-desktop:10px;
  --chb-type-small-mobile:8px;
  --chb-type-eyebrow-desktop:7px;
  --chb-type-eyebrow-mobile:6px;
  --chb-type-button-desktop:7px;
  --chb-type-button-mobile:6px;
  --chb-type-line-display:.94;
  --chb-type-line-section:.98;
  --chb-type-line-body:1.65;
}

/* =========================================================
   1. DISPLAY HEADINGS
   Biggest editorial statements only.
   ========================================================= */

.chb-single-project .chb-sp-title h1,
.chb-design-shop__hero h1,
.chb-design-shop .chb-design-shop__hero h1,
.chb-services-page .chb-services-hero h1,
.chb-service-detail-hero h1,
.chb-contact-page h1,
.chb-booking-root .chb-booking-visual h2,
.chb-trust-section .chb-trust-title,
.chb-home-showcase .chb-showcase-title,
.chb-project-showcase .chb-showcase-title{
  font-size:var(--chb-type-display-desktop)!important;
  line-height:var(--chb-type-line-display)!important;
  letter-spacing:-.045em!important;
}

/* =========================================================
   2. SECTION HEADINGS
   Makes "What are you building?" and "A home that fits."
   part of the same hierarchy.
   ========================================================= */

.chb-build-types h2,
.chb-build-types__title,
.chb-project-showcase h2,
.chb-home-showcase h2,
.chb-project-showcase .chb-section-title,
.chb-home-showcase .chb-section-title,
.chb-reviews-section h2,
.chb-trust-section h2,
.chb-services-page h2,
.chb-service-detail-page h2,
.chb-contact-page h2,
.chb-single-project .chb-sp-story h2,
.chb-single-project .chb-sp-section-head h2,
.chb-booking-root .chb-booking-step__head h3{
  font-size:var(--chb-type-section-desktop)!important;
  line-height:var(--chb-type-line-section)!important;
  letter-spacing:-.04em!important;
}

/*
 * Known homepage headings that can otherwise inherit giant
 * one-off values from their local plugins.
 */
.chb-home-showcase [class*="heading"],
.chb-project-showcase [class*="heading"]{
  line-height:var(--chb-type-line-section)!important;
}

/* =========================================================
   3. PROJECT / CARD TITLES
   Prevents addresses and project names becoming mini hero headings.
   ========================================================= */

.chb-project-showcase .chb-project-title,
.chb-project-showcase .chb-project-card h3,
.chb-home-showcase .chb-project-title,
.chb-home-showcase .chb-project-card h3,
.chb-design-shop .chb-design-product__head h2,
.chb-design-shop .chb-design-card__title,
.chb-single-project .chb-sp-feature h3,
.chb-services-page .chb-service-card h3,
.chb-mega-panel .chb-mega-links strong{
  font-size:var(--chb-type-card-desktop)!important;
  line-height:1.03!important;
  letter-spacing:-.025em!important;
}

/* =========================================================
   4. BODY COPY
   ========================================================= */

.chb-build-types p,
.chb-project-showcase p,
.chb-home-showcase p,
.chb-design-shop p,
.chb-reviews-section p,
.chb-trust-section p,
.chb-services-page p,
.chb-service-detail-page p,
.chb-contact-page p,
.chb-single-project .chb-sp-story__copy p,
.chb-single-project .chb-sp-section-head__right p,
.chb-booking-root .chb-booking-step__head p,
.chb-mega-panel .chb-mega-feature p{
  font-size:var(--chb-type-body-desktop)!important;
  line-height:var(--chb-type-line-body)!important;
}

/* =========================================================
   5. SMALL / META
   ========================================================= */

.chb-project-showcase small,
.chb-home-showcase small,
.chb-design-shop small,
.chb-reviews-section small,
.chb-services-page small,
.chb-service-detail-page small,
.chb-single-project small,
.chb-booking-root small,
.chb-mega-panel small,
.chb-footer-engine small{
  font-size:var(--chb-type-small-desktop)!important;
  line-height:1.35!important;
}

/* =========================================================
   6. EYEBROWS / LABELS
   ========================================================= */

.chb-sp-eyebrow,
.chb-build-types .chb-eyebrow,
.chb-project-showcase .chb-eyebrow,
.chb-home-showcase .chb-eyebrow,
.chb-design-shop .chb-design-shop__eyebrow,
.chb-design-product__head>div>span,
.chb-reviews-section .chb-eyebrow,
.chb-trust-section .chb-eyebrow,
.chb-services-page .chb-eyebrow,
.chb-service-detail-page .chb-eyebrow,
.chb-contact-page .chb-eyebrow,
.chb-booking-root .chb-booking-eyebrow,
.chb-booking-root .chb-booking-step__head>span,
.chb-mega-kicker{
  font-size:var(--chb-type-eyebrow-desktop)!important;
  line-height:1.1!important;
  letter-spacing:.16em!important;
}

/* =========================================================
   7. BUTTON / CTA TEXT
   ========================================================= */

.chb-site-header a,
.chb-project-showcase a,
.chb-home-showcase a,
.chb-design-shop a,
.chb-design-shop button,
.chb-services-page a,
.chb-service-detail-page a,
.chb-contact-page button,
.chb-booking-root button,
.chb-single-project a,
.chb-single-project button,
.chb-footer-engine a,
.chb-footer-engine button,
.chb-mega-panel a{
  font-size:var(--chb-type-button-desktop)!important;
}

/* Header nav needs to remain a touch larger than micro CTAs */
.chb-site-header .chb-header-menu>li>a{
  font-size:max(10px,var(--chb-type-button-desktop))!important;
}

/* =========================================================
   MOBILE
   ========================================================= */

@media(max-width:760px){

  .chb-single-project .chb-sp-title h1,
  .chb-design-shop__hero h1,
  .chb-design-shop .chb-design-shop__hero h1,
  .chb-services-page .chb-services-hero h1,
  .chb-service-detail-hero h1,
  .chb-contact-page h1,
  .chb-booking-root .chb-booking-visual h2,
  .chb-trust-section .chb-trust-title,
  .chb-home-showcase .chb-showcase-title,
  .chb-project-showcase .chb-showcase-title{
    font-size:var(--chb-type-display-mobile)!important;
    line-height:var(--chb-type-line-display)!important;
  }

  .chb-build-types h2,
  .chb-build-types__title,
  .chb-project-showcase h2,
  .chb-home-showcase h2,
  .chb-project-showcase .chb-section-title,
  .chb-home-showcase .chb-section-title,
  .chb-reviews-section h2,
  .chb-trust-section h2,
  .chb-services-page h2,
  .chb-service-detail-page h2,
  .chb-contact-page h2,
  .chb-single-project .chb-sp-story h2,
  .chb-single-project .chb-sp-section-head h2,
  .chb-booking-root .chb-booking-step__head h3{
    font-size:var(--chb-type-section-mobile)!important;
    line-height:var(--chb-type-line-section)!important;
  }

  .chb-project-showcase .chb-project-title,
  .chb-project-showcase .chb-project-card h3,
  .chb-home-showcase .chb-project-title,
  .chb-home-showcase .chb-project-card h3,
  .chb-design-shop .chb-design-product__head h2,
  .chb-design-shop .chb-design-card__title,
  .chb-single-project .chb-sp-feature h3,
  .chb-services-page .chb-service-card h3{
    font-size:var(--chb-type-card-mobile)!important;
  }

  .chb-build-types p,
  .chb-project-showcase p,
  .chb-home-showcase p,
  .chb-design-shop p,
  .chb-reviews-section p,
  .chb-trust-section p,
  .chb-services-page p,
  .chb-service-detail-page p,
  .chb-contact-page p,
  .chb-single-project .chb-sp-story__copy p,
  .chb-single-project .chb-sp-section-head__right p,
  .chb-booking-root .chb-booking-step__head p{
    font-size:var(--chb-type-body-mobile)!important;
    line-height:var(--chb-type-line-body)!important;
  }

  .chb-project-showcase small,
  .chb-home-showcase small,
  .chb-design-shop small,
  .chb-reviews-section small,
  .chb-services-page small,
  .chb-service-detail-page small,
  .chb-single-project small,
  .chb-booking-root small{
    font-size:var(--chb-type-small-mobile)!important;
  }

  .chb-sp-eyebrow,
  .chb-build-types .chb-eyebrow,
  .chb-project-showcase .chb-eyebrow,
  .chb-home-showcase .chb-eyebrow,
  .chb-design-shop .chb-design-shop__eyebrow,
  .chb-design-product__head>div>span,
  .chb-reviews-section .chb-eyebrow,
  .chb-trust-section .chb-eyebrow,
  .chb-services-page .chb-eyebrow,
  .chb-service-detail-page .chb-eyebrow,
  .chb-contact-page .chb-eyebrow,
  .chb-booking-root .chb-booking-eyebrow,
  .chb-booking-root .chb-booking-step__head>span{
    font-size:var(--chb-type-eyebrow-mobile)!important;
  }

  .chb-project-showcase a,
  .chb-home-showcase a,
  .chb-design-shop a,
  .chb-design-shop button,
  .chb-services-page a,
  .chb-service-detail-page a,
  .chb-contact-page button,
  .chb-booking-root button,
  .chb-single-project a,
  .chb-single-project button,
  .chb-footer-engine a,
  .chb-footer-engine button{
    font-size:var(--chb-type-button-mobile)!important;
  }

  /* Keep the full-screen drawer intentionally editorial */
  .chb-mobile-drawer__menu>li>a{
    font-size:34px!important;
    line-height:1.18!important;
    letter-spacing:-.035em!important;
  }
}

/* Slightly smaller phones */
@media(max-width:390px){
  .chb-mobile-drawer__menu>li>a{
    font-size:31px!important;
  }
}


/* =========================================================
   v1.0.1 — EXACT CITY HOME COMPONENT TARGETING
   ========================================================= */

/* Homepage showcase FEATURED property name.
   This is intentionally smaller than a section heading. */
.chb-project-showcase .chb-featured-home h3,
.chb-project-showcase .chb-featured-home__content h3{
  font-size:var(--chb-type-featured-desktop)!important;
  line-height:.98!important;
  letter-spacing:-.04em!important;
  max-width:100%!important;
}

/* Homepage showcase main heading. */
.chb-project-showcase .chb-library-head h2{
  font-size:var(--chb-type-section-desktop)!important;
  line-height:var(--chb-type-line-section)!important;
  letter-spacing:-.04em!important;
}

/* Reviews plugin uses .chb-reviews rather than .chb-reviews-section. */
.chb-reviews .chb-reviews__heading h2{
  font-size:var(--chb-type-section-desktop)!important;
  line-height:var(--chb-type-line-section)!important;
  letter-spacing:-.04em!important;
}

/* Reviews eyebrow and body copy. */
.chb-reviews .chb-reviews__eyebrow{
  font-size:var(--chb-type-eyebrow-desktop)!important;
  line-height:1.1!important;
  letter-spacing:.16em!important;
}

.chb-reviews .chb-reviews__heading p,
.chb-reviews .chb-review-card p,
.chb-reviews .chb-review-card__text{
  font-size:var(--chb-type-body-desktop)!important;
  line-height:var(--chb-type-line-body)!important;
}

/* Review person / project metadata stays secondary. */
.chb-reviews .chb-review-card__top strong,
.chb-reviews .chb-review-card__top small,
.chb-reviews .chb-reviews__summary strong,
.chb-reviews .chb-reviews__summary small{
  font-size:var(--chb-type-small-desktop)!important;
  line-height:1.35!important;
}

/* Featured home supporting numbers should not inherit title scale. */
.chb-project-showcase .chb-featured-home__stats strong,
.chb-project-showcase .chb-featured-home__price strong{
  letter-spacing:-.02em!important;
}

/* Mobile */
@media(max-width:760px){
  .chb-project-showcase .chb-featured-home h3,
  .chb-project-showcase .chb-featured-home__content h3{
    font-size:var(--chb-type-featured-mobile)!important;
    line-height:1!important;
  }

  .chb-project-showcase .chb-library-head h2,
  .chb-reviews .chb-reviews__heading h2{
    font-size:var(--chb-type-section-mobile)!important;
    line-height:var(--chb-type-line-section)!important;
  }

  .chb-reviews .chb-reviews__eyebrow{
    font-size:var(--chb-type-eyebrow-mobile)!important;
  }

  .chb-reviews .chb-reviews__heading p,
  .chb-reviews .chb-review-card p,
  .chb-reviews .chb-review-card__text{
    font-size:var(--chb-type-body-mobile)!important;
    line-height:var(--chb-type-line-body)!important;
  }

  .chb-reviews .chb-review-card__top strong,
  .chb-reviews .chb-review-card__top small,
  .chb-reviews .chb-reviews__summary strong,
  .chb-reviews .chb-reviews__summary small{
    font-size:var(--chb-type-small-mobile)!important;
  }
}


/* =========================================================
   v1.0.3 — MANUAL SERVICE PAGE TYPOGRAPHY
   New Home Builds + Big Home Renovations.
   Final pixel authority is also printed in wp_footer so these
   rules beat shortcode-plugin CSS loaded during page rendering.
   ========================================================= */

.chb-service-hero-engine h1{
  font-size:var(--chb-type-display-desktop)!important;
  line-height:var(--chb-type-line-display)!important;
  letter-spacing:-.045em!important;
}

.chb-service-gallery .chb-service-gallery__header h2,
.chb-service-faq .chb-service-faq__heading h2,
.chb-service-proof .chb-service-proof__heading h2,
.chb-service-proof h2{
  font-size:var(--chb-type-section-desktop)!important;
  line-height:var(--chb-type-line-section)!important;
  letter-spacing:-.04em!important;
}

.chb-service-gallery .chb-service-gallery__header p,
.chb-service-faq .chb-service-faq__summary p,
.chb-service-proof .chb-service-proof__intro p,
.chb-service-faq .chb-service-faq__answer p{
  font-size:var(--chb-type-body-desktop)!important;
  line-height:var(--chb-type-line-body)!important;
}

.chb-service-gallery .chb-service-gallery__header>div>span,
.chb-service-faq .chb-service-faq__heading>span,
.chb-service-proof .chb-service-proof__heading>span{
  font-size:var(--chb-type-eyebrow-desktop)!important;
  line-height:1.1!important;
  letter-spacing:.16em!important;
}

.chb-service-faq .chb-service-faq__items button strong{
  font-size:var(--chb-type-card-desktop)!important;
  line-height:1.05!important;
  letter-spacing:-.025em!important;
}

.chb-service-gallery a,
.chb-service-gallery button,
.chb-service-faq button,
.chb-service-proof a,
.chb-service-proof button{
  font-size:var(--chb-type-button-desktop)!important;
}

@media(max-width:760px){
  .chb-service-hero-engine h1{
    font-size:var(--chb-type-display-mobile)!important;
  }

  .chb-service-gallery .chb-service-gallery__header h2,
  .chb-service-faq .chb-service-faq__heading h2,
  .chb-service-proof .chb-service-proof__heading h2,
  .chb-service-proof h2{
    font-size:var(--chb-type-section-mobile)!important;
  }

  .chb-service-gallery .chb-service-gallery__header p,
  .chb-service-faq .chb-service-faq__summary p,
  .chb-service-proof .chb-service-proof__intro p,
  .chb-service-faq .chb-service-faq__answer p{
    font-size:var(--chb-type-body-mobile)!important;
  }

  .chb-service-gallery .chb-service-gallery__header>div>span,
  .chb-service-faq .chb-service-faq__heading>span,
  .chb-service-proof .chb-service-proof__heading>span{
    font-size:var(--chb-type-eyebrow-mobile)!important;
  }

  .chb-service-faq .chb-service-faq__items button strong{
    font-size:var(--chb-type-card-mobile)!important;
  }

  .chb-service-gallery a,
  .chb-service-gallery button,
  .chb-service-faq button,
  .chb-service-proof a,
  .chb-service-proof button{
    font-size:var(--chb-type-button-mobile)!important;
  }
}
