/* Общие стили страниц School-master: шапка, подвал и правки вёрстки,
   которые повторяются от макета к макету.

   Лежат отдельным файлом, а не в вёрстке каждой страницы: шапка одна на
   все страницы, а правка ховера в семи местах заканчивается тем, что на
   одной из них он остаётся прежним. */

.smh-a { transition: color .2s ease; }
.smh-a:hover { color: #E4459E !important; }

.smh-drop {
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: all .2s cubic-bezier(.22, 1, .36, 1);
}
.smh-has-drop:hover .smh-drop { opacity: 1; visibility: visible; transform: none; }

.smh-cta { transition: all .2s cubic-bezier(.22, 1, .36, 1); }
.smh-cta:hover { transform: translateY(-2px); box-shadow: 0 18px 38px rgba(219, 31, 144, .4) !important; }
.smh-cta:active { transform: scale(.98); }

.smf-a { transition: color .2s ease; }
.smf-a:hover { color: #E4459E !important; }

/* Порог 1080px — из макета: логотип, пункты и кнопка перестают помещаться
   в полосу заметно раньше обычных 768px. */
@media (max-width: 1080px) {
    .smh-nav { display: none !important; }
    .smh-burger { display: inline-flex !important; }
}

/* Полосы содержимого во всех макетах School-master свёрстаны одинаково:
   max-width 1320px и поля по 75px. На телефоне эти поля съедают 150px из
   375 — на текст остаётся 225px, и карточки клиентов, заголовки и абзацы
   уезжают за край экрана.

   Цепляемся за ширину полосы, а не за поле: значение поля в разметке
   записано то как `0 75px`, то как `0px 75px` — браузер переписывает
   встроенный стиль по-своему, и точное совпадение ловит половину случаев.
   Ширина 1320px встречается только у этих полос. */
@media (max-width: 900px) {
    [style*="1320px"] {
        padding-left: 24px !important;
        padding-right: 24px !important;
    }

    .smf-grid { grid-template-columns: 1fr !important; }
    .smh-bar { gap: 14px !important; }
}

@media (max-width: 420px) {
    [style*="1320px"] {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}

/* Логотип в 44px высотой — это 202px в ширину: вместе с кнопкой и бургером
   он не помещается в 375px, и кнопка уезжала за край. Логотип ужимаем,
   кнопку убираем из полосы — она есть внутри раскрывающегося меню, вторая
   такая же рядом с бургером ничего не добавляет. */
@media (max-width: 700px) {
    .smh-bar img { height: 34px !important; }
}

@media (max-width: 560px) {
    .smh-cta { display: none !important; }
}

/* ---------- сетки макета на узком экране ----------

   В макетах School-master колонки заданы как `1fr`, а это `minmax(auto, 1fr)`:
   колонка не может стать уже своего содержимого. Внутри лежат жёсткие блоки —
   карточка «Выручка сегодня» на 420px, макеты телефонов, — и на экране 375px
   колонка упиралась в 489px. Прокрутки не появлялось (секция обрезает), зато
   правый край карточки просто срезало.

   Явный `minmax(0, 1fr)` разрешает колонке сжиматься, а содержимое внутри
   ужимается само — оно свёрстано на процентах.

   Класс повторён дважды намеренно: у страницы свой <style> с тем же
   правилом и тем же !important, и он стоит в <head> ниже нашего файла.
   При равном весе побеждает нижний, поэтому вес приходится поднять. */
@media (max-width: 1080px) {
    .sm-hero-split.sm-hero-split {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

@media (max-width: 900px) {
    .sm-grid-2.sm-grid-2,
    .sm-grid-3.sm-grid-3,
    .sm-grid-4.sm-grid-4,
    .sm-split.sm-split,
    .sm-ext.sm-ext,
    .sm-calc.sm-calc {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    /* Карточка расширения на телефоне: поля по 40px съедали треть ширины,
       а колонка с ценой, встав под описание, продолжала рисовать границу
       слева — линия висела вдоль текста без всякого смысла. */
    .sm-ext > div {
        padding: 28px !important;
    }

    .sm-ext > div + div {
        border-left: 0 !important;
        border-top: 1px solid var(--border) !important;
    }
}

@media (max-width: 420px) {
    .sm-ext > div {
        padding: 22px !important;
    }
}

/* Пара кнопок в первом экране свёрстана в одну строку (flex-wrap: nowrap).
   На телефоне вторая уезжает за край, а секция её обрезает — кнопка есть
   в разметке, но нажать её нельзя. Разрешаем перенос. */
@media (max-width: 760px) {
    div:has(> .sm-buy) {
        flex-wrap: wrap !important;
    }
}

/* ---------- шапка должна оставаться при прокрутке ----------

   Страницы из макета завёрнуты в <div style="overflow-x: hidden">, а внутри
   него лежит шапка с `position: sticky`. `overflow-x: hidden` заставляет
   браузер посчитать вторую ось `auto` — обёртка становится контейнером
   прокрутки, и шапка липнет к ней, а не к экрану. Прокручивается при этом
   страница, поэтому шапка просто уезжает вверх вместе с содержимым.

   `clip` обрезает ровно так же, но контейнера прокрутки не создаёт: вторая
   ось остаётся `visible`, и `sticky` снова считается от экрана. */
body > div[style*="overflow-x"] {
    overflow-x: clip !important;
}
