/* ===== mobile-first, шаблон pqsm ===== */

/* PT Sans — self-hosted woff2 (кириллица + латиница) */
@font-face { font-family: 'PT Sans'; font-style: normal; font-weight: 400; font-display: swap;
    src: url('/fonts/ptsans-400-cyrillic.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'PT Sans'; font-style: normal; font-weight: 400; font-display: swap;
    src: url('/fonts/ptsans-400-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; }
@font-face { font-family: 'PT Sans'; font-style: normal; font-weight: 700; font-display: swap;
    src: url('/fonts/ptsans-700-cyrillic.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'PT Sans'; font-style: normal; font-weight: 700; font-display: swap;
    src: url('/fonts/ptsans-700-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; }

* { box-sizing: border-box; }
body { font-family: 'PT Sans', -apple-system, 'Segoe UI', Roboto, sans-serif; margin: 0; background: #f4f4f6; color: #423e3e; font-size: 16px; }
a { color: #5a5656; }
img { max-width: 100%; }
.wrap { max-width: 1180px; margin: 0 auto; padding: 0 10px; }

/* --- шапка --- */
header.site-header { background: #fff; box-shadow: 0 2px 8px rgba(0,0,0,.12); position: sticky; top: 0; z-index: 50; }
header.site-header .wrap { display: flex; align-items: center; gap: 10px; padding-top: 8px; padding-bottom: 8px; flex-wrap: wrap; }
.logo { display: inline-flex; align-items: center; gap: 8px; font-size: 20px; font-weight: bold; color: #423e3e; text-decoration: none; white-space: nowrap; }
.logo .logo-mark { display: block; flex: none; border-radius: 6px; }
.logo span { color: #423e3e; }
.header-city { color: #555; font-size: 13px; white-space: nowrap; }
.header-spacer { flex-grow: 1; }
.btn-add { display: inline-block; background: #d61f26; color: #fff; text-decoration: none; padding: 8px 14px; border-radius: 20px; font-weight: bold; font-size: 14px; white-space: nowrap; }
.btn-add:hover { background: #b01820; }

/* --- меню (мобильное: сворачивается) --- */
.menu-toggle { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; min-width: 44px; cursor: pointer; color: #423e3e; font-weight: bold; font-size: 15px; padding: 8px 10px; background: none; border: 0; user-select: none; font-family: inherit; }
.menu-toggle .mt-ico { font-size: 20px; line-height: 1; }
nav.main-menu { display: none; background: #fff; border-top: 1px solid #eee; }
nav.main-menu.open { display: block; animation: menuDrop .18s ease; }
@keyframes menuDrop { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
nav.main-menu ul { list-style: none; margin: 0; padding: 6px 10px; }
nav.main-menu > ul > li { border-bottom: 1px solid #f0f0f0; }
nav.main-menu > ul > li:last-child { border-bottom: 0; }
nav.main-menu a { text-decoration: none; color: #423e3e; }
nav.main-menu > ul > li > a, nav.main-menu summary { display: block; padding: 10px 4px; font-weight: bold; cursor: pointer; list-style: none; }
nav.main-menu summary::-webkit-details-marker { display: none; }
nav.main-menu summary:after { content: '▾'; float: right; color: #595959; }
nav.main-menu details[open] summary:after { content: '▴'; }
nav.main-menu .drop { columns: 2; padding: 0 0 8px 10px; }
nav.main-menu .drop li { break-inside: avoid; }
nav.main-menu .drop a { display: block; padding: 5px 4px; font-size: 14px; }
nav.main-menu .drop a:hover { color: #000; }
nav.main-menu .drop li.drop-group { padding: 6px 4px 3px; font-size: 13px; color: #595959; border-top: 1px solid #f0f0f0; margin-top: 4px; break-inside: avoid; }
nav.main-menu .drop li.drop-group:first-child { border-top: 0; margin-top: 0; }
nav.main-menu .drop li.drop-group b { font-weight: bold; color: #423e3e; }
nav.main-menu li.active > a { color: #000; }

main { padding: 14px 0 30px; }

h1 { font-size: 22px; margin: 10px 0 14px; }
.total-count { margin: -8px 0 12px; color: #595959; font-size: 14px; }
.muted { color: #595959; font-size: 14px; }

/* --- подкатегории-пилюли --- */
.subnav { margin: 0 0 14px; display: flex; flex-wrap: wrap; gap: 8px; }
.subnav a { display: inline-block; padding: 7px 14px; border-radius: 18px; text-decoration: none; background: #fff; color: #423e3e; border: 1px solid #ddd; font-size: 14px; }
.subnav a.active { background: #423e3e; color: #fff; border-color: #423e3e; font-weight: bold; }

/* --- карточки анкет: фото сверху, mobile = 1 колонка --- */
.cards { display: grid; grid-template-columns: 1fr; gap: 14px; }
.article { background: #fff; border-radius: 10px; overflow: hidden; box-shadow: 0 1px 4px rgba(0,0,0,.10); display: flex; flex-direction: column; position: relative; cursor: pointer; transition: box-shadow .2s ease, transform .2s ease; }
.article .head { display: flex; justify-content: space-between; align-items: center; gap: 6px; margin-bottom: 4px; }
.article .h4 { font-size: 18px; font-weight: bold; }
.article .h4 a { color: #423e3e; text-decoration: none; }
/* вся карточка кликабельна: ссылка имени растянута на всю карточку */
.article .h4 a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.article .h4 a:hover { color: #000; }
/* интерактивные элементы поверх растянутой ссылки */
.article-socials a, .btn-call { position: relative; z-index: 2; }
.article-socials { display: flex; gap: 8px; list-style: none; margin: 0; padding: 0; }
.article-socials a { display: block; width: 26px; height: 26px; background-position: center; background-size: contain; background-repeat: no-repeat; }
.svgbg.whatsapp { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='%230dc143' d='M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z'/%3E%3C/svg%3E"); }
.svgbg.telegram { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 496 512'%3E%3Cpath fill='%230f85c1' d='M248 8C111.033 8 0 119.033 0 256S111.033 504 248 504 496 392.967 496 256 384.967 8 248 8ZM362.952 176.66c-3.732 39.215-19.881 134.378-28.1 178.3-3.476 18.584-10.322 24.816-16.948 25.425-14.4 1.326-25.338-9.517-39.287-18.661-21.827-14.308-34.158-23.215-55.346-37.177-24.485-16.135-8.612-25 5.342-39.5 3.652-3.793 67.107-61.51 68.335-66.746.153-.655.3-3.1-1.154-4.384s-3.59-.849-5.135-.5q-3.283.746-104.608 69.142-14.845 10.194-26.894 9.934c-8.855-.191-25.888-5.006-38.551-9.123-15.531-5.048-27.875-7.717-26.8-16.291q.84-6.7 18.45-13.7 108.446-47.248 144.628-62.3c68.872-28.647 83.183-33.623 92.511-33.789 2.052-.034 6.639.474 9.61 2.885a10.452 10.452 0 0 1 3.53 6.716A43.765 43.765 0 0 1 362.952 176.66Z'/%3E%3C/svg%3E"); }
.article-foto { position: relative; }
.article-foto a { display: block; position: relative; aspect-ratio: 3/4; overflow: hidden; background: #efeef0; }
.article-foto img { width: 100%; height: 100%; object-fit: contain; display: block; }
.article-foto img.ph-hover { position: absolute; inset: 0; opacity: 0; transition: opacity .25s ease; }
.no-photo { width: 100%; aspect-ratio: 3/4; display: flex; align-items: center; justify-content: center; color: #595959; background: #efeef0; font-size: 13px; }
.badges { position: absolute; top: 6px; left: 6px; display: flex; flex-direction: column; gap: 4px; align-items: flex-start; }
.badge { color: #fff; font-size: 11px; font-weight: bold; padding: 2px 8px; border-radius: 10px; }
.b-verified { background: #008800; }
.b-video { background: #6b7280; }
.b-new { background: #2563eb; }
.article-body { padding: 8px 10px 10px; display: flex; flex-direction: column; gap: 3px; flex-grow: 1; }
.article-geo, .article-params { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.article-geo { font-size: 14px; }
.article-params { font-size: 13px; }
.article-price-row { display: flex; justify-content: space-between; align-items: baseline; margin-top: 4px; }
.article-price { font-weight: bold; font-size: 19px; color: #2b2828; letter-spacing: .2px; }
.article-hours { font-size: 13px; color: #555; font-weight: bold; }
.btn-call { display: block; text-align: center; background: #d61f26; color: #fff; text-decoration: none; font-weight: bold; font-size: 14px; padding: 8px 0; border-radius: 18px; margin-top: 7px; }
.btn-call:hover { background: #b01820; }
.article-work-hours { font-size: 13px; color: #555; font-weight: bold; margin-bottom: 4px; }

/* --- страница анкеты --- */
.anketa section { background: #fff; border-radius: 10px; box-shadow: 0 1px 4px rgba(0,0,0,.10); padding: 12px 14px; margin-bottom: 14px; }
.anketa .h2 { font-size: 18px; font-weight: bold; margin: 0 0 10px; }
.similar { margin-top: 24px; }
.similar .h2 { font-size: 18px; font-weight: bold; margin: 0 0 12px; }
.anketa-head h1 { margin: 0 0 6px; }
.badge-verified { display: inline-block; background: #008800; color: #fff; font-size: 12px; padding: 2px 8px; border-radius: 3px; vertical-align: middle; }
.badge-video { display: inline-block; background: #6b7280; color: #fff; font-size: 12px; padding: 2px 8px; border-radius: 3px; vertical-align: middle; }
.anketa-phone { font-size: 24px; font-weight: bold; margin: 8px 0; }
.anketa-phone a { color: #423e3e; text-decoration: none; }
.anketa-geo { color: #555; font-size: 14px; }
.anketa-geo a { color: inherit; text-decoration: none; }
.anketa-geo a:hover { text-decoration: underline; }
.breadcrumbs { font-size: 13px; color: #888; margin: 0 0 12px; }
.breadcrumbs a { color: #555; text-decoration: none; }
.breadcrumbs a:hover { text-decoration: underline; }
.breadcrumbs .bc-sep { margin: 0 6px; color: #bbb; }
.anketa-messengers { display: flex; gap: 10px; margin: 8px 0; }
.anketa-messengers a { display: inline-flex; align-items: center; gap: 5px; text-decoration: none; font-weight: bold; font-size: 14px; color: #423e3e; }
.anketa-messengers i { display: block; width: 22px; height: 22px; background-position: center; background-size: contain; background-repeat: no-repeat; }
.photos video { width: 100%; }
.anketa video { display: block; max-width: 100%; width: auto; max-height: 70vh; margin: 10px auto 0; border-radius: 8px; }

/* --- галерея анкеты: мобильная свайп-лента --- */
.photos { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 8px; -webkit-overflow-scrolling: touch; scrollbar-width: none; align-items: flex-start; }
.photos::-webkit-scrollbar { display: none; }
.photos .ph { flex: 0 0 78%; scroll-snap-align: center; aspect-ratio: 3/4; overflow: hidden; background: #efeef0; border-radius: 8px; }
.photos .ph img { width: 100%; height: 100%; object-fit: contain; display: block; cursor: pointer; }
.gallery-hint { text-align: center; color: #595959; font-size: 13px; margin-top: 6px; }

/* --- лайтбокс --- */
.lightbox { position: fixed; inset: 0; background: rgba(0,0,0,.93); z-index: 200; display: flex; align-items: center; justify-content: center; touch-action: none; }
.lightbox[hidden] { display: none; }
.lightbox img { max-width: 96vw; max-height: 88vh; object-fit: contain; border-radius: 6px; }
.lb-btn { position: absolute; background: rgba(255,255,255,.14); color: #fff; border: 0; font-size: 26px; width: 46px; height: 46px; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.lb-close { top: 12px; right: 12px; }
.lb-prev { left: 8px; top: 50%; transform: translateY(-50%); }
.lb-next { right: 8px; top: 50%; transform: translateY(-50%); }
.lb-counter { position: absolute; bottom: 14px; left: 0; right: 0; text-align: center; color: #ccc; font-size: 14px; }

/* --- липкая панель звонка (мобильная) --- */
.cta-bar { position: fixed; bottom: 0; left: 0; right: 0; background: #fff; box-shadow: 0 -2px 12px rgba(0,0,0,.18); padding: 8px 10px; display: flex; gap: 10px; align-items: center; z-index: 90; }
.cta-bar .btn-call { flex: 1; margin-top: 0; padding: 12px 0; font-size: 16px; }
.cta-bar .cta-msg { display: block; width: 42px; height: 42px; background-position: center; background-size: contain; background-repeat: no-repeat; flex-shrink: 0; }
body.has-cta main { padding-bottom: 70px; }
@media (min-width: 768px) { .cta-bar { display: none; } body.has-cta main { padding-bottom: 30px; } }
table.params-table { border-collapse: collapse; width: 100%; font-size: 14px; }
table.params-table td, table.params-table th { border-bottom: 1px solid #f0f0f2; padding: 9px 10px; text-align: left; }
table.params-table tr:nth-child(even) td, table.params-table tr:nth-child(even) th { background: #f8f8fa; }
table.params-table tr:last-child td, table.params-table tr:last-child th { border-bottom: 0; }
table.params-table th { width: 45%; color: #595959; font-weight: normal; }
table.params-table th .p-ico { display: inline-block; width: 20px; text-align: center; margin-right: 4px; }
.services-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.services-grid div { background: #f3f4f6; border-radius: 14px; padding: 6px 12px; font-size: 14px; }
.services-grid a { color: inherit; text-decoration: none; }
.services-grid a:hover { text-decoration: underline; }
.services-grid .svc-comment { display: block; color: #595959; font-size: 13px; }
.about-text { font-size: 14px; line-height: 1.5; }

/* --- страницы «Все метро» / «Все районы» --- */
.geo-index { background: #fff; border-radius: 10px; box-shadow: 0 1px 4px rgba(0,0,0,.10); padding: 14px; }
.geo-letter { font-weight: bold; font-size: 17px; color: #423e3e; margin: 12px 0 4px; }
.geo-letter:first-child { margin-top: 0; }
.geo-list { list-style: none; margin: 0; padding: 0; columns: 2; }
.geo-list li { break-inside: avoid; padding: 3px 0; }
.geo-list a { text-decoration: none; color: #423e3e; }
.geo-list a:hover { color: #000; text-decoration: underline; }
.geo-count { color: #595959; font-size: 13px; }
@media (min-width: 768px) { .geo-list { columns: 3; } }
@media (min-width: 1024px) { .geo-list { columns: 4; } }

.pagination { margin: 22px 0; text-align: center; }
.pagination nav { display: inline-block; }
.pagination a, .pagination span { color: #423e3e; padding: 4px 8px; text-decoration: none; }
.pagination-desktop { display: none; }
.btn-more { display: block; text-align: center; background: #423e3e; color: #fff; text-decoration: none; font-weight: bold; font-size: 16px; padding: 14px 0; border-radius: 24px; margin: 20px 0; }

footer.site-footer { background: #423e3e; color: #bcbcbc; padding: 24px 0 18px; font-size: 14px; }
footer.site-footer a { color: #e8e8e8; text-decoration: none; }
footer.site-footer a:hover { color: #fff; }
.footer-cols { display: flex; flex-wrap: wrap; gap: 18px 40px; }
.footer-col { min-width: 140px; }
.footer-col .f-head { color: #fff; font-weight: bold; margin-bottom: 8px; font-size: 15px; }
.footer-col ul { list-style: none; margin: 0; padding: 0; columns: 1; }
.footer-col li { margin-bottom: 5px; }
.footer-bottom { margin-top: 18px; padding-top: 14px; border-top: 1px solid #575353; font-size: 13px; display: flex; flex-wrap: wrap; gap: 10px; justify-content: space-between; }

/* ===== планшет ===== */
@media (min-width: 768px) {
    .cards { grid-template-columns: repeat(3, 1fr); gap: 16px; }
    .photos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; overflow: visible; }
    .photos .ph { flex: none; scroll-snap-align: none; }
    nav.main-menu .drop { columns: 3; }
    .pagination-desktop { display: block; }
    .btn-more { display: none; }
}

/* ===== десктоп ===== */
@media (min-width: 1024px) {
    .menu-toggle { display: none; }
    nav.main-menu { display: block; }
    nav.main-menu > ul { display: flex; flex-wrap: wrap; gap: 2px 14px; padding: 0 10px; max-width: 1180px; margin: 0 auto; }
    nav.main-menu > ul > li { border-bottom: 0; position: relative; }
    nav.main-menu > ul > li > a, nav.main-menu summary { padding: 10px 4px; }
    nav.main-menu details .drop { position: absolute; top: 100%; left: 0; min-width: 220px; background: #fff; box-shadow: 0 4px 12px rgba(0,0,0,.15); columns: 1; z-index: 40; padding: 6px 0; }
    .cards { grid-template-columns: repeat(4, 1fr); gap: 18px; }
    .photos { grid-template-columns: repeat(4, 1fr); }
    .anketa .cols { display: flex; gap: 14px; }
    .anketa .cols > section { flex: 1; margin-bottom: 0; }
}

/* ховер-эффект только на устройствах с мышью */
@media (hover: hover) {
    .article:hover .article-foto img.ph-hover { opacity: 1; }
    .article:hover { box-shadow: 0 6px 18px rgba(0,0,0,.18); transform: translateY(-2px); }
    .article:hover .h4 a { color: #d61f26; }
}

/* --- тач-таргеты минимум 44px на сенсорных устройствах (Apple HIG / Material) --- */
@media (pointer: coarse) {
    .btn-add { padding: 12px 18px; font-size: 15px; }
    nav.main-menu > ul > li > a, nav.main-menu summary { padding: 13px 4px; }
    nav.main-menu .drop a { padding: 11px 4px; }
    .article-socials { gap: 4px; }
    .article-socials a { width: 44px; height: 44px; background-size: 26px 26px; }
    .btn-call { padding: 12px 0; font-size: 16px; min-height: 44px; }
    .geo-list li { padding: 0; }
    .geo-list a { display: block; padding: 11px 4px; }
    footer.site-footer .footer-col a { display: inline-block; padding: 7px 0; }
    .anketa-messengers a { padding: 10px 4px; }
    .anketa-messengers i { width: 26px; height: 26px; }
    .btn-more { padding: 16px 0; }
}

/* --- пагинация (кастомный вид вместо Tailwind-дефолта) --- */
.pgn { display: flex; gap: 6px; justify-content: center; flex-wrap: wrap; }
.pgn-btn { min-width: 40px; min-height: 40px; display: inline-flex; align-items: center; justify-content: center; padding: 6px 12px; border-radius: 8px; background: #fff; color: #423e3e; text-decoration: none; font-weight: bold; font-size: 14px; box-shadow: 0 1px 3px rgba(0,0,0,.10); }
.pgn-btn:hover { box-shadow: 0 2px 6px rgba(0,0,0,.14); }
.pgn-cur { background: #d61f26; color: #fff; }
.pgn-dis { opacity: .45; }

/* ===== a11y / adaptivity fixes ===== */

/* Дропдауны меню: не за правый край вьюпорта, скролл по высоте */
@media (min-width: 1024px) {
    nav.main-menu details .drop {
        max-height: calc(100vh - 110px);
        overflow-y: auto;
        overscroll-behavior: contain;
    }
    nav.main-menu > ul > li:last-child .drop,
    nav.main-menu > ul > li:nth-last-child(2) .drop {
        left: auto;
        right: 0;
    }
}

/* Длинные неразрывные строки не ломают вёрстку */
.services-grid div, .about-text, .anketa-phone a,
.geo-list a, nav.main-menu .drop a, h1 {
    overflow-wrap: anywhere;
}

/* Инлайн-ссылки в контенте — подчёркивание (WCAG 1.4.1) */
main p a, .about-text a, .cat-text a { text-decoration: underline; text-underline-offset: 2px; }

/* Явные focus-состояния */
a:focus-visible, button:focus-visible, summary:focus-visible {
    outline: 3px solid #2563eb; outline-offset: 2px; border-radius: 4px;
}
.btn-call:focus-visible, .btn-add:focus-visible {
    outline-color: #fff; box-shadow: 0 0 0 3px #2563eb;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Ширина 45% — только первой колонке таблиц, не шапке таблицы цен */
table.params-table th { width: auto; }
table.params-table tr > th:first-child { width: 45%; }

/* Скрытый текст для скринридеров */
.visually-hidden {
    position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Страховка пропорций и от горизонтального скролла */
img { height: auto; }
body { overflow-x: clip; } /* не ломает position: sticky, Safari 16+ */

/* Быстрые фильтры на мобильном (первый экран каталога); на десктопе есть меню */
.quick-filters { display: flex; gap: 8px; overflow-x: auto; padding: 2px 2px 10px; margin: 0 0 12px; scrollbar-width: thin; }
.quick-filters a { flex: 0 0 auto; padding: 7px 14px; border-radius: 18px; text-decoration: none; background: #fff; color: #423e3e; border: 1px solid #ddd; font-size: 14px; white-space: nowrap; }
.quick-filters a:focus-visible { outline: 2px solid #d61f26; outline-offset: 2px; }
@media (min-width: 768px) { .quick-filters { display: none; } }

/* Страница 404 */
.e404 { text-align: center; padding: 48px 16px 64px; }
.e404-code { font-size: 72px; font-weight: 700; color: #d61f26; line-height: 1; }
.e404-h { font-size: 24px; margin: 12px 0 8px; }
.e404-t { color: #6b6b6b; margin: 0 0 24px; }
.e404-actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.e404-actions .btn-cta { background: #d61f26; color: #fff; text-decoration: none; font-weight: bold; padding: 12px 26px; border-radius: 24px; }
.e404-actions .btn-ghost { background: #fff; color: #423e3e; text-decoration: none; padding: 12px 22px; border-radius: 24px; border: 1px solid #ddd; }
.e404-actions a:focus-visible { outline: 2px solid #d61f26; outline-offset: 2px; }

/* SEO-текст категории (сайт-уровень, site_category_texts) */
.seo-text { max-width: 760px; color: #555; margin-top: 26px; font-size: 14px; line-height: 1.55; }
.seo-text h2 { font-size: 20px; color: #423e3e; margin: 0 0 12px; line-height: 1.3; }
.seo-text h3 { font-size: 16px; color: #423e3e; margin: 22px 0 8px; line-height: 1.3; }
.seo-text h4 { font-size: 15px; color: #423e3e; margin: 18px 0 6px; }
.seo-text p { margin: 0 0 12px; }
.seo-text ul, .seo-text ol { margin: 0 0 12px; padding-left: 22px; }
.seo-text li { margin: 0 0 6px; }
.seo-text a { color: #d61f26; text-decoration: underline; }
.seo-text a:hover { text-decoration: none; }
.seo-text a:focus-visible { outline: 2px solid #d61f26; outline-offset: 2px; }
.seo-text strong, .seo-text b { color: #423e3e; }
