/*
 * Адаптация под телефоны и планшеты и разгрузка анимаций.
 *
 * Подключён последним, после style.css и sections.css: здесь только поправки
 * поверх них. Десктопная раскладка (от 1024px) не меняется — правила для неё
 * касаются лишь того, что крутилось вхолостую.
 *
 * Точки перелома те же, что в остальных стилях: 1000/900 — планшет и узкий
 * ноутбук, 720 — первый экран телефона, 560 и 400 — телефоны.
 */

/* ═══════════════════ Без горизонтальной прокрутки ═══════════════════
   clip, а не hidden: hidden ломает position: sticky у сцен на пине */
html,
body {
  overflow-x: clip;
}

/* ═══════════════════ Шапка ═══════════════════
   На телефоне в строке остаются знак, «Вход» и меню. Язык и тема уходят в
   меню из девяти точек — там для них отдельная строка (.rh-menutools) */

.rh-menutools {
  display: none;
}

@media (max-width: 639px) {
  header .rh-langpill,
  header .ml-auto > .rh-themebtn {
    display: none;
  }

  .rh-menutools {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 14px;
  }

  .rh-menulang {
    display: flex;
    height: 36px;
    padding: 3px;
    border-radius: 99px;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.16);
  }

  .rh-menulang button {
    padding: 0 15px;
    border-radius: 99px;
    color: #fff;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.08em;
    cursor: pointer;
  }

  .rh-menutheme {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 36px;
    padding: 0 16px 0 13px;
    border-radius: 99px;
    color: #fff;
    font-size: 13px;
    font-weight: 500;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.16);
    cursor: pointer;
  }

  .rh-menutheme svg {
    width: 14px;
    height: 14px;
  }
}

/* Совсем узкие телефоны: знак чуть мельче, чтобы «Вход» не прижимало к меню */
@media (max-width: 359px) {
  header a[href="./"] {
    font-size: 18px;
  }

  header .ml-auto {
    padding-right: 40px;
  }
}

/* ═══════════════════ Первый экран на вертикальном экране ═══════════════════
   Сбоку от кнопки на телефоне остаётся по сотне пикселей — от рук были видны
   одни кончики пальцев, а низ экрана пустовал. Здесь руки тянутся к кнопке
   снизу, из нижних углов: робот слева, человек справа. Точки касания и ход
   те же, меняется только угол — правую руку поворачиваем в другую сторону */

@media (max-aspect-ratio: 4/5) {
  .rh-hero {
    --hand-w: min(124vw, 820px);
    --travel: 34vw;
    --tilt-l: 44deg;
    --tilt-r: 44deg;
  }

  .rh-hand--left {
    transform: translate(calc(var(--tip-bite) - var(--btn-half)), calc(var(--tip-y) * -1))
      rotate(calc(var(--tilt-l) * -1))
      translate(calc((1 - var(--conv)) * var(--travel) * -1), 0) scaleX(-1);
  }

  .rh-hand--right {
    transform: translate(calc(-100% + var(--btn-half) - var(--tip-bite)), calc(var(--tip-y) * -1))
      rotate(var(--tilt-r))
      translate(calc((1 - var(--conv)) * var(--travel)), 0) scaleX(-1);
  }
}

/* Телефон: руки из нижних углов у кнопки выглядели обрывками — рядом с ней
   им не хватает ширины. Здесь та же диагональ, что на десктопе («Сотворение
   Адама»): робот снизу слева, человек справа, и тянутся они не к краям
   кнопки, а друг к другу — кончики пальцев сходятся в центре под кнопкой.
   --btn-half на самих руках — зазор между пальцами, а не полкнопки */
@media (max-width: 599px) and (max-aspect-ratio: 4/5) {
  .rh-hero {
    --hand-w: 92vw;
    /* В начале руки заметно разведены, к касанию сходятся — зазор в той же
       доле экрана, что на десктопе */
    --travel: 50vw;
  }

  .rh-hand {
    --btn-half: 2px;
    top: calc(var(--touch-y) + 44vw);
  }

  .rh-hand--left {
    transform: translate(calc(var(--tip-bite) - var(--btn-half)), calc(var(--tip-y) * -1)) rotate(-24deg)
      translate(calc((1 - var(--conv)) * var(--travel) * -1), 0) scaleX(-1);
  }

  .rh-hand--right {
    transform: translate(calc(-100% + var(--btn-half) - var(--tip-bite)), calc(var(--tip-y) * -1)) rotate(-24deg)
      translate(calc((1 - var(--conv)) * var(--travel)), 0) scaleX(-1);
  }
}

