/**
 * Semantic heading & body type scale (main site only — not /news/).
 * Desktop / mobile, with banner vs without-banner variants.
 */
:root {
  /* Pages without banner (default) */
  --heading-h1-size: 32px;
  --heading-h2-size: 26px;
  --heading-h3-size: 20px;
  --heading-h4-size: 18px;
  --heading-h5-size: 16px;
  --heading-h6-size: 14px;

  /* Pages with banner */
  --banner-h1-size: 40px;
  --banner-lead-size: 20px;

  --body-text-size: 16px;
  --pointer-size: 14px;
  --card-h2-size: 20px;

  --heading-h1-line-height: 1.25;
  --heading-h2-line-height: 1.25;
  --heading-h3-line-height: 1.3;
  --heading-h4-line-height: 1.35;
  --heading-h5-line-height: 1.4;
  --heading-h6-line-height: 1.4;
  --banner-lead-line-height: 1.35;
}

@media only screen and (max-width: 767px) {
  :root {
    --heading-h1-size: 30px;
    --heading-h2-size: 22px;
    --heading-h3-size: 18px;
    --heading-h4-size: 17px;
    --heading-h5-size: 15px;
    --heading-h6-size: 14px;

    --banner-h1-size: 30px;
    --banner-lead-size: 18px;
  }
}

body:not(.news-section) h1,
body:not(.news-section) h1[class] {
  font-size: var(--heading-h1-size) !important;
  line-height: var(--heading-h1-line-height) !important;
}

body:not(.news-section) h2,
body:not(.news-section) h2[class] {
  font-size: var(--heading-h2-size) !important;
  line-height: var(--heading-h2-line-height) !important;
}

body:not(.news-section) h3,
body:not(.news-section) h3[class] {
  font-size: var(--heading-h3-size) !important;
  line-height: var(--heading-h3-line-height) !important;
}

body:not(.news-section) h4,
body:not(.news-section) h4[class] {
  font-size: var(--heading-h4-size) !important;
  line-height: var(--heading-h4-line-height) !important;
}

body:not(.news-section) h5,
body:not(.news-section) h5[class] {
  font-size: var(--heading-h5-size) !important;
  line-height: var(--heading-h5-line-height) !important;
}

body:not(.news-section) h6,
body:not(.news-section) h6[class] {
  font-size: var(--heading-h6-size) !important;
  line-height: var(--heading-h6-line-height) !important;
}

/* Bootstrap .h1–.h6 helpers on non-heading elements only */
body:not(.news-section) .h1 {
  font-size: var(--heading-h1-size);
  line-height: var(--heading-h1-line-height);
}

body:not(.news-section) .h2 {
  font-size: var(--heading-h2-size);
  line-height: var(--heading-h2-line-height);
}

body:not(.news-section) .h3 {
  font-size: var(--heading-h3-size);
  line-height: var(--heading-h3-line-height);
}

body:not(.news-section) .h4 {
  font-size: var(--heading-h4-size);
  line-height: var(--heading-h4-line-height);
}

body:not(.news-section) .h5 {
  font-size: var(--heading-h5-size);
  line-height: var(--heading-h5-line-height);
}

body:not(.news-section) .h6 {
  font-size: var(--heading-h6-size);
  line-height: var(--heading-h6-line-height);
}

/* Pages with banner: larger H1 + lead para */
body:not(.news-section) .inner-page-banner h1,
body:not(.news-section) .inner-page-banner h1[class],
body:not(.news-section) .home-banner h1,
body:not(.news-section) .home-banner h1[class] {
  font-size: var(--banner-h1-size) !important;
}

body:not(.news-section) .inner-page-banner > .bg-summer > p,
body:not(.news-section) .inner-page-banner .bg-summer > p,
body:not(.news-section) .home-banner .slider-content > p {
  font-size: var(--banner-lead-size) !important;
  line-height: var(--banner-lead-line-height) !important;
}

/* Body copy */
body:not(.news-section) p {
  font-size: var(--body-text-size);
}

/* Pointers / list items in content */
body:not(.news-section) ul.dot-icon li,
body:not(.news-section) ol.dot-icon li,
body:not(.news-section) .check-icon li,
body:not(.news-section) .teal-blue-check li,
body:not(.news-section) .reSaleBox ul li,
body:not(.news-section) .reSaleBox ol li,
body:not(.news-section) .main-content ul li,
body:not(.news-section) .main-content ol li,
body:not(.news-section) .desk-content ul li,
body:not(.news-section) .default-ul li {
  font-size: var(--pointer-size);
}

/**
 * Card H2 headings: 20px on desktop + mobile.
 * Homepage is excluded so card H2s keep the normal H2 scale there.
 */
body:not(.news-section):not(:has(.home-banner)) .sales-card h2,
body:not(.news-section):not(:has(.home-banner)) .sales-card h2[class],
body:not(.news-section):not(:has(.home-banner)) .furnishingCardBox h2,
body:not(.news-section):not(:has(.home-banner)) .furnishingCardBox h2[class],
body:not(.news-section):not(:has(.home-banner)) .career-heads h2,
body:not(.news-section):not(:has(.home-banner)) .career-heads h2[class],
body:not(.news-section):not(:has(.home-banner)) .services-icon-box h2,
body:not(.news-section):not(:has(.home-banner)) .services-icon-box h2[class],
body:not(.news-section):not(:has(.home-banner)) .service-icon h2,
body:not(.news-section):not(:has(.home-banner)) .service-icon h2[class],
body:not(.news-section):not(:has(.home-banner)) .proprtyInnerBox h2,
body:not(.news-section):not(:has(.home-banner)) .proprtyInnerBox h2[class],
body:not(.news-section):not(:has(.home-banner)) .bg-lightblue.padding h2,
body:not(.news-section):not(:has(.home-banner)) .bg-lightblue.padding h2[class] {
  font-size: var(--card-h2-size) !important;
}
