/* Страницы хабов большого сайта OBF в стиле варианта A (САЙТ-12, #127).
   Токены и калькулятор — общие с макетами: ../design/shared.css, ../design/calc.js. */
body{background:var(--cream)}
.top{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px var(--gut);border-bottom:1px solid var(--line)}
.logo{font-weight:800;font-size:22px;letter-spacing:-.02em;text-decoration:none}.logo b{color:var(--coral)}
.nav{display:flex;gap:24px;font-size:15px;color:var(--ink-2)}.nav a{text-decoration:none;padding:4px 0;border-bottom:2px solid transparent}
.nav a:hover{color:var(--navy)}.nav a.on{color:var(--navy);font-weight:600;border-bottom-color:var(--coral)}
.right{display:flex;align-items:center;gap:14px;font-size:14px;color:var(--ink-3);white-space:nowrap}
.btn-main{background:var(--coral);color:#fff}.btn-main:hover{background:var(--coral-ink)}
.btn-line{background:transparent;color:var(--navy);border:1.5px solid var(--navy)}.btn-line:hover{background:var(--navy);color:#fff}
.btn-s{padding:9px 16px}
.crumb{font-size:14px;color:var(--ink-3);padding:20px var(--gut) 0}.crumb a{text-decoration:none}.crumb a:hover{color:var(--navy)}

.hero{display:grid;grid-template-columns:1.35fr 1fr;gap:56px;padding:28px var(--gut) 56px;border-bottom:1px solid var(--line)}
.hero h1{font-size:clamp(36px,4.8vw,64px);line-height:1.04;letter-spacing:-.033em;font-weight:800}
.hero h1 em{font-style:normal;color:var(--coral)}
.hero .lead{font-size:19px;color:var(--ink-2);margin:22px 0 30px}
.actions{display:flex;gap:12px;flex-wrap:wrap}
.figure{border-left:1px solid var(--line);padding-left:40px;display:flex;flex-direction:column;justify-content:center;gap:26px}
.figure .big{font-size:clamp(40px,5vw,72px);font-weight:800;letter-spacing:-.04em;line-height:1}
.figure .big.alt{color:var(--navy-2)}
.figure .cap{color:var(--ink-2);margin-top:6px}

.sec{padding:56px var(--gut) 0}
.sec h2{font-size:clamp(26px,3vw,40px);letter-spacing:-.025em;line-height:1.1;margin-bottom:10px}
.sec .sub{color:var(--ink-2);font-size:17px;margin-bottom:24px}
.group{margin-top:36px}
.group h3{font-size:14px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--coral-ink);margin-bottom:4px}
.group .gsub{color:var(--ink-3);font-size:15px;margin-bottom:8px}
.links{display:grid;grid-template-columns:repeat(3,1fr);column-gap:32px}
.links a{display:block;padding:16px 0 18px;border-top:1px solid var(--line);text-decoration:none}
.links a:hover .t{color:var(--coral-ink)}
.links .t{font-weight:700;font-size:17px;display:flex;justify-content:space-between;gap:12px}
.links .t::after{content:"→";color:var(--coral);font-weight:600}
.links .d{display:block;color:var(--ink-2);font-size:15px;margin-top:4px}
.more{display:inline-block;margin-top:10px;font-size:15px;font-weight:600;color:var(--navy-2)}

.tool{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.tool .why p{color:var(--ink-2);margin-top:12px}
.facts{display:grid;margin-top:20px}
.facts div{display:flex;justify-content:space-between;padding:13px 0;border-top:1px solid var(--line);gap:12px}
.facts span:last-child{font-weight:700;text-align:right}
.calc{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-m);padding:28px}
.calc h2{font-size:22px;margin-bottom:18px}
.calc .total span:last-child{color:var(--coral-ink)}
.calc .res{margin-top:20px;padding-top:16px;border-top:1px solid var(--line);color:var(--ink-2);font-size:15px}
.calc .res b{color:var(--navy)}

.stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:8px}
.stats>div{padding:24px 24px 26px 0}.stats>div+div{padding-left:24px;border-left:1px solid var(--line)}
.stats .v{font-size:34px;font-weight:800;letter-spacing:-.03em}.stats .c{color:var(--ink-2);font-size:15px}
.src{font-size:13px;color:var(--ink-3);margin-top:10px}

