/*
Theme Name: Палата Денег
Theme URI: https://палата-денег.рф/
Description: Тема сайта КПК «Денежная Палата». Без конструкторов страниц: обычные PHP-шаблоны + ACF. Структура и оформление повторяют прежний сайт на самописной CMS.
Version: 1.0.0
Requires at least: 7.0
Tested up to: 7.0
Requires PHP: 8.5
Text Domain: palata-deneg
License: proprietary
*/

/*
 * Внимание: до 2026-08-17 в этом файле вообще не было заголовка темы —
 * WordPress подставлял имя каталога («palata-deneg») вместо названия и не
 * показывал ни версию, ни требования к PHP/WP. Заголовок добавлен вместе с
 * переездом на PHP 8.5 (deploy/migration-h68-php85.md §1.3).
 *
 * Основные стили лежат в assets/css/main.css (подключается через inc/enqueue.php
 * с версией по filemtime); ниже — только мобильные правила.
 */

#nav-toggle { display: none; }

@media (max-width: 900px) {

  /* ---- базовый кегль: 17px тело / 14px мелкое ---- */
  body, div, p, .td { font-size: 17px; line-height: 1.45; }
  .bmenu a { font-size: 17px; }
  .vac, .vac_name, .vac_phone { font-size: 17px; }

  #top .wrapper.menu_mob { padding: 0; }

  .menu_mob .w45 { display: block; width: auto; }

  body { padding-top: 64px; }

  /* ---- порядок секций на мобильном ----
     Блок «О компании» поднимается сразу под шапку, выше блока с калькулятором
     (.wrapper) и всего остального. На десктопе порядок не меняется — правило
     живёт только внутри этого медиа-запроса.

     Реализовано через flex-order, а не переносом разметки: секции — прямые
     дети <body> (шапка, секции контента, подвал идут подряд, без общей
     обёртки), поэтому body делается flex-контейнером и блоку задаётся
     отрицательный order. Всё остальное остаётся с order:0 и сохраняет
     исходный порядок — flex не перемешивает элементы с одинаковым order.

     #fade и #top уходят ещё «выше», иначе .home-about встал бы над шапкой.
     Секция-подменю (.smenu) в этот расчёт не входит: она рендерится только на
     внутренних страницах, а «О компании» — только на главной, вместе они не
     встречаются.

     position:fixed элементы (#call-bar, cookie-баннер) из потока выключены,
     flex на них не влияет. */
  body {
    display: flex;
    flex-direction: column;
  }
  #fade { order: -3; }
  #top { order: -2; }
  .home-about { order: -1; }

  .menu_mob .w45:nth-of-type(1) {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    box-sizing: border-box;
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 325;
    background: #eeeef1;
  }
  .menu_mob .w45:nth-of-type(1) > a > img { width: 48px !important; height: 48px !important; }

  .menu_mob #phone {
    width: auto;
    float: none;
    padding-top: 0;
    font-size: 30px;
    line-height: 28px;
    min-width: 0;
    overflow: hidden;
  }
  .menu_mob #city { width: auto; margin-bottom: 2px; }
  .menu_mob #city img { width: 16px; height: 16px; }
  .menu_mob #city select { font-size: 14px; }
  .menu_mob #phone .phone-number { display: none; }
  .mob-title {
    display: block;
    margin-right: auto;
    font-weight: bold;
    font-size: 26px;
    /* line-height поднят вместе с кеглем: при 15px он был 17px (×1.13), и
       если оставить 17px на 26px-тексте, строки налезут друг на друга, как
       только заголовок перенесётся на две строки в узкой шапке. */
    line-height: 29px;
    color: #405e5c;
    /* Название стало ссылкой на главную (header.php) — убираем подчёркивание,
       которое браузер рисует по умолчанию. Цвет уже задан выше, поэтому
       глобальное `a { color: #690 }` название не перекрашивает. */
    text-decoration: none;
  }

  #callback, #getmoney {
    box-sizing: border-box;
    width: auto;
    height: auto;
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 0;
    font-size: 17px;
  }

  .mr .top {
    display: block;
    margin: 16px 0 0;
    padding: 16px 0 0;
    border-top: 2px solid #eeeef1;
  }
  .mr .top #callback,
  .mr .top #getmoney { width: 100%; margin-bottom: 8px; }
  .mr .top #getmoney { margin-bottom: 0; }

  /* меню-панель (см. разметку ниже) */
  .menu_mob .mr { display: none; border-top: none; margin-top: 0; }
  .menu_mob.nav-open .mr {
    display: block;
    position: fixed;
    top: 0; right: 0; height: 100vh;
    z-index: 326;
    width: 285px;
    max-width: 85vw;
    background: #fff;
    box-shadow: 0 0 20px rgba(0, 0, 0, .3);
    padding: 60px 16px 16px;
    overflow-y: auto;
  }
  .menu_mob.nav-open .mr a {
    display: block;
    margin: 0;
    padding: 13px 0;
    font-size: 18px;
    border-bottom: 2px solid #eeeef1;
  }
  .menu_mob.nav-open .mr a.act { border-bottom-color: #fecc00; }

  #nav-toggle {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 48px; height: 48px;
    border: 2px solid #85bc3c;
    background: #fff;
    cursor: pointer;
    padding: 0;
    box-sizing: border-box;
    appearance: none;
    -webkit-appearance: none;
    position: fixed;
    top: 8px; right: 12px;
    z-index: 330;
  }
  #nav-toggle span {
    display: block;
    flex: none;
    width: 22px; height: 2px;
    background: #85bc3c;
    transition: transform .2s ease, opacity .2s ease;
  }
  /* burger morphs into X when panel open */
  .nav-open #nav-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .nav-open #nav-toggle span:nth-child(2) { opacity: 0; }
  .nav-open #nav-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  #nav-scrim { display: none; }
  .nav-open #nav-scrim {
    display: block;
    position: fixed; inset: 0;
    z-index: 310;
    background: rgba(0, 0, 0, .45);
  }

  #call-bar {
    display: flex;
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 200;
    height: 56px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: #85bc3c;
    color: #fff;
    font-family: 'HelveticaLight';
    font-size: 30px;
    text-decoration: none;
    box-shadow: 0 -2px 12px rgba(0, 0, 0, .25);
  }
  body { padding-bottom: 56px; }
  .cookie-banner { bottom: 56px; }
  .footer-legal { padding-bottom: 56px !important; }

  section.s1, section.s0 { display: none; }
  .slogan {
    width: auto;
    padding: 26px 16px 30px;
    background: #dfe7c8;
  }
  .slogan b { font-size: 32px; line-height: 33px; }
  .slogan i { font-size: 17px; line-height: 24px; font-weight: normal; }

  #calc { width: 65%; margin: 0 auto; padding: 0; text-align: left; }
  #calc1, #calc2 {
    display: block;
    box-sizing: border-box;
    width: 100%;
    padding: 20px 16px;
  }
  #calc1 b { font-size: 24px; }
  .calc21, .calc21.w150 {
    display: block;
    width: auto;
    font-size: 17px;
    line-height: 22px;
  }
  .calc23 { display: none; }
  #calc [data-calc-sum],
  .w150 [data-calc-sum] {
    box-sizing: border-box;
    width: 100%;
    margin-top: 8px;
    padding: 12px;
    font-family: 'HelveticaLight';
    font-size: 26px;
  }
  #calc [data-calc-term],
  .w150 [data-calc-term] {
    box-sizing: border-box;
    width: 100%;
    min-height: 48px;
    margin-top: 8px;
    padding: 0 12px;
    font-size: 17px;
    background: #eee;
  }

  #calc2 .calc21 {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(0, 0, 0, .12);
  }
  #calc2 .calc21 br { display: none; }
  [data-calc-total], [data-calc-income], [data-calc-rate] {
    font-family: 'HelveticaLight';
    font-size: 28px;
    color: #34622b;
  }
  #calc2 .gr2 { min-height: 48px; line-height: 48px; font-size: 17px; }

  .wrapper2 { padding: 24px 16px; }
  b.h1, b.h2 { font-size: 26px; line-height: 28px; padding: 0; }
  b.h100 { font-size: 26px; line-height: 28px; padding-bottom: 16px; }
  b.h100i { font-size: 24px; line-height: 26px; }
  b.h3 { font-size: 20px; }
  a.all { margin-left: 0; font-size: 14px; float: right; }

  .blocks, .blocks2 { width: auto; }
  .blocks {
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .block190 { width: auto; font-size: 17px; line-height: 22px; }
  .block190 img { margin: 0 auto 10px; max-height: 64px; }

  .blocks .block190w,
  .block190w {
    display: grid;
    grid-template-columns: 48px 1fr;
    column-gap: 14px;
    row-gap: 4px;
    width: auto;
    height: auto;
    text-align: left;
    align-items: start;
    margin-bottom: 20px;
    font-size: 17px;
    line-height: 23px;
  }
  .block190w img { grid-column: 1; grid-row: 1 / 3; flex: none; margin: 0; width: 48px; }
  .block190w b { grid-column: 2; height: auto; margin-bottom: 4px; font-size: 20px; color: #b0cb1f; }

  .blocks2 {
    display: block;
    overflow-x: visible;
  }
  .b190 {
    box-sizing: border-box;
    width: 100%;
    height: auto;
    margin: 0 0 12px;
    padding: 16px;
    font-size: 14px;
  }
  .b190 b { font-size: 20px; height: auto; min-height: 48px; }

  a.gr1 {
    display: inline-block;
    min-height: 46px;
    line-height: 46px;
    padding: 0 24px;
    font-size: 17px;
  }

  .td.tdabout {
    display: block;
    width: auto;
    padding: 20px;
    font-size: 17px;
    line-height: 24px;
  }

  .rew-carousel { display: block; }
  .rew-carousel__arr { display: none; }
  .rew-carousel__viewport {
    width: auto;
    overflow-x: visible;
    padding: 22px 0 10px;
  }
  .rew-carousel__track { display: block !important; transform: none !important; }
  .rew {
    width: 100%;
    height: auto;
    min-height: 0;
    margin: 0 0 16px;
    padding: 0 18px 18px;
    box-sizing: border-box;
  }
  .rew img { position: static; width: 72px; height: 72px; margin-top: -14px; }
  .rew b {
    position: static;
    display: block;
    width: auto;
    margin: 10px 0 8px;
    text-align: left;
    font-size: 20px;
  }
  .rew i { padding: 0; font-size: 17px; line-height: 24px; }

  .qa_on .q, .qa_off .q {
    font-size: 17px;
    line-height: 23px;
    padding: 14px 44px 14px 12px;
    background-position: top 14px right 12px;
  }
  .qa_on .a, .qa_off .a { font-size: 17px; line-height: 24px; padding: 14px 12px; }

  .bmenu {
    display: block;
    width: 100%;
    padding: 0;
    text-align: left;
  }
  .bmenu a { padding: 8px 0; font-size: 17px; }
  .bmenu a:first-child { padding-top: 20px; }
  .logo2 { display: block; height: auto; text-align: center; }
  .logo2 img { position: static; width: 96px; margin: 24px auto 18px; }
  .phone2 { font-size: 32px; }
  .addr2 { font-size: 18px; }

  .wrapper2.table { padding-left: 16px !important; padding-right: 16px !important; }
  .wrapper2.table, .wrapper2.table .tr, .wrapper2.table .td { display: block; }
  .wrapper2.table .td[style*="width:200px"] { display: none; }
  .wrapper2.table .td { padding: 8px 0; }
  .wrapper2.table .td[style*="#fff"] { font-size: 14px; line-height: 21px; }

  .form {
    top: 0; left: 0;
    transform: none;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    padding: 16px;
    border-radius: 0;
    overflow-y: auto;
    z-index: 400;
  }
  .form table, .form tbody, .form tr, .form td { display: block; width: 100%; }
  .form td { padding: 4px 0; }
  .form input[type="text"],
  .form textarea,
  .form select {
    box-sizing: border-box;
    width: 100% !important;
    min-height: 48px;
    font-size: 17px;
  }
  .form input[type="submit"],
  .form input[type="button"] {
    box-sizing: border-box;
    width: 100% !important;
    min-height: 48px;
    margin-bottom: 8px;
    font-size: 17px;
  }
  .form input[type="checkbox"] { width: 24px !important; height: 24px; }

  .wrapper2.smenu {
    display: block;
    overflow-x: visible;
    padding: 12px 16px 12px;
  }
  .smenu a {
    display: block;
    box-sizing: border-box;
    min-height: 44px;
    margin-bottom: 8px;
    padding: 10px 14px;
    background: #eeeef1;
    font-size: 15px;
    white-space: normal;
  }
  .smenu a.act { color: #405e5c; border-bottom: 2px solid #fecc00; }

  div[style*="ПОЛНАЯ"], .psk-box { max-width: none !important; margin: 16px !important; }

  .l1 {
    width: auto;
    height: auto;
    min-height: 0;
  }
  .l1 b, .l1 i { margin-left: 100px !important; font-size: 17px; line-height: 23px; }
  .l1 b { font-size: 20px; margin-bottom: 4px; }
  .l1 i { margin-top: 4px !important; }

  /* Селектор именно .td.p50, а не .p50: разметка — <div class="td p50">, и
     ниже в этом же медиа-запросе идёт правило `.td { padding: 10px 0; }`.
     У `.td` и `.p50` одинаковая специфичность (по одному классу), поэтому
     побеждало последнее — а `padding` там сокращённая запись, которая
     обнуляла padding-left. Текст уезжал под иконку (иконка — фоновая
     картинка блока, background-position: left top), и на телефоне заголовки
     «Сумма сбережений», «Процентная ставка» и т.д. читались поверх иконки.
     .td.p50 = два класса, специфичность выше, порядок правил больше не важен. */
  .td.p50 {
    height: auto;
    padding-left: 60px;
    padding-bottom: 18px;
    background-size: 44px auto !important;
    background-position: left top !important;
  }
  .p50 b { font-size: 20px; margin-bottom: 2px; }
  .p50 i { font-size: 17px; line-height: 23px; }

  .wrapper[style*="sber-hero-bg"] {
    background: none !important;
    padding: 0 !important;
    margin-bottom: 0 !important;
  }
  .slogan.desktop { display: block; padding-left: 16px !important; }

  .table.shadow { margin-bottom: 14px; }
  .card-mini--doc { min-width: 0; min-height: 56px; }

  .table, .tr, .td { display: block; }
  .td { padding: 10px 0; }
  .right, #data { width: 100%; float: none; display: block; margin: 0; }
  img, iframe, table { max-width: 100%; }
  a.news { width: auto; height: auto; margin: 10px 0; }
  .card-mini { width: 100%; }
  .staff-card { flex-direction: column; }
  .l1, .p50 { width: auto; height: auto; }
}

@media (max-width: 480px) {
  .blocks { grid-template-columns: 1fr; gap: 16px; }
  b.h1, b.h2, b.h100 { font-size: 24px; line-height: 26px; }
  .slogan b { font-size: 28px; line-height: 29px; }
  .bmenu, .bmenu a { text-align: left; }
}