/* Там, где руки длиннее высоты первого экрана (телефоны, планшеты, низкие
   экраны), их низ срезала кромка приколотой сцены — когда сцена уезжала
   вверх, срез читался ровной линией поперёк руки. Низ сцены растворяется */
@media (max-width: 1023px), (max-height: 600px) {
  .rh-stage {
    -webkit-mask-image: linear-gradient(180deg, #000 0, #000 calc(100% - 90px), transparent 100%);
    mask-image: linear-gradient(180deg, #000 0, #000 calc(100% - 90px), transparent 100%);
  }
}

/* Подзаголовок первого экрана на телефоне — без жёсткого переноса: строка
   с <br> рвалась на «стратегиям,» и «счёте» по одному слову */
@media (max-width: 720px) {
  .rh-sub {
    max-width: 34ch;
  }

  .rh-sub br {
    display: none;
  }
}

/* Низкий горизонтальный экран (телефон лёжа, небольшое окно): заголовок,
   подзаголовок и кнопка обязаны уместиться по высоте. Кегль заголовка
   считается и от высоты экрана, под строки резервируется ровно столько,
   сколько их выходит, подзаголовок — в две строки. Раньше на 640×400 кнопка
   уходила под нижний край, а на 568×320 её не было видно вовсе */
@media (max-height: 520px) and (orientation: landscape) {
  .rh-content {
    padding-top: max(15vh, 66px);
  }

  .rh-heads {
    font-size: clamp(22px, min(5.4vw, 9vh), 44px);
  }

  .rh-sub {
    max-width: 64ch;
    margin-top: 12px;
    font-size: 14px;
    line-height: 1.45;
  }

  .rh-sub br {
    display: none;
  }
}

/* Узкий и низкий: длинная строка второго заголовка ломается надвое —
   всего три строки, а не четыре, как на телефоне стоя */
@media (max-height: 520px) and (orientation: landscape) and (max-width: 720px) {
  .rh-heads {
    min-height: 3.3em;
  }
}

/* Планшет стоя: подзаголовок крупнее. Заголовок не трогаем — длинная строка
   второго («…на вашем счёте BingX») обязана помещаться в одну строку */
@media (min-width: 600px) and (max-width: 1023px) and (max-aspect-ratio: 4/5) {
  .rh-sub {
    font-size: 17px;
  }
}

/* ═══════════════════ Показатели и стратегии ═══════════════════ */

/* Планшет стоя: карточки стратегий одной колонкой, но не во всю ширину —
   график растягивался на 700px и плашка выходила тяжёлой */
@media (min-width: 640px) and (max-width: 859px) {
  #how > .grid {
    max-width: 620px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* С 860px три стратегии стоят в ряд, как на десктопе */
@media (min-width: 860px) and (max-width: 1023px) {
  #how > .grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
  }
}

/* Карточки в ряду узкие: поля меньше, пилюля уходит под знак биржи */
@media (min-width: 860px) and (max-width: 1279px) {
  .rh-strat > .relative > .flex.h-full {
    padding: 24px 22px 26px;
  }

  .rh-strat .items-start.justify-between {
    flex-wrap: wrap;
    gap: 10px;
  }

  .rh-strat h3 {
    margin-top: 22px;
    font-size: 24px;
  }

  .rh-strat .rh-plot {
    margin-top: 24px;
  }
}

@media (max-width: 720px) {
  /* Отступ до «Одна биржа» — по высоте телефона, а не четверть экрана */
  #how > h2 {
    margin-top: 15vh;
  }

  #how > h2 + p {
    font-size: 16px;
  }
}

@media (max-width: 560px) {
  .rh-strat > .relative > .flex.h-full {
    padding: 24px 22px;
  }

  /* Пилюля «Экспоненциальная торговля на золоте» не влезала рядом со знаком
     биржи — уходит под него */
  .rh-strat .items-start.justify-between {
    flex-wrap: wrap;
    gap: 10px;
  }

  .rh-strat h3 {
    margin-top: 22px;
  }
}

