/**
 * Locale font stacks (fa / hy / ru).
 * Loaded after circle-btn.css so overrides win where Antonio was hard-coded.
 */

html[lang="fa"] {
  --ng-font-display: "Vazirmatn", Tahoma, "Segoe UI", sans-serif;
  --ng-font-body: "Vazirmatn", Tahoma, "Segoe UI", sans-serif;
}

html[lang="hy"] {
  --ng-font-display: "Noto Sans Armenian", Mshtakan, Sylfaen, Georgia, serif;
  --ng-font-body: "Noto Sans Armenian", Mshtakan, system-ui, sans-serif;
}

/*
 * Armenian: `text-transform` (uppercase/lowercase) uses Unicode case rules that corrupt glyphs
 * (e.g. ech-yiwn և). Turn it off site-wide; casing comes from `tr()` / authored markup.
 * `locale-fonts.css` loads after `circle-btn.css` — the circle-label rule below beats its !important.
 */
html[lang="hy"] *,
html[lang="hy"] *::before,
html[lang="hy"] *::after {
  text-transform: none !important;
}

html[lang="hy"] [data-ng-circle-btn].ng-circle-btn .ng-circle-btn__text {
  text-transform: none !important;
}

html[lang="ru"] {
  --ng-font-display: "Playfair Display", Georgia, "Times New Roman", serif;
  --ng-font-body: "Roboto", -apple-system, BlinkMacSystemFont, sans-serif;
  --text-locale-html-font-size: 60%;
  --ng-type-scale: 0.6;
}

/*
 * Locale sizing vs EN:
 * - fa: ~25% smaller (75%, scale 0.75)
 * - hy: ~35% smaller (65%, scale 0.65)
 * - ru: ~40% smaller (60%, scale 0.6)
 * Rem-based UI follows `--text-locale-html-font-size`; vw fluid steps use `--ng-type-scale`.
 */
html[lang="fa"] {
  --text-locale-html-font-size: 75%;
  --ng-type-scale: 0.75;
}

html[lang="hy"] {
  --text-locale-html-font-size: 65%;
  --ng-type-scale: 0.65;
}

html[lang="fa"],
html[lang="hy"],
html[lang="ru"] {
  --text-body: calc(14px * var(--ng-type-scale));
  --text-2xs: calc(11px * var(--ng-type-scale));
  --text-xs: calc(12px * var(--ng-type-scale));
  --text-sm: calc(13px * var(--ng-type-scale));
  --text-xl: calc(16px * var(--ng-type-scale));
  --text-2xl: calc(18px * var(--ng-type-scale));
  --text-3xl: calc(20px * var(--ng-type-scale));
  --text-4xl: calc(24px * var(--ng-type-scale));
  --text-5xl: calc(28px * var(--ng-type-scale));
  --text-heading-page: clamp(calc(22px * var(--ng-type-scale)), calc(2.6vw * var(--ng-type-scale)), calc(28px * var(--ng-type-scale)));
  --text-heading-hero: clamp(calc(32px * var(--ng-type-scale)), calc(5vw * var(--ng-type-scale)), calc(42px * var(--ng-type-scale)));
  --text-preloader-bracket: clamp(1.125rem, calc(5vw * var(--ng-type-scale)), 2.5rem);
}

html[lang="fa"] body,
html[lang="hy"] body,
html[lang="ru"] body {
  font-family: var(--ng-font-body);
}

html[lang="fa"] body {
  font-feature-settings: "kern" 1;
  -webkit-font-smoothing: antialiased;
}

html[lang="hy"] body,
html[lang="ru"] body {
  -webkit-font-smoothing: antialiased;
}

html[lang="fa"] .heading,
html[lang="fa"] h1,
html[lang="fa"] h2,
html[lang="fa"] h3,
html[lang="hy"] .heading,
html[lang="hy"] h1,
html[lang="hy"] h2,
html[lang="hy"] h3 {
  font-family: var(--ng-font-display);
  font-weight: 600;
  letter-spacing: -0.01em;
}

html[lang="ru"] .heading,
html[lang="ru"] h1,
html[lang="ru"] h2,
html[lang="ru"] h3 {
  font-family: var(--ng-font-display);
  font-weight: 600;
  letter-spacing: -0.01em;
}

html[lang="fa"] .tpl-menu-btn,
html[lang="hy"] .tpl-menu-btn,
html[lang="ru"] .tpl-menu-btn {
  font-family: var(--ng-font-body);
}

/*
 * Language links carry lang="" per destination; typography follows that tag, not html[lang],
 * so EN/HY/RU/FA labels keep their native faces on every site locale.
 */
