/* Global options are opt-in. No class is added when a field keeps its default. */
body.dt-typo-body-family {
    font-synthesis: none;
}

body.dt-typo-body-weight { font-weight: var(--typo-body-weight); }
body.dt-typo-body-line-height { line-height: var(--typo-body-line-height); }
body.dt-typo-body-letter-spacing { letter-spacing: var(--typo-body-letter-spacing); }

body.dt-typo-h1-family h1:not(#dt-typography-never) { font-family: var(--typo-h1-family); }
body.dt-typo-h1-weight h1:not(#dt-typography-never) { font-weight: var(--typo-h1-weight); }
body.dt-typo-h1-line-height h1:not(#dt-typography-never) { line-height: var(--typo-h1-line-height); }
body.dt-typo-h1-letter-spacing h1:not(#dt-typography-never) { letter-spacing: var(--typo-h1-letter-spacing); }

body.dt-typo-h2-family h2:not(.gifts-features__title):not(.contacts-info__title):not(#dt-typography-never) { font-family: var(--typo-h2-family); }
body.dt-typo-h2-weight h2:not(.gifts-features__title):not(.contacts-info__title):not(#dt-typography-never) { font-weight: var(--typo-h2-weight); }
body.dt-typo-h2-line-height h2:not(.gifts-features__title):not(.contacts-info__title):not(:where(.special-offer-features__heading)):not(#dt-typography-never) { line-height: var(--typo-h2-line-height); }
body.dt-typo-h2-letter-spacing h2:not(.gifts-features__title):not(.contacts-info__title):not(#dt-typography-never) { letter-spacing: var(--typo-h2-letter-spacing); }

body.dt-typo-h3-family h3:not(.home-contacts__label):not(.restaurants-kedr-menu h3):not(#dt-typography-never) { font-family: var(--typo-h3-family); }
body.dt-typo-h3-weight h3:not(.home-contacts__label):not(.restaurants-kedr-menu h3):not(#dt-typography-never) { font-weight: var(--typo-h3-weight); }
body.dt-typo-h3-line-height h3:not(.home-contacts__label):not(.restaurants-kedr-menu h3):not(:where(.special-offer-feature h3)):not(#dt-typography-never) { line-height: var(--typo-h3-line-height); }
body.dt-typo-h3-letter-spacing h3:not(.home-contacts__label):not(.restaurants-kedr-menu h3):not(#dt-typography-never) { letter-spacing: var(--typo-h3-letter-spacing); }

body.dt-typo-header-family :is(.main-menu > li > a, .language-switcher__button, .site-header__phone) { font-family: var(--typo-header-family); }
body.dt-typo-header-weight :is(.main-menu > li > a, .language-switcher__button, .site-header__phone) { font-weight: var(--typo-header-weight); }

body.dt-typo-mobile-nav-family .mobile-menu__list > li > a { font-family: var(--typo-mobile-nav-family); }
body.dt-typo-mobile-nav-weight .mobile-menu__list > li > a { font-weight: var(--typo-mobile-nav-weight); }

body.dt-typo-button-family :is(button, a[class*="button"], .header-booking, .site-footer__booking) { font-family: var(--typo-button-family); }
body.dt-typo-button-weight :is(button, a[class*="button"], .header-booking, .site-footer__booking) { font-weight: var(--typo-button-weight); }
body.dt-typo-button-letter-spacing :is(button, a[class*="button"], .header-booking, .site-footer__booking) { letter-spacing: var(--typo-button-letter-spacing); }

@media (min-width: 1280px) {
    body.dt-typo-body-size-desktop { font-size: var(--typo-body-size-desktop); }
    body.dt-typo-h1-size-desktop h1:not(#dt-typography-never) { font-size: var(--typo-h1-size-desktop); }
    body.dt-typo-h2-size-desktop h2:not(.gifts-features__title):not(.contacts-info__title):not(:where(.special-offer-features__heading)):not(#dt-typography-never) { font-size: var(--typo-h2-size-desktop); }
    body.dt-typo-h3-size-desktop h3:not(.home-contacts__label):not(.restaurants-kedr-menu h3):not(:where(.special-offer-feature h3)):not(#dt-typography-never) { font-size: var(--typo-h3-size-desktop); }
    body.dt-typo-header-size-desktop :is(.main-menu > li > a, .language-switcher__button) { font-size: var(--typo-header-size-desktop); }
    body.dt-typo-header-phone-size-desktop .site-header__phone { font-size: var(--typo-header-phone-size-desktop); }
    body.dt-typo-button-size-desktop :is(button, a[class*="button"], .header-booking, .site-footer__booking) { font-size: var(--typo-button-size-desktop); }
}

@media (min-width: 768px) and (max-width: 1279px) {
    body.dt-typo-body-size-tablet { font-size: var(--typo-body-size-tablet); }
    body.dt-typo-h1-size-tablet h1:not(#dt-typography-never) { font-size: var(--typo-h1-size-tablet); }
    body.dt-typo-h2-size-tablet h2:not(.gifts-features__title):not(.contacts-info__title):not(:where(.special-offer-features__heading)):not(#dt-typography-never) { font-size: var(--typo-h2-size-tablet); }
    body.dt-typo-h3-size-tablet h3:not(.home-contacts__label):not(.restaurants-kedr-menu h3):not(:where(.special-offer-feature h3)):not(#dt-typography-never) { font-size: var(--typo-h3-size-tablet); }
    body.dt-typo-header-size-tablet :is(.main-menu > li > a, .language-switcher__button) { font-size: var(--typo-header-size-tablet); }
}

@media (max-width: 767px) {
    body.dt-typo-body-size-mobile { font-size: var(--typo-body-size-mobile); }
    body.dt-typo-h1-size-mobile h1:not(#dt-typography-never) { font-size: var(--typo-h1-size-mobile); }
    body.dt-typo-h2-size-mobile h2:not(.gifts-features__title):not(.contacts-info__title):not(:where(.special-offer-features__heading)):not(#dt-typography-never) { font-size: var(--typo-h2-size-mobile); }
    body.dt-typo-h3-size-mobile h3:not(.home-contacts__label):not(.restaurants-kedr-menu h3):not(:where(.special-offer-feature h3)):not(#dt-typography-never) { font-size: var(--typo-h3-size-mobile); }
    body.dt-typo-mobile-nav-size-mobile .mobile-menu__list > li > a { font-size: var(--typo-mobile-nav-size-mobile); }
    body.dt-typo-button-size-mobile :is(button, a[class*="button"], .header-booking, .site-footer__booking) { font-size: var(--typo-button-size-mobile); }
}