/* ═══════════════════ Правила ═══════════════════
   До 900px плашки стоят без сцены, одна под другой. Ширина сцены
   считалась от десктопной формулы и на телефоне сжимала плашки до 260px */

@media (max-width: 900px) {
  .rh-rules-pin {
    padding: 12vh 20px 6vh;
  }

  .rr-stage {
    max-width: 720px;
  }

  .rr-panel {
    min-height: 0;
    padding: 26px 24px 28px;
  }
}

/* Планшет: две плашки рядом */
@media (min-width: 640px) and (max-width: 900px) {
  .rr-stage {
    flex-direction: row;
  }
}

/* ═══════════════════ Тарифы ═══════════════════
   Робот стоит у самого низа блока, вплотную к тёмной плите шагов: на ней
   его продолжает чертёж (тот же масштаб и та же ось — --bot-w меряет
   sections.js). Так на всех ширинах. До 1200px цифры и калькулятор встают
   над роботом: в десктопной сцене они стоят по бокам от него, и на узком
   экране калькулятор ложился прямо на лицо */

@media (max-width: 1199px) {
  .rx-price {
    padding-top: 14vh;
  }

  .rx-stage {
    --bot-h: min(64vh, 112vw, 860px);
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 44px;
    min-height: 0;
    padding-top: 6vh;
    /* место под робота: голова — сразу под калькулятором */
    padding-bottom: calc(var(--bot-h) + 4vh);
  }

  .rx-bot {
    top: auto;
    bottom: 0;
    height: var(--bot-h);
    -webkit-mask-image: none;
    mask-image: none;
  }

  .rx-price .rx-shares {
    max-width: none;
  }

  .rx-calc.rx-calc--bare {
    justify-self: stretch;
    width: 100%;
  }
}

/* Где фото робота шире экрана (телефоны, планшеты стоя), оно садится на
   плиту по всей ширине — скруглённые верхние углы плиты выедали в нём белые
   уголки. Ширина фото = 4/3 его высоты (64vh), шире экрана оно при
   соотношении сторон до ~0.85 */
@media (max-width: 1199px) and (max-aspect-ratio: 85/100) {
  body #start,
  body #start::before {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
  }
}

/* Планшет: над роботом две колонки, как на десктопе */
@media (min-width: 700px) and (max-width: 1199px) {
  .rx-stage {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 56px;
    padding-left: max(40px, 6vw);
    padding-right: max(40px, 6vw);
  }

  .rx-calc.rx-calc--bare {
    justify-self: end;
    max-width: 460px;
  }
}

@media (max-width: 900px) {
  .rx-calc--bare .rx-tier {
    white-space: normal;
    padding: 9px 8px;
    font-size: 10.5px;
    line-height: 1.25;
  }

  .rx-calc--bare .rx-tier b {
    font-size: 17px;
  }
}

@media (max-width: 560px) {
  .rx-col-title {
    font-size: 23px;
  }

  .rx-calc-list .rx-calc-total dd {
    font-size: 30px;
  }
}

/* ═══════════════════ Шаги: «Пятнадцать минут — и робот в работе» ═══════════════════
   Поздние правила sections.css перебивали узкую раскладку и держали две
   колонки до самого телефона. Тёмная плашка «15 мин» делила ряды сетки с
   соседями (subgrid) — в одну колонку её части ложились друг на друга */

@media (max-width: 1000px) {
  #start {
    padding-top: 14vh;
    padding-bottom: 6vh;
  }

  .rx-ob2-grid {
    grid-template-columns: 1fr;
    gap: 44px;
    margin-top: 44px;
  }

  .rx-ob2-side {
    gap: 30px;
  }

  .rx-ob2-card--go {
    display: flex;
    flex-direction: column;
    min-height: 0;
  }

  .rx-ob2-card--go .rx-ob2-go-bot {
    padding-top: 30px;
  }

  .rx-ob2-card--go .rx-ob2-go-bot h3 {
    white-space: normal;
  }
}