.tpl-lang-switch a:lang(en) {
  font-family: Inter, system-ui, sans-serif;
}

.tpl-lang-switch a:lang(hy) {
  font-family: "Noto Sans Armenian", Mshtakan, Sylfaen, Georgia, serif;
}

.tpl-lang-switch a:lang(ru) {
  font-family: Roboto, -apple-system, BlinkMacSystemFont, sans-serif;
}

.tpl-lang-switch a:lang(fa) {
  font-family: Vazirmatn, Tahoma, "Segoe UI", sans-serif;
  direction: rtl;
  unicode-bidi: isolate;
}

/*
 * Fluid hero slogan: keep homepage band at ~1vw (not scaled `--ng-type-scale`) for fa/hy/ru line breaks.
 * Membership: `.sec-membership` uses scaled `--text-tpl-root-vw` (heading / band); `.price-wrapper` uses `calc(1em / var(--ng-type-scale))` so card `em` matches EN vs artwork.
 * Location / map: same issue — grid `em` (min-height, pins, column track) inherited from scaled `body` was smaller than EN.
 * Phone/email follow global footer tokens (`--text-footer-meta-em` / `--text-footer-mobile-meta-em` on `.txt-16`) like EN.
 * Language switcher uses `--text-lang-link` from `base.css` (pinned px; same on desktop strip + mobile navbar for all locales).
 * Site header matches EN typography: `--text-header-root-vw` on `.tpl-site-header`; nav pills `--text-nav-pill` / `--text-header-nav-*` are not shrunk here.
 */
html[lang="fa"] body.neogym-route-home .page-home .sec-main,
html[lang="hy"] body.neogym-route-home .page-home .sec-main,
html[lang="ru"] body.neogym-route-home .page-home .sec-main {
  font-size: 1vw;
  line-height: 1.3;
}

html[lang="fa"] body.neogym-route-home .page-home .sec-map,
html[lang="hy"] body.neogym-route-home .page-home .sec-map,
html[lang="ru"] body.neogym-route-home .page-home .sec-map {
  font-size: 1vw;
  line-height: 1.3;
}

/*
 * CTA band: inherit homepage vw root (`--text-tpl-root-vw`) so headings / offer / `1em` form fields honor
 * locale `--ng-type-scale`. Pure `1vw` here bypassed lang reduction (Russian “положи / первый / Скидка… / сегодня”).
 */
html[lang="fa"] body.neogym-route-home .page-home .sec-cta,
html[lang="hy"] body.neogym-route-home .page-home .sec-cta,
html[lang="ru"] body.neogym-route-home .page-home .sec-cta {
  font-size: var(--text-tpl-root-vw);
  line-height: 1.3;
}

html[lang="fa"] .neogym-site-footer .txt-20,
html[lang="hy"] .neogym-site-footer .txt-20,
html[lang="ru"] .neogym-site-footer .txt-20,
html[lang="fa"] .neogym-site-footer .sec-footer .class-name-txt,
html[lang="hy"] .neogym-site-footer .sec-footer .class-name-txt,
html[lang="fa"] .neogym-site-footer .heading,
html[lang="hy"] .neogym-site-footer .heading,
html[lang="fa"] .neogym-site-footer .txt-16,
html[lang="hy"] .neogym-site-footer .txt-16,
html[lang="ru"] .neogym-site-footer .txt-16 {
  font-family: var(--ng-font-body);
}

/* ru: display font on footer headings / class names */
html[lang="ru"] .neogym-site-footer .sec-footer .class-name-txt,
html[lang="ru"] .neogym-site-footer .heading {
  font-family: var(--ng-font-display);
}

html[lang="ru"] .neogym-site-footer .txt-20 {
  font-family: var(--ng-font-body);
}

/*
 * Preloader stays identical to English for all locales:
 * - keep Antonio (from page-preloader.css), not locale display fonts
 * - cancel locale 0.8 scale so [ 0-100 ] matches EN visual size
 */
html[lang="fa"] body.neogym-route-home .neogym-preloader__br,
html[lang="hy"] body.neogym-route-home .neogym-preloader__br,
html[lang="ru"] body.neogym-route-home .neogym-preloader__br,
html[lang="fa"] body.neogym-route-home .neogym-preloader__num,
html[lang="hy"] body.neogym-route-home .neogym-preloader__num,
html[lang="ru"] body.neogym-route-home .neogym-preloader__num {
  font-size: calc(var(--text-tpl-preloader-display) / var(--ng-type-scale));
}

