/* Keep the template's 10px rem baseline; scale text without changing layout spacing. */
.site-typography {
  --font-body-size: clamp(1.6rem, 1.56rem + 0.12vw, 1.7rem);
  --font-line-height: 1.65;
  --type-section: clamp(2.6rem, 2.1rem + 1.4vw, 4rem);
  --type-card: clamp(2rem, 1.85rem + 0.5vw, 2.4rem);
  font-size: var(--font-body-size);
  line-height: var(--font-line-height);
}

.site-typography h1,
.site-typography .h1 {
  font-size: clamp(3rem, 2.3rem + 2vw, 5.2rem);
  line-height: 1.2;
}

.site-typography h2,
.site-typography .h2,
.site-typography .section__heading--title,
.site-typography .breadcrumb__title,
.site-typography .contact__form--title {
  font-size: var(--type-section);
  line-height: 1.25;
}

.site-typography h3,
.site-typography .h3,
.site-typography .project-info h3,
.site-typography .featured__card--title,
.site-typography .contact__us--info__title {
  font-size: var(--type-card);
  line-height: 1.35;
}

.site-typography h4,
.site-typography .h4 {
  font-size: clamp(1.8rem, 1.7rem + 0.3vw, 2rem);
  line-height: 1.4;
}

.site-typography h5,
.site-typography .h5,
.site-typography h6,
.site-typography .h6 {
  font-size: 1.6rem;
  line-height: 1.45;
}

.site-typography .hero__content--heading__title {
  font-size: clamp(3rem, 2.3rem + 2vw, 5.2rem);
  line-height: 1.2;
  letter-spacing: clamp(0.05rem, 0.12vw, 0.2rem);
  overflow-wrap: break-word;
}

.site-typography .hero__tagline {
  font-size: clamp(1.6rem, 1.4rem + 0.5vw, 2rem);
  line-height: 1.6;
  letter-spacing: 0.03rem;
}

.site-typography main p,
.site-typography .section__heading--desc,
.site-typography .project-info p,
.site-typography .contact__form--desc {
  font-size: var(--font-body-size);
  line-height: 1.65;
}

.site-typography .section__heading--subtitle,
.site-typography .breadcrumb__menu--link,
.site-typography .breadcrumb__menu--items,
.site-typography .advance__search--input__label {
  font-size: clamp(1.4rem, 1.35rem + 0.2vw, 1.6rem);
  line-height: 1.5;
}

.site-typography .main__menu--link,
.site-typography .sub__menu--link,
.site-typography .offcanvas__menu_item,
.site-typography .offcanvas__sub_menu_item {
  font-size: 1.6rem;
}

/* Retain the template's button height and vertical alignment. */
.site-typography .solid__btn,
.site-typography .add__listing--btn,
.site-typography .contact__form--btn,
.site-typography .advance__search--btn__style5 {
  font-size: 1.6rem;
}

/* 16px controls remain readable and avoid automatic focus zoom on mobile. */
.site-typography input,
.site-typography select,
.site-typography textarea {
  font-size: 1.6rem;
}

.site-typography .footer__widget--title {
  font-size: clamp(1.8rem, 1.7rem + 0.3vw, 2.2rem);
  line-height: 1.4;
}

.site-typography .footer__widget--desc,
.site-typography .footer__widget--menu__text,
.site-typography .footer__widget--info__text,
.site-typography .copyright__content {
  font-size: 1.5rem;
  line-height: 1.65;
  overflow-wrap: anywhere;
}

/* Specification headings are card titles, not full-width section headings. */
.site-typography .specification-section .featured__card--title {
  font-size: clamp(2rem, 1.85rem + 0.4vw, 2.4rem);
  line-height: 1.25;
  margin: 0 0 1.2rem;
  font-weight: 600;
  letter-spacing: normal;
  overflow-wrap: break-word;
}

.site-typography .specification-section .featured__content {
  min-width: 0;
  padding: 1.6rem;
}

.site-typography .specification-section .contact__property--info__text {
  font-size: 1.4rem;
  line-height: 1.5;
  font-weight: 400;
  margin-bottom: 0.8rem;
  overflow-wrap: break-word;
}

.site-typography .specification-section .contact__property--info__text:last-child {
  margin-bottom: 0;
}

@media (max-width: 767px) {
  .site-typography .hero__content--heading__title br {
    display: none;
  }
}