@media (max-width: 560px) {
  #start::before {
    border-radius: 26px;
  }

  /* Под плашками плита кончается почти сразу: высокий нижний отступ
     оставлял пустую тёмную полосу */
  #start {
    border-radius: 26px;
    padding-bottom: 28px;
  }

  .rx-ob2-title {
    font-size: clamp(30px, 10vw, 46px);
  }

  .rx-ob2-title span + span {
    padding-left: 7%;
  }

  .rx-ob2-cap {
    font-size: 16px;
  }

  .rx-ob2-list li {
    font-size: 16px;
    line-height: 1.3;
  }

  .rx-ob2-list li + li {
    margin-top: 6px;
  }

  /* Три плашки компактнее: ключ и депозит — рядом, тёмная «15 мин» под ними
     во всю ширину, лента сделок в ней — на три строки */
  .rx-ob2-cards {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 10px;
  }

  .rx-ob2-card--key {
    grid-column: 1;
    grid-row: 1;
  }

  .rx-ob2-card--dep {
    grid-column: 2;
    grid-row: 1;
  }

  .rx-ob2-card--go {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .rx-ob2-card {
    padding: 16px 14px 16px;
    border-radius: 18px;
  }

  .rx-ob2-card h3 {
    font-size: 14px;
    line-height: 1.25;
  }

  .rx-ob2-bingx b {
    font-size: 13px;
  }

  .rx-ob2-bingx svg {
    height: 13px;
  }

  .rx-ob2-card--key .rx-ob2-big {
    margin-top: 12px;
    font-size: 24px;
  }

  .rx-ob2-sub {
    font-size: 12px !important;
  }

  .rx-ob2-tog {
    margin-top: 12px;
  }

  .rx-ob2-tog li {
    gap: 6px;
    padding: 7px 0;
    font-size: 12px;
    line-height: 1.2;
  }

  .rx-ob2-tog i {
    flex-shrink: 0;
    width: 30px;
    height: 18px;
  }

  .rx-ob2-tog i::after {
    width: 14px;
    height: 14px;
    left: 14px;
  }

  .rx-ob2-tog .is-off i::after {
    left: 2px;
  }

  .rx-ob2-big {
    font-size: 30px;
  }

  .rx-ob2-card--dep .rx-ob2-big,
  .rx-ob2-card--go .rx-ob2-go-bot .rx-ob2-big {
    margin-bottom: 12px;
  }

  .rx-ob2-text {
    font-size: 12px;
  }

  .rx-ob2-card--dep .rx-ob2-text {
    margin-bottom: 14px;
  }

  .rx-ob2-arrow {
    width: 26px;
    height: 34px;
  }

  .rx-ob2-feed {
    height: 114px;
    gap: 6px;
    margin-top: 14px;
  }

  .rx-ob2-feed li {
    height: 34px;
    max-height: 34px;
    padding: 0 12px;
    font-size: 12px;
  }

  .rx-ob2-feed li b {
    font-size: 14px;
  }

  .rx-ob2-card--go .rx-ob2-go-bot {
    padding-top: 18px;
  }
}

/* Совсем узкий телефон: плашкам рядом тесно — снова одна под другой */
@media (max-width: 359px) {
  .rx-ob2-cards {
    grid-template-columns: minmax(0, 1fr);
  }

  .rx-ob2-card--key,
  .rx-ob2-card--dep,
  .rx-ob2-card--go {
    grid-column: 1;
    grid-row: auto;
  }
}

/* ═══════════════════ Партнёрам ═══════════════════ */

@media (max-width: 900px) {
  .rx-partners-top {
    gap: 36px;
    margin-bottom: 52px;
  }

  /* Витрина наград уходит под список: рядом ей не хватало ширины */
  .rx-partners-grid {
    grid-template-columns: 1fr;
    gap: 44px;
  }
}

@media (max-width: 600px) {
  .rx-prows span {
    white-space: normal;
  }

  .rx-prows b {
    font-size: clamp(40px, 12vw, 56px);
  }

  /* Подсказка «i» раскрывается на всю ширину строки, а не от значка вправо
     за край экрана */
  .rx-info {
    position: static;
  }

  .rx-prows .rx-tip {
    left: 0;
    right: 0;
    width: auto;
    top: calc(100% + 6px);
  }

  .rx-awards {
    padding: 22px 18px;
    border-radius: 20px;
  }

  .rx-aw-list li {
    gap: 10px;
    padding: 10px 12px;
    font-size: 13px;
  }

  .rx-partners .rx-plist li {
    gap: 18px;
    padding: 18px 0;
  }
}