@media (max-width: 479px) {
  html[lang="fa"] body.neogym-route-home .neogym-preloader__br,
  html[lang="hy"] body.neogym-route-home .neogym-preloader__br,
  html[lang="ru"] body.neogym-route-home .neogym-preloader__br,
  html[lang="fa"] body.neogym-route-home .neogym-preloader__num,
  html[lang="hy"] body.neogym-route-home .neogym-preloader__num,
  html[lang="ru"] body.neogym-route-home .neogym-preloader__num {
    font-size: calc(var(--text-tpl-preloader-mobile) / var(--ng-type-scale));
  }
}

html[lang="fa"] .ng-field-error,
html[lang="hy"] .ng-field-error,
html[lang="ru"] .ng-field-error {
  font-family: var(--ng-font-body);
}

html[lang="fa"] .ng-circle-btn,
html[lang="hy"] .ng-circle-btn,
html[lang="ru"] .ng-circle-btn {
  font-family: var(--ng-font-body) !important;
}

/*
 * Home route: apply locale body font across `.page-home`, except `.sec-main` (hero keeps Antonio).
 * ru: Playfair on heading-level elements; fa/hy: locale body stack.
 */
html[lang="fa"] .page-home,
html[lang="hy"] .page-home {
  font-family: var(--ng-font-body);
}

html[lang="fa"] .page-home *:not(.sec-main, .sec-main *),
html[lang="hy"] .page-home *:not(.sec-main, .sec-main *) {
  font-family: var(--ng-font-body);
}

html[lang="ru"] .page-home {
  font-family: var(--ng-font-body);
}

html[lang="ru"] .page-home *:not(.sec-main, .sec-main *) {
  font-family: var(--ng-font-body);
}

html[lang="ru"] .page-home .heading,
html[lang="ru"] .page-home h1,
html[lang="ru"] .page-home h2,
html[lang="ru"] .page-home h3 {
  font-family: var(--ng-font-display);
}

/*
 * Footer CTA English lockup: keep Antonio on this strip for fa/hy/ru; other bands use locale fonts above.
 */
html[lang="fa"] .page-home .sec-main .heading,
html[lang="hy"] .page-home .sec-main .heading,
html[lang="ru"] .page-home .sec-main .heading,
html[lang="fa"] .page-home .sec-main .heading *,
html[lang="hy"] .page-home .sec-main .heading *,
html[lang="ru"] .page-home .sec-main .heading * {
  font-family: Antonio, sans-serif;
  font-weight: 700;
  letter-spacing: -0.06em;
}

/* Persian RTL: flip membership card artwork so directional fills sit on the correct visual side */
html[lang="fa"] .page-home .sec-membership .price-img {
  transform: scaleX(-1);
}

html[lang="fa"] .neogym-site-footer .sec-footer .cta-footer-wraper > .class-name-txt,
html[lang="ru"] .neogym-site-footer .sec-footer .cta-footer-wraper > .class-name-txt {
  font-family: Antonio, sans-serif;
  font-weight: 600;
  letter-spacing: -0.03em;
  text-transform: uppercase;
}

html[lang="hy"] .neogym-site-footer .sec-footer .cta-footer-wraper > .class-name-txt {
  font-family: Antonio, sans-serif;
  font-weight: 600;
  letter-spacing: -0.03em;
}

html[lang="fa"] .neogym-site-footer .footer-raw-wrapper > .heading.footer,
html[lang="ru"] .neogym-site-footer .footer-raw-wrapper > .heading.footer {
  font-family: Antonio, sans-serif;
  font-weight: 700;
  letter-spacing: -0.06em;
  text-transform: uppercase;
}

html[lang="hy"] .neogym-site-footer .footer-raw-wrapper > .heading.footer {
  font-family: Antonio, sans-serif;
  font-weight: 700;
  letter-spacing: -0.06em;
}

/* Persian (.sec-classes): align RTL copy to the right */
html[lang="fa"] .page-home .sec-classes .heading.left {
  text-align: right;
}

html[lang="fa"] .page-home .head-txt-wrapper-classes {
  justify-content: flex-end;
}

html[lang="fa"] .page-home .txt-classes-wrapper {
  text-align: right;
  align-items: flex-start;
}

html[lang="fa"] .page-home .txt-class-wrapper {
  padding-right: 0;
  padding-left: 0.8em;
}

/*
 * Persian + RTL: `.classes-content-wrapper` children are laid out from the right edge.
 * Keep the preview rail fixed and let `.classes-right-column` consume remaining left-side width.
 */
html[lang="fa"] .page-home .classes-left-column {
  flex: 0 0 38.94em;
}

html[lang="fa"] .page-home .classes-right-column {
  width: auto;
  flex: 1 1 auto;
  min-width: 0;
}

@media (max-width: 479px) {
  html[lang="fa"] .page-home .sec-classes .heading.left {
    text-align: right;
  }
}