.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:18px 0;font-weight:700;font-size:18px;display:flex;justify-content:space-between;gap:16px}
.faq summary::after{content:"+";color:var(--coral);font-size:24px;line-height:1}
.faq details[open] summary::after{content:"−"}
.faq summary::-webkit-details-marker{display:none}
.faq details p{color:var(--ink-2);padding:0 0 20px}

.hubs{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.hubs a{padding:22px 20px 24px 0;text-decoration:none}.hubs a+a{padding-left:20px;border-left:1px solid var(--line)}
.hubs .t{font-weight:700;font-size:18px}.hubs .d{display:block;color:var(--ink-2);font-size:15px;margin-top:6px}
.hubs a:hover .t{color:var(--coral-ink)}

.lead-form{margin:64px var(--gut) 0;background:var(--navy);color:#fff;border-radius:var(--r-l);padding:44px clamp(20px,4vw,48px);display:grid;grid-template-columns:1fr 1.2fr;gap:40px;align-items:start}
.lead-form h2{font-size:clamp(26px,3vw,38px);letter-spacing:-.02em;line-height:1.1}
.lead-form p{color:#c9d4e4;margin-top:12px}
.lead-form form{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.lead-form label{display:block;font-size:14px;font-weight:600;margin-bottom:6px;color:#dfe7f2}
.lead-form input,.lead-form select{width:100%;padding:12px 14px;border-radius:var(--r-s);border:1px solid #3b5a86;background:#162e52;color:#fff;font-size:17px}
.lead-form .full{grid-column:1/-1}
.lead-form .note{font-size:13px;color:#9fb0c8}

.foot{margin-top:72px;padding:32px var(--gut) 40px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;font-size:14px;color:var(--ink-3)}
.foot nav{display:flex;gap:20px;flex-wrap:wrap}.foot a{text-decoration:none}

@media (max-width:1100px){.nav{gap:16px;font-size:14px}}
@media (max-width:900px){
 .nav{display:none}
 .hero,.tool,.lead-form{grid-template-columns:1fr;gap:32px}
 .figure{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:26px}
 .links{grid-template-columns:1fr 1fr}
 .hubs{grid-template-columns:1fr 1fr}.hubs a:nth-child(3){padding-left:0;border-left:0}.hubs a:nth-child(n+3){border-top:1px solid var(--line)}
}
@media (max-width:640px){
 .top{padding:16px var(--gut)}.right .lang{display:none}
 .links{grid-template-columns:1fr}
 .stats{grid-template-columns:1fr}.stats>div+div{padding-left:0;border-left:0;border-top:1px solid var(--line)}
 .hubs{grid-template-columns:1fr}.hubs a+a{padding-left:0;border-left:0;border-top:1px solid var(--line)}
 .lead-form form{grid-template-columns:1fr}
 .facts div{flex-direction:column;gap:2px}.facts span:last-child{text-align:left}
 .lead-form{margin:48px 0 0;border-radius:0}
}

/* Дополнения для шаблонов WordPress (САЙТ-14, #129). Вид хабов не меняют: таблица перенесена из
   встроенного стиля build/hub-tendery.html, остальное — для новых шаблонов (статья, лот, списки). */
table{width:100%;border-collapse:collapse;font-size:15px;margin-top:8px}
th{text-align:left;font-size:13px;color:var(--ink-3);font-weight:600;padding:10px 12px 10px 0;border-bottom:1px solid var(--line)}
td{padding:14px 12px 14px 0;border-bottom:1px solid var(--line);vertical-align:top}
td.num,th.num{text-align:right}
td a{text-decoration:none;font-weight:600}td a:hover{color:var(--coral-ink)}
.tbl{overflow-x:auto}
.prose h2{margin-top:44px}.prose h3{font-size:20px;margin:28px 0 8px}
.prose p,.prose ul,.prose ol{color:var(--ink-2);margin-top:12px}.prose ul,.prose ol{padding-left:22px}.prose li{margin-top:6px}
.prose blockquote{margin-top:16px;padding:14px 18px;border-left:3px solid var(--coral);background:var(--paper);color:var(--ink-2)}
.prose blockquote cite{display:block;margin-top:6px;font-size:13px;color:var(--ink-3);font-style:normal}
.prose .dp-answer{color:var(--navy);font-weight:600;font-size:18px}.prose .dp-hook a{color:var(--coral-ink);font-weight:600;text-decoration:none}.prose .dp-hook a::after{content:"\00a0↓"}.dp-cards{margin-top:20px}
.checked{font-size:13px;color:var(--ink-3);padding:24px var(--gut) 0}
a:not([href]){cursor:default}
.hero h1,.facts span{overflow-wrap:anywhere}

/* Вид страниц по итогам обхода всех 448 страниц (САЙТ-22, #270). */
.figure:empty{display:none}.hero:has(.figure:empty){grid-template-columns:1fr}
.hero h1.long{font-size:clamp(30px,3.6vw,50px);line-height:1.08}
.figure .big.long{font-size:clamp(30px,3.2vw,46px);letter-spacing:-.025em;line-height:1.08}
.prose .dp-sub{font-size:14px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--coral-ink);margin:36px 0 10px}
.prose blockquote,.prose cite{overflow-wrap:anywhere}
.prose td,.prose th{overflow-wrap:break-word;hyphens:auto}
/* Меню разделов на телефоне: строка под логотипом с прокруткой вбок, без бургера и скриптов. */
@media (max-width:900px){
 .top{flex-wrap:wrap;row-gap:10px}
 .top .nav{display:flex;order:3;width:100%;overflow-x:auto;gap:18px;white-space:nowrap;font-size:14px;padding-bottom:2px;scrollbar-width:none}
 .top .nav::-webkit-scrollbar{display:none}
}
/* Таблица в четыре и больше колонок на телефоне не сжимается в столбик по слову: она шире экрана и листается вбок. */
@media (max-width:640px){.tbl table:has(tr>:nth-child(4)){min-width:620px}}
/* Проверка адаптива 13.10 (скрипт wp/ops/adaptiv_check.py + разбор скриншотов). На телефоне таблица — карточки:
   первая ячейка строки заголовком, остальные с подписью колонки (data-h ставит obf_table_labels в functions.php).
   Шапка таблицы прячется, по слогам ничего не режется. */
@media (max-width:640px){
 .tbl table.cards{min-width:0!important}
 .tbl table.cards tr:first-child:has(th){display:none}
 .tbl table.cards tr{display:block;border-bottom:1px solid var(--line);padding:12px 0}
 .tbl table.cards td{display:block;border:0;padding:3px 0;hyphens:manual}
 .tbl table.cards td:first-child{font-weight:700;color:var(--navy);padding-bottom:6px}
 .tbl table.cards td[data-h]:not(:first-child)::before{content:attr(data-h);display:block;font-size:13px;font-weight:600;color:var(--ink-3)}
 .tbl table.cards td.num{text-align:left}
 /* Заголовки: длинное слово переносится по правилам языка, а не по одной букве. */
 .hero h1{overflow-wrap:normal;hyphens:auto;font-size:clamp(28px,8.4vw,40px)}
 /* Выпадающий список формы: длинный вариант с многоточием, кнопка во всю ширину по центру. */
 .lead-form select{text-overflow:ellipsis;padding-right:34px}
 .lead-form button,.calc button{width:100%;min-height:48px;text-align:center;justify-content:center}
 /* Отступы между секциями и над подвалом на телефоне меньше: на 360 px пустые полосы читались как конец страницы. */
 .sec{padding-top:40px}.prose h2{margin-top:32px}.lead-form{margin-top:44px}.foot{margin-top:48px}
 /* Крупные цифры: «1 010-ы» не рвётся на дефисе. */
 .figure .big,.facts span{hyphens:manual}
 /* Подвал: ссылки сеткой, по пальцу. */
 .foot nav{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px}
 .foot nav a{display:flex;align-items:center;min-height:40px}
}
/* Меню разделов до 900 px (телефон и планшет): все пункты видны, переносом, по пальцу не меньше 40 px (13.10). */
@media (max-width:900px){.top .nav{flex-wrap:wrap;overflow-x:visible;white-space:normal;gap:0 18px}.top .nav a{display:inline-flex;align-items:center;min-height:40px}}
/* Переключатель языка и ссылки подвала до 900 px — зона нажатия не меньше 40 px (13.10). */
@media (max-width:900px){.lang a{display:inline-flex;align-items:center;min-height:40px;padding:0 6px}
 .foot nav{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:4px 16px}.foot nav a{display:flex;align-items:center;min-height:40px}}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.lead-status{grid-column:1/-1;font-weight:600;margin:0}
.lead-form .note a{color:inherit}
.logo-img{display:block;height:36px;width:auto}
