/* Russian typography — Manrope (self-hosted, variable 400..800, full Cyrillic).
   WHY: the brand faces have no Cyrillic glyphs at all (Bricolage Grotesque = latin/latin-ext/vietnamese only;
   Plus Jakarta Sans ships cyrillic-EXT which excludes А–я). So every Russian character fell back to a system
   font while Latin words (PADI, The Wave…) kept the webfont — the two never matched in weight or shape.
   Manrope covers BOTH scripts, so a line like «Курсы дайвинга PADI» renders in one single font.
   Loaded on /ru/ pages only — the English site is untouched. */

@font-face{font-family:'Manrope';font-style:normal;font-weight:400 800;font-display:swap;
  src:url(/fonts/manrope-cyrillic.woff2) format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400 800;font-display:swap;
  src:url(/fonts/manrope-cyrillic-ext.woff2) format('woff2');
  unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400 800;font-display:swap;
  src:url(/fonts/manrope-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400 800;font-display:swap;
  src:url(/fonts/manrope-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* One family for every script on Russian pages. !important + the [style*=] selectors are needed because the
   shared JS components (wave-bar / wave-footer / wave-cart / wave-auth) set their font-family inline. */
html[lang="ru"] body,
html[lang="ru"] h1, html[lang="ru"] h2, html[lang="ru"] h3,
html[lang="ru"] h4, html[lang="ru"] h5, html[lang="ru"] h6,
html[lang="ru"] p, html[lang="ru"] a, html[lang="ru"] li, html[lang="ru"] span, html[lang="ru"] div,
html[lang="ru"] button, html[lang="ru"] input, html[lang="ru"] select, html[lang="ru"] textarea, html[lang="ru"] label,
html[lang="ru"] .display,
html[lang="ru"] [style*="Bricolage"],
html[lang="ru"] [style*="Jakarta"]{
  font-family:'Manrope',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif !important;
}

/* Manrope runs a touch wider than Bricolage at display sizes — pull the big headings back in slightly
   so translated lines keep their original line breaks. */
html[lang="ru"] .display{letter-spacing:-.028em}

/* ---- Hero headline: Manrope, same as the rest of the Russian site ----
   The page's own <style> sets `#hero h1{font-family:'Poppins','Bricolage Grotesque'…!important}`. An ID
   selector outranks the generic `html[lang="ru"] h1` rule above, so the hero needs this explicit rule or it
   would fall back to Poppins — which has no Cyrillic at all (latin / latin-ext / devanagari only), leaving
   the Russian words to a system font that looked thinner than the Latin ones beside them.
   Weight is deliberately NOT overridden: the page asks for 800 and Manrope's variable axis tops out at 800,
   so that is its real ExtraBold. */
html[lang="ru"] #hero h1{
  font-family:'Manrope',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif !important;
}

/* Both #heroContent AND the h1 inside it are flex items, and a flex item's default min-width:auto refuses to
   shrink below its min-content width — which for this headline is the single longest word, «приключениям!».
   Measured at 800 weight: that word is 424px, so the whole column was forced to 424px inside a 358px screen
   column and the right-hand letters were clipped by #hero's overflow:hidden. min-width:0 on BOTH lets the
   column follow the screen; the size rule below then keeps the word itself inside it. */
html[lang="ru"] #hero #heroContent,
html[lang="ru"] #hero h1{min-width:0}

/* Let the highlighted phrase wrap instead of being clipped by the nowrap default. */
html[lang="ru"] #hero h1 .mark{white-space:normal}

/* PHONES ONLY — «приключениям!» is one unbreakable 13-letter word, so the headline size is capped by the
   screen width, not by taste. A fixed step-down would have to suit the NARROWEST phone (≈2.3rem at 320px)
   and would then look needlessly small on a 430px one, so scale it instead: 10.5vw keeps the word just
   inside the column at every phone width while staying as large as that width allows.
   Tablet (4.1rem) and desktop (4.4rem) keep the ORIGINAL sizes — the column is wide enough there. */
@media (max-width:639px){
  html[lang="ru"] #hero h1{font-size:clamp(2rem,10.5vw,3.4rem) !important}
}

/* Leave third-party review widgets on their own typography. */
html[lang="ru"] .ti-widget, html[lang="ru"] .ti-widget *{font-family:inherit !important}


/* ═══════════════════════════════════════════════════════════════════════════════════════════════
   RU READABILITY SCALE — every body/UI size one step larger than the English site.
   Russian words are longer and Cyrillic has less distinct word-shapes than Latin, so the sizes that
   read fine in English read cramped here. Display headings (text-2xl and up) are deliberately NOT
   bumped: the hero is already capped by the screen width, and card titles are large enough already.
   This file loads after the inline Tailwind block, so plain class rules win on source order.
   ═══════════════════════════════════════════════════════════════════════════════════════════════ */

/* --- Tailwind body scale, +1 step --- */
html[lang="ru"] .text-\[11px\]{font-size:.8125rem}   /* 11 → 13 */
html[lang="ru"] .text-xs      {font-size:.875rem}    /* 12 → 14 */
html[lang="ru"] .text-sm      {font-size:1rem}       /* 14 → 16 */
html[lang="ru"] .text-base    {font-size:1.0625rem}  /* 16 → 17 */
html[lang="ru"] .text-lg      {font-size:1.25rem}    /* 18 → 20 */
html[lang="ru"] .text-xl      {font-size:1.375rem}   /* 20 → 22 */
@media (min-width:640px){
  html[lang="ru"] .sm\:text-xl{font-size:1.375rem}   /* keep the responsive step-up intact */
}

/* Tailwind pairs a fixed line-height with each size, so a bigger font in the same box gets cramped.
   Only elements WITHOUT an explicit leading-* class are touched — otherwise this would silently
   override leading-relaxed / leading-tight where the design set them on purpose. */
html[lang="ru"] .text-\[11px\]:not([class*="leading-"]),
html[lang="ru"] .text-xs:not([class*="leading-"]){line-height:1.4}
html[lang="ru"] .text-sm:not([class*="leading-"]){line-height:1.45}
html[lang="ru"] .text-xl:not([class*="leading-"]){line-height:1.35}

/* The per-page #descStd block forces 18px with !important on card/body descriptions — re-assert the
   bumped size at higher specificity so descriptions follow the scale too. */
html[lang="ru"] p.font-medium[class*="text-ink/55"],
html[lang="ru"] p.font-medium[class*="text-ink/60"],
html[lang="ru"] p.font-medium[class*="text-ink/65"],
html[lang="ru"] p.font-medium[class*="text-ink/70"]{font-size:1.25rem !important}

/* --- Shared JS components (wave-bar / wave-footer / wave-cart) ---
   These inject their own <style> at runtime, i.e. AFTER this file in the cascade, so each rule needs
   !important to land. Sizes chosen to stay inside their boxes — the bottom bar has four items across
   the narrowest phone, so its label can grow to 13px but no further. */
html[lang="ru"] .appbar-item  {font-size:13px   !important}   /* 11 → 13  bottom nav labels */
html[lang="ru"] .ab-badge     {font-size:11px   !important}   /* 10 → 11  cart count bubble */
html[lang="ru"] .wsheet-label {font-size:.82rem !important}
html[lang="ru"] .wsr-c        {font-size:.85rem !important}
html[lang="ru"] .wsr-t        {font-size:1.05rem!important}
html[lang="ru"] .wsearch-empty{font-size:1rem   !important}
html[lang="ru"] .wlang-pill   {font-size:1rem   !important}
html[lang="ru"] .wcur-pill    {font-size:1.05rem!important}
html[lang="ru"] .wh-mi        {font-size:1rem   !important}   /* desktop dropdown header */
html[lang="ru"] .wh-dd-t      {font-size:1rem   !important}
html[lang="ru"] .wh-login     {font-size:.95rem !important}
html[lang="ru"] .wh-pill      {font-size:.95rem !important}
/* Footer. The column links («О нас», «Условия и правила») sat at 14px — .foot-link sets no size of its own,
   so it inherits from .wftr-col li, which is what actually has to move. Values are set flat rather than per
   breakpoint so the mobile step matches the desktop one instead of staying two sizes behind. */
html[lang="ru"] .wftr-col li  {font-size:1.05rem!important}
html[lang="ru"] .wftr-col h3  {font-size:.95rem !important}
html[lang="ru"] .wftr-brand p {font-size:1.05rem!important}
html[lang="ru"] .wftr-bottom p{font-size:.9rem  !important}
html[lang="ru"] .wfoot-slim a {font-size:1rem   !important}
html[lang="ru"] .cop          {font-size:.82rem !important}
html[lang="ru"] .fw-cap       {font-size:.9rem  !important}
html[lang="ru"] .fw-line1     {font-size:.92rem !important}

/* The homepage carries its OWN inline copy of the desktop header (hh- prefix) alongside the shared wh- one,
   so bumping only wh- left the home page's header small. Same steps as its twin above. */
html[lang="ru"] .hh-nav       {font-size:1.05rem!important}
html[lang="ru"] .hh-mi        {font-size:1rem   !important}
html[lang="ru"] .hh-dd-t      {font-size:1rem   !important}
html[lang="ru"] .hh-pill      {font-size:.95rem !important}
html[lang="ru"] .nm           {font-size:1.02rem!important}   /* cart + popups */
html[lang="ru"] .wcp-lbl      {font-size:.95rem !important}
html[lang="ru"] .wcp-sub      {font-size:.95rem !important}
html[lang="ru"] .wcp-hint     {font-size:.92rem !important}
html[lang="ru"] .wcp-err      {font-size:.95rem !important}
html[lang="ru"] .wcp-back     {font-size:1rem   !important}
html[lang="ru"] .wcp-done-s   {font-size:1.02rem!important}
html[lang="ru"] .wdp-day      {font-size:1.05rem!important}   /* date picker */
html[lang="ru"] .wdp-dow      {font-size:.8rem  !important}

/* Menu sheet (the ☰ panel) — SINGLE COLUMN on Russian.
   The English menu is a 2-column grid, which leaves each row only ~104px of text room once the icon and
   padding are subtracted. That is narrower than the Russian labels themselves: «Комбо-предложения» needs
   169px at the old 16px, so it was already breaking mid-word — no font size could fix that inside two
   columns. One column gives 287px of room, which fits every label with space left at 20px. */
html[lang="ru"] .mn-grid             {grid-template-columns:1fr !important}
html[lang="ru"] .mn-grid a           {font-size:1.25rem!important; line-height:1.25 !important; padding:.75rem .85rem !important}
html[lang="ru"] .wsheet-title        {font-size:1.45rem!important}
html[lang="ru"] .mn-cta              {font-size:1.15rem!important}
html[lang="ru"] .mn-searchrow        {font-size:1.1rem !important}
html[lang="ru"] .wsheet-links a      {font-size:1.1rem !important}
html[lang="ru"] .wsheet-acc .txt b   {font-size:1.1rem !important}
/* This subtitle is ellipsis-clipped at ~155px, so it only grows a little — more would just truncate
   sooner (the address line already does, in English too). */
html[lang="ru"] .wsheet-acc .txt small{font-size:.85rem!important}

/* Compact feature cards (.why-grid — "Инструкторы PADI", "Небольшие группы", …). Their title carries NO
   size class, so it sat at the inherited 16px while the description was bumped to 20px by the rule above:
   the heading rendered SMALLER than its own body text. Size the title explicitly, and hold the card copy at
   the body step rather than the 20px description size — these are 3-up cards, and 20px swamps them.
   The description selector has to out-specify the site-wide description rule above (which is
   html[lang=ru] p.font-medium[class*=text-ink/…]) or the card copy stays pinned at 20px and the step
   disappears again — hence the same attribute match repeated here with .why-grid in front. */
html[lang="ru"] .why-grid .font-extrabold{font-size:1.375rem !important; line-height:1.3}
html[lang="ru"] .why-grid p.font-medium[class*="text-ink/"]{font-size:1.125rem !important; line-height:1.55 !important}

/* The course/trip templates carry an inline style="white-space:nowrap" on 94 section headings across 32
   pages. That was safe for the shorter English originals, but the Russian translations are longer and
   spilled their column — measured «Отмеченное наградами мастерство» at 455px inside a 350px box, cut off
   by the section's clipping. A heading should wrap rather than run off the page; !important is required to
   beat the inline attribute. Pre-dates the size bump — the longer words alone caused it. */
html[lang="ru"] h1[style*="nowrap"], html[lang="ru"] h2[style*="nowrap"],
html[lang="ru"] h3[style*="nowrap"], html[lang="ru"] h4[style*="nowrap"]{white-space:normal !important}