/* Узкий телефон: приз статуса — под названием, а не в той же строке */
@media (max-width: 420px) {
  .rx-aw-list li {
    grid-template-columns: 30px 1fr;
    row-gap: 2px;
  }

  .rx-aw-list li .rx-st-ic.rx-st-3d {
    grid-row: span 2;
    width: 30px;
    height: 30px;
  }

  .rx-aw-list em {
    grid-column: 2;
    white-space: normal;
    font-size: 12px;
  }
}

/* ═══════════════════ Призыв ═══════════════════ */

@media (max-width: 560px) {
  .rx-cta-sec {
    padding-top: 16vh;
  }

  .rx-cta-in {
    padding: 64px 20px 56px;
  }


  .rx-cta-sub {
    font-size: 16px;
  }

  /* Кнопки — во всю ширину, одна под другой: так их проще нажать */
  .rx-cta-btns {
    flex-direction: column;
    align-self: stretch;
    margin-top: 32px;
  }

  .rx-cta-btns .rx-btn {
    height: 54px;
  }
}

/* Дуга ролика на узкой плашке проходит прямо под текстом — тише */
@media (max-width: 900px) {
  .rx-cta-field {
    opacity: 0.55;
  }
}

/* ═══════════════════ Вопросы и подвал ═══════════════════ */

@media (max-width: 900px) {
  .rx-sec {
    padding-top: 14vh;
  }

  .rx-faq-grid {
    gap: 32px;
  }

  .rx-foot {
    margin-top: 16vh;
  }
}

@media (max-width: 560px) {
  .rx-q-btn {
    gap: 16px;
    padding: 22px 2px;
  }

  .rx-q-a p {
    padding-left: 2px;
  }

  /* Колонки ссылок подвала — по две, длинные подписи переносятся, а не
     вылезают за край */
  .rx-foot-cols {
    gap: 28px 18px;
  }

  .rx-foot-cols a {
    width: auto;
  }

  .rx-foot-legal {
    gap: 8px 16px;
  }
}

/* ═══════════════════ Анимации, которые крутились вхолостую ═══════════════════ */

/* Радужная кайма кнопки первого экрана: видна только после касания рук,
   а фон её переливался всегда. Классы ставит hero.js */
.rh-hero:not(.is-lit) .rh-rbring,
.rh-hero:not(.is-lit) .rh-rbglow,
.rh-hero.is-away .rh-rbring,
.rh-hero.is-away .rh-rbglow {
  animation-play-state: paused;
}

/* Кайма белых кнопок проявляется только под курсором */
.rx-btn-ring,
.rx-btn-glow {
  animation-play-state: paused;
}

.rx-btn:hover .rx-btn-ring,
.rx-btn:hover .rx-btn-glow,
.rx-btn:focus-visible .rx-btn-ring,
.rx-btn:focus-visible .rx-btn-glow {
  animation-play-state: running;
}

/* Стеклянное искажение под карточками показателей и стратегий — SVG-фильтр
   с шумом, самое дорогое на странице для видеокарты. На телефонах и
   планшетах карточки остаются матовым стеклом, без преломления */
@media (hover: none), (max-width: 900px) {
  :root {
    --glass-warp: none;
  }
}

/* Мягкая тень у девяти значков витрины наград — отдельный проход
   видеокарты на каждый значок; на телефоне при первом появлении витрины
   это давало заметную заминку. Своя тень у значков нарисована в самом SVG */
@media (hover: none) {
  .rx-aw-list li .rx-st-ic.rx-st-3d,
  .rx-aw-list li .rx-st-ic.rx-st-top {
    filter: none;
  }
}

/* Плашки «Правил» едут по прокрутке: отдельный слой, чтобы ход не
   перерисовывал их содержимое каждый кадр */
@media (min-width: 901px) {
  .rr-stage,
  .rr-card {
    will-change: transform, scale, translate, rotate;
  }
}